Small cube constructed, but larger cube still had difficulties! I originally wanted to make an 8x8x8 RGB LED cube. This seemed like a bit too much of a reach (who wants to solder that many LEDs??), so I instead aimed for a 6x6x6 white LED cube, to be controlled by a fabduino. I've used charlieplexing (see output week) to power many LEDs, but I decided I wanted to try a new method for the project and instead used decoders/demultiplexers to control multiple LEDs from few pins. I first made a 3x3x3 cube from a kit I bought a while back. I then transfered the cube to be controlled by an Arduino 2560, with each column being directly controlled by a pin (so no multiplexing). Once that seemed fine, I worked on making my larger cube. Unfortunately, I havne't gotten it to work yet, but I've documented my mistakes here, as well as tips for better ways to construct this cube.
I bought a diy LED cube kit a while back, and made it this past week in preparation of this project. It helped me get used to using a rig to hold the LEDs while soldering, and connecting layers together to make a cube. The actual circuitry part was already done, I just needed to solder componenets into place. In this cube, all cathodes are connected in each column, and all anodes are connected in each row. They're controlled using transistors, which amplify current and are used as switches. After builing this, I removed the cube from the base and directly connected the columns and rows to pins in my arduino. I then was able to turn on speciic LEDs with just a resistor put inbetween the cathode and ground. Unfortunately, I forgot to take pictures/videos of this. :(
I first made a rig to hold the LEDs while I was soldering them. I tried different drill sizes, until I found one where the LED would fit snugly. Then I cut out 36 holes in a square, making it so that there would be a ~1mm overlap between anodes in a layer. In my design, the cathodes (negative) of each LED are connected in a layer (just used pliers to bend them 90 degrees), and the cathodes (positive) are connected in each column (used pliers to bend them toward the column and make soldering easier).
I was a bit paranoid that some LEDs might not work, so I tested each one out before adding it to the cube. I found 2 LEDs that wouldn't turn on while doing this, and a couple more that seemed to die later on while building the cube (most likely wires touching).
I used galvanized steel wire to reinfore some of the rows of LEDs. Specifically the lines around the edges, and one in the middle. I tried using aluminum wire, but then realized solder wouldn't stick to it. I bent the top (cathode) of each LED to connect with the next layer, then used carboard to hold the next layer while I soldered cathodes in each column together. I used the same method when making my 3x3x3 cube, but doing it on a larger cube was much more frustrating. I repeated this process for each layer, but didn't notice until the end that my cube was leaning toward one side. I should have been looking at it from multiple viewpoints during this process to make sure it was completely straight.
I used 5 3-to-8 1-HIGH decoders to turn 15 outputs into the needed 36 inputs to the cube, and one 1-LOW decoder to say which layer should be put to ground. I decided to leave pads to directly connect wires to the circuit from the cube, but didn't realize how impossible this would be to actually create. My decoders were through hole components, so I just bent the bottoms to make them flat (initally I planned on drilling holes for them, but that seemed uncessary).
I color coded my columns into groups of 8 so that it would be easier to connect them to the decoders. These wires are a bit too short to easily connect with the board though, as once you start connecting columns, the two boards become so close that it's impossible to wire all connections.
I tried using this fabduino design, as I needed at least 18 pins, but I could never get it to work. I tried multiple 328P's, checked every connection being made, checked voltages, and double checked my ISP worked. Eventually, my removing 328P's caused the small traces to come up, which I couldn't really see a way to fix. I decided I'd instead use the arduino to make sure my cube could work, and go back to using the fabduino once I had time to mill out a new one and debug it.
I tested just the decoders to make sure they could turn on an LED. I then started connecting columns to their place on my board...which became a nightmare. While connecting columns, I also tested again with the decoders. There were so many wire though, that it's very hard to get accurate readings, and many wires are about to come off the board, or are touching others, despite efforts to stop that from happening. I realized that I should have made my board with couplers instead, to organize the chaos a bit.
As an alternative to debugging, I made a simple press fit box for the cube out of acrylic. One insteresting idea Jasmine brought up is sanding the acrylic to give it a frosted look and disperse the lights.
Next Steps
I didn't have time to get the larger cube working by presentations, but I aim to finish in the next couple days after it. I've learned that my soldering wires directly to the board was a very bad idea, that might work for smaller cubes, but won't work when there are 36 columns and 6 rows that all need a wire. Instead, I will use headers that split and connect to one row each. I'd also like to try a different fabduino design, and cut out a box out of slightly better material than cardboard. Looking back: although I made a 3x3x3 cube, I didn't test out all of my planned methods for the larger cube on it. I should have tested the smaller cube with my planned board, and realized that soldering wires would get hectic soon.