Making a DIY circular LED matrix

BLOG POST WORK IN PROGRESS!

Introduction

Last weekend we - the puppet team (TM) - joined the fablab neukölln art makerthon. We had 48 hours to make something that should fit in a specified round frame and that we could showcase afterwards.

[picture of frame]

flo-bit is a sucker for anything made with controllable RGB LEDs and he can be very convincing when he’s passionate (and what could possibly worth more passion than individually controllable RGB LEDs?). So we basically just put a bunch of LEDs into that frame and made a pixel art mirror that in the end looked like this:

[picture of pixel art mirror]

Apart from working like a bad mirror this thing can also show a variety of cool effects, curtesy of WLED.

[grid of effects].

This blog post is both the story of how we made it, as well as a how-to guide if you wanna make your own.

For the how-to we’ll concentrate on how to make the LED frame with just the effects above (so without the mirror functionality), as the mirror part is honestly very hacky, but we’ve added an extra step at the end describing how we hacked that together (if you have an idea for how to make that better, preferably with just an esp32 + camera, send us a message).

Requirements

If you plan to try your hand at making one, you need two things apart from the materials:

  1. A solder iron (some experience with soldering might be useful, but this is also a good learning project, we don’t really know how to solder either, we just do it and sometimes it works 😝)

  2. A laser cutter that has a cutting area of at least 40cm x 24cm, if you don’t have one, check your nearest makerspace

Bill of Materials

For the materials you need: (without the mirror functionality, for that you’d also need a raspberry 3b or above with wifi and a camera).

(links are to the german amazon, those are not referrer links, just where we bought stuff)

  1. 7 meters of WS2812b with 60 leds per meter in total 420 (noice) LEDs link
  2. 1 esp32 (we used a D1 mini with usb c) link
  3. lots of small wires link
  4. usb cable (depending on the esp32 you use either usb-c or micro-usb) and plug (or a powerbank if you want to make it mobile)
  5. 3 plates of 40cm x 24cm plywood (we used 3mm thickness but it doesn’t really matter) link
  6. 4 cardboards (40cm x 24cm, preferably 3mm thickness)
  7. a white cloth thats at least 46cm x 46cm (we used an old bed cover)
  8. glue

Total cost

35 € - 40 €

The main cost are the LED strips, we bought them from amazon for 15 € for 5 meters (so 7 meters are ~21 €). There are cheaper options available on something like aliexpress though.

An esp32 costs about 7 € (again less on aliexpress) and the wood we used was about 8 € for the 3 plates.

Everything else we had at home, but should be pretty cheap anyway (less than 5 €, if you don’t add a powerbank).

Step 1: Making the frame

First we created the backframe, by lasercutting 2 of the plywood plates. Here are the files both for LightBurn and as SVGs:

[lasercut files, 4 files svg, 4 files lightburn]

Note that there are 2 layers, the first should be cut, the second is just for marking the LED strip positions (so use low power for that one).

The rings for the front were given to us already laser cut, but here are the files for anyone following along at home (from this fablab github repo). Use the last plywood plate to cut out the ring segments.

[lasercut file, 1 file svg, 1 file lightburn]

Use some wood glue to glue the parts together and you should have two rings and one big circle with markings on one side for the LEDs (sadly we forgot to take pictures of this and the next few steps).

Step 2: Adding the walls

The walls are also lasercut but out of cardboard (would have taken way to long to cut them out of wood and we were in a hurry, you can cut them out of plywood too, but in the end they wont be visible anyway). We just used random packaging cardboard we had laying around.

[lasercut files, wall]

Afterwards you can lay them on your base board (good luck figuring out which go where, we don’t have a good tip here, we struggled with that too 🙃) and start putting them together, we tried that without glue first, but after everything fell apart twice we went for some glue.

Step 3: Cutting the LED strips

Now for the three steps where you have to pay attention not to fuck it up: Cutting the LED strips into segments in with the correct amount of LEDs for each segment.

When cutting also make sure LED strips are cut exactly in the middle of a connection.

[closeup of cut of LED strip]

In total you need:

  • 2x 8 LEDs segments
  • 2x 12 LEDs segments
  • 2x 14 LEDs segments
  • 2x 16 LEDs segments
  • 2x 18 LEDs segments
  • 4x 20 LEDs segments
  • 6x 22 LEDs segments
  • 3x 24 LEDs segments

You can also directly lay them on the board (don’t glue them yet though) to make sure you have the correct count, they should fit perfectly in the little markings on the plate (lengthwise, they are less wide than the markings)

81214161820202222222424242222222020181614128

Glueing the LED strips

the LED strips have to be laid out in a serpentine arrangement with the correct count.

there are little arrows on the LED strips that show you the direction there are going, those should alternate go left to right then right to left.

Step 4: Soldering the LED strips together

Again pay lots of attention here, you can accidentially fry your LED strips if you make a mistake here (we’ve of course never fried any LED strip cough, cough, thankfully the LED strips are usually sold as 5 meter strips so you have some leftover)

What each LED solder connection should look like:

[maybe make this a like magnifying glass thingy with the drawing above?]

gndgnddata5V5Vdata

Step 5: Soldering the connection onto the ESP

esp32d1 mini5v (VCC)gnd (GND)data (IO4)

Step 5: Flashing the ESP

Step 6: Setting up the LED grid

Step 7: Playing around with some effects

Extra: Make it a mirror? (maybe take this out for now?)

Some more pictures