Instructables
Picture of 4x4x4 RGB LED Cube
P1020672 b.jpg
P1020669 B.jpg
P1020682 b.jpg
P1020625.JPG
P1020676 b.jpg
A while ago, when I first started using Arduino, my first project was a 4x4x4 LED cube, I built it from a Guide I found here in Instructables, I didn't know anything about programming, and little about electronics, yet I was able to build it and make it work, I didn't know how it worked but it did!
That success made me like this page a lot and also made me want to make guides like that one, well documented and properly explained, enabling people to make cool things, at first without them knowing how they work, and from there, from a working piece, start learning and understanding how it works.












note: the last 2 videos are not from my cube, but it works in the same way and gives the same result.
 
Remove these adsRemove these ads by Signing Up

Step 1: Materials

Picture of Materials
For the most basic cube you will need;
  • 1x Atmega328 (With arduino Optiboot bootloader)
  • 3x TLC5940
  • 4x P-Channel MOSFETs
  • 3x 4K7 Resistors
  • 3x 16 pin Male and Female headers
  • 1x 4 pin Male and female header
  • 1x 28pin IC socket
  • 1x 1000uf 10v capacitor
  • 1x 0.1 uf ceramic capacitor
  • 2x 22pf capacitors
  • 1x 16Mhz crystal oscillator
  • 64x RGB common ANODE LEDs (it is very important that you check your LEDs are common ANODE, or else, the cube won't work!!)
  • a LOT of Solder!

for more advanced functions;
  • 3x 8k2 resistors for optional, low power mode.
  • 3x 3pin male headers for jumper selection of the power mode
  • 3x jumpers for selecting the power usage/brightness setting
  • 2 x 64KB EEPROMs for storing custom animations
  • 1x DIP switch for selecting different modes (random, serial, music responsive, random2, custom animations, etc.)
  • 2x MSGEQ7 chips for audio analyzing and music response.
  • Black paint

Tools;
  • An Arduino to use as a USB to Serial converter for programming
  • An USBTinyISP if your Atmega chip is not pre-Bootloaded
  • A Multimeter for troubleshooting and checking connections
  • Some way of cutting PCBs, I used a Circular Saw, but you can use whatever you have in hand.
  • Diagonal cutters
  • A Sharpie or any kind of marker
  • A Drill/Drillpress
  • A Cutter or Xacto knife
1-40 of 96Next »
mbrotckeyesterday

I made a full schematic of the "Basic cube" So you don't have to go back and forth. I

4x4x4-light-cube.png
mbrotcke2 days ago

Have my Cube built and Atmega programed. It turns on with the Main code and starts to run, But the LED's are Dim and each color flickers as it's fading in and out. as if it's to low on power. After a minute the top layer goes on solid and the rest turns off (like the chip locked up)

I am using a 5v 2A power suply, have tried two of them.

Any suggestions? I have looked for shorts, and test connections

Thank you...

sinaarian2 months ago

Can someone send me the file that is working on a cube. my cube is built but i cant find a code that works with out any errors? The one in this instructable is having a lot of errors and anything with the TLC5940 name is a error or "not decleared in this scope" . CAN SOMEONE PLEASE SEND ME A WORKING CODE. I NEED HELP

If you didnt solve it by yourself: The code is working, you just dont have the tlc5940.h in your Arduino library folder. Download it here: https://code.google.com/p/tlc5940arduino/

rover87728 days ago

Hi , I build your cube on a breadboard (the electronics, not the cube ...). If you connect the red leads to the first tlc, the green to the second and the blue to the third, with ,starting from left to right on the first row of led's, right to left on the second row, left to right on the third row and finally right to left on the last row, then you can map your leds from 0 to 47...hope this make sense...

mzak23 months ago

How are the mosfets suposed to be wired? I have the layer pin to the leftmost pin center pin goes to actual layer and third pin with 2k resistor to 5v

bill3780 mzak23 months ago

The leftmost pin comes from the ATMEGA328P chip, The center pin goes to the layer and the left pin you have described correctly.

bill3780 bill37803 months ago

correction

and the rightmost (3rd) pin you have described correctly.

mzak2 mzak23 months ago

I can't seem to be able to have different layers on at the same time.

Any advice?

bill3780 mzak23 months ago

Which program are you running? RGB_4x4x4_LED_Cube_main_1 is the program that will light up all layers. If you are running RGB_4x4x4_LED_Cube_map_1 then only 1 layer will light up. This is the program that you use to find out the sequence of the LED lights, so that you can reprogram RGB_4x4x4_LED_Cube_main_1.

AlejandraG3 months ago

Hello! I need some help, i've been looking for the zip file which contains the code but I can't find it anywhere, could anyone email me the code? i'll be very thankful.

jimmy6194 months ago
Hi there! :) Could someone please explain me the code.Also I'll be very thankful, if someone could email the whole code . It's very important because i'm building a 5x5x5 rgb led cube for my project in college. Please reply as soon as possible.
Thanks in advance ! :)

cammace jimmy6194 months ago

hey jimmy, I've spent sometime working on this cube and can tell you a bit about the code. First off, the code is actually posted in a zip file within the instructions but you will also need to download the TLC5940 header which can be found here: https://code.google.com/p/tlc5940arduino/ . you'll have to place the file within your libraries folder in arduino. Once you have this all you have to do is redefine some of the pins on both the arduino and the TLC's. It's a similiar process described within the instructions. Honestly, once you get a good grasp of what your doing you can rewrite some of the code and take out a lot of it to make things simpler. Another important thing to do within the TLC header is to change the number of TLC's in your circuit. this function can be found within a file called something like "config.tlc". I hope this helps you out a bit, feel free to contact me if I didn't answer something.

