Hello NeoPixels!

Are you looking for an awesome blinky project? Do you like the idea of wearing RGB light spectrum on your wrists? Well, we have a project for you! This project is great for anyone that's getting started with electronics and 3D printing. This guide walks through the whole process of building this project so you can follow along step by step. The wiring, circuit diagram and code used in this project can easily be adapted for making other projects.

Trinket Powered

This slim bracelet is powered by a Trinket, mini skinny NeoPixel LED Strips and a rechargeable battery! The USB port is accessible from the side of the bracelet and uses a small but super strong magnets to keep it on while wearing!

Check out these improvements to neopixel bracelet in the forums:

Flat Braclet with Trinket M0

Flat M0 Bracelet

Tools & Supplies

You'll need the following tools and supplise to build this project.


Magnets & Paper Clip

We used these strong diametrically magnetized cylindical magnets:

We'll also need a paperclip to make a pin for the hinge.

Hand holding Adafruit TriHand holding small Adafruit Trinket - Mini Microcontrollerket board.
Deprecation Warning: The Trinket bit-bang USB technique it uses doesn't work as well as it did in 2014, many modern computers won't work well. So while we still carry...
Adafruit NeoPixel Digital RGB LED Strip with all the LEDs lighting in a rainbow pattern.
So thin. So mini. So teeeeeeny-tiny. It's the 'skinny' version of our classic NeoPixel strips!These NeoPixel strips have 60 digitally-addressable pixel Mini LEDs per...
Angle Shot of Lithium Ion Polymer Battery 3.7v 150mAh with JST 2-PH connector
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This...
Breadboard-friendly SPDT Slide Switch
These nice switches are perfect for use with breadboard and perfboard projects. They have 0.1" spacing and snap in nicely into a solderless breadboard. They're easy to switch...
Silicone Cover Stranded-Core Wire - 30AWG in Various Colors laid out beside each other.
Silicone-sheathing wire is super-flexible and soft, and its also strong! Able to handle up to 200°C and up to 600V, it will do when PVC covered wire wimps out. We like this wire...
Front shot of JST-PH Battery Extension Cable.
By popular demand, we now have a handy extension cord for all of our JST PH-terminated battery packs (such as our LiIon/LiPoly and 3xAAA holders). One end has a JST-PH compatible...

Circuit Playground

The circuit diagram above shows how the components will be wired together. The actual lengths of wire will be different. Use this diagram to reference how the connections can be wired.

The pads on the back of the Trinket connect to power (Red) and ground (Black)

5V on the LED Strip connects to Bat on the Trinket

GND on the LED Strip connects to Gnd on the Trinket

Din on the LED Strip connects to #0 on the Trinket

Battery Power & Switch

The circuit will be powered by a small 150mAh lipo battery via a JST connector. The slide switch will connect to the ground on the Trinket, to the ground on the battery – This essentially opens and closes the circuit.

Getting Code Onto Trinket

Before we start disassembling or building the circuit, it's a good idea to get code uploaded to the micro-controller first. If you don't write / understand code, don't to worry! You don't need to be a programmer to be able to upload prewritten code :-) 

We'll walk you through the whole process. 

First, visit the Trinket tutorial page by clicking the button below. Follow the instructions to download & setup the Arduino IDE and install drivers.

Make sure you are able to get sketches compiled and uploaded, especially the blink example in the tutorial. Once you are comfortable with using the Trinket, you can continue!

Install Adafruit NeoPixel Library

Next, we need to add support for NeoPixels.

Visit the Adafruit NeoPixel tutorial to install the NeoPixel library!

Download Code to Sketch Folder

Now that we have the Adafruit boards & NeoPixel library installed, we can get our code ready to upload onto the board. Click the button below to download a zip file of the Arduino sketch. Uncompress it and place the folder to the Sketches folder. Open the file named "GemmaHoopAnimator.ino".

Uploading Code to Board

Then, in Arduino IDE, paste it in the sketch window (making sure to overwrite anything currently there). Next, goto the Tools menu > Board and select Adafruit Trinket (if you're using the 3V Adafruit Trinket version use Trinket 8Mhz. If you're using the 5V Trinket, select Trinket 12Mhz). Now you can click on the "check mark" icon to verify the code. If it's all good, we can continue to upload the code to the board.

Connect USB Data Cable to Trinket

