18th April 2017
An animated, glowing collar

I recently made a glowing “spiked” collar costume piece/everyday accessory for a partner, and now that I’ve given it to them and there’s no more surprise to ruin I can talk about it a little bit!

It has a series of 6 individually addressable RGB LEDs driven by and Adafruit Gemma microcontroller and is powered by a tiny 150mAh lithium polymer battery (about the size of a postage stamp, only thicker). It should run for about an hour on a full batter charge, and the battery re-charges in about 2 hours. The Gemma is essentially an Arduino, so the colors and animations are completely programmable. As a default I have it set up to cycle through a rainbow, rotating the colors through the LEDs so that a “full” rainbow is always showing.

I did consider adding a mode switching button to allow Ansel to cycle between several different animations, but there’s not a lot of room for more anything on the collar and I was concerned about it getting accidentally bumped a lot. I may set up a little detachable mode button module so that they can hook up the button, turn on the collar, cycle to the mode they want, and then remove the button before wearing the collar. We’ll see if anything ever comes of that :P

The wiring is hidden behind the outer band of a two layer collar I picked up at one of the local kink shops. As the bands were already riveted together when I got the collar, soldering up the connections behind the outer band was a bit of a pain, but totally worth it. Especially since I didn’t need to line the collar to make it comfortable to wear! The Gemma & battery pack are covered up by the extra flap of the collar when it’s being worn, so everything is a bit protected & hidden.

I mostly followed the Adafruit tutorial I found here though it did require a couple of modifications to smooth out some flickering and color issues. I think this was only a problem because the tutorial I followed was a bit out of date. It turns out that the more modern version of the neopixels (addressable LEDs from Adafruit) are very sensitive to voltage and current spikes associated with setting different colors. I added a small resistor on the data line to protect against current spikes, and capacitor across the power & ground lines to smooth out voltage changes a bit. With those changes all the color transitions feel super smooth.

Far and away the most difficult part of this project involved dealing with the Gemma itself. It’s super tiny and as a result has a kind of touchy, custom boot loader. Or, at least, it’s supposed to. As it turns out, two of the three Gemmas I ordered arrived either without a bootloader installed or with a corrupted bootloader. Re-flashing the bootloader should have been easy, but was very touchy for some reason. I essentially just had to keep trying until it worked. Even now, it’s not guaranteed to accept a program upload without errors on the first try, though it always works after a few tries. My sense is that this is just some touchiness in the super tiny bootloader and there’s nothing to be done about it. Overall I really like the Gemma - it’s tiny size is pretty awesome - but I’ll definitely think twice before using it again (though next time should be pretty easy now that I understand it’s quirks a bit better).

In conclusion: yay glowing things!