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
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
Cube
- 512 RGB LEDs common anode http://www.ebay.de/itm/LED-5mm-RGB-4-Pin-Dioden-Le...
- About 80m of 0.8mm silver wire http://www.reichelt.de/SILBER-0-8MM/3/index.html?..
- About 3m of 1,2 or 1,5mm silver wire http://www.ebay.de/itm/131404528567?_trksid=p20592...
PCB & Electronic
- Arduino Microcontroller
- One DC-DC Step down Voltage Regulator I-Out at least 5A http://www.ebay.de/itm/201245841161?_trksid=p20592...
- Some double sided positive Pre-Sensitized boards 300x210mm and 200x150mm https://www.reichelt.de/zweiseitig-beschichtet/BEL...
- 192x cooper tubes 2x15mm with 1mm hole http://www.ebay.de/itm/311282979776?_trksid=p20592...
- 8x cooper tubes 10x3 with 2mm hole http://www.ebay.de/itm/281363349796?_trksid=p20592...
- Some cable brackets http://www.ebay.de/itm/360102302707?_trksid=p20592...
- Terminal blocks http://www.ebay.de/itm/261470485226?_trksid=p20592...
- 192x 2N3904 NPN Transistors or similar http://www.ebay.de/itm/360754773890?_trksid=p20592...
- 8 IRF9Z34N International Rectifier MOSFET or similar http://www.ebay.de/itm/361052530047?_trksid=p20592...
- Developer for positive presensitized boardsfree from NaOH http://www.voelkner.de/products/39902/Entwickler-N...
- Etchand iron (III) chloride http://www.conrad.de/ce/de/product/530736/Bungard-...
- 24x 74HC595 shift registers http://www.reichelt.de/74HC-595/3/index.html?&ACTI...
- 24x IC 16pol-socket https://www.reichelt.de/IC-Sockel/GS-16/3/index.ht...
- 220x 1kOhm resistors
- 64x 120Ohm resistors
- 64x 180Ohm resistors
- 64x 220Ohm resistors
- 24x 100nF capacitors
- 1pF electrolyte capacitor
- 10pF electrolyte capacitor
- 1000pF electrolyte capacitor
- 1x DC Jack
- One 10kOhm resistor
- 3x BC547 Transistor
- 3x BC557 Transistor
- Some spacers https://www.reichelt.de/Distanzhuelsen-etc-/AH-11-...https://www.reichelt.de/Distanzhuelsen-etc-/AHS-4-...
- Some male and female multi-pin connectors https://www.reichelt.de/Stiftleisten/MPE-087-1-024...
Case
- Wood glue and varnish
- One Plexiglas/Acrylic glass satin finished http://www.ebay.de/itm/121378411029?_trksid=p2059...
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.
Attachments
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 http://www.binaryhexconverter.com/binary-to-decima...
- 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.
Thats all you need to know about the code
With this explanation you may be able to create your own animations
Attachments
Step 11: 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
47 Comments
1 year ago
i have created exact replicas of PCBs so if anyone want gerber files you can contact me
Question 2 years ago
Hi
I am making this project, just please tell me where this socket that I specified in the photo will be connected?
Answer 2 years ago
Hello, I cant remember due to the project I made many years ago and from a screenshot is very dificult to say
The videos are not helpfull for wiring
Just follow the wiring in the pdf attached to the project and it will work
Sorry that I cant help you with the screenshot
Reply 2 years ago
Look at the Part 5 / 5 YouTube Video at 1:16 it looks like the start of the connections. One end there will be no connection like in the top right of the screen shot.
Question 2 years ago
What happened to part 1 on YouTube, it is no longer there? and is it important.
Thanks
4 years ago
Hey. I want to repeat your RGB CUBE. I'm interested in a detailed drawing with dimensions on video 4/5. from wood.
6 years ago
Alguien sabe cuantas placas hay que tener ?
en el video se observa varias de ellas
7 years ago
Hi!
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?
Reply 7 years ago
Hi,
the PCBs.zip file contains the print out for the multilayer circuit boards for top side and bottom side
Reply 6 years ago
Cuantas veces tengo que imprimir las placas por que en el video vi varias de ellas
Reply 7 years ago
Thank you,
and do you have any layout shematichs? So i could see where to put the elements?
6 years ago
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
6 years ago
Hello everyone, I just ordered 3 PCB's from oshpark.com - but I only need one. I have 2 available if you want one for $50, i'll ship it to you. Contact me averyt@averythomas.com
7 years ago
I accidentally etched out the pcb's backwards. Is there anyway I can still continue with the project?
7 years ago
hello,
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.
regards,
7 years ago
Hello
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.
Reply 7 years ago
Hi
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
7 years ago
Hello
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?
Reply 7 years ago
Hi, on step 10 there is a zip file with some ino files inside
open the _8x8x8_RGB_CUBE.ino from your arduino software
7 years ago
Hello!