WS2812 Christmas Tree
Posted by ark, ,

Merry Christmas!

These 1m WS2812 LED strips and Light Ring have been sitting around and I finally thought of something to do with them. Remember four 1 meter LED strips is way cheaper than one 4 meter strip.

pinout reference sheets

First I printed out these handy, dandy pinout reference sheets and made sure they were 2 or 4 inches tall so I could laminate them with packing tape. They’re going to be very useful.

Serial Port Stackable Board

The last ws2812 project I did was just to see if I could get them to work and I just wired up a connector to the led driver board get at the serial port pins. I wanted something a little more general purpose and my (too) long header pins had come in so I put this together. I used an old hard drive pin jumper to convert the 2x5 conenctor into a 2x4 USB ESP programmer friendly connector. Hot glue should keep the ribbon cable from coming loose.

stackable port in use

Here’s how it all came together. I think it looks pretty janky on close inspection, but at night it looks great.

tree in daylight

At first I was going to use a 26” bike wheel rim but a 1M strip wasn’t long enough to go across it and be tall enough. If I had more strips I could make the side 1 meter instead of 50cm and that would be perfect so I might do that for v2 next year. I could also use a lot more strips and use water proof ones for outside.

For this build I used a 5 gallon bucket lid. I had some PVC pipe laying around because I want to build a siphon for my pond (more on that in another post). Originally I was going to cut crenellations along the top of the pipe and lay the led strips in them but then I had the idea to use the ring for the top and that necessitated a top cap and that would mean really long cuts and it would be too fragile so I used a rotozip to cut the slots instead. It was pretty aggressive with the hole cutting so it wasn’t as neat as I wanted. Also I’d be wasting one LED hidden inside the tube which kinda bothered me.

Sticking the pipe coupler to the lid was problematic. First I tried PVC cement. Nope. Then I tried super glue. Nope. Then acrylic glue (it works great on lego blocks). Nope a 3rd time. Finally I gave in and use hot glue gun glue and then even beaded it up around the edge like a weld and that seems to be holding just fine.

led ring soldering

The LED Ring just slots into the top cap which I cut with my miter saw. There’s ground, 5V and a signal in and signal out. For some reason I really didn’t want to ruin the 5 gallon bucket lid so I drilled a hole in the side of the coupler for the ring wire to connect to the end of the strand.

green tree at night

Here’s the end result in the dark. The LED strips go up and over and then connect to the adjacent strand to go up and over again and finally connect to the LED ring via cat5 wire pairs that go up the middle of the pipe. The bottom of the strips are held in place with packing tape. This isn’t intended to last a long time and I’ll pull it apart next time I need the room or some LED strips.

power consumption

Power consuption is under 2A which means I can power it with a USB power pack or many different USB wall adapters.

rainbow tree at night

The code to drive it was based on my last project, but a whole new file and I even made Tree, Strand and Star objects you could set to various colors. It seems to take a few resets to get the strip initialized but once it is, it runs for hours. I had plans to make a whole bunch of different animations and even make them selectable via the rotary library with an encoder but then Christmas movies got in the way so it’ll have to wait until the next LED project. Using an encoder with an ESP-01 board is going to mean giving up my serial port and I’m not quite ready to fly dark like that yet. I’ll probably make an ESP-12 to ESP-01 converter board when I do that and only swtich the pins I use at the last minute before flashing a final production ESP-01 board.