We believe this Instructable is the most comprehensive step-by-step guide to build an 8x8x8 LED Cube ever published on the intertubes. It will teach you everything from theory of operation, how to build the cube, to the inner workings of the software. We will take you through the software step by step, both the low level drivers/routines and how to create awesome animations. The software aspect of LED cubes is often overlooked, but a LED cube is only as awesome as the software it runs.
About halfway through the Instructable, you will actually have a fully functional LED cube. The remaining steps will show you how to create the software.
A video is worth a thousand words. I'll just leave it up to this video to convince you that this is the next project you will be building:
I made this LED cube together with my friend chiller. The build took about 4 days from small scale prototyping to completed cube. Then another couple of hours to debug some faulty transistors.
The software is probably another 4-5 days of work combined.
Remove these ads by
Signing UpStep 1: Skills required
I've been doing electronics for a long time, and for years i struggled with analog circuits. The analog circuits failed over half the time even if i followed instructions. One resistor or capacitor with a slightly wrong value, and the circuit doesn't work.
About 4 years ago, I decided to give microcontrollers a try. This completely changed my relationship with electronics. I went from only being able to build simple analog circuits, to being able to build almost anything!
A digital circuit doesn't care if a resistor is 1k ohm or 2k ohm, as long as it can distinguish high from low. And believe me, this makes it A LOT easier to do electronics!
With that said, there are still some things you should know before venturing out and building this rather large project.
You should have an understanding of:
- Basic electronics. (We would recommend against building this as your very first electronics project. But please read the Instructable. You'll still learn a lot!)
- How to solder.
- How to use a multimeter etc.
- Writing code in C (optional. We provide a fully functional program, ready to go)













































































































Visit Our Store »
Go Pro Today »




For the button on the latch array board, there are two LEDs, a red and green one. One is connected to pin1, the other pin2 on the 16pin ribbon connector. I imagine the red would be for debugging. For convienience, which pin on the 16pin ribbon connector connects to the red LED?
Thanks.
Also, when the code is recompiled for 16MHz I get no errors at speeds up to 57600. I would probably have to drop to 14.7456 MHz to make 115200 flawlessly, I don't know, but I get data corruption at this speed at 16 MHz. Don't forget you need to recompile the code with the CPU set at 16 MHz if you change the crystal.
In my tests, the return wire was lowering the layer current by 400mA with all LEDs on.
My driver board has 2 40 pin connectors on it to go to the LED matrix, so I just doubled up the return wires (80 pins total...64 for each LED, and 16 for return rather than just 8...total, 80 wires)
Can we buy them ready made?
el:)
There are different voltage caps because a lower voltage cap can be smaller for the same rating as a higher voltage one.
Since our main voltage here is 5V, you can use 10V or above capacitors. Using 5V caps isn't recommended since you would be running them at their threshold, and they will break down a lot faster than a higher rated cap.
The numbers are in order, so pin 2 on the bus is pin 14 on the connector which connects to pin 40 on the AVR - and so on.
This will avoid ghosting or other adverse effects we don't want.
I dont think the schematic and the picture are the same. from looking at back side of board. The 3 blue wires are correct pins 3,4,5, and the orange wire (OE) is pin 6. But the schematic I think shows pin 7 as D7, and pin 8 is D6, pin 9 is d5 an so forth.
But if you go by the pictures and the datasheet for 74hc574n, pin 7 is d0 (it looks to be soldered to the next higher to the orange, pin 8 is d1, pin 9 is d2 and so forth.
Which should i follow
I looked at the board and it all seems correct.
Thanks
for darlington transistors put atleast 1/100 the current you want to see through the transistor into the base.
You can probably get by with less than this but if this figure is not too high it's a good starting point,
so for a 20mA LED, 1.28A. This is pretty typical of high brightness LEDs.
A 1A transistor should be able to handle it, but it's cutting it close. Use something with a 2A or higher rating if you plan on using only 1 transistor per layer.
http://www.instructables.com/files/deriv/F45/JMFQ/GICYB1F5/F45JMFQGICYB1F5.LARGE.jpg
Show pin 16 on the 16 pin header connected to ground along with pin 15 when the schematic shows that pin 16 on the header connects to (SS)PB4 and pin 15 going to ground. Take a look:
http://www.instructables.com/files/deriv/FJ4/7RE1/GICYB6CI/FJ47RE1GICYB6CI.LARGE.jpg
Thoroughly confused. Why are pins 15 and 16 connected together in that picture? Should I ignore all pictures and just stick to the schematics? It's the same for the latch array board. In the picture, it shows pin 15 and 16 connected together, but offers different input in the schematics. Any suggestions? To me, it seems that they should not be connected together, it doesn't make any sense.
Thanks for any input.
This allows me to use any other microcontroller - but of course you have to write the code for it. 26 pin connectors and cables are very common, so this gives you enough for the 8 data, 8 layer select, 3 column (address) select and 1 output enable lines (20 pins total) with room left over for power and ground (input or output).
how can i amplify it by 12v or output layer selection?
think problem is about layer selection .and i use tip122 for 8 layer.
please help
I have a little problem to programm my ATMega32. When I type:
"avrdude -c usbtiny -p m32"
Everything is OK, but when I type these both instructions:
"avrdude -c usbtiny -p m32 -U lfuse:w:0b11101111:m
avrdude -c usbtiny -p m32 -U hfuse:w:0b11001001:m"
I break my ATMega32 (In fact, after that, I have no more access to the ATMega32). This is my third ATMega32. I don't know if this is the first or second instruction which break my ATMega32. With my new ATMega32, I tried this instruction:
"avrdude -c usbtiny -p m32 -B 1 -U flash:w:test.hex"
But I have an error message which say:
"avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override this check."
Do you know what's problem can cause this error message? I verified the routing of my board, but I didn't see anything.
For information, I tried this with Linux and Windows
Thank you very much for your help.
Could you use the 74HC138 (or similar chip) connected through some sort of transistor array? That would reduce those 8 IO pins to 3.
Actually, could you connect the last out pin of a shift register to its data pin so it shifts in its own data? Then you could just feed it a 1 and 7 zeros and keep looping it with only the clock pin.
Of course I'm not nearly advanced yet to design such a circuit.