3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

LED Cube 8x8x8

Step 72Feedback

Feedback

We love getting feedback on our projects! The 4x4x4 LED cube has received a ton of feedback, and many users have posted pictures and videos of their LED cubes.

If you follow this Instructable and make your own LED cube, please post pictures and video!

Oh, and don't forget to rate this Instructable if you liked it :)


As a token of gratitude for all the great feedback, here is a collage of some of the feedback on our 4x4x4 LED cube instructable:

« Previous StepDownload PDFView All StepsNext Step »
73 comments
1-40 of 73next »
Feb 17, 2012. 1:05 PMfluetke says:
Hi everyone, I finally got my weird IC problems solved, but neither me nor my electronics technician buddy can explain what caused these problems or what fixed them. They were suddenly gone. Either way, here it is:


At the moment, it only runs the default animations as I didn't have time to programm new ones, but one of the future goals is to have winamp or vlc visualizations running on the cube. 
Also I forgot to drill a hole for the RS232 mode btn, hence the cable coming out under the front.

Let me once again, thank you and the community for this great instructable and all the helpful comments.
May 17, 2012. 1:44 PMtrimdell says:
Hola disculpa puedes ayudarme con tu programación por fa por que me esta fallando el cubo led ya que hay algo que no funciona bien no se prenden 3 filas

gracias
Feb 7, 2012. 3:16 PMweedetz says:
Hi just wanted to thank yo guzs fir great and amazing instructables. This is my fiirst ever electronicks project and im satisfaed as it turned out.(Did a couple mini projects on arduino without soldering.) I didnt want to copy youre design, and i tryed to simplife it as much as possible, so i went with bit shift registors instead of latch array, and i used darlingtons transistor arry with pull up resistors instead of normal transistors. So here it is my cube. Its not done yet, its running under arduino uno atm for test purpose, but i have atmega ready and all the rest parts to make my own controller. As i said im happy with my cube, hope you guys enyoj it. And i want to apollagize for my bad english. Here is the video..
Apr 5, 2012. 8:55 AMSteel Chameleon says:
dont have your code available do you? :P
Feb 15, 2012. 9:38 AMtronghai_tk says:
you can send me all the PBC (printed circuit boards, code, diagram principle)? I want to make you one. thank you much.
mail: pkstyle9x@gmail.com
Mar 9, 2012. 12:29 AMthanhdlk33 says:
nice, could you give me this circuit ?
thank you
mail: thandlk33@gmail.com
Mar 17, 2012. 8:03 AMjacco82 says:
All these incredible instructables, great job everyone. I'm finished with my 3x3x3 and I am new to programming and electronics. I got a few codes written for my 3x3x3 but that was for the microprocessor final, now I'm in capstone and going to tackle the 8x8x8, can't imagine anything better to fine tune some programming skills and soldering.

The question is I want to set all the levels high without lighting all the LED's in a row, for setting letters and symbols etc. I have a beta code set for the 3x3x3 by manipulating delays quickly and it works but it just doesn't look as uniform as some of yours. I heard of something through the forums that mention setting the code in a byte format, and was wondering if there is any tutorials or example codes to decipher someone may know of that isn't popping up for me in search. my 3x3x3 is multiplexed and I'm sure the 8x8 will be too. Any information would be helpful, based on setting letters, and symbols that use many levels but not all LED's. I think I stated this clearly.
Mar 7, 2012. 3:14 AMjacksonliam says:
I used a arduino uno (am going to replace with a Micro) and built mine across two breadboards. One holds the 8x 74HC595's (daisy chained latching shift registers) and one holds the layer logic (atm just connected to 8 arduino pins).

