After all those blogposts on how to build an LED cube it was time to actually do it. A few weeks ago I build a 4x4x4 cube. Although it is my goal to build a 8x8x8 or even larger cube, I still wanted another prototype to play around with. In case something goes wrong, I would only lose 64 instead of 512 or more LEDs.
Basically I followed the steps from one of my previous posts for this, building a cube from vertical layers. After building the four layers I drilled 16 holes into a 150x150x15mm piece of MDF and adjusted the layers in them using hot glue and this is how it looked like:
The next task was to do the wiring. My favorite for things like this are good old 40 pin IDE cables. Now there are four layers with 16 LEDs on them, meaning that only 20 wires would be needed but these specific wires are quite thin and as I mentioned in earlier posts, bigger cubes need more power. Each layer could use up to 320mA and while that may have even worked with single wires, I just used two wires for each pin. Take a look at the picture with the final case, you can see the pairs of wires.
With some more MDF I built the rest of the case. The cube and the top plate are attached to the rest of the case with two screws, allowing me to take it apart again in case a wire falls off or something.
The best part about it: It worked right away!
The 40 pin IDE connector fits onto a / my Breadboard which makes it easy to build a test setup. Everything was until I was trying to multiplex the layers. Since every LED is switched on only for 25% of the time they appear a lot darker. Darker than I expected. Usually people use ultra bright LEDs which are way to bright at 100% but still bright enough when switched on for only 1/8th of the time. My LEDs should have been just fine for a 4x4x4 cube though and so I was getting quite annoyed by this whole issue.
I played around a lot using different circuits, different transistors and MOSFETs. I tried to read about the involved parts and tried to figure out what was wrong. Unfortunately I didn’t get answers right away and didn’t have the right tools at the time. Then I had work to do and the »Versuchswuerfel 01« caught some dust.
Now I’m back with an oscilloscope to figure out what exactly the problem is. I know that there are tons of guides out there about building an LED cube and that there was a new guide on instructables recently which looked quite impressive but I want to understand and control every aspect of it myself. The circuit / board layout, parts, software etc. I want maximum brightness. The ultimate goal is to use an FPGA for this but this seems like a long road ahead considering the basic problems i’m currently dealing with. On the other side I finally get the chance to get acquainted with an oscilloscope. The current setup looks like this, currently dealing with only one LED.
Since I’m using MOSFETs to switch the layers on and off my first guess was that they weren’t opening up wide enough. This turned out to be true and so I tried logic level mosfets which can be directly controlled from the pins of an Arduino but the result was the same. Now with the oscilloscope I could see that the MOSFETs weren’t opening up fast enough resulting in a non rectangular wave and so I tried to use MOSFET drivers. You can see the result on the picture above. A quite clean, almost rectangular wave.
Now while that improved the situation already I could now increase the voltage on the layers to allow more current in the same amount of time. LEDs work with up to 10 times of the regular current but only if they are pulsed. Now since they are on only 25% of the time I want to try to increase the voltage until the LEDs get 80mA so that they appear equally bright to LEDs that are on all the time at 20mA.
To switch the individual LEDs on a layer, I’m using constant current sink LED driver.
Maybe a list of current parts is also helpful:
- STP16CP05 Constant current LED driver
- ICL 7667 MOSFET Driver
- IRL2905 Logic Level MOSFETs
I will experiment some more before I light up the cube again but I will report on my results. If you have any questions leave a comment or write me an email to cubino [at] smyck [dot] org