Main Content

Hi and happy holidays to you all! If you take look at my profile, it’s clear that I’m somewhat of an LED addict. This addiction more or less began a few years ago when tinkering with commonly available WS2812B (aka Neopixel) rings. My mom suggested putting the rings on our Christmas tree, and so, after some soldering (and some crafting help from mom!) my LED ornament was born. I have since updated the ornament, which I’ll present to you today. (please note that the LED colors look much better in person than in the video above)

The ornament is assembled from WS2812B LED rings. You can usually find these rings as a nested set, so soldering them together is fairly straight-forward. You also can make the ornaments smaller or larger by adding or omitting rings (you would have to change a couple of lines in my code though). The ornament I’m presenting to you today uses 61 LEDs distributed across 5 rings. The outer diameter of the ornament is about 90mm. At this size, it’s small enough to comfortably hang from a tree, while still having plenty of LEDs for animations.

In this instructable I will show you how to make both the ornament and my control board, including battery and wall powered versions. However, there a a ton of different ways you could control the ornament, so I encourage you to use whatever setup that you prefer.

I will provide versions of my code for both Arduino (Uno, Nano, etc) and ESP8266 (specifically the Wemos D1 Mini). Hopefully this will be helpful if you want to do your own control setup.

If you have never worked with WS2812B’s before, I would suggest reading Adafruit’s guide for an overview.

To control the ornament I’m using a Wemos D1 Mini mounted on a custom PCB that I’ve designed. The PCB can be adapted to be run from a LiPo battery or from a 5V wall adapter. Using the battery should yield about 3-4 hours of run time using my default settings. This can probably be extended quite a lot by limiting the effects and brightness.

Everything on the PCB is through-hole mounted (except for a few 0805 resistors used in the wall powered version), so it should be easy to solder.

Before deciding between the wall or battery powered versions, I highly encourage you to read the whole instructable before choosing, as the parts needed differ slightly.

My custom PCB also includes mounts for a MAX4466 microphone board (for audio based animations) and a HC-05 Bluetooth board. Likewise, using the Wemos D1 Mini allows for wireless control. Unfortunately, at this time, my code doesn’t include support for these, but I hope to add it in the future!

Finally, if you have any questions at all please post a comment and I’ll get back to you :)

Github links:

Ornament Code / Files: Link

Control PCB Files:

For Battery Powered: Mk2 Board (You can also use the Mk3, the only difference is the inclusion of a logic level converter, which you can bypass)
For Wall Powered: Mk3 Board
If you are interested, you can view the PCB’s layout and schematic here. (The Mk2 and Mk3 boards will be used in this Instructable)

3D Printed Control Box Files: Link

LED PCB Ring Files (designed by me): Link to files and Link to schematic. The files are only needed if you want to have a set of rings manufactured by someone like JLCPCB. This will probably save you money if you want a lot of rings. You can see instructions for ordering assembled PCBs in step 4 of my other Instructable.

Custom PCB:

For both battery and wall powered options you’ll need a custom PCB designed by myself. If you’ve never ordered a custom PCB before, it’s easy. I briefly go over it in Step 2 of one of my other instructables here. As with that instructable, all the ordering defaults should be fine for this project.

For the battery powered version you can use the PCB files found here.

For the wall powered version you can use the PCB files found here.

The only difference between the wall and battery boards is that the wall version includes a spot for a logic level converter. This can be bypassed, so if you want to be flexible, you can just order the wall powered PCB version.

Electronic Parts:

(You might be able to find most of the parts for lower cost at places like Aliexpress, Ebay, Banggood, etc)

For Battery and Wall Powered Versions:

One set of WS2812b Rings. Found here. Should include 24, 16, 12, 8 and 1 length rings.
One Wemos D1 Mini V3. Found here.
One 19 x 6 x 13mm Slide Switch (these are pretty common, the actuator should be 4-5mm tall). Found here or here.
Two JST-XH 2.5mm 3 Pin Male Connectors. Found here
One Right Angle JST-XH 2.5mm 3-Pin Female Connector. Found here.
One JST-XH 2.5mm 3-Pin Female Connector. Found here.
Six JST-XH Crimp Terminals (although you should buy spares). Found here.
Male 2.54mm headers.
22Ga stranded wire.
One MAX4466 breakout board mic Found here. (optional)
One HR-05 Bluetooth board. Found here. (optional)
Extra Parts for Battery Powered Version:

One 1S 720 mah LiPo battery. Found here. (you can use other LiPo’s, but they should fit within about a 50x34mm area to stay hidden behind the ornament)
One TP4056 LiPo charging board. Found here.
One Right Angle JST-PH 2.00mm 2 Pin Female Connector. Found here.
Extra Parts for Wall Powered Version:

One DC 3.5mm (1.35mm internal diam.) female connector. Found here.
One 5v 2A(min) wall adapter. You have a number of options for this. Ideally you’d find one with a 3.5mm DC jack, but those are uncommon. Most have a 2.1mm DC jack (like this one), so you’ll need to buy an adapter down to 3.5mm (like these). As another option, you can use any USB phone charger capable of providing 2A and a USB to 3.5mm DC jack like this. For all the options, make sure your adapter has over-current/short protection, most UL-listed adapters should have this.
Three 6x6x9mm tactile buttons. Found here. (optional)
One 74AHCT125 Logic Level Converter. Found here. (optional, but recommended)
One 1000uf, 10V Electrolytic Capacitor. Found here (somewhat optional)
Three of each 0805 size 100K resistor, 1K resistor, and 1uf capacitor. Found here, here, and here. (optional, for buttons)
Two 4mm M2 screws (optional, for 3D-printed box)
Other Parts:

White/cream felt. I don’t have a specific source for this, but you can probably find some at your local craft store. The stuff I used is about 1mm thick, which seems to diffuse the LEDs well while keeping them visibly bright. If you can’t find or don’t want to work with felt, you can probably use some other material as a diffuser, but you’ll have to experiment.
Felt in a color of your choice. This is for the cap at the top of the ornament. Can be as thin or thick as you like.
95mm Diam. die cutting disk. Used for cutting the felt circle. Found here.
Rolling pin or some other hard cylindrical object. Used for cutting with the die
Needle and thread. You’ll want to use thread that closely matches the color of the white/cream felt. Everyday sewing thread should work fine; it doesn’t have to be particularly strong.
Striped string in the color of your choice. This is for hanging the ornament. You can probably get a single spool of a specific color at your local craft store, but I found this bundle with a bunch of colors that should work.

Soldering iron + solder.
Tacky glue. (For the felt parts, you could also probably just use hot glue)
Hot glue + hot glue gun.
Wire cutters and strippers.
Tweezers. (For soldering)
Crimper for JST terminals. Found here.
Conformal Coating (or you can just use hot glue)
3D printer (for box for wall powered version) (optional)”

Link to article