Introduction: 8x8x8 RGB LED-Cube

8x8x8 RGB-Cube with an Arduino micro controller.

Etch own circuit boards using as less wires as possible.

Steps are explained in following order:

Bill of material and all you will need for this project

Files & data sheets Understanding the schematics

How to etch multilayer circuit boards How to build the PCBs

How to build the case

How to build the cube

Final assembly & testing

Arduino code samples

Step 1: Bill of Material

Picture of Bill of Material

Jigs (all measures in mm)

  • One 400x300x10 wooden board
  • Six 300x40x10 wooden board
  • Some 10x10 wooden bars
  • Four 0.8mm drills
  • A piece of circuit board about 40x40


    PCB & Electronic


    Step 2: Files & Data Sheets

    Step 3: Schematics

    The Push-Pull line driver in the schematics is only necessary if you use large wires from the micro controller and the first shift register

    The 100 Ohm resistors that connect the MOSFET Drain to ground in the anodes must have at least 3W power, but these resistors are not really necessary, they only helps to keep all LEDs off when connecting to the DC.

    Step 4: How to Etch Multilayer Circuit Boards

    Step 5: How to Build the PCBs

    Step 6: How to Build the Case

    Step 7: How to Build the Cube

    Step 8: Final Assembly

    Step 9: DEMO

    Step 10: Arduino Code Samples

    The code includes 4 tabs

    The "8x8x8 RGB Cube" tab: here is the main code: the loop() function and variable definitions

    The "All functions overview" tab: overview of all functions I have done until now

    The "Basic" tab: basic functions you will always need to do new animations

    The "Functions" tab: include all functions for the animations

    All functions have the same structure or pattern:

    • clearAll(), layersOff() and reset() to clean all data
    • switch() function for colours from white=0 to magenta=6
    • digitalWrite(layer[i], HIGH) to set layers on from i=0 to i=7
    • one array for every primary color RED[], GREEN[] and BLUE[]
      • use values from 0 to 7 within the brackets to define which row (from forward=0 to backward=7) you want to turn on
      • use values between 0 to 255 for the arrays for binary representations: for example RED[1] = 1 will turn on the first red LED on the left side on the first forward row; BLUE[7] = 129 will turn on the first and last blue LED from left and right the last row; GREEN[2] = 255 will turn all green LEDs on the second row. Here is a useful page to convert binary to decimal
      • or use values from LED[0] to LED[7] for the arrays for decimal representations: for example RED[1] = LED[0] will turn on the first red LED on the left side on the first forward row; BLUE[7] = LED[0] and BLUE[7] = LED[7] will turn on the first and last blue LED from left and right the last row; for(int i=0; i<layerNr; i++){GREEN[2] = LED[i];} will turn all green LEDs on the second row.
    • some functions require multiplexing turning layers on and off very quickly for more about multiplexing you can take a look here:
    • between each multiplexing step you need clearAll(), layersOff(), reset() and shiftData() functions

    Thats all you need to know about the code

    With this explanation you may be able to create your own animations

    Step 11: Improvements

    Picture of Improvements

    I add a potentiometer to control brightness of the cube as well as an external reset button.

    I additionally used the map function in the code to scale the potentiometer value


    ÁngelL59 (author)2017-08-16

    Alguien sabe cuantas placas hay que tener ?

    en el video se observa varias de ellas

    electricbird (author)2015-12-06


    Great project you have here :D i like it alot and i'm planning on copying it hehe,

    but what are those DS_Store files in PCBs file?

    Michalsky (author)electricbird2015-12-06


    the file contains the print out for the multilayer circuit boards for top side and bottom side

    ÁngelL59 (author)Michalsky2017-08-16

    Cuantas veces tengo que imprimir las placas por que en el video vi varias de ellas

    electricbird (author)Michalsky2016-01-02

    Thank you,

    and do you have any layout shematichs? So i could see where to put the elements?

    SomratP1 (author)2017-03-29

    Dear, sir.
    My name is Somrat Pimonbut. I'm a student at King Mongkut's University of Technology Thonburi. At present, I'm working on my thesis project which is similar to your LED Cube project. I'm having some troble with my work. Apparently, my project doesn't seem to be working. I think there are some issues with the circuit but I am not really sure what the cause of problem is. So I would like to ask you some questions.
    In Schematics, why are you using different transistors in the circuit? Is it possible for me used the transistor no. 2n3904 in all of them?
    I hope you will be able to provide the information.
    Yours Sincerely,
    Somrat Pimonbut

    averythomas (author)2017-02-05

    Hello everyone, I just ordered 3 PCB's from - but I only need one. I have 2 available if you want one for $50, i'll ship it to you. Contact me

    TrangD5 (author)2016-07-16

    I accidentally etched out the pcb's backwards. Is there anyway I can still continue with the project?

    rexty37 (author)2016-03-07

    I'm sorry to waste your time.

    I do not try to test the cube.

    But I bought the 600 LEDs that I want to test one by one as

    in your video at the beginning of step 7, you use an Arduino uno, a breadbooard

    and you test each LED. Idon't find cabling Arduino test circuit schematic

    ains the Arduino code to test each LED RGB.

    Thank you for your help.

    Hayabu made it! (author)rexty372016-03-19

    If it helps, this is the code that I use for tasting the leds.

    I connect the arduino via usb (for power) and use the reset button on the board. also from each pin I use the resistors (betwen board pins and led pins) already bought for the project (120, 180 and 220 ohm).

    Michalsky (author)rexty372016-03-07

    ok now I understand

    I dont have this code anymore because I wrote it temporary only for the test and didnt save it

    but you can find lot of instructables for RGB leds if you are not sure how to do this

    I found one interesting here with wiring and code:

    If you have any other question let me know

    Hayabu (author)2016-03-19


    first of all, let me thank you for all your work and for sharing this with us, it is a very detailed project. after I watch it I've decided to make my own rgb cube based on your specs.

    after 2 months of preparation and work I've finally made it! it was my very own arduino project, therefor i have some minor problem understand the code and also to build it. but, again, your code files were excellent.

    at this moment, I have some minor problem on make it work. on the first power on i had layers 2,3,4,5,6 and 7 in white color. after a short inspection when i discover that i put, on Push Pull Line Driver exit Latch on Data and viceversa. I correct this error and now I have 3 led on green and one column on blue no matter what i do. do you have any idea why?

    maybe it is possible to send me an email address to discuss in detail in order no to pollute this topic.

    thank you in advance for your reply.


    rexty37 (author)2016-03-07


    I'm going to bother you, but I do not see

    in step 10 in the ino files, the TEST code.ino of RGB LEDs.

    I have not seen as the test of wiring schematic on the breadboardat Step 7

    a little help please for a beginner

    have a good day.

    Michalsky (author)rexty372016-03-07


    there is a code "_8x8x8_RGB_CUBE.ino" on step 10

    put one of the functions in the loop() to test the cube

    For example:

    void loop(){

    edges(0, 1000); // it will turn on the edges in white (color 0) for 1000ms


    All steps are explained in the videos

    rexty37 (author)2016-02-25


    thank you for this wonderful achievement shared;

    I can not find the files in the code. ino to test

    LEDs with Arduino uno.

    Can you communicate?

    Michalsky (author)rexty372016-02-25

    Hi, on step 10 there is a zip file with some ino files inside

    open the _8x8x8_RGB_CUBE.ino from your arduino software

    pfoed (author)2016-01-29


    WhittlinThom (author)2015-12-24

    Is there a way to build this project with common Cathode LEDs? I already bought them before I realized everyone is using common anode. Thank you.

    Michalsky (author)WhittlinThom2015-12-25

    not to easy with the 74HC595 you will need other Transistors and MOSFET,

    maybe you try with the TLC5940

    Yonatan24 (author)2015-11-20

    Hi, I've added your project to the "A Collection of WAAAY To Many 8X8X8 RGB LED Cubes!" Collection

    This is the link If you are interested:

    eostrovski (author)2015-06-08

    Are you sure about 1pF, 10pF and 100opF electrolyte capacitors? There are no such values existed for electrolyte capacitors.

    Yonatan24 (author)eostrovski2015-11-20

    They are probably film capacitors (maybe ceramic for 1pf)

    Samantha Led (author)2015-07-10

    So cool !

    Look our rechargeable led lights : !

    srieseb (author)2015-05-13

    How much do/did all the parts cost?

    adalberto.argenta (author)2015-05-01

    You have for sale?

    sesexton (author)2015-04-23

    Very cool! Would you happen to have the jig designs available?

    Michalsky (author)sesexton2015-04-24

    Hi sorry I dont have any sketches of the jigs the distance between LEDs is 35,5mm

    sesexton (author)Michalsky2015-04-24

    OK. Thanks for the measurement, and thank you very much for such a great creation!

    tushar.ata (author)2015-04-21

    awesome....the result is gr8..but work is out of world....speechless after seeing the videos of your work

    manuel.martinmartin.739 (author)2015-04-19

    Magnífico trabajo. Felicidades.

    RobBest (author)2015-04-17

    This is a great design, the best I have seen so far.

    jayeshshinai (author)2015-04-15

    Any ides where and how I could Buy/make the PCB?

    Michalsky (author)jayeshshinai2015-04-16

    you can do it

    look at step 5 in this tutorial

    for the printouts look at step 2 zip-file

    and step 4 shows how to etch the PCBs

    jayeshshinai (author)Michalsky2015-04-17

    Hi, I should have mentioned this earlier, i wanted to know about any PCB manufacturer possibly from China.. Btw Nice work.

    deba168 (author)2015-04-14

    Its amazing :)

    I always fall in love when see a led cube.

    I will definitely try it in future. Thanks for sharing.

    treyes4 (author)2015-04-14

    I just got my Rainbowduino from cant wait to see your program because no doubt its almost the same as this little fella

    kcraske (author)2015-04-14

    I would love to build such a cube and this is the first such project which I think fulfills everything except one item which gives me confidence to tackle it. The one thing I would like it's a week documented explanation of sample code.

    Michalsky (author)kcraske2015-04-14


    Im working on some basic functions as an example so that everyone can create own animations based on my example, I will upload the code with explanation soon.

    EvolvedAwesome (author)2015-04-13

    Looks beautiful! Great job with the fx show at the begining

    Onyx Ibex (author)2015-04-13

    I love the patterns! well done.

    gada888 (author)2015-04-13

    It's the KING of its kind.

    samalert (author)2015-04-13

    This is surely awesome stuff. Even if one is not good at soldering one will become an expert after this LED CUBE

    Regax (author)2015-04-13

    Wow, great job on keeping all the wiring nice and neat. Awesome build!

    seamster (author)2015-04-13

    This is really awesome stuff. I hope you share the codes soon!

    About This Instructable




    Bio: .
    More by Michalsky:Arduino and Python Serial Communication - Keypad DisplayControl Servos with Arduino and RC Receiver/TransmiterSpace Shuttle Discovery + Booster Rockets
    Add instructable to: