My 8x8x8 LED Cube





Introduction: My 8x8x8 LED Cube

I have finally finished this project! Took about three weeks. If your soldering skills are not up to par before you start this, they will be when you are done! There are over 1300 soldering points in the cube alone. I estimate there are additional 700 or so on the two boards.

I must say that Chr did a magnificent job putting together the istructable for this project. You must, however, read every single comment before undertaking the build because there is a lot you need to figure out on your own.

Anyway, here are the photos of my build.


  • Thought I would drop...-SuperTech-IT

    SuperTech-IT made it!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Gluten Free Challenge

    Gluten Free Challenge
  • First Time Author Contest 2018

    First Time Author Contest 2018

We have a be nice policy.
Please be positive and constructive.




Complete cube frames are sent to the cube via the RS232.
Each LED is a bit, therefore each row is a byte, each layer is 8 bytes, and as such, the whole cube is 64 bytes.
There are some minor things to know when sending the data to the cube.
Character 255 (decimal...FF hex, or 11111111 binary) is used as an "escape" character, telling the cube that the next character is a command.
For instance, sending the set FF, 00 (255 then 0) tells the cube to reset coordinates to 00 and clear the cube.
The problem this presents is when sending a byte of "all lights on" which obviously is also 255. So, in escape mode, if the next character is also 255, it uses it as cube data rather than a command.
So, in order to turn on all the lights in the cube, you would have to send it 255 128 times (255 puts it into escape mode, the next 255 it takes as data, the next 255 puts it in escape mode again, and the next 255 it takes as data again, and so on)
So any time you want to send 255 as data, you must send it twice.
Otherwise, it takes each byte as data, and once it has enough data to draw a frame, all the data is transferred to the cube.

How you get the data to the cube is your own decision.
Some use "Programming"(the language) or C language.
My first attempts at this I did in QBasic.
Anything that can send serial data can be used - even an Arduino, Raspberry Pi, PIC, iPod, anything with a serial port that you can program yourself to send the data to the cube.

LOOL...just wandering around and found this old comment of mine. The language is called "Processing" - not "programming".

Correcting my own error - "Programming" (the language) is actually PROCESSING (the language)

Would you mind posting a list of the mistakes in chr's instructable? I have built the 8x8x8 cube and wired the circuits together but I am new to this so I have no idea where to begin debugging. Thanks for your help and the info.

Let me start by saying that I don't consider them mistakes. Chr's instructable is huge and took an enormous amount of time and effort to put together. I consider them either oversights or typing errors. Before or during building, you need to read all the comments and there are many. There is a wealth of information there from people that know far more than I do. That being said, here is what I have found:

Resistor values should be carefully examined.
Be careful of the wiring. The transmit/receive wiring from the max232 to the atmega is flipped.

You say everything is wired and you need to debug. What is wrong with the cube?

Im on step 46 where you load the test code. I programed the avr successfully but when i connect the cube nothing happens. The status leds flash and when i push btn 1 one of them stays constant. I think the problem is with the resistor values at the transistors. If im using the same ones as chr, how do i calculate the values for the pullup and base resistors? As per the comments i tried 1k and 100ohms at the base along with 4.7k and 1k for the pullup resistors. I think the problem lies here because the voltage at the bases is around negative 3.

Thanks again for your help, it is greatly appreciated.

I'm using 220 ohm base resistors. The circuit calls for 100 ohms but since there is a pair of transistors and resistors, and you are wiring the resistors in parallel, that halves the value. You have to account for that. The actual value as calculated using Ohm's law is around 105 ohms. 220 ohms is close enough.

I am also using a 4.7k pullup resistor.

How are you powering the cube?

Every once in a while I go through these instructables even if the original post was ages ago to correct a few things. Since the transistor bases are not tied together, the resistors are not in parallel at all.