Because why not?
A few weeks ago one of my wife’s friends invited her to run an In-the-Dark-5K race, the proceeds of which benefit the Olive Osmond Hearing Fund. The late Olive was the mother of the famous singing Osmonds, and the grandmother of several of our friends in high school.
The race website said
We encourage everyone to wear their brightest colored running gear! Don’t forget your glow sticks and body paint! We will have black lights on the course to be sure that everyone will GLOW for HEARING!
Plus, other friends from long ago live in the same city (Logan, Utah). So we decided to take a road trip.
Back when she first heard about the race, I’d just taken delivery of 150 meters of white EL wire, which will be used in a Halloween project next month. I was testing the EL inverter in the workshop when she walked in. I suggested – half in jest – that we wrap her jacket in glowing wire for the run.
“But can it change color?”
“Well, not really,” I said sadly, recalling that that with a bit of electronic sorcery the phosphorescent hue can be shifted a bit to the left or right. And with some even more clever math, it can be dimmed. But that’s about it.
“No thanks then. Maybe we could use some of your extra lights from the yard tree instead?”
This seemed like a lovely idea. We sketched out some rough plans. Later that afternoon, she took a trip to a nearby outdoor equipment retailer and returned with great handfuls of flat black webbing, plus an assortment of plastic clips, latches and turnarounds.
The drawings and loose parts sat neatly on the shelf until yesterday, the day before the race.
We designed a form fitting vest / jacket skeleton using the webbing, white marking pens and a stapler. Once all the pieces were in the right place, the staples were replaced with machine stitching.
She also fabricated a small pouch to hold the controller and battery pack, and attached it to the vest’s rear, just below the shoulder blades.
The controller board was a a saved prototype from a different project. It was originally designed to drive 6 sections of RGB LED tape (18 channels total, 2A peak per channel, that’s a lot of LED tape) using either live DMX or data stored on an SD card. However, it was easy enough to repurpose a pair of pins to drive the LED node string.
Plus, it was free. Because as any accountant will attest, massive sunk costs can be completely ignored a few months later.
The card contains a DMX input stage, plus a few pushbuttons and LEDs for user feedback. I wrote a tiny program which captured incoming DMX at 44 frames per second, then saved the data to an SD card.
An interesting quirk of memory cards is that although they can be read from very quickly and consistently, the write process is not always as smooth. Even when writing entire sectors (512 bytes at a time) to the card, there can be random and variable delays incurred by the card’s internal electronics. 300 mS isn’t at all uncommon.
So the DMX capture code actually copies data to a very large circular buffer (at very precise intervals), and the SD write routine is triggered each time new data is ready. Since the input buffer is big enough, the two routines never step on each other’s toes. The result is perfectly stable recording and playback, even though both processes are running at different – and sometimes variable – speeds.
It’s an elegant bit of code, if only in a ‘you really had to be there’ sort of way.
Also extremely vital, because dropped frames are ugly and visually jarring.
An 8-AA, 2400 mA-H, NiMH battery pack supplies power. Its output feeds a cute little 7-16v input, 5V/2A DC-DC converter, which then powers the controller and LED string. Testing showed that the 42 LEDs pulled between 800 – 1500 mA depending on their state. The battery pack was tested for an hour under load, with no problems. The DC-DC converter didn’t become appreciably warm, which was nice.
Using a copy of Madrix Professional (again, sunk costs), I built a rough facsimile of the jacket’s LED layout.
The rest was easy. I arranged a cuelist of about 30 different looks, then let them cycle through over about 14 minutes total. Madrix output DMX through an ENTTEC USB Pro interface, and the jacket controller, in DMX capture mode, recorded each and every packet. In regular playback mode, the file is read and (if needed) looped.
“Are you wearing a bomb?” asked a curious onlooker before the race started, and while the vest was turned off.
(How do you answer that question, anyway?)
This comment piqued the interest of a nearby campus police officer. After we turned on the lights, he wasn’t as concerned.
2+ hour run time on a single battery pack
Not nearly as uncomfortable to wear as we expected it might be.
My wife, recovering from a shoulder injury, made good time through the run.
Overkill? Certainly. But it was fun to see people watch and smile.
Here’s some video from the race, then a few minutes inside which show some of the different patterns displayed.