LED Cube 8x8x8

FeaturedContest Winner
Picture of LED Cube 8x8x8
Create your own 8x8x8 LED Cube 3-dimensional display!

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 adsRemove these ads by Signing Up

Step 1: Skills required

Picture of Skills required
At first glance this project might seem like an overly complex and daunting task. However, we are dealing with digital electronics here, so everything is either on or off!

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)
You should also have patience and a generous amount of free time.

mnopamin5 days ago

how can i change baud rate to 9600????????

in the MAIN.H file
look for these lines:
// Define USART stuff

#define FOSC 16000000

#define BAUD 38400

#define MYUBRR (((((FOSC * 10) / (16L * BAUD)) + 5) / 10) - 1)

change the baud rate, and recompile the main.hex and upload to the AVR.

the FOSC is your oscillator frequency. If you are having problems, and that line says 14745600 and you are using a 16MHz oscillator, that's why your serial isn't working. Change it to 16000000 and recompile/upload and try again at 38400 baud. If however you are trying to use QBasic or something that requires 9600, check both the baud and the fosc settings.

A little premature, but HAPPY 3 MILLIONTH VIEW !!!!!

mnopamin4 days ago

i have a problem in compile

This is the solution to the exact issue you have explained.


If you have a different issue, please explain it so we might actually be able to help.


when I download the schematic files, it's not .sch file, it's a .temp file. Can you send me the schematic files to Nice project!!

you just need to rename it as you save it, or, conversely, save it then rename it.

It's the instructables file server - it only allows certain file extensions and SCH isn't one of them. You'll run into this when you download the hex and bin files too.

mnopamin4 days ago

That is amazing! Beautiful work!

akumar987 days ago

I have a problem with my cube 8x8x8.

It is not booting at all and the status LEDs at pin no 16th & 17th of the AVR are toggling. I've checked my programming steps and fuse bits. Its all the same as uploaded on this site.

Plse help me out with this mess.

They are supposed to until you hit the RUN button or the SERIAL mode button.

Chances are, your circuit is fine!

ibt_robot11 days ago

i have problem with 74hc138


A=H B=H C=H work same A=L B=L C=B

led 1to8 turn on when led 56to 64 is on

how i can fix it?


it sounds like one or 2 of the address selector bits is off or connected where it shouldn't be.

Whit the 74HC574 and the 2N222,i can replace the 3mm diodes, for 10mm diodes whitout problem? i was thinking about the current, if it will be enought to get them on whiout burning de IC or the transistors.?

you'll need to check the specs of the LEDs. If they are in the 20-40mA range, it should be OK.

Blade122888 made it!9 days ago

OMG lots of soldering!!! So glad I got mine finished! Great Instructable!

msh135310 days ago

bravo, it's greet

cenac23123 days ago

ArticW0lf, I have the same problem

erreur test.hex.png

I finally figured out this problem, the whole "save it to where ever you want" is complete BS! You have to save the test.hex file to the same directory as what your command prompt is working off of, in your case save the file to C:\users\"user name" , that should fix your problem. although even though my IC will now run the program I have no lights coming on at all.

You need to specify the location of the hex file

that way ?
erreur test.hex2.png


I thank you for that clarification.

But I have an "invalid file format" error message :(

DSC_0082.JPGerreur test.hex2.png

try reducing the path. Save the file to c:\ or make a directory off C like C:\code

It may be just having issues parsing the path.

That does not work, I desperate ...

erreur test.hex3.png

Either copy the test.hex file to the directory where you are executing the command, or get yourself a copy of AVRDudess

AVRDudess gives you a Windows GUI interface to use AVRdude with, and lets you browse for the files you need to upload to your AVR.



I finally managed to send the program, I see the LED light along the X axis and then along Y. I'm happy =)

but some LED does not light up when it should

Great. I suggest next that you upload my code to the cube, then go here to diagnose any problems with your cube or control circuit.

I tried your code, but I have the same problem ...

I tried with AVRDudess

j'ai essayé avec votre code, mais j'ai le même problème ...

je vais essayé avec AVRDudess

Honestly though, it looks like your copy of the test.hex file may be bad. I would re-download it, or try one of my main.hex files from my instructable which also has the added benefit of having a power on self test incorporated into the code.

try reducing the path. Save the file to c:\ or make a directory off C like C:\code

It may be just having issues parsing the path.

Also, you can try downloading code from my page at

ryanto1212 days ago

I noticed that the when using the MM74HC138 that the use of the Output Control for retaining data on the latches is not necessary. Instead of writing the data for the latches by latch # 0, 1, 2, 3, 4, 5, 6, to 7, if you go 0, 2, 3, 1, 5, 4, 6, to 7 then you only switch one "select" bit at a time, and none are repeated. So no messing around with any high impedance state or the OC. Then, after each latch has its data written, the floor's transistor is turned high and low to display the image, then the select bits are all made low since the latches are just going to be overwritten for the next floor anyway.

Doing this, I've only got 19 inputs and on the arduino uno (capacity of 20); it really helps not having a pin in the 0 slot (The RX slot, used for the USB conn to the computer), so I don't have to go disconnect anything just to upload a new program.

Anyways, great instructable.

nefcat12 days ago

Hello, when I download the schematic files, it's not .sch file, it's a .temp file so I can't open it. How can I get the .sch files please?

Is it possible to run tri-color LEDs using charlieplexing as opposed to multiplexing?

I'm a noob, but just thought I'd ask.

There aren't enough outputs to do tri-colour using the methods we are using here. I have changed to shift registers for my upcoming RGB cube.

Also I'd like to point out that what we are doing is actually DE-multiplexing. Everyone seems to call it multiplexing for some reason, and I don't know how that caught on. Look at the name of the 74HC138 - it's a DE-multiplexer.

Oh okay. Good to know. Thanks for the info!

kchauhan13 days ago

Sir nice work done. Sir can u tell me what is the total cost of this whole project ?

KrunoslavH14 days ago
Now i get it. Just could you give a little step by step how you uploaded the code with QBasic.

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!