LED Bicycle Ornament

Jeremy Elson, November 2017

The bicycle ornament has 34 LEDs: a headlight, taillight, and 16 LEDs on each wheel

In 2017, I wanted to create a unique gift for Gracie, a cyclist. The result was this bicycle-shaped ornament—circuit-board artwork measuring 6” x 3” (16cm x 8cm). It has 34 LEDs: a white headlight, a flashing red tail light, and 16 green LEDs around the rim of each wheel. Pushing the button makes it light up for 5 seconds. It’s powered with two CR2032 batteries held on with clips that take the place of the wheel “hubs”.

Gracie loved the gift, and I was so pleased with how it came out that I tried to sell it. Unfortunately, that didn’t work out very well so I ended up just giving dozens of them away.

The First Version

In the fall of 2017, I was fresh off the success of my Heart Circuit Board, a PCB that mimics my friend Missa’s tattoo. Gracie, an avid cyclist for years, has a hand-drawn tattoo of a bicycle on her leg. I thought she might enjoy a gift of that tattoo brought to life.

I first took a photo of her tattoo—surreptitiously, so as to not ruin the surprise! Then I set to work searching the Internet for bicycle clip art. After scrolling through dozens of candidates I found one that was pretty close imported it into Illustrator for some tweaks. I brought the vector artwork into Eagle and used it to create the PCB’s boundary using this excellent tutorial.

Driving 34 LEDs directly from a microcontroller seemed inelegant; a part with 34 GPIOs would be big. In addition, the routing would be tricky: the bicycle outline meant all the lines between the CPU and the front wheel would have to go through the narrow bicycle “fork” below the handlebars. I opted instead to place a 16-output, I2C-controlled LED driver on the back of each wheel. That way, the traces would all be relatively short, and the fork would only need to be wide enough to pass the I2C control lines through. I picked the STP16CPC26, in a TSSOP package with exposed leads to make it easier for me to solder by hand. The microcontroller was an ATtiny44, a low-cost, 20-pin, 8-bit microcontroller I’d used in the past. The code, of course, was written in RULOS, the treehouse operating system that my friend Jon and I have been writing since 2007.

V1 front view
V1 rear view

Gracie loved it! I loved how it came out too—so much that I decided to sell them. This turned out to be a mistake.

The Second Version

Before producing the ornaments en masse, I made a second revision with a few small improvements. I replaced the clunky power switch with a momentary pushbutton that lights the ornament for 5 seconds and then shuts off automatically. The old switch had simply cut power to the entire circuit, but for V2 I finally learned how to put the attiny44 into a very low-power mode, waiting for an interrupt from the pushbutton. I moved the 6-pin programming header up to the top so it could double as hole for string to hang the ornament. I changed the color to a more festive red, rather than the tattoo-matching black. Finally, I was able to switch to a less expensive LED driver—the IS31FL3216. I couldn’t use the IS31 for V1 because I was hand-soldering the ornament, and I can’t solder QFN (no-lead) packages where the pads are tucked underneath the package. V2 was going to be assembled by a board house, which can solder QFN packages without any issue.

V2 front view
V2 rear view
The ornament in-situ on my friend Jon's tree

I had PCBway make 100 of them, wrote a package insert, spent hours putting together retail-packaged boxes, and created an Amazon listing. My original plan was to enclose two CR2032 batteries right in the package as a convenience to buyers—a harmless decision, right? Alas, no: the presence of a Lithium battery, even as small as a CR2032, triggered all sorts of heavyweight processes at Amazon; it took months to get all the paperwork sorted out. Even after I was able to get the listing approved, my fun and whimsical ornament would arrive to customers with a big, scary warning sticker showing a battery on fire. Also, my package could only be delivered via ground shipping.

Assembly of the retail packaging

After all this, and with listings on both Amazon and Etsy, I only sold perhaps 20 ornaments in 4 years. At one point it had been so long since the last sale that Amazon sent all the unsold stock back to me. The ornaments were being stored in 10 different Amazon warehouses, and day after day I’d get boxes back from one warehouse containing one or two bicycles. At this point I was sorely regretting ever trying to sell these things: it had taken so much of my time, and no one seemed interested in buying them anyway!

The End of the Road

The project finally ended in 2024. Amazon disabled my listing again due to some battery-related issue; I assumed at first it was the same problem I’d had before with enclosing a battery in the package. After a couple months of back-and-forth with their customer service, I finally discovered it was a more fundamental problem. A couple years before, a toddler named Reese had tragically died after eating a coin cell battery. “Reese’s Law” was enacted in 2022 and took effect a couple of years later, making it illegal to sell products containing coin cells unless the battery enclosures are designed so as to not release the batteries easily or accidentally. Amazon, following the law, was requiring me to show a certificate of compliance from a laboratory demonstrating my product was tested and found to be in compliance. Of course, the bicycle’s design made it uncertifiable; the batteries are exposed with no protection at all, as part of the aesthetic. Even if the design were somehow fixed, an inspection would cost thousands of dollars—ten times the lifetime revenue the product. Clearly, it was time to shut it down.

I had Amazon send all the stock back to me again, and I posted a message to my office bicycling forum asking if anyone wanted a free ornament. A handful of people came to get one, and the debacle finally came to an end.

The moral of the story: let a gift simply be a gift!