4x4x4 LED Cube

4x4x4 LED-15
4x4x4 LED-16

Why this Project?

First off, I would like to say that I was really busy last semester with school and two jobs to document this project. It’s been about 5 months since I completed this project so I’ll try to cover as much as I can remember. I chose to do this project because I just entered my second year of college and learning about the wonderful world of computer engineering has been inspiring. I really wanted to get out there and learn about the Arduino uno and how this micro-controller (Atmega328) works. I searched up some neat projects and found this easy and straight forward project. I spoke to my friend, Michael Chin, and it turned out that he had already built one! He gave me some awesome advice and even lent me his wooden board to make soldering easy. Thus, I began my project!

How Does it Work?

Before I begin my explanation, I definitely recommend looking over Bruce’s article because I think it was really straight forward and easy to understand. So how does this 4x4x4 LED Cube work? Its really simple, first thing is that you must be aware there are 20 pins that you have to control. This is an easy task for a powerful microcontroller like the Atmega328 which is on the Arduino Uno development board. 16 of these pins are the positive leads to all the LEDs in the cube. The other 4 are the negative leads to all the LEDS in the cube. This is achieved when you construct the LED Cube. You can definitely read ahead for an explanation on how I did it but to be brief, you solder every vertical coloumn of LED’s positive terminal together. This means every 4 adjacent vertical LED in a column shares the same positive leads. 64 / 4 = 16 pins! Every LED in every layer share the same ground. Each layer has 16 LEDS which means 64/ 16 = 4 ground pins! That is how you get 20 pins that you need to control. Controlling an individual LED is easy: you just have to supply power to the postive pin that the LED resides in and ground the layer that the same LED is in. This means to turn on ONE LED and turn off ALL other LEDS, I just have to ground the layer that this LED is in and supply 5V to the other 3 layers. I also have to power the positive lead that the LED resides in and set the other 15 postive pins to ground. Thats it! This project is really easy to create and really fun to program and produce all sorts of images with.


I began by doing a lot of research and the best sources I found was my friend Mike’s blog and James Bruce’s article. They were both very detailed and provided a lot of insight on the process of putting the LED cube together. Bruce covered a lot about the general idea of how the cube works while Mike’s blog provided a lot of tips and advice on how to assemble the cube.

Soldering 4 LEDs together

4x4x4 LED-144x4x4 LED-01

The first thing I did in this project was to solder rows of 4 LEDS together. I began by using the wooden board that my friend Mike lent me. I definitely recommend making one of these boards out of any scrap wood because it will make your life a lot easier when you are trying to solder LEDs together with perfect spacing between each pair. I identified the negative lead of each LED (the shorter leg) and then bent it 90 degrees using pliers. I laid each LED in a row on my wooden board. I then carefully soldered the negative leads of each LED together to form a row of LED. I made sure I didn’t hold the iron too long onto the negative lead because it can possibly fry the LED. Above is a picture of how it should look. Tip: a tip is to make sure that all LEDs are working and that none of them are broken. You can easily test each LED by using a multimeter in diode mode.

Soldering each Layer of the Cube

4x4x4 LED-024x4x4 LED-044x4x4 LED-054x4x4 LED-02

After finishing 4 rows of LEDs, I laid each of them together on the wooden board. I made sure that the negative leads were all facing the same direction like in Photo 1. The next thing I did was to connect all the rows together to form a layer. I did this by first stripping a wire that is the same length as the cube’s width. I then laid the wire perpendicular to the rows of LEDS and solder the wire to a point on the negative leads on each row of LEDS. To get a better idea, look at Photo 2 and 3. I soldered 2 wires to create a layer because I wanted better stability for my cube. The purpose of soldering these wires is to basically connect all the grounds or negative leads for each LED together. This means that all the LEDs in a layer share the same ground. By connecting ground to a common source, I can power any LED in a layer by simply providing it power. This will be more clear when I explain how this LED cube works. Be sure to test all LEDs are working properly by using a multimeter and setting it to diode mode. Connect the negative terminal of the multimeter (white aligator clip) to the negative leads of the layer like in Photo 2. Then use the positive terminal of the multimter to supply power to each LED in the layer to test that the layer is working properly. Repeat this process until you have 4 layers like in photo 3. Tip: ALWAYS test after each layer to ensure the layer is working properly so you dont have to go back and redo the layer.

Stacking each Layer of the Cube

4x4x4 LED-104x4x4 LED-084x4x4 LED-09

Before I began stacking the layers, I made sure that each LED in every layer is still working properly. This is important because if I had accidently fried an LED when trying to make the layers, I can fix it immediately instead of having to fix it when the layers are already stacked and soldered together. A great tip is to bend each positive lead in every LED in the bottom layer by 90 degrees like in Photo 1. This will make soldering the layers together a lot easier. I used aligator clips to provide some support to keep the top layer in place when I’m trying to solder the top layer to the bottom layer. An example of how I did this is in Photo 2. Soldering the top layer to the bottom layer means to solder every positive lead for every LED in the bottom layer to the adjacent top LED. Make sure each solder point is a good connection and won’t break off if you move the LED cube alittle. If you look at Mike’s documentation, he gives a good idea of how to straighten your LED Cube structure by using cardboard. Unfortunately I did not do this so my LED Cube came out alitte slanted. Photo 3 is an example of how two layers connected perfectly should look like. I continue to do this until I had all 4 layers connected. Tip: Be sure to check that all LEDs are working after you finish connecting two layers together. You can never test too much because if you find a problem earlier, it will be a lot easier to fix. Trust me!

Final Touches (Grounding)

4x4x4 LED-134x4x4 LED-134x4x4 LED-16

If you’re looking at this documentation as a guide and you have reach this point, congratulations! The most time consuming and physical demanding part is over! By the time I reached this part, my LED Cube looked like Photo 1. I began to ground all the layers to a single wire. If you look at Photo 2, evey layer has 4 wires sticking out of it on the right side. These 4 wires on every layer are connected. However, the 4 wires on the top layer are isolated from the other 3 layers. Each layer’s 4 wires are connected to one another though! I stripped 4 wires with 4 different lengths. Each wire’s lengths were the same distance from one layer to the bottom of the cube. The bottom being where all 16 positive leads are facing. I do not have a good photo but if you look at photo 3, you can see how I did it. I only connected one of the 4 wires to one wire in each layer and then use a wire snipper to cut the other 3. After I finished grounding all the wires, I soldered all 16 positive leads and the addition 4 ground leads to a single PCB. Photo 3 is a good example of how it looked like. I then used ribbon cables to bridge all 20 leads to a set of wires that I can use to connect to the Arduino uno. Definitely check out my friend’s blog to see how I did this. One last thing is that I had to solder 16 resistors to each vertical/positive pin. This is to reduce the amount of current going into every LED so when I program the LEDS, I will not fry my LEDs. This is also explained in Bruce’s article. To know which resistor to buy for my LED, I used the LED Resistor Calculator that is provided in the sources. With this, building my project is complete!