4x4x4 LED Cube Arduino





Introduction: 4x4x4 LED Cube Arduino

After seeing all the different instructables for Led cubes i was still left with a lot of unanswered questions. So after reading everything i could find this is what i got. I decided to make the instructable after building it...so ill try to recreate the process the best i can.

This cube is different from others for many reasons:
1. It connects directly to your Arduino.
2. It uses few components, so its relatively inexpensive.
3. Runs on code that's easy to write. or you can use the ones provided.
4. Everything can be bought at your local Radio Shack

Parts Needed:

  • 64 diffused LED Lights (it cost a lot less to order 1000 off ebay for around $20) (Also i used 3mm LEDs, but 5mm or 8mm would work to)
  • 16 220 resistors
  • 4 22k resistors
  • 4 NPN type Transistors
  • 1-2 Perfboard (The kind with the little copper circles) (you only need one if you are good at compacting your soldering unlike me....)
  • 1 Arduino (I went ahead and bought a MEGA so there's room to expand fro future projects, however UNO has just enough i/o ports)
  • Insulated 22 gauge Wire
  • some craft wire

In all the cost of this cube is relatively low at around $100 (according to where you get your parts)
the Arduino was the most expensive part at around $60 For MEGA and i think a UNO is around $30.
So if you already have a Arduino the cost is brought down to $40.

Knowledge Needed:

  • Basic electronics and soldering
  • Be capable of following directions

Read the ENTIRE instructable before building design options mentioned in last steps.

Original video:

New code 6-10-13:

8x8x8 Led Cube - See Step 8: UPDATE #3

Step 1: Prepare the LED's

The first thing you must do is make the cube. 

If you look at the pictures of mine the LED's are not all just soldered to each other.  This is because I actually made all the wiring and circuitry when i was waiting for my LED's to get here from China....(Note that it takes about two weeks for the lights to get to you).
Therefore when Finally got the LED's they were a lot smaller than i anticipated, and i did not want to redo my circuit board, so i just made frames out of craft wire to hook all the cathodes to.  After i started to do that i then realized that it would the be shorter than it is tall making it a rectangle rather than a cube.  So that's when i added the vertical columns of wire to solder the anodes too.
The cube is split into 4 layers of 16 LEDS.

All the LEDs aligned in a vertical column share a common anode (+).
All the LEDs on a horizontal layer share a common cathode (-).

Now if i want to light up the LED in the upper left corner in the back (0,0,3), I just supply GND (-) to the upper layer, and VCC (+) to the column in the left corner.

To begin the Construction of the cube use a drill with the proper size drill bit to make holes in a piece of wood.  draw a grid to the size of the cube you want. (this is determined by how long the leads are on your LED's. 

Your going to want to test you LED's before you solder them into place because it would be sad if you put your cube together and had one in the middle that didn't work.  I'm sure they would be pretty hard to replace. So just use a 3v battery between the two legs of the LED. (long leg is positive, short is negative)

Step 2: Solder the LEDs

To solder all the LEDs together i used alligator clips to help hold everything together. 
As i said before, i decided to to this after i built it, so i don't really have any pictures of the building process.
However the pictures below are excally what it should look like.  These are from Chr's instructable for his 4x4x4 cube.  Also there is additional information on his that may not be included on mine.  So go read his too.

First make all four layers, then solder the layers together.

Step 3: Build the Circuit

The circuit is pretty simple. Each of the 16 columns will connect to a pin on the Arduino through a current limiting resistor. Each of the four levels connects to ground via a NPN transistor when activated by an Arduino pin.

I drew these drawings if you can understand my way of labeling. 

First Make the Transistor arrays:

NOTE: The transistors are only necessary for some of the codes out there. If you plan on writing your own like i did you can skip this and plug the four ground layers directly into the arduino!

Its made with 4 NPN type transistors. and  22k ohm resistors.  In a nut shell connect all the collectors together, theses all go to a ground pin on the Arduino.  Then all four bases should go their own pin on the Arduino. Lastly the Emitters should go to the layers on the Cube. (Look at picture 2 and it will make since.

The first picture is of both boards to understand how they connect to each other and the Arduino.
The second picture is my drawing of the transistor array controlling the 4 ground layers.
The third picture is the actual Transistor ground board. (The Bottom)
The Forth picture is the actual Transistor ground board. (The Top)

Second Make the main cube board: 
All that really happens on this board is that all 16 columns are connected to the Arduino through a 220 ohm resistor. 
Also all four layers come into this board and then leave to the transistor Board.

The fifth picture is of the entire Cube board. As you see all columns are connected to a 220 ohm resistor the another wire comes out the top of the board and goes to the Arduino.  Also you will notice that the wires are kinda on the resistor backwards to common since. this is because the first time i did this i completely forgot the resistors....so i did some improvising and it is kinda backwards to normal thinking. Therefore you be smart and do it right the first time.  so if you do it right it does not have to look like mine however you can if you want. 

The sixth picture is a close up of all the connections.  The four big solder trails are the 4 ground layers that leave the board to the transistor board.

The seventh Picture is of the top of the board showing where the wires leave and go to.

The eight picture shows where the Layers enter the board.  Just connect a piece of stripped wire to the layer and then bring it down to the board. make sure these wires don't touch any other wires .... this would cause a short.  however take all the insulation off so that you cant really see them in the cube. 

The ninth picture shows the connection between the two boards.  As i said before, i am not that good at soldering yet.  if your good you could cram all this on one board rather than two.

The last picture shows the column numbers so column 1 is connected to resistor 1, and then resistor 1 is connected to pin 13 on Arduino...you can figure out the rest :)

Step 4: Connecting the Cube to Arduino

The cube is connected as follows:

column # 1    2    3   4   5 6 7 8 9 10 11 12 13 14 15 16   L1 L2 L3 L4
Pin#          13 12 11 10 9 8 7 6 5 4   3    2    1    0  14 15  16 17 18 19

Pictures explain better than words.....

Step 5: Programming

First i wrote a few simple codes just using simple digitalWrite commands to turn lights on and off...then i found a few different codes on the internet.  

4x4 LED sequence 1 and 2 are very simple 
LED Show 1 is a full show that found on the internet
LED Show 2 is another one that is different but it does really the same thing over and over
Ledcube 3x3x3 show is one i found. as the title says its only 3x3x3 however it still works on the cube, it just doesn't use all the lights....

All the codes are located in the zip file.
Im currently writing my own code for it and i will put it on here when i finish....

Comment if you have any questions or would like to share ideas or creations!
Thanks for Reading!!

Step 6: UPDATE

Between using my Arduino for multiple thing I got pretty tired of hooking up 21 wires to the bouts every time someone wanted to see it... So I got some ribbon cable and some pin header. Now it can be plugged in in one easy push. More updates to come...

I ended up cutting this back off, the wires kept shorting out on each-other.

Step 7: UPDATE #2

Its about time right.

So to use the code it requires slight modification to the cube, and i made a whole new instructable to explain this!

It fully explains how to write your own program!
Also once you modify the cube LED Show 1 will look a lot better.

Go right HERE and start writing your own codes!

By the way, I am currently making a 8x8x8 Cube following chrs instructable and I hope to publish my own that explains everything a bit better than he did.
You will see soon!

Step 8: UPDATE #3 - 8x8x8 Cube

About a summer after I created the 4x4x4 cube I stepped up the game to 8x8x8. What makes mine different from others is I have integrated an older iPod nano into it which is then controlled by the arduino for play/pause etc. This allows any music to simultaneously be ran against animation in the LED Cube. The Animation you see on the cube is written and precisely timed to the song, the arduino in no way interprets the music into what you see. If anyone is interested ill provide some more details, but for now here is a video!!



    • Paper Contest 2018

      Paper Contest 2018
    • Pocket-Sized Contest

      Pocket-Sized Contest
    • Science of Cooking

      Science of Cooking

    We have a be nice policy.
    Please be positive and constructive.




    Hey Tyler, Can you help me out? I built the cube and tried to run the codeyou have for it, butI keep getting these errors<> How do I fix this? I cannot waitto see it run. Have lots of ideas for patterns, but need the code to work.

    LED_1cube_4x4x4_Show_2:15: error: 'prog_uchar' does not name a type

    LED_1cube_4x4x4_Show_2.ino: In function 'void loop()':

    LED_1cube_4x4x4_Show_2:447: error: 'PatternTable' was not declared in this scope

    'prog_uchar' does not name a type

    Thanks a million!

    in line10 put
    "char PROGMEM const PatternTable[] = {" instead of "prog_uchar PROGMEM PatternTable[] = {"

    Arduino: 1.8.1 (Windows 8.1), Board: "Arduino/Genuino Uno"


    error: expected unqualified-id before string constant

    what should I do?

    Hey Tyler, Can you help me out? I built the cube and tried to run the codeyou have for it, butI keep getting these errors<> How do I fix this? I cannot waitto see it run. Have lots of ideas for patterns, but need the code to work.

    LED_1cube_4x4x4_Show_2:15: error: 'prog_uchar' does not name a type

    LED_1cube_4x4x4_Show_2:447: error: 'PatternTable' was not declared in this scope

    'prog_uchar' does not name a type

    Im not sure if its my wiring, but one side of the cube is not lighting up. Any suggestions on what to do?

    hello my bucket arm led but have problems with most programming makes Arduino Uno R3 but I only own Arduino Leonardo bale I'm starting in this algujin can help

    Ungrounded/Not activated layers in an LED cube light dimly

    I built a prototype of a 4x4x4 LED cube circuit on a breadboard before committing it to a protoboard following the anode column/cathode layer approach with a set of current limiting resistors between the columns and an arduino controller and close the plane circuits with a set of 4 transistors in the software with an intent to only have a single plane on at a time. Many folks have built these. This is most closely modelled after this project and this one. As I’ve been testing my cube, I found that the fewer the leds that I have lit, the more pronounced an unpleasant effect is where other leds in an activated column (but unactivated plane) light dimly. I’m really unsure why these leds would light up. The effect seems more pronounced with fewer leds being lit at a single time and totally disappears when all 16 leds in a plane are lit. Surprisingly, if I remove all grounding that closes a circuit, the activated column still lights with a diffuse lighting across the leds in the column. I’ve linked a video that shows the effect in the hopes that someone can help me understand what’s wrong. The circuit is basically this minus the shift registers.


    Hello, I'm not really understand about transistors. Where and whom to solder ?

    p.s. may be write stxp201261@gmail.com

    Hi, I build the cube according to your design. Only thing i did different is that i used a Darlington transitor array uln2803A instead of the transistors you use.
    When i run the testprograms all leds induvidually light up. But when I run the full show when one led should be lit up, the whole column lights up.

    Help please

    Hi, long time ago. But I have the same problem. Do you know something new?