6x6x6 Arduino LED Cube




In this instructable I would like to show You, how my mini project was made.
I got a homework at the University where i learn, from Programming and Digital Technics to make a project with Arduino.
I choosed a 6x6x6 LED cube, controlled by Arduino UNO & shift registers.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material and Tools

  • 256x 5 [mm] blue LED (optional);
  • 6x 180 [Ω] resistor;
  • 7x SN74HC595N shift register;
  • 1x Arduino UNO;
  • 1x potentiometer (optional);
  • wires;
  • soldering wire and iron;
  • solderable perf- board;

  • male header connector (optional);

  • a piece of wood;
  • a drill machine;

Step 2: How It Works

This is a 6x6x6 LED cube, so it consists of 6 levels, 6 rows, every row has 6 columns.
In a level, all the cathodes are soldered with their neighbours, like a net.
In a column, all the anodes are soldered with the upper and lower neighbours. So if I switch VCC to a column, and GND to a level, the LED, witch is in the intersection of the level and the column will light.

The levels and every row are controlled by 1-1 shift register.
I use 7 shift registers, one for the levels to control its ground, and the other 6 for the rows, each one for one row.

A shift register controls a whole row, a shift register has 8 output port, but a row only has 6 column, so it is more than enough.

Step 3: Preparations

  1. I found a piece of wood at home and I drilled 36 holes in it. The diameter of the holes are 5 [mm], like the LED's diameter.
    The distance between the center of 2 holes is 25[mm]. This stand is important for quality soldering, it makes it easier and more precise.
  2. Test all the LEDs with a simple circuit. All of them must be fit. I switched +5[V] to the LED's anode, and the GND to the LED's cathode through a 180 [Ω] resistor
  3. Then I curved the legs of the LEDs with a plier, bended the anodes to a right angle and placed them into the holes upside down, so the anodes are faced the outside part of the cube.
    As shown in the picture, they are separated to 2 parts. The cathodes are bended like in the other picture with the arrows, but the direction is optional, this is just my opinion.

Step 4: Solder the Cube

It's time to start soldering.
I solderd the cathodes to each other and then i used some copper wire to connect the two sides and to make the structure stronger. If you are ready, carefully try to get out the level from the wood.
If you have all the 6 leves, then you have to solder the anodes of the second level to the anodes of the first level, and so on until you have all the levels soldered.

After this, solder the anodes of the first level to a solderable perf board.

To connect the levels to the resistors i used some copper wire.

Step 5: Solder the Circuit

As i mentioned, i used 7 shift registers, Arduino Uno, and a potentiometer to modify the delay time.
I soldered some male pins to the board for the Arduino, so I didn't have to use any jumper wire.

I attached a drawing of the circuit, i think it contains more information than a picture of it, it looks like a jungle.

Step 6: The Code

I made a program for it, in the code i left some comments to help understand it.
To control the shift registers you can use binary or hexadecimal numbers, i prefered the hexa one because it is shorter.

I created an array for the shift registers,
SR[6] contorls the levels, and the others (SR[1-5]) control the rows.
For example SR[6] = 0x7F that means only the first level gets gnd, the others don't
SR[5] = 0xC0 means on the 5. row only the first 2 led will light on the 1. level.

Lights Contest 2017

Participated in the
Lights Contest 2017

Microcontroller Contest 2017

Participated in the
Microcontroller Contest 2017



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    18 Discussions


    4 months ago

    Code posted is wrong code is for arduino only and not for 6x6x6.
    In a 6x6x6 you have 36 coloms not 6.
    This one is for a 3x3x3.
    If you need a setup code for a 6x6x6 send me a email.

    1 reply

    1 year ago

    hi can u send me the coding, i am doing my project base on these.

    you can sent to my mail



    Question 1 year ago

    Please can u give me the code of this
    Because i am doing this in my project


    1 year ago on Step 5


    I was trying to make your 6x6x6 cube. Got the cube done, now trying to get the wiring done. I see that the outputs on the shift registers are not connected to anythong. I was thinking these go to the colmuns. but you are using to many shift registers. You said you inculed a copy of the curcuit, I can't seem to find it. If I could see that, then I could finish up the project. You can email me at n6zop@cox. Your cube is wonderful.




    Question 1 year ago

    Hello can u help me on the circuit and the coding
    I found hard for me to follow the pic
    This is my email can u sent there


    1 year ago

    Hello can u give me the full picture fo the circuit
    But i cant read the circuit so well
    Can u sent to my email
    N the coding also
    I try but there is a problem on the void loop


    Question 1 year ago on Step 5

    row 5 -> row 6 without overflow?


    1 year ago

    hello! I made this cube by following through the instructions and then creating a PCB to connect it to the arduino. When you built it, did you have any issues with the Arduino overheating? Just wondering if it could be something in the power draw from the number of LEDs, or if it's unique to my board. Thanks!


    1 year ago

    hi , can i use a 100 ohm resistor instead of 180 ohm?


    1 year ago

    Hello, I was wondering if you can send me the Arduino code, I can not open the one above the comments, I really need it :c

    my e-mail is: jafet.osorio49@outlook.com