sinaarian cammace3 months ago

i went to the link but i don't know what to go to get the code. can you help me , i just got done with the cude.

Hi cammace, I am building the led cube but I can't find the zip file within the instructions, could you be able to email me the code? I would be very thankful.

Hello cammace, i've been looking for the zip file within the instructions but I can't find the code, could you be able to email me the zip? I would be very thankful :)

sinaarian3 months ago

Every time I try to upload the code I get all of these random undefined for things like TLC and PD4. Can someone help me to get the code figured out. Thanks in advance

You need to download the TLC5940 header file. That should resolve your TLC errors. See the comments below by cammace and where the file is. What kind of errors are you getting from PD4?

Anything with a TLC in front of it is counted as not declared

mzak23 months ago

So i have everything working now based off of the arduino alone. Way less parts! So i have the layers mapped out, i have all of the pins mapped out, but when i program the cube to only turn on certain lights from the top layer, i get "ghosting" and all the lights below the ones i wish to turn on turn on as well. so if i only want the top left light closest to me to be on, i get the entire column lit up. Anyone else have any insight?

image201404170001.jpg
bill37803 months ago

Hello to those out there that built this cube and only got some of the layers to light,

My build of the 4x4x4 cube only got 3 layers to light up. After checking all the connections, i then started to look at the code. I started playing around with the pin number that are set for the PinMode command. Here is the code that i was looking at. It is in the RGB_4x4x4_LED_Cube_main_1 at the beginning:

#define LayerOne 16

#define LayerTwo 4

#define LayerThree 2

#define LayerFour 15

So, i changed the number for LayerFour from 15 to 17, and presto magic, all 4 layers are lighting up.

mzak23 months ago
Hey there,
I'm trying to get this together but was wondering a couple of things. First how is it powered? Second, can this be made from the arduino directly sans the atmega? Third, how do you connect the 1000uf capacitors? From what vcc?
GranpaO443 months ago

In your instructions, you say to use Common Anode RGB LED's The long lead on them are the "+" lead. On page 6 of the instructions, you state that the long lead of the RGB is the "-" negative lead. That would make the LED Common Cathode.

Was that a wrong statement on page 6?

bill37804 months ago

Howdy, great job on the article to build the 4X4X4 LED cube. I just finished building the cube and started to test it out. Got the top three layers to light up and trying to figure out about the bottom layer (#4). The code in RGB_4x4x4_LED_Cube_Main_1 object has these lines of code that i'm not sure what it means:

#define LayerOne 16

#define LayerTwo 4

#define LayerThree 2

#define LayerFour 15

Just want to understand more about the code. Are the numbers referring to pins? on which chip?

Thanks

cammace bill37804 months ago

I'm having the exact same problem as you. What MOSFETs did you use?

bill3780 cammace3 months ago

I used IRF9540N MOSFETs.

mbrotcke5 months ago

Which MOSFET p-channel transisters do we need to use for this?

lgruen made it!5 months ago

Awesome tutorial! Had lots of fun building this.

Small error here: "3. Start bending the leads (the Rightmost lead goes to the bottom left at about 45 degrees) (pic 3)." should be "goes to the bottom right".

I've placed my MOSFETs very close to each other, similar as in your photo. However, after some debugging I found out that they'll actually short if their heat sinks touch (which in my case only happened when putting the PCB layers together ;) ). It would be nice to mention to be careful about this.

Some guidance about the power supply would be nice. I guess in practice a 5V / 2A wall wart is good? Batteries deplete amazingly quickly with this :).

led-cube.jpgIMG_6257.jpg
msadeghlou6 months ago

hi tanks for your guidance, I have a problem with your design, according to your circuit when we set the red pin in a column we set it in all of it and we can't have different color in a column.

sorry for my bad english

tomriddl37 months ago
how hard would it be to adapt this to use common cathode LED's?? any help would be appreciated :-P
Steve25 tomriddl37 months ago
Wow i bought cathode leds too :(
tomriddl3 Steve256 months ago
any luck?? got my cube all soldered and ready to wire the driver circuit xD..
Steve25 tomriddl36 months ago
Well i found this rgb led cube. It uses cathode leds but there is a lot of ghosting going on. Check this link for the guide: http://g33k.blogspot.nl/2013/03/charlieplexed-4x4x4-rgb-led-cube.html
tomriddl3 Steve256 months ago
thank you sir! .. but i had already solder my led's as per this guide :-( .. smh!!
... will have to keep digging :-P
quixeh6 months ago
Thanks for the guide - its a brilliant project and kept me entertained for a few days of lead-inhaling fun! Really like some of the techniques for chip placement and painting the boards black, looks good.

I should probably mention a couple of issues I found: You need to download the TLC library from google code in order for your sketches to compile (and place them in your arduino library folder), and you need to change the config file in the library to use three TLCs rather than just one (read the basic use example) before things will work correctly. Otherwise, mine looked like one or two of the TLCs were stuck on full brightness and didn't work in the mapping stage.

Once again, brilliant write up and brilliant project! :D
Steve257 months ago
Why didn't you use resistors to protect you're leds and TLC's?
Emiliano Valencia (author)  Steve257 months ago
They are not needed, the TLCs have embedded current regulators for each LED, you just use 1 resistor to set the current.
Thanks
BubbaFish77777 months ago
I built it, and I am having the worse time trying to figure out the code settings and the LED mapping. Any and all help would be most helpful.
It would be easier if Emiliano would add his mapping of the leds. Hopefully he will do this!
1-40 of 96Next »