Be sure to use a micro USB cable that can transfer data - A USB cable that ONLY charges devices will simply not work. Plug it into the microUSB port on the Adafruit Trinket board and the USB port on your computer (try to avoid connecting to a USB hub). As soon as you plug it in, you'll see a red LED blink on the Adaruit Trinket - This let's you know the board is ready to except code. While the LED is blinking, click on the Upload button (It's a right arrow icon, next to the check mark). The Arduino IDE will notify you if the upload is successful and completed.

GemmaHoopAnimator Code by HerrRausB https://github.com/HerrRausB/GemmaHoopAnimator

Download and 3D Print

The 3D printed parts can be downloaded with the link below. 

Edit Design

You can easily update the size or add features by editing the Fusion360 designs. The sketches are all listed in the timeline, so it's easy to adjust the size to each component.

3D Printing Enclosures

I drew up an enclosure in Autodesk Fusion 360 and designed to print in PLA. I 3D printed the enclosure using the BCN3D Sigma. If you don’t have access to a 3D printer, you could use a service like 3D Hubs to make it for you.

Diffusing LEDs

I used Natural White PLA/PHA material to 3D print the parts to give the LEDs a soft diffusion. You can also use Translucent filament for a sharper light diffusion.

Slice Settings

Depending on your 3D printer, you may need to adjust the slice settings. We tested the enclosure  on a BCN3D Sigma. The parts may require support materials. The parts are oriented to print "as is".

  • Nozzle: 0.4mm
  • Extrusion Multiplier: 1.0
  • Extrusion Width: 0.4mm
  • Layer Height: 0.2mm
  • Nozzle Temperature: 240c
  • Print Speed: 60mm/s


The bridging on the hinge ports for the wires may need supports. If your printer has a good cooling fan, you should be able to print without any supports

If you do require supports, we recommend setting structure underspeed to 30% and lower dense infill percentage to 30%.

Thin Wall Perimeters


Optimize the tool path by adjusting the thin wall perimeter to 50%. This will yeild a stronger part and speed up printing by insuring the nozzle only travels along the shape of the parts (no zigzag between walls).

Measure Strip

The enclosure has enough area to fit four strips of Mini Skinny NeoPixels (medium density) with 5 LEDs each to create a 5x4 matrix. Measure the strip by counting up the NeoPixels and noting where they need to separate. The strips will be installed into the LED Body1.stl part. Insert a piece of the strip and check to see if it can fit.


Cut NeoPixel Strips

NeoPixel strips are designed to be cut to create custom sized strips. Use a pair of scissors or wire cutters to cut across the three pads, being as centered as possible. We want to cut right in down the middle of the three pads. We'll need four strips with 5 LEDs each.


Wire Length

Lay the strips out in a 5x4 grid and orient them so the arrows are flowing from left to right. The arrows will appear in a zigzag pattern. We'll need to connect the strips together using 30AWG silicone coated wires.

Measure and cut three sets of wires (9 in total). These need to be as short as possible. Each wire for power, data and ground should have different lengths. 



Use wire strippers to remove insulation from the tips of each wire. Tin the tips of the wires by appying a small amount of solder – This also helps prevent the stands of wire from fraying. Then, solder each wire to the pads on each LED strip. A pair of third helping hands can help keep the parts steady while soldering.

Enclosure Halves

The Trinket, switch and battery will be housed in the LED Body2.stl part while the four NeoPixel strips will go inside the LEDBody1.stl part.

Trinket Wires 

Insert the Trinket inside the LED Body2.stl part with the USB port fitting into the cutout. Now you can guage how long the connections will need to be to connect the NeoPixel strip to the Trinket. Grab a wire and measure how long it needs to be to reach the Trinket. Measure and cut three pieces of wire. Connect each wire to the three pads on the NeoPixel with the arrow point away from the wires (pointing towards the NeoPixel).


Thread wire through Hinge 

Now we need to insert the three wires from the NeoPixel strip into the LED Body1.stl part. Thread the wires through the inside going out the rectangular opening on the side. Make sure the wires are straightened out to avoid them from bending while opening and closing the hinge.

Install Strip

Wedge the end of LED strip (with no wiring) into the LED Body1.stl part and push it all the way down inside. Hold onto the long wires from the beginning of the strip so it doesn't go inside the enclosure. Insert all four strips inside the part and stack one on top of the other. Try to have the pixels lined up with each other.


Pull Wires

To fit the last strip, pull the wires from the end of the strip while wedging it in. Tuck the strip into the enclosure and adjust until they're fully enclosed.


Pack Strips


You can use a flat head screwdriver or tweezers to pack the wires and sheathing into the enclosure.


Wires won't fit?


If you have trouble fitting the strips inside the enclosure, the wiring might be too long. If that's the case, you could shorten the wires and resolder to accomodate the enclosure.

Attach Lid


Now we can fit the cover over the enclosure. The LED Top1.stl part is the long one. It snap fits on top of the LED Body1.stl part.


Thread hinge


Now we can thread the three wires from the NeoPixel strip through the LED Body2.stl part. Insert the wires on the outside of the enclosure and through the rectangular hole. Make sure the wires and straight and twisting. Then, join the two halves together and line up the holes.

Hinge Pin


We'll use a paperclip as a pin for the hinge. Unfold a paper clip to create a long piece of solid core wire and insert it through the hole on the enclosure. Bend each end so that it can stay between both halves. We want the pin to be shorter than the length of the parts. Use wire cutters to trim the paper clip short.


Bend and Cut paperclip


Use a pair of tweezers to embed the pin into the hinge. Test opening and closing the bracelet. If the pin falls out, try bending the ends slightly so they are lodged inside the hinge. 

Measure JST Extension Cable


Next, we need a way to connect the lipo battery to the Trinket and have the ability to power the circuit on and off. To do this, we'll connect a slide switch and a JST connector to the Trinket.

Grab the JST extension cable and look for the end with the female JST connector. Position the trinket, switch and connector close to one another and measure the required length needed to connect them together. Now we can gauge how long the power and ground wires need to be to connect the Trinket. The switch will be wired inline with the ground(black)wire.

Cut, strip and tin the two wires from the JST extension cable. Solder the red wire from the female JST connector to the positive pad on the back of the Trinket. 


Solder Slide Switch


We'll only need two of the three leads on the slide switch. Trim the third lead (either the far left or right, but not the middle). Tin the two remaining leads with solder. Then, connect the black ground wire from the JST connector to one of the leads on the switch. We'll need a second ground wire to connect to the second lead of the switch. This new ground wire will then connect to the ground pad on the Trinket. We're essentially opening and closing the ground connection with the switch – allowing us to power the circuit on and off.


Connect NeoPixel to Trinket

Now we need to connect the three wires from the NeoPixel strip to the Trinket. The circuit fits into the enclosure best if the wires are soldered from the back of the Trinket. The data wire from the strip will connect to pin #0 on the Trinket. The positive pad from the strip connects to the BAT pin on the Trinket. Then, connect ground from the NeoPixel strip to ground on the Trinket. 

Fit Trinket


Now it's time to fit the Trinket and wiring into the enclosure. Insert the Trinket into the LED Body2.stl part and orient the wires so they're straight with the back of the Tinket. 


Fit JST connection


Push the wires from the JST connector tothe bottom of the enclosure. Position the JST connection facing upwards.


Fit Slide Switch


Apply pressure to the slide swith and push it between the edges of the enclosure, right next to the Trinket. Push on one side and then the other to fit the slide switch inside.

Insert Lipo Battery

Connect the JST connector from the battery to the female connector on the Trinket. Now we can install the battery into the enclosure. Position the battery so the wires are facing towards the top. The JST connectors and battery should have enough room to easily slide inside. Wedge the excess wiring to the side and curve it long the inside of the enclosure.

DO NOT bend the battery inside of the enclosure.

Attach Lid


Place the LED Top2.stl lid over the LED Body2.stl enclosure and press it in. If you're using the Trinket miniUSB version, you may need to cut a small part of the lid to properly attach the lid.  


Snap Lid onto Trinket

The Lid has a groove that snaps onto the side of the Trinket and holds it in place. To remove the lid, use tweezers to pop it off.

Mark & Insert Magnets

Next, we'll use magnets to keep the two halves of the enclosure closed. These cylindrical magnets are diametrically magnetized so we can install them into the enclosure upright. Use a sharpie to label the matching polarities. Then, press a magnet into the indents on the edge of the enclosure halves. Ensure they're inserted with the correct matching polarities. We only need two magnets on each halve. Test the polarities of the magnets below fully embedding them. You should be able to lock the two edges together. Magnets!


And now we have an awesome NeoPixel 3D printed bracelet! Wear it over your wrist and flip the switch to try it out. When you need to recharge the battery, you can pop the cover off and disconnect the battery from the JST connector. You can use a USB Lipo charging breakout to recharge the battery over USB.

Light Painting

You can use these bracelets to creat stunning light paints using the long exposure photography technique.

This guide was first published on Jan 25, 2017. It was last updated on Mar 08, 2024.