Introduction: 500 LED-Pixel RGB-Brick

About: Hey! I'm a maker and an electrical engineering student from germany

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:

  1. 500 WS2812 LEDs 30px/m
  2. 5V 30A power supply
  3. Teensy 3.2
  4. ESP8266 wifi-modul
  5. some pieces of wood:
    1. 1x: 27,2cm x 27,2cm x 1,0cm, for the lid
    2. 2x: 29,6cm x 27,2cm x 1,0cm, for the large side panels
    3. 2x: 25,2cm x 29,6cm x 1,0cm, for the small side panels
    4. 1x: 34,0cm x 34,0cm x 1,9cm, for the bottom
    5. 8x: 34,0cm x 4,6cm x 0,3cm, for the edges of the LED grid
    6. 100x: 34,0cm x 3,3cm x 0,3cm, for the LED grid
  6. some pieces of acrylic glass:
    1. 1x: 34,0cm x 34,0cm x 0,3cm
    2. 2x: 34,0cm x 36,3cm x 0,3cm
    3. 2x: 34,6cm x 36,3cm x 0,3cm
    4. 1x: 10,0cm x 7,5cm x 0,3cm (optional, for the terminal)
  7. Teensy audioboard (optional)
  8. Wires,voltage regulator, cable clamps, buzzer, button, temperature sensor (optional)
  9. wood glue, acrylic glass glue, screws and other little things

If you want a terminal at the bottom of the cube (it's optional expect for the power jack):

  1. 230V power jack
  2. 230V switch
  3. audio jack
  4. 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!