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

1-40 of 2800Next »

Holy Cow! That thing is absolutely amazing! I couldn't build one if I tried, but WOW! I am very impressed with not only how it looks and all the countless things it does, but it must have taken a whole lot of intelligence to put this together, so Congratulations to the creator! AWESOME!

With my PC Boards, just about anyone can make one.

Inbox me for details if you want.

*i can make this thing using PC Boards

Yogesh90912 days ago
Hey, I wish to make one!
the problem is the value of resistors
I'm not able to understand which values of resistors are being used where!
so I request to kindly say me the value of resistors for
1. Base of transistor
2. Collector of transistor
3. 64 resistors(are they 100 ohms???
)

I've just got a month to complete the project
So hoping a fast response!

Any help would be appreciated
thank in advance!!

I'd put 1K on the bases, and 100 ohms for everything else (at least that's what I did with my PC Boards for this project)

Hello SuperTech-IT

First Thanks for your super tutorial and time you spend to help people! it is really nice.

I would like to clarify the values of the resistors that I am using.

Base of transistor: 1kohm to limit current and protect the transistor.

Collector of transistor (pull up resistor): UNDETERMINED.

64 resistors: 100 ohm to protect the leds.

My question: shouldn't we use 4.7 kohm instead of 100 ohm that you advised in the previous comment for the pull up resistor value?

this isn't my tutorial, it's CHR's, but he made it along time ago, and I assume has moved on to greener pastures. As for the pullups, this isn't an analog cicuit....the lower the value, the faster the snap from 0 to 5V (more square wave)....but you don't want to over load the transistor either. I used 100 ohms because I had lots, and it worked well for the purpose.

I'm troubled by the Icc=70mA rating of the 74HC574 chips in the datasheet. 8 leds x 16 mA = 128mA, resulting in 128mA > 70mA by almost 2 times.

3.4V = drop voltage over a blue LED.

(5V - 3.4V) / 100R = 0.016A = 16mA (for blue and white LEDS)
(5V - 2V) / 100R = 0.030A = 30mA (for most other led colors, resulting in blown leds).

So if not using blue or white, I would go for 220 Ohm resistors. Still not taking into acount the specs of the 75HC574.

I make exactly that same comment in my "revisited" instructable on this project, and also elsewhere in the comments here ages ago.

Please also note however that your calculations are based on DC current, which is the mistake all the designers made initially. You can't do that. We are virtually pulse width modulating the LEDs, which changes everything quite dramatically, and completely nullifies these calculations.

Hi,

Do I need to include the power supply circuit(7805 and capacitors and all?) if I am using arduino uno??

Any help would be appreciated!

Thanks in advance!!!

piddy05046 days ago

I am currently building this cube,was wondering how it would be possible to use a momentary switch to cycle through the different effects,any pointers as to how to modify the software to achieve this would be much appreciated.

I have code that does this. See my "revisited" instructable on this circuit.

Thank you for your reply and excellent tutorial.I have my circuit completed and am currently waiting on more LED to finish the cube as i only received enough for 3 layers instead of the 8 i had ordered from china.Once i have completed my build i am sure i will be needing your help again as software side of things is still a big learning curve for me.

Ok, so I'm quite new at this and I am trying to decide if AVR or Arduino is better for me. I don't own any of either yet. Basically, I'm wondering for a beginner, which is better/easier/cheaper for this project?

Arduino (ATmega328P) may be easier, but the ATmega32/32A/32L is better.

Hey everyone, quick question. I'm in the process of constructing this, but I'd like to use an Arduino Due instead of the on-board chip. The Due has a voltage limit of 3.3v for all I/O pins. Will that still work? To my knowledge, it will because none of the pins connected to the arduino are directly connected to the 5v power - but feel free to prove me wrong!

Your best bet is to run the circuit at 4.5V or less because the VIH at 5V is very close to the 3.3V on the 74HC574's, so it may not catch all the low-high transitions. At Vcc=4.5V the VIH drops well into the range where 3.3V signals won't get confused.

JosipR9 days ago

Awsome!

This can be done with High Power LEDs? This require PC to run?

It can run standalone once programmed.

If you don't want to have this powered by your pc (I don't recommend powering it with pc) Connect the arduino/breadboard with an external power supply

bryanbdp6 days ago

To answer Yogesh909's question: I had a hell of a time finding the value for the pullup resistors for the layer control buss, so I took a look at the Arduino Uno based cube I built. I used blue leds, and 100 Ohm resistors for all the column resistors. (R1 - R64)

I also used 100 Ohm resistors before the 2222A transistors (R3 - R18), and 4.7 kOhm resistors as pullup resistors on the layer control buss.(R20 - R28)

If anyone has better information, please let us all know. These values worked well for me. You can calculate your own values easily using an online calculator like

http://www.hobby-hour.com/electronics/ledcalc.php

Thanks,

Bryan

jlj0425 made it!13 days ago

i made it!!! Thanks guys. its really great

IMG_20150117_135103.jpgIMG_20150117_135114.jpgIMG_20150117_135211.jpgIMG_20150117_135221.jpg

Nice and clean setup, funny you kept the image underneath.

mortezaab11 days ago

Hi there

Well thank you for the exhaustive information

I am choreographer led lights

I need help in my pcb design

The trouble was led cuob

Any way of drawing the map

Map growers still had the problem of

Map not clear to me that you give me if I've got this project pcb's email

mortezaab100@gmail.com

Thank you for everything

mortezaab11 days ago

Hi there

Well thank you for the exhaustive information

I am choreographer led lights

I need help in my pcb design

The trouble was led cuob

Any way of drawing the map

Map growers still had the problem of

Map not clear to me that you give me if I've got this project pcb's email

mortezaab100@gmail.com

Thank you for everything

this will look great on a christmasy night

OldJohnJ13 days ago

My son and I have assembled the awesome 8x8x8 Blue LED Cube kit from Jameco. Programming is via the Arduino 1.0.1 IDE on a Linux system. The cube and demo software function perfectly.

The IDE provides the abilty to transfer data in both directions using the Serial class functions. Use of the initialization function, serial.begin(57600), causes two planes of the cube to be turned on, equivalent to a fill(0x03) call, and blocks subsequent software control of these two layers by the demo software. The communications using USB appears to work correctly in both directions between the IDE Serial Monitor window and the cube Arduino. The setup() and ISR are the same as given in arduinocube.pde from step 70 of assembly instructions. Varying the placement of the Serial.setup() call in setup() or loop() does not change the problem.

Has anyone else reported this problem and is there a fix for it?

You make it sound like you are trying to use the serial routines with an Arduino.

You need to be using an ATmega32/32A/32L. You also need to check the code and make sure you compiled it for the clock frequency you are using. IE - if you are using a 16 MHz crystal, you need to change CHR's original code, which is set got 14.7456 MHz. Worst case, try dropping the baud to 38400.

Thank you for the reply. The Arduino IDE - USB - Arduino processor communications works. The problem is enabling the communications with the library Serial.begin(57600) forces 2 vertical planes of the cube to be always on: not controllable by the arduino program. This is what I was referring to in my original post.

You can't do that. The serial lines are used for cube hardware control.

If you want to use communications while the cube is in operation, you have to move up to the ATmega32/32A/32L processor. Think of it like this, if we assign all the analog inputs as digital outputs and use those lines to control hardware, you can't just come along, and define one as an input because you need an analog input, and expect the rest of the hardware to continue to function correctly. In this project, EVERY SINGLE PIN of the Arduino is used to control the cube. You can't reassign any of them for anything else. Period. Not unless you want to add more hardware like another demultiplexer to handle the layers so you can free up a few pins.

Thank you for confirming this. I thought some juggling of interrupts might allow the two functions to coexist. I haven't programmed at this level in about 40 years so your statement is very helpful and saved me a lot of time.

pugalkas16 days ago

Hello, you would not be able to throw me your project really liked me unless you do not mind

pugalkas16 days ago

Hello, you would not be able to throw me your project really liked me unless you do not mind

pugalkas16 days ago

Hello, you would not be able to throw me your project really liked me unless you do not mind

pugalkas16 days ago

Hello, you would not be able to throw me your project really liked me unless you do not mind

Great design, mine failed, but i'm planning on another go in a few weeks!

inbox me if you want to get a set of PC Boards.

I have an all-in-one controller that can take the ATmega32 or the ATmega328P, and I have another board for the base of the cube.

CIMG2875-2.jpgScan_Pic0038.jpg
3alaawi3 months ago
Also, if i were to replace all the leds with rgb leds, would this change anything other than the software side of the project?

This project's cube has 64 anodes and 8 cathode (layer) connections. 72 total connections to be controlled.

The typical RGB cube has 172 plus 8 for a total of 180 connections to control.

So, ya - it's way different.

I mean unless you just use one colour of the LED and just clip off the other connections.

And I seriously wouldn't recommend this as a first electronic project - ESPECIALLY if you are planning to use it as a school project. I have seen way too many people do that, and were it not for me spending many sleepless nights helping those people, they would have failed completely.
Experienced people have trouble building this circuit by hand and making it work - which is why I developed printed circuit boards for it.
That was the only way to bring this from an advanced level project to a beginner/intermediate level project.

1-40 of 2800Next »