A few weeks back a friend introduced us to the enigmatic DJ Schlaut. Turns out he was performing a gig that Saturday, and needed to get his old LED jacket up and running. He asked us if we’d be able to throw some animations on it. How hard could that be we thought - assuming this was a working outfit and we just had to do a little bit of coding to make it work. Oh how naive we were!…
Turns out the suit was in a sorry state, 4 panels of 16x16 WS2812 LEDs were attached with velcro to the jacket, along with a mess of wiring and a big old Arduino Uno connected to a 50W mains PSU….yes, mains.
We got our hands on the suit on Thursday night, so we had a few hours that evening, all of Friday night, and up until 7pm on Saturday to get the thing working again. This was going to be quite a task, but we were up for it…
After inspecting the wiring, and the Arduino, it became clear we couldn’t risk powering this thing up, so a full teardown was required.
We started by cutting everything off of the base jacket, we desoldered all the connections and cleaned up all the joints on each panel. My lovely wife Jasmine then took the 4 panels added some diffuser material, wrapped them in black fabric and added some new velcro to the back. This made a much nicer appearance than previously, and also helped the LEDs be a little more diffuse than before.
While Jasmine was doing this, I hurriedly threw together a bit of protoboard with a Teensy 3.1, a SN74HCT245N level shifter and some screw terminals to get everything wired up. I also added 3 USB cables to the board, wired directly in, to distribute power for each of the panels.
Not the prettiest of enclosures but thats to be expected at midnight on a Friday night!
Rather than use the mains power supply I simply made use of a high output USB battery pack. This pack can output 5.5amps total across 3 USB ports. So we dedicated one port for the Teensy itself, while the other two ports would draw 2A each and be directly connected to 2 LED panels each. The current limiting would be achieved through the use of the power management functions of the FastLED library. This meant that each panel would only have 1A to play with, but this turned out to be more than enough for a very bright display. We’ve since found we could actually lower this to 500ma per panel and still have more than enough light while doubling the battery life to over 12hrs!
After much sewing, and soldering by the end of Friday night we had 4 working panels, powered from a USB battery pack and running some basic animations. So Saturday would involved attaching the panels back onto the suit, and programming up some animations.
With about 7hrs remaining on Saturday, we decided to go the extra mile. This was after all a suit for a DJ, so we decided to deliver an interface that would allow animations to be timed to the beat of the music, and for some control over what animations were displayed and what color palettes were used. This involved hacking up some buttons, we manically searched around and the best thing we could come up with given how little time we had was to make use of a little bank of keyboard switches I had knocking around.
Jasmine quickly made up a little fabric sleeve to house the key switches and a little strap to mount the switches onto the back of the wearers arm. This would then be tied into the suit through a cable running up the arm. While she was doing this, I threw together the code to debouce the switches and started integrating them with the animations.
It was simple enough to add a beat counter, so we hooked up one button to this, allowing the wearer to tap out a beat by hitting one key. What took a little longer was then figuring out what to do with that beat. By the time we had the suit all together it was 3pm on the Saturday afternoon. I had 4hrs to write some animations and get it all working together. Thankfully this was just enough time to get a few basics together, some noise based algorithms, a few mirroring and rotation functions, plus the awesome color palette support from FastLED meant we soon had a wide ranging display that was never dull.
All in all we were pretty happy with the result given the short time we had available to us. From all accounts the performance went great, and we have since had the suit back to do some more advanced animations which you can see in the video above. This isn’t our full time job, but we do love making blinky things, and it turns out we’re pretty good at it too! So if you’re interestied in having custom LED wearables made, be it large LED installations, wearable outfits, or just lighting up a bike or a car, then please do give us a shout and we’ll see what we can do.