Introduction: LED Array Jacket

Picture of LED Array Jacket

Inserting an LED Array into a military jacket. Looks cool, and will likely get you arrested at airports!

This is a fairly simple project.

Parts Needed:

MAX6952 LED Array Driver
Microcontroller ( I used a boarduino )
280 LEDs ( I used red 3mm purchased at mpja.com cheaply )
Perf board. ( I used a dremel to shave it down to size )
40 PIN DIP Socket
4 AA Battery Pack.
Threaded core ribbon cable ( Tried using solid core... DOES NOT WORK )
I used a 15pin VGA connecter to connect the array driver to the MCU and Power pack. Makes it easy to detach and work on outside of the jacket.

Step 1: Building the LED Array

Picture of Building the LED Array

Building the LED Array is the first thing you will want to do. It's the hardest part and most time consuming. Building an LED array from scratch is effectively a massive time sink. But if you want the leds flush against the fabric you are going to be stuck doing it this way. Alternatively you could stitch in a prebuilt array or get your hands on some old 5x7 array dip chips. But this is how I did it.

Basically you want to follow the MAX6952 wiring diagram and make sure your 5x7 arrays are matched up to what it needs. I've included a photo of the completed array.

I just punched the leds through the fabric and into the perf board. You don't need to solder down the leds to the perf board (as they will ultimately all be soldered together anyways), but you may want to if the fabric is unstable. I used my pliers to bend the pins and inspected the led array with a magnifying glass once completed. Testing continuity with a meter is a good idea too. LED array problems can be hard to diagnose later.

Step 2: Adding the MAX6952

Picture of Adding the MAX6952

I got some protoboard style perfboard for mounting the max6952.

To mount it I just pushed the 40 pin dip socket through the jacket and into the perf board. Solder and done.

Now if I need to wash the jacket I can remove the driver chip. But I really wouldn't try washing this thing the way it's built.

Once this guy is in you will want to wire up the array to the max6952 as laid out in the chips datasheet.

It's a fairly straightforward process. But, for ease I've included a drawing of the pin layouts for the 6952 for anyone who doesn't feel like translating the datasheet.

Step 3: The Microcontroller Interface

Picture of The Microcontroller Interface

So here's the board layout for the boarduino.

I didn't use the proper capacitor values when building the jacket. I didn't want any electrolytics in the mix. The 6952 is a fairly resilient chip and has stood up fairly well to my abuse.

I am providing power to the boarduino directly with the 4AA power supply, and then running 5v to the max6952.

And here's some sample code for interfacing the boarduino with the max6952:

// Max 6952 Example Code For Arduino
// Tested on Boarduino
// Matt Joyce @ NYC Resistor

#define DATAOUT 11//MOSI
#define DATAIN 12//MISO - not used, but part of builtin SPI
#define SPICLOCK 13//sck
#define SLAVESELECT 10//ss

char spi_transfer(volatile char data)
{
SPDR = data;
// Start the transmission
while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission
{
};
return SPDR; // return the received byte
}

void setup()
{
byte i;
byte clr;
pinMode(DATAOUT, OUTPUT);
pinMode(DATAIN, INPUT);
pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
digitalWrite(SLAVESELECT,HIGH); //disable device
// SPCR = 01010000
//interrupt disabled,spi enabled,msb 1st,master,clk low when idle,
//sample on leading edge of clk,system clock/4 (fastest)
SPCR = 0b01010010;
clr=SPDR;
delay(32);
// Configure Register
write_led_twice(0x04,0x01);
// Intensity Pane 1 and Pane 2
write_led_twice(0x01,0xFF);
write_led_twice(0x02,0xFF);
// Scan Limit
write_led_twice(0x03,0x01);

}

byte write_led(int address, int value)
{
digitalWrite(SLAVESELECT,LOW);
//2 byte opcode
spi_transfer(address);
spi_transfer(value);

delay(36);
digitalWrite(SLAVESELECT,HIGH); //release chip, signal end transfer
}

// Write n times for n chips daisy chained.
byte write_led_twice(int address, int value)
{
digitalWrite(SLAVESELECT,LOW);
//2 byte opcode
spi_transfer(address);
spi_transfer(value);
spi_transfer(address);
spi_transfer(value);
delay(36);
digitalWrite(SLAVESELECT,HIGH); //release chip, signal end transfer
}

void loop()
{
// Testing ROM Character Set
write_led_twice(0x20,0x5e);
write_led_twice(0x21,0x5e);
write_led_twice(0x22,0x5e);
write_led_twice(0x23,0x5e);
delay(4000);
// Testing Programmable RAM Space
write_led_twice(0x05,0x80);
write_led_twice(0x05,0x42);
write_led_twice(0x05,0x61);
write_led_twice(0x05,0x51);
write_led_twice(0x05,0x49);
write_led_twice(0x05,0x46);
write_led_twice(0x20,0x80);
write_led_twice(0x21,0x80);
write_led_twice(0x22,0x80);
write_led_twice(0x23,0x80);
delay(4000);
// Gred Test Register Call
write_led_twice(0x07,0x01);

delay(1000);
// Turn off Test Register
write_led_twice(0x07,0x00);
}

Step 4: The Final Form

Picture of The Final Form

I tossed the mcu and power supply into a pocket and ran the 15 pin connector through a hole in the back.

Anyways. That's how I made my LED jacket.

Enjoy.

Comments

squawker (author)2009-06-30

Hey, This is so cool. I was going to make a LED bracelet with scrolling text but up till now I've been clueless. Thankyou so much. This really helped. 4.5 stars :D

PKM (author)2009-05-18

Very nice! Does the chip you used have enough code/data space for scrolling messages? Eg "Dear TSA: I am not a terrorist, they're just LEDs. Chill out."

Oh, and welcome to the site! As you may have gathered, we love LEDs here, and there's actually a competition running at the moment for cool things with LEDs in- I think this project could do well, maybe you'd think about entering it?

- PKM

openfly (author)PKM2009-05-18

Yeah the max6952 does, but you'd need to continually rewrite the programmable character memory then display it. Doable since it can preload buffers then display them. It's just a bit more roundabout than the old multiplexer -> shift register array drivers.

I entered it in the contest. See if I can get a few more LED projects done before the end =P

About This Instructable

7,895views

16favorites

License:

More by openfly:LED Array Jacket
Add instructable to: