My 8x8x8 LED Cube





Introduction: My 8x8x8 LED Cube

About: I love to solder. Go figure...

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.



  • Creative Misuse Contest

    Creative Misuse Contest
  • Water Contest

    Water Contest
  • Clocks Contest

    Clocks Contest

36 Discussions

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".

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.

13 replies

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.

I'm Powering it using a modified atx power supply. Did you also use 10k for r2 on the avr board?

I'm thinking about getting a computer power supply. What type of mods have you done to your supply?

I got the smallest ATX power supply i could find at a store near me and I used this instructable to turn it into a lab power supply:

I'm gonna get a cheap dedicated 5v supply from ebay and use that after i solder the boards together on pcb so that I can keep the lab supply I made.

Yes, r2 is a 10k resistor. The transistors are PN2222A's. Not sure what the "TA" means, but it may refer to a packaging type. It's best to check the specs because, as you point out, there are many types available.

Can you post some good quality photos of your build? Especially the wiring side.

Sorry I took so long to respond, I was away. Glad to see you got your cube working.

BTW, that is an incredible job of breadboarding you have done. Do you plan on transferring all that to a pcb?

Your photos are great too, in focus and bright. So many photos here are dim and out of focus as to be useless.

Thanks! I do plan to transfer it to pcb, but I'm back in school now so I have to wait until winter break. I made a video of it here:

I got it working! Turns out I had two of the pins switched on the 74HC138...just incase anyone else has trouble with this:

A0 A1 and A2 correspond to A B C respectively on chr's schematic, and E1 corresponds to G1, E2 to G2A, and E3 to G2B.

Thanks for your help, it was very encouraging.

Sounds like you might be pushing the SERIAL mode button - maybe both buttons are wired to the same pin or they are shorted together.

Thanks bkeaton for your help, you and CHR have very nice builds and these
instructables are very helpful. I am glad you guys are keeping them alive,
I was worried at first. I am still in the ordering phase, and am sure I
will have more questions. I like doing projects like this piece by piece as
I learn better that way.

Somethings to recap from our pvt msgs so everyone can learn:

1.I found the Eagle software by googling it, this is a great free program to
read/print the sch files.

2.I ordered a usb charger like those for Iphone/Ipad, and then found out
this will not work due to low amps. I will either use a HD enclosure that I
already have, or order a Computer PSU. From all the notes, they seem to be
the same.

3.I asked the difference between the two interfaces (Serial/TinyUSB), this
is what bkeaton told me:
-The serial connection is used to run the cube from your computer. Some of
the more math intensive programs are not handled well by the ATMega
-The USBTiny connection is used to program the microcontroller.
I think I will still do both as I have already ordered the parts, and might
as well add them to keep the option for later.
4.I'm sure I will have more questions later when it comes to the programing

Thank you again bkeaton and CHR.