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 2787Next »
bryanbdp20 hours 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

piddy050422 hours 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.

JosipR3 days ago

Awsome!

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

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

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!

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?

jlj0425 made it!7 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.

mortezaab5 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

mortezaab5 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

Yogesh9096 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!!
OldJohnJ8 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.

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.

pugalkas11 days ago

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

pugalkas11 days ago

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

pugalkas11 days ago

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

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

OOPS - 192 plus 8 for a total of 200 signals.

Hey, just wondering where I could find your printed circuit board. I've already finished building my cube and am wondering if there is a place where I can buy it

yup, just inbox me for details

Mommosan1 month ago

Okay, I'm 78, still work full time, do NOT have a lot of free time, and although I have a brilliant mind, could do it if my fingers would only cooperate. But since they have a mind of their own, I don't think that's happening. But I would absolutely love to display this amazing product of your creative genius in my home for my personal enjoyment and all the world to see. Please tell me, is it available for sale anywhere?

Thank you.

Mommosan
(alias Cynthia)

I sell printed circuit boards for both the base for the cube and the controller board.

inbox me for details.

BillB9 Mommosan17 days ago

kickstarter.com had a project for a similar cube. Here's the link:

https://www.kickstarter.com/projects/lookingglass/l3d-cube-the-3d-led-cube-from-the-future?ref=nav_search

simon.anderson.5477 made it!17 days ago

I did it! Thanks for the great Instructable: it really was an inspiration whilst starting to learn electronics, I just HAD to make one for myself...

Instead of Arduino, I used a Raspberry Pi: as such, I had limited outputs pins, but advantage of easy-interface: plug in network cable, load Python or C routines via Samba share... I shall learn serial interfacing down the road I think because I respect that approach :) I also have an Arduino so might try controlling with that for comparison/challenge at a later date.

I used '574 flip-flops as you did, but I used a 74HC238 for flip-flop select, and another 74HC238 for layer select... so total control pins = 8 for column data bus, 3 for row select, and 3 for layer select = 14 GPIO pins. All chips wired for permanent "enable"... can always just shut everything down by loading "off" on all data. However Pi doesn't boot "clean" with all pins output = low and I don't wanna leave an LED on for long with only a 100R resister, so might wire up an "on switch" to avoid burning LEDs during startup.

My first video below: first = quick 100hz layer switching to show full 512-LEDs lighting up via persistent vision, then a slow layer-by-layer move just to prove control ;)

LED Cube 2.mp4(516x290) 20 KB

I just remembered you didn't use Arduino, you used your own custom ATMega circuit didn't you... sorry! Very impressive: that's some "next level" stuff for me :)

blair292921 month ago

Awesome instructable! However is there a trick to downloading the files? No matter what I try it always downloads .tmp files??

I had the same problem. I just replaced the ending .tmp with the correct one and was able to open the files as intended. Maybe this works also for you

I tried that with the sch files but Altium won't open them and Eagle only opens them as a picture. I want to use the schematics to create a PCB but I can't open the schematics.

garyb1001 month ago

Hi

What a great instructable. Hoping someone can Help me. Started to build this and testing as I go along. Having problems with the multiplexer, 574 chip 3 is mirroring 574 chip 0. Have checked for shorts no shorts, check timing pulses as best I can using a 2 channel storage scope and everything seems ok. Think it has something to do with the timing and the program but no matter how much I check the program I can't find an error. Anybody any idea's please

If the program works for everybody EXCEPT you, then it cannot possibly be the programming.

If chips 3 and 0 are mirrored, the first thing I'd check is the outputs of the 138. Triple check your wiring.

1-40 of 2787Next »