Introduction: 500 LED-Pixel RGB-Brick
A while ago I build a 10x10 LED-Coffetable with some of these WS2812 LEDs, but even if it is possible to play the old-school game Snake with a smartphone connected to it, I want something more special. So I decided to put a few more leds to it, arranged as a cube in order to get more possibilities creating animations as well as games and here we are: the RGB-Brick.
I would like to thank the whole team of LED-STUDIEN who funded that project, but specially Dennis Jackstien as my contact person. Without their assistance I wouldn't be able to build this charming LED-Cube.
Step 1: Get Inspired!
Here are a few pictures and a small video with some of the capabilities of the Brick, including plenty of animations, a (work in progress) fire for heated atmosphere, a music visualizer and the games Snake as well as Tetris.
Step 2: What You Need
Here is a list of all the materials you need, some of them are not necessary and others can be exchanged by your favorites:
- 500 WS2812 LEDs 30px/m
- 5V 30A power supply
- Teensy 3.2
- ESP8266 wifi-modul
- some pieces of wood:
- 1x: 27,2cm x 27,2cm x 1,0cm, for the lid
- 2x: 29,6cm x 27,2cm x 1,0cm, for the large side panels
- 2x: 25,2cm x 29,6cm x 1,0cm, for the small side panels
- 1x: 34,0cm x 34,0cm x 1,9cm, for the bottom
- 8x: 34,0cm x 4,6cm x 0,3cm, for the edges of the LED grid
- 100x: 34,0cm x 3,3cm x 0,3cm, for the LED grid
- 1x: 34,0cm x 34,0cm x 0,3cm
- 2x: 34,0cm x 36,3cm x 0,3cm
- 2x: 34,6cm x 36,3cm x 0,3cm
- 1x: 10,0cm x 7,5cm x 0,3cm (optional, for the terminal)
If you want a terminal at the bottom of the cube (it's optional expect for the power jack):
- 230V power jack
- 230V switch
- audio jack
- USB extension cable
Step 3: Building the Box
First of all we are going to build the wood box and the LED grid. The dimensions of the cube are specified by the distance of the pixel on the LED strip. In this case the pixel have a distance of 3,4cm, so the cube has to be 34 x 34 x 34cm. You will save a lot of time using this dimensions, because you need not to cut the strip after every pixel and put it back together by a small cable.
All comes together with some wood glue. You have to work properly cause the acrylic case matches perfectly on top of the wood box. It is getting much easier with some volunteers around you, or just use a frame tensioner like I did.
The edges of the grid and the grid itself are made of high density fiberboard (HDF). Using a table saw is the best choice because you have to cut even more than 100 pieces of them. You can find the dimensions in the picture above. The grid needs a small gap (about 0,3cm) every 3,4cm in order to get the x and y ledges together. Once you are done, you can put the edges to the cube and fix them with a lot of wood glue. It's a bit difficult, especially because they should have an angle nearly about 45 degrees. Before you can attach the grid to the cube you have to add the LED strips.
Step 4: The Electronics
The LED strips on the side go once around the cube, therefore cut 10 strips with the length of 40 pixel. For the LEDs on top of the cube cut 10 strips with the length of 10 pixel. Be careful to align the strips correctly by regarding to the arrow on them. Once you remove the glue strip off the cube it will never hold like the first time.
The power supplies are fixed with some screws on the sides of the interior. The power cables from the LEDs are getting into the box by some small holes near every LED strip.
The controller consists of a Teensy 3.2, an ESP8266 and the Teensy audio board, which is not required to run the cube. The DHT11 was just for checking the temperature inside the cube but after multiple tests about a few hours I can say that you can leave it out.
On the terminal you can find the power jack as well as the power switch (when I realized that this isn't the best place for a switch it was too late). The USB jack is for programming the Teensy. The audio-in goes to the Teensy audio board for acting the LEDs to the music. All this comes together on a small peace of aryl glass holding by two aluminum profiles. Just found this in the garage, you can use whatever you want because its covered by the bottom wood panel and does not contribute to the look of the cube.
Be aware that one LED uses 60mA, in total that's 30A! Be careful when you hook them up! You have to verify all your circuits before you connect them to the power supply!
Step 5: Connections and Coding
The LEDs are connected as two matrices on pins 3 and 20 on the Teensy. The first one is the matrix on the top (10x10, 100pixels) and the second one is the on the side (40x10, 400pixels). The LEDs of the top matrix are aligned in a zigzag pattern, meaning the arrows on the strip have to be in different directions for every strip, whereas the LED strips on the side are aligned in the same direction. Have a look at the pictures, the red line will show you how to connect Dout of the first strip to the Din of the next one, hope that will help you understanding the alignment.
For the animations and games I'm converting the two matrices into one by the size of 10x50 using the following function:
void setXYPixel(byte x, byte y, CRGB c) { if (x <= 39) matrix_bottom(x, y) = c; else matrix_top(x - 40, y) = c; }//end setXYPixel()
For the Snake game you need to implement some special cases:
- When the snakehead hits the upper row of the side matrix it has to switch to the matrix on top.
- When the snakehead hits one end of the top matrix it has to switch to the bottom matrix.
- When the snakehead hits the last or the first column of the side matrix it has to switch to the first respectively last column.
For the Tetris game you need something similar to this for a field starting in the upper left corner:
void setXYPixel(byte x, byte y, CRGB c) { if (y < 10) matrix_top(x, y) = c; else matrix_bottom(x + 10, 19 - y) = c; }//end setXYPixel()
Step 6: The Acrylic Cover
More difficult than the wood box due to the smaller thickness, but with enough time and good ideas for keeping the cube together while the glue gets hard you will get this together. I'm surprised about the strength of this acrylic glue (Acrifix), so I think you don't have to worry about a broken case.
Step 7: Bring It Together
After you completed all the steps before it's time to bring all parts together. When you didn't merge the LED grid yet, then now it's time to do so. I do not glue the grid to the cube because there is no need for it and in case of a broken LED you can exchange it with no problems, however you need to have more than two hands to hold the five grids to the cube and put it in the acrylic cover. Last but not least you can screw the bottom wood panel to the cube. The cover is fixed to the bottom wood panel by eight very small screws.
Step 8: Software and Controls
The sketch on the Teensy is based on the FastLED library which includes several basic animations. Adding the RGBLEDS library package to your sketch brings powerful matrix algebra for displaying text and 'sprites' with plenty of example sketches as well. If you want to play Tetris as well then refer to the instructable from jollifactory, even if it uses only a bicolor matrix.
The smartphone app is based on NetIO by David Eickhoff which has a very good documentation. With the NetIO-UI-Designer you can create your own user interface with buttons, sliders, labels and much more. You can choose the protocol for the outgoing messages in the designer. In my case I took the simplest one - UDP. The messages are send to the ESP8266 by my home network and the Teensy will evaluate the content and handle the specified command. You can use the attached file to get started to create your own interface or just use an app of your choice.
Step 9: Build Your Own and Enjoy
Now it's time to get the parts and build your own Brick. If you have any questions feel free to ask.
For more videos you can check my Youtube-Channel. It's still a work in progress so there will be more material in the future.
Thanks for reading and have fun playing Tetris or other nice games on your own Brick!

Second Prize in the
Lamps and Lighting Contest 2016

Grand Prize in the
LED Contest
49 Comments
Question 6 months ago
Hi!
A very nice project. My Question is : The Picture under the heading of Step 3 shows a nice corner clamp with belts. Where I can get this or is it 3-D printed by yourself?
Keep up this good work.
thx Wolfgang
1 year ago
Can this be produced commercially?
Question 4 years ago on Introduction
This is really nice! This definitly tops the 8x8x8 LED cube on my TODO list ;-).
Question: Could you skip the Teensy e.g. by using a esp8266 or esp32 for the LED signals _only_?
Is the teensy better for the ease of available libs....?
Keep on this cool projects AND posting them~
Question 4 years ago
What's the name of the app and is the app aviable at the play store?
Question 5 years ago
Can one use the WS2812B led strips? I know that the WS2812 led has six (6) pins, the WS2812B has only four (4) due to some reason people where not using the ground for each led and manufactures did away with it.
5 years ago
Please make clear distinction between "welding" which involves melting the underlying metals being joined at thousands of degrees and soldering which a low temperature process at about 650 deg fahrenheit does not melt the metals being joined only the solder. There is no welding in this project.
5 years ago
NICE WORK!!!
6 years ago
Amazing ! This is really nice, congrats !
I thing I'll try it with my son.
Wood working and coding is not a pb for me but i'm a newbie for the electronic part.
Is it possible to get some additional pictures on LEDs connection (Do you use connector clip, welding, ...)
finally if you could provide some ebay / amazon link for electronics parts (arduino, buz, ...) I'm able to do some search on internet but as it's my first try I'm afraid to buy a lot of wrong items before success :(
Thx
Christophe
Reply 6 years ago
Thank you! Good luck to you.
All the rows of the strips are welded together and only the first pixel of each matrix are starting with a simple 3-pin JST connector. (In the picture you can see one male connector which comes from the end of the side matrix but it is unused. Only the females are going to the controller board.) The connectors are getting into the cube by small holes in the edges.
I'm getting mostly all of my parts from www.exp-tech.de, like the Teensy 3.2: http://www.exp-tech.de/teensy-3-2. But these are shops in germany. I don't know where to buy electronics in other countries. For the LEDs you can refer to AliExpress. A good reseller is Ray Wu: https://de.aliexpress.com/store/product/BLACK-PCB-5m-DC5V-WS2812B-led-pixel-srip-IP68-30pcs-WS2812B-M-with-30pixels-reverse-protection/701799_926778326.html?spm=2114.8147860.0.0.mxgmWE. Hope this will help you a bit.
Reply 6 years ago
Many thanks
I know what to do this winter ;-)
I'll keep you in touch if we success or if we need some additional help but it sounds pretty clear.
Christophe
Reply 6 years ago
You're welcome!
Feel free to ask if there are any questions. I want to see some pictures if your brick is ready! :)
Reply 6 years ago
Hi
To get u in touch, we did some progress, we are closed to finish wood work. Leds & teensy are there but still waiting power supply from China ...
Reply 6 years ago
Wow! It is very crazy to see the wood work of another Brick!
Hope your work is going well and your brick is ready soon :)
Reply 6 years ago
Hi, Yep i finished to solder wire and leds. I start some test and after a very nice first shot with only the top matrix working very well, I'm stuck since I tried to make the both working together.
I think it's related to how my teensy is powered (I put the top matrix + 4 lines on one supplier and 6 lines + arduino on the other supplier) and unfortunately nothing is working. I'm becoming crasy, trying to pilot one matrix is swithing led on the other ...)
Is there any attention point on arduino and ground ?
The power supply must be connected in parallel or series ?
Reply 6 years ago
Hi, to keep you in touch, I finished to make it :-) It works very fine.
Posted some video there https://plus.google.com/112961673979406941024/pos...
I upgraded the wifi part of ESP8266 by adding wifi manager that allow to change of wifi access point easily without flashing the esp ;-)
I also add a small box (3d printed) with 3 buttons to do basic control without having a phone.
https://github.com/ouaibsky/RGB-Brick/tree/master/...
Still have to implements an android app ... that's the final part.
Thx again for all your help and amazing idea.
Christophe.
Reply 6 years ago
I get a couple of questions on your breadboard picture:
* Voltage is 5V, all components works under 5V ?
* Why the buzzer is plugged on the wifi module (and not directly bound to the tensy)
* What is the component V-REG ?
* The switch in the middle is gonna switch off/on only the wifi ?
* Why using a Tensy (looks like it required special IDE) ? Is there a chance to work with any other arduino ?
* Last but not least: should it be possible to catch sound through a mic (I though at equalizer capabilities) ?
Regards
Christophe
Reply 6 years ago
1. Only the ESP works with 3.3V. The LEDs and the Teensy works with 5V. You don't need a voltage regulator when you use a Teensy 3.2, because its regulator on board can handle the max current for the ESP.
2. I have added this buzzer only to verify the wifi connection. It beeps only the first time when the brick has power and there is a command from the iPhone. Other sound effects can be played by using the Teensy audio board.
3. V-Reg is the voltage regulator mentioned in the first answer. Cause the ESP can handle only 2.6-3.6V you have to regulate the power from 5V to 3.3V.
4. The switch resets the wifi module (ESP). It does not turn the wifi on or off, it was just to test the wifi communication and it is not necessary.
5. You can use any controller of your choice, but the Teensy uses the same Arduino IDE as an Arduino or an ESP. You only need to update the IDE to (I think) 1.6.5 or higher. Follow these instructions to get the boards-manager in your IDE: https://github.com/esp8266/Arduino
6. Of course this is possible! The Teensy audio board has direct pinout for a mic, but even if you don't use the audio board you can attach a mic to your microcontroller: https://learn.adafruit.com/adafruit-microphone-am...
6 years ago
Hi Moekoe,
excellent instructable good job!
One question can you flash the ESP8266 straight from the Teensy setup you made or do you need a flash tool for that?
thx,
Rob
Reply 6 years ago
Thank you very much!
No, I am not able to flash the ESP straight from the Teensy, but actually you just need to programm the ESP only once. Just plug it in a breadboard, connect it to an FTDI Converter and program it with the Arduino IDE.
Reply 6 years ago
OK thanks Moekoe,
Somehow I am not able to connect with my phone yet, although the flash went OK and it shows up in my network, did you had similar problems?
Thanks, Rob