I've also hooked mine up to a wii nunchuck, I plan to make some sort of game:
http://www.youtube.com/watch?v=XgwEwKs-sSw
Mar 8, 2012. 1:33 AMCloudhail says:
can you write an instructable on how to extend the uno out onto that many breadboards. I am new (just built my first 3x3x3) I learned alot but I dont know how to manipulate the uno like you do. Please respond!
Feb 23, 2012. 12:42 PMarm171 says:
Thanks so much for putting this tutorial out.
I just ordered all the parts to start with my cube.
I was wondering if you have thought about doing a cube with RGB lights.
I am new at this and don’t know how complicated it would be, but it definitely would be much better looking
Feb 27, 2012. 9:20 AMrclay701 says:
Take a look at this link - http://lumisense.com/eightcubed I have built this cube. The downside is the PCB is pre-assembled.
Feb 24, 2012. 8:36 AMtriumphtotty says:
With single colour LEDs there are over 1,000 solder connections to make in the cube. Triple that (at least) and remember that the 3 RGB wires will somewhat block the light from the back of the cube reaching the front. From the point of view of wiring it up, I would go for latching shift registers (24 of them!) for the layer, e.g. the 74HC595, so that the data for the next layer can be shifted in while the previous layer is lit up. Remember you would only have 7 colours this way, unless you could do some kind of basic PWM on the data. I've done 3-level PWM in software on my monochrome cube. With 3-level PWM and RGB LEDs you could have 26 (I think?) different colours. Probably enough for some cute effects.
Feb 26, 2012. 10:30 PMlpws521 says:
i have a question ,,,in the step 64 ,cube_pc ......this code's function ,,,how can i use it?
Feb 27, 2012. 1:22 AMtriumphtotty says:
This code uses a PC to drive the cube.  Firstly, the cube is connected to the PC via an RS232 connection.  The cube is started with the RS232 button to put it into "slave" mode.  Then the cube_pc program is run on the PC and it sends the display of the different effects over the RS232 connection to the AVR board.  Effectively the cube just acts like an 8x8x8 display to the program run on the PC.

To run it you will need an RS232 port (either real, or a USB-RS232 converter) and a Linux installation to run cube_pc.  If you look through the comments in Step 64 you will find some information on running it in Windows, but it's not straightforward.  Using a virtual Linux environment like Linux Mint is very easy.  This just boots from CD, allows you to install the development tools (libc and gcc are all you need I think) and you can make and run the program from there.
Feb 27, 2012. 2:18 AMlpws521 says:
oh i know, you mean the cube_pc program must run in Linux system and some tools,,,,I try it again later ,,so i must install the Linux in the virtual environment..and try it ,,,,and reply you after trying
Feb 27, 2012. 3:16 AMtriumphtotty says:
Linux Mint just boots from a CD/DVD, so doesn't change your PC at all. Everything is stored in memory. When you restart your PC you go straight back into Windows. If you want to install a Linux system alongside Windows you can, but be very careful!
Feb 27, 2012. 7:48 PMlpws521 says:
thank you....but i don't know how to Compiled the cube _pc program in the Linux mint ...it' s the first time to compile the program in the Linux ... i have taken some picture about the gcc order ....
Feb 27, 2012. 11:56 PMtriumphtotty says:
Just cd into the directory with the source and type "make". You don't EVER need to run gcc by hand! Then type ./cube to execute it.
Feb 29, 2012. 1:56 AMlpws521 says:
hi...i have some problem .....show in the picture....i don't understand...i do that follow you tell me the step...but the consequence is not show effect....
Feb 28, 2012. 12:36 AMlpws521 says:
thank you every much !!! i try again....
Jan 23, 2012. 2:08 PMQba_S says:
Hi I just want to share my progress in cube building. I need to do one for my Embedded System subject at university.

I've used another method to make circuits - heat toner transfer (I think that's the name).

In the first picture we see multiplexer board right after etching and control one right before (this one had to thin routes, so I've made another one).

there's also first layer of the cube, I plan to finish whole thing in about two days, so expect an updates :)

Here are the photos:

Jan 24, 2012. 12:03 PMtriumphtotty says:
Awesome! Which program did you use for the layouts? Are you going to publish them, or make any more?
Jan 24, 2012. 12:29 PMQba_S says:
Thx :)

