500 LED-Pixel RGB-Brick

34,568

400

57

Posted

Introduction: 500 LED-Pixel RGB-Brick

Lamps and Lighting Contest 2016

Second Prize in the
Lamps and Lighting Contest 2016

LED Contest

Grand Prize in the
LED Contest

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 as well as the channel of LED-STUDIEN. It's still a work in progress so there will be more material in the future.

German instructions can be found here in a couple of days.

Thanks for reading and have fun playing Tetris or other nice games on your own Brick!

Share

Recommendations

  • Spotless Contest

    Spotless Contest
  • Space Challenge

    Space Challenge
  • Trash to Treasure

    Trash to Treasure
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

0

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.

47 Comments

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.

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

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.

IMG_4537.jpgIMG_3784.jpg

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

You're welcome!
Feel free to ask if there are any questions. I want to see some pictures if your brick is ready! :)

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 ...

2016 - 2.jpg

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 :)

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 ?

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.