Making an Arduino 3X3 LED Cube in Less Than 30 Minutes





Introduction: Making an Arduino 3X3 LED Cube in Less Than 30 Minutes

Well, today I am going to show you how to make an arduino 3X3 LED cube. I made one yesterday and I have tried to simplify the procedure for everyone to understand. So, less talking and more demonstration.

Step 1: Requirements

These are the items you need:

  • 27 LEDs
  • Soldering wire and rod
  • Jumper wires
  • Three 2N3904 npn transistors
  • 9 220Ω resistors
  • 3 22K resistors
  • arduino board
  • perforated circuit board

Step 2: Step 1: Make a Mold

Make a mold that will help you to hold the leds in place as you solder them. You can do this by boring 9 holes on a cardboard as shown in the photo.

Step 3: Step 2: Prepare the LEDs

Bend the negative terminal (cathode) of the LEDs and arrange them on the mold with the bent cathodes touching each other as shown in the photo. For those who do not know, the negative terminal is the shorter one. You can learn more about LEDs on this link:

Step 4: Step 3: Solder the LED Cube

Solder the cathodes together on the points where they touch each other so as to form one layer of the LED cube as shown in the photo. Repeat this three times so that you have 3 layers.

Join the layers together by soldering the anodes (positive terminals). To effectively solder the anodes, use a crocodile clip to hold the upper layer in place or use a piece of cardboard like i did.

Step 5: Step 4: Arrange the Components on the PCB and Solder Them

Start with the 9 220 ohm resistors and then 3 transistors and the LED cube as shown in the photos. Once you have arranged all the components on the board, solder them

Step 6: Step 5: Wiring

  1. Solder wires from each resistor. These wires will be connected to arduino digital pins 2-10.
  2. Connect the LED cube anodes to the resistors. One anode should go to one resistor. Check the photo
  3. Solder a wire on each layer
  4. Wire the transistor. The collectors of the transistors are connected to the three LED cube layers. The emitters are connected to the arduino ground pin. The bases are soldered to wires that have the 22k ohm resistors soldered on them.

Step 7: Step 6: Connect the Setup to the Arduino Board

Connect the setup to the arduino using the configuration i have specified above. The numbers represent which arduino pin the defined wire or LED cube column is connected to.

Step 8: Step 7: Code and Test

To get the test code visit this link:

The code is at the end of the tutorial. Copy and paste it on your arduino IDE and upload it to your board. The arduino 3X3 LED cube should light just as it does in the video once the code is uploaded.

For more tutorials and questions visit

2 People Made This Project!


  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Pro Tips Challenge

    Pro Tips Challenge
  • Paper Contest 2018

    Paper Contest 2018

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




Hello, can u please help me with the code ,and explain why pin 11,12,13, connected to outputs ? ,,

Nice work
I hope to do it !!!

Hi, would this be more efficient if we use Charlieplexing? thanks

Made the same, but used three 2N2222 npn transistors instead of the 2N3904's. It, off course, worked well!

annyone give me code plz..

reupload the code its down........

all of your links are broken plz update!!!!

the site of the code is down

yes, the 4X4 cube can be made without transistors...

In the 3x3 cube the transistors are used to switch on and off the LED cube layers, by setting the base pins high or low respectively. Therefore, they are just control structures. In fact, you can also use resistors only and avoid using transistors in the 3x3 cube too. In that case, you would connect the layers directly to the ground.

Can you guide me...
If i want to make it without transistor. ..
Do i just required to connect 1k ohm registor wd each layer amd make it ground?

Nd no extra transistors and 9 diff registors required for 9 anodes?

I am confused at without transistor part cz i really dnt want 2 use it :(