I did the layouts in the Eagle program (free trial available here: http://www.cadsoftusa.com/downloads/?language=en)

And here are the files:
http://dl.dropbox.com/u/2465468/controll2.brd
http://dl.dropbox.com/u/2465468/multiplex4.brd

I also want to express my gratitude for this brilliant and amazing tutorial (I forgot to do so in my previous comment), so
THANK YOU CHR!
Jan 25, 2012. 12:27 PMkam1 says:
Can you please give me part numbers for the ribbon cable connectors? Having hard time to find.
Jan 25, 2012. 12:52 PMQba_S says:
In my small, local electronics store it's called:
- IDC8 connector for 4x2 version,
- IDC16 for 8x2 :)
Jan 27, 2012. 4:07 PMQba_S says:
And here she is:




Thanks again for Great instructable :)
Jan 28, 2012. 1:48 PMQba_S says:
Hi again,
I've just spent whole day debugging rs-232 pc connection.
There's an error in avr_board.sch from step 30.
You need to swap the connections between ATMega and MAX232:
In schematics we have:
PD0 - T1IN
PD1 - R1OUT
Should be:
PD0 - R1OUT
PD1 - T1IN
(I don't know yet, if it's possible to change it in software).
All in all, my cube is now fully operational :)

PS. I've got Texas Instruments MAX232, but I'm pretty sure it's pin-compatible with the Maxim one.
Jan 29, 2012. 3:53 AMtriumphtotty says:
Yeah, PD1 is the "TXD" pin, so that should go to the input pin T1IN on the MAX232.  There's no way of changing that in software, as the USART stuff is hard-coded into the ATmega to allow it to do interrupts etc.  I didn't use the MAX232 part of the circuit, as I love to optimise stuff.  With a lot of fiddling you can get Game Of Life to run at full speed (say 100fps, as opposed to the unoptimised 2-3fps), and it's trivial to get Fireworks to compile and run on the ATmega too.  But if you want the RS232 port working, you'll need to swap those pins over.  :o(  Your boards are so, so good look too.  You might need to cut the tracks and patch little crossover wires.  Uuurgh.
Jan 5, 2012. 1:57 AMtriumphtotty says:
My cube has been in my window as a Christmas light for the past couple of weeks.  My neighbours love it!!  I reprogrammed the interrupts to allow a simple form of PWM with 3 levels of intensity.  All I did was add another "cube" array called cubelsb[8][8] with the LSBs of the intensity.  To keep backwards compatibility, I have a flag "pwm_mode" which when 0 just runs as chr's cod does, i.e. on/off and when pwm_mode is 1, it uses the cube[][] as the MSB and cubelsb[][] as the LSB.

The "sprites" are meant to be a snowflake and holly.  Snowflake good.  Holly bad.

As chr said, the LEDs don't respond well to PWM for some reason, so the PWM is 5 refresh cycles instead of 3.  (if it was 3, then 01 would be 1 "on" cycle, 10 would be 2 cycles and 11 would be 3 cycles)  With 5 cycles, 01 is 1 cycle pulse on.  10 is 3 and 11 is 5.  It works beautifully.

The third and fourth effects are PWM sparkle (0:17-0:47 in video) and PWM rain (0:47-2:40.  Ooops!).  The rain has a random sidewind.  :o)


Jan 5, 2012. 6:47 AMthien2002 says:
Hi !

Good work . Your cube use 3mm LED or 5mm LED ? And the schematic as same as on this guide ?
Jan 5, 2012. 7:41 AMtriumphtotty says:
Thanks! It's an amazing project to build and very rewarding to sit and watch it once finished. Allow 15-25 hours of time, and a lot of patience for building the cube itself. 1,040 solder joints including the braces. Count 'em down as you go. :o)

I used 3mm white non-diffused LEDs (£30 for 1,000 off eBay). The schematic is identical to chr's, except I used TIP112 Darlingtons instead of the parallel transistors, thus avoiding the need for pull-up resistors too. The TIP112 can handle 2A continuous, so switching 1.2A at 1/8th duty cycle is well within its spec.

If you do decide to follow the schematics here, the order of the wires on the 16-way board-to-board connector is a bit nonsensical.  I would put the 8-bit bus on all the even numbered pins down one side to simplify the bus wiring, and move the other functions to the odd pins (pin 1 and 3-LEDs, 5,7,9 the 138's address bus, 11 for OE, 13 for the switch and 15 for GND for example).  The Kynar wires are a rats-nest otherwise (or my skills are ratty and nesty!)  Stripping the Kynar is pretty easy with practice.  I used normal wire cutters with the flat side facing the end to be stripped.  Practice on the end on the spool, i.e. strip it, cut it, strip it, cut it until you get the level of pressure just right.  Then do all the 72 wires for the bit-bus while you have the knack!!  Out of the 144 strips required I only messed up 3.
Jan 6, 2012. 3:45 AMtriumphtotty says:
Some photos from my phone attached.  AVR board and multiplexer board from above.  The "sockets only" photo shows how I fitted the capacitors under the sockets (my dad's technique to save board space and get them as close to VCC and GND as possible!)

Finally, a half-finished photo of the bit-bus on the multiplexer board from underneath.  This nicely shows how the tripad board is perfect for this type of build.
Jan 5, 2012. 6:51 PMthien2002 says:
Thanks for the info.

Did you replace the pair of two PN2222 with one TIP112 and do not use resistors connect from ATmega32 to the Base pin of transistor ? And do you see the LED cube Croy9000 made ? He use only one PCB. Could you made it as like as he did ?
Jan 6, 2012. 1:41 AMtriumphtotty says:
Oh, Croy9000's boards are gorgeous. I have some photos of both sides of my boards at home, so may post them later in the spirit of Instructable. :o) But they're nothing like as cute as proper PCBs.
Jan 6, 2012. 1:33 AMtriumphtotty says:
Exactly. One TIP112 in place of the pair of transistors, and no need for the pull-up resistors at all. The TIP112 has integral resistors. I'm at work so don't have my build notes to hand, but I'm sure I used 860Ohm resistors between the ATmega32 and the TIP112's Base.

I think it would be easy enough to build on a single board. The alternative multiplexer solution, i.e. using shift registers instead of latches would dramatically simplify the build complexity too. I used tripad board for the multiplexer board, but there are still 80-odd Kynar bus wires to cut, strip and solder for the bus alone! With shift registers that would be 16, so running these direct from the microcontroller would be very simple.
Jan 6, 2012. 7:19 PMalahamm says:
Congrats to U2,but if we use shift registers, would the code need changes?
If not, anybody care to do the schematics?
Jan 7, 2012. 4:38 AMtriumphtotty says:
There are some schematics in chr's instructable for this.  See Steps 8 and 9.

Ideally you would use a latching shift register, e.g. the 74AC595.  By having the data latched, it's possible to leave the power transistors on whilst shifting in the next layer's data, resulting in more "on" time.  In code terms:

(imagine we are currently displaying Layer 0)
Shift in data for Layer 1.
Switch off Layer 0 transistor.
Latch data to make it "live"
Switch on Layer 1 transistor.
Jan 7, 2012. 5:21 AMalahamm says:
Thanks triiumphtotty.I´ll look at that in a while; I was just trying to simplify the wiring because everything here is expensive , if you can find it. But last night I found a solution. Unfortunately I don´t know how to upload an eagle file for board.
Jan 6, 2012. 3:50 AMthien2002 says:
Very thanks !

I'm designing the schematic of the led cube so i'll post for you to check if i have something wrong. And one more question. I saw one guy on the forum didn't use MAX3232, he said no need to use it. Is that truth ? Can i use the AVR ISP port connect to PC to flash the ATMEGA32 and control the animation effect ? And can i use one ULN2803A darlington transistor array to replace 8xTIP112 ?

Thank you very much.
Jan 7, 2012. 4:57 AMtriumphtotty says:
Thinking about this further, I don't think the ULN2803A is a plausible choice. It can only handle 500/600mA. One cube layer (assuming 20mA LEDs) can eat up to 1.3A.

How about the ULN2064/2065/2066/2067/2068/2069? I think the 2067 for 5V CMOS driver. They're quads, so you would need two of them, but they can handle 1.75A.
1-40 of 73next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
651
Followers
7
Author:chr
I like microcontrollers and LEDs :D