Wednesday, September 29, 2010

LED Coat Project Update

So, for Burning Man this year I decided to go over the top. I wanted to create a large fur coat that lit up at night and was a step farther then a coulpe of other designs I had seen. I was definitely inspired by the Faux Fur LED Coat, Glow Fur, and the Cubatron.

This is the result:

The Amazing Technicolor LED Fur Coat from Arren Parker on Vimeo.

It had to meet a few design restrictions:
  • Be completed in 3 months
  • Programmable
  • Battery powered
  • Durable (I was taking it to Burning Man)
  • Affordable (I probably missed this mark)
The Coat

LED Coat - Unlit
 My original plan was to go with an existing fur coat, however I was unable to find a coat that quite met what I wanted. I ended up deciding to make my own jacket so that I could easily modify it to what I needed and hopefully save some money (Although not necessarily time and complication).

The design I ended up going with is the McCall's pattern 4222 Reversible Jacket Coat. It is a fairly simple pattern, and people have used it before for fur coats for Burning Man. Although it is an incredibly hard pattern to find so I would recommend looking at other options in full length coats. I found my pattern via Ebay.

I have some sewing experience (Thanks Mom!) and that portion went easily enough, other then shedding fur all over the place. In order to choose the fur I wanted I went through Distinctive Fabrics, they have an awesome free sample option that I used to try out different swatches of fur.

I modified the pattern a bit to include side pockets, and changed the hood into a collar. I also haven't finished off the bottom and sleeves properly to allow access inside the lining. I would reccomend creating a test version of your pattern in muslin or other cheap fabric first to ensure it will work for you. In a future version, I would also use an inside layer to attach the heavier components.

The LEDs
The LEDs in the coat are arranged in a 16x16 alternating offset pattern (256 RGB LEDs). After doing some testing with the fur samples and LEDS I got from different sources, I ended up using 5mm common anode diffused RGB LEDs poked through the fur. I ended up going with LEDs from Evil Mad Science as the price was competitive and the color response and brightness from them was excellent, especially compared to Hong Kong LEDs off Ebay.

LED in Fur

To attach the LEDs to the fur, I ended up designing and ordering about 300 tiny custom PCBs. The only company I found that was able to produce the tiny PCBs was Futurlec. Although they are very limited in their specs, I was truly impressed with the turnaround and quality on 300 itty bitty little boards. Each one connects a 5mm RGB LED to a 4-pin Micromatch Ribbon Cable Connector.
Connector, Board, and LED
In order to simplify my wiring, I decided to go with Ribbon connectors to easily connect to each led. I used 3 wires for the RGB lines, and 1 line for the common anode.

Wiring for the LEDs

The Controller
To control the coats LED I ended up deciding to go with Arduino. This was mostly for ease and simplicity. I'm already quite familiar with Arduino code, and I had a few chips laying around. Additionally the community resources are excellent and most of the major components for the code I was able to find easily.

LED Coat Controller Board

In order to increase brightness, I broke it into a 32x8 RGB LED matrix (96x8) so I was only refreshing each LED 1/8th of the time instead of 1/16th. To break this out I used 6 x TLC5940NT PWM drivers. Each chip provides 16 channels of 12bit (4096 levels) pwm control. For the rows I am using a high frequency 595 shift register M74HC59581 with TIP120 Power Transistors.

The code uses a timer interrupt to refresh the display and change the rows. In order to do that I am taking advantage of the fact that the TLC5940s and the 595s use the same protocol for communication and control to have them daisy-chained.

I designed the control board in Eagle and used Advanced Circuits to fabricate the PCB for me. It was a bit of a challenge to get all of the components on a board that would fit in a large pocket. I am still working on a permanent solution for the case of the board and had a bulky temporary solution for Burning Man.

Unfortunately, one of the biggest limitations of the ATMEGA328P is the 2kb of RAM, the array that stores a single frame of data to drive the TLC5940 chips is about 1kb, leaving very little room for program overhead. I could only end up programming simple low memory designs and stuck with a color plasma pattern with a randomly moving center point.

I would still like to redesign the power supply. At its max the coat can draw 5amps at 5volts. I ended up using a Pico-PSU because it provides a steady 5volt line at up to 5amps for between an 8-36 volts inputs. (the link is to the 12-36volt version) I also ended up drawing too much current off of a 12 volt pack of AA's and causing one of them to leak.

A future version of the coat will likely have a more powerful controller that can do more involved programs and include better user control and music reactive capabilities.

Resources I used
Arduino & SparkFun - Ardunio Kits, misc components, and ideas.
Texas Instruments - Free samples of the TLC5940, Yay!
Futurlec - Misc Components, TLC5940, 595 Shift Register, & LED PCBs.
Mouser Electronics - More Misc. Components, MicroMatch Connectors
Avnet Electronics - Even More Misc. Components
Evil Mad Science - RGB LEDs and Microcontroller kits
EBay - A whole bunch of random crap :-)
Advanced Circuits - The main controller PCB
Eagle by Cadsoft - PCB design software, highly reccomend the Sparkfun Eagle Tutorials
Distinctive Fabrics - Awesome Fur and Brocade Fabric

Other Images:

LED Fur Coat from the back, lit.

LED fur coat from the Back

LED Coat from the front

Close up of LED Coat Fur lit up.