loading

Light for life: Glowing button cycling jacket

FeaturedContest Winner
Picture of Light for life: Glowing button cycling jacket
mothersdayjacket-2.jpg
mothersdayjacket-9.jpg
mothersdayjacket-16.jpg
mothersdayjacket-3.jpg
Not everyone wants to look like an athlete while cycling to work or school. This cycling-jacket, made of hemp and wool, is equipped with lots of shining bright LEDs. It looks just as good during the day as it does during the night. Embedding the Arduino Lilypad electronics in the jacket, makes it at practical as it is nice to look at!
 
Remove these adsRemove these ads by Signing Up

Step 1: Gather stuff for the project

Picture of Gather stuff for the project
This project includes working with textile and a bit of electronics.
To make the jacket I used the following tools:

- sewing machine
- sewing needles
- seam ripper
- enough cloth to make a jacket
- tape measure
- pins
- sewing thread in different colours
- 16 semitransparent buttons

electric tools/equipment:
- multimeter
- conductive sewing thread
- Lilypad Arduino
- 2 Lilypad pushbuttons
- Lilypad batterypack
- 6 red 3mm LED
- 6 orange 3mm LED
- 2 white 3mm LED
- puffy fabric paint

Step 2: Start our own sewing project!

Picture of Start our own sewing project!
The project starts pretty simple; acquire a jacket you like, I am using a sporty running-jacket. You can either use the jacket as it is, or you can take it apart with a seam ripper. When the jacket is taken apart, quickly iron out the parts, especially the seams, to make it easier to transfer the pattern to the textile. For my jacket I use 3 different textiles, Hemp Denim (500gsm), Hemp canvas (300gsm) and wool jersey (200gsm). Denim for the front and back, canvas for arms and wool underneath the arms.

Open up seams and lay the parts on your textile. Outline the parts with tailors chalk or a coloured pencil, and cut out the pattern with a pair of sharp scissors. Make sure to lay the textile in double layers, to get two mirrored identical parts (for the ones that are identical).

Step 3: Sewing the jacket

Picture of Sewing the jacket
For complete instructions on how to assemble and sew a piece of clothing, I will recommend another tutorial on this site. This is on of my first sewing projects, and I have limited skills. I have assembled the jacket inside out. I have mostly used a jeans seam, with a strong polyester thread. This makes it a solid piece of clothing.

The original jacket, being a running-jacket, has a thin netting fabric underneath both arms to keeps your body cooler under sweaty conditions. I have replaced this with a comfortable thin wool fabric. When sewing this thin wool together with a thick hemp denim, make sure not to stretch the cloth. I was forced to undo the seams more than once, and I assure you, opening up a seam on thin wool is a bit of a task!

Step 4: Exploring with electronics

Picture of Exploring with electronics
The jacket is now sewn together, zipper not included, and it is time to start planning the electronics, which basically makes the jacket one large ciruit-board. I advise you to draw a simple semantics for the placement of electric components on your jacket. I have decided to place 12 coloured lights on the back, in pairs of 3, and 2 white lights on the front. A push-button on each arm to activate the lights. It is important to remember that the conductive thread, usually made of polyester and stainless steel, does have a lot of resistance. I measured 14 ohms pr. 30cm (or 1' foot) on my 4-ply thead, as opposed to standard 1mm wire, which is less than 0.5 ohm. The Arduino Lilypad carries a 5v output with 40mA. Placing the LEDs at right distance from the mainboard, you eliminate the need for resistors. Here is a simple LED calculator

Step 5: Make your own shining bright buttons

Picture of Make your own shining bright buttons
mothersdayjacket-12.jpg
mothersdayjacket-4.jpg
mothersdayjacket-5.jpg
mothersdayjacket-20.jpg
The standard 3mm LEDs come equipped with an epoxy lens to direct the light in one way. With some sandpaper, rub down the lens, so you are left with only the metal core. Caution! if you look closely, you will se that there is a small metal wire right above the light source, do not rub this away! At a local store I found some simple semitransparent buttons, 14 for the lights and 2 for the pushbuttons. Using a mounted or handheld powertool, make a small hole where it makes most sense to place the LED. My hole measures 6mm in diameter, 2mm deep. I have placed the hole below the button-holes. Bending the legs on the LED so they are pointing in the same direction as the light, the legs are put where the button-holes are. To make it look better, cut two small grooves from the LED hole to the button-holes, one for each leg. The reason for this is that you will later sew the buttons to the jacket with conductive thread. The conductive thread will connect with the led LED legs, + and -, and make them shine!
Remember: on normal LED lights, the longest leg is +. place all the LEDs the same way, and it will be easier for you!

Step 6: Make your own interactive jacket

Picture of Make your own interactive jacket
mothersdayjacket-16.jpg
mothersdayjacket-17.jpg
mothersdayjacket-3.jpg
With all the LED buttons ready and the schematics at hand, it is time to start sewing with conductive thread. The 4-ply conductive thread is placed in the bottom thread, with a cotton or polyester thread on top of the sewing machine. I have measured up all the lengths, with approximately 20cm excess on each end. I have decided to place the mainboard and battery at the inside on the front of my jacket.

All the lights at the back of the jacket are in pairs of three. This means that each section has to have 4 connections, one for each light(+), and a ground(-). Make sure no conductive thread is overlapping without placing something in between. This is where the ground(-) for each button have to overlap the other threads. This for my part is the most time consuming, but keep in mind, this is where you can experiment with ornaments and coloured threads!

When all the theads are in place, it is time to start sewing the buttons together. Caution: when sewing the button, + and -, make sure they don't touch each other, this will cause a short. With a small needle, I sew each thread 3 times, making sure there is a firm connection with the LED legs. Do the same with the pushputtons, placed on each arm. On top of the pushbuttons I have simply sewn a button on top, to make it look better, and making it a larger button. As well as tying a knot to fasten the button, use a soldering-iron to melt the end thread to its self. This reduces risk of the two threads touching and creating a short!

Step 7: Connecting the Arduino

Picture of Connecting the Arduino
In my project I have linked up all the lights to an Arduino Lilypad prototyping board. This is a small round circuit-board that you can connect to any USB, and enables you to create an infinite number of light sequences and fuctions. It is reasonably simple to use, though some programming needed. Check out the Arduino homepage for more info and where to buy.

It is also possible to just connect it all to a simple battery. In fact, this would be a whole lot easier. I want my lights to act as turning signals, so I have used the Arduino.

Step 8: More on connecting the bits and pieces

Picture of More on connecting the bits and pieces
mothersdayjacket-14.jpg
To make it easier(or more difficult), I have soldiered all the electronics, the Arduino and its 5v battery, to a copper circuit-board. The circuit-board has a connector soldiered to it. The opposite connector is placed on the jacket, with each thread connected on a seperate pin. The connector is a 34-pin floppy connector I found in an old computer, and is perfect for my project.

It is also possible to sew the Arduino Lilypad and its batterypack directly to jacket. The board should be waterproof, are we to believe the creator Leah Buechley. Check out her webpage for more info.

All the ground(-) theads are put together. Remember where you place the - on the connector, as it has to be placed at the same place on Arduino board. As the Arduino Lilypad only has 14 seperate programmable connections, I have connected the light on the front of the jacket to the + on the battery. The 12 light and the 2 pushbuttons are put on the programmable connections.

On the programming part, I have basically borrowed Leah Buechley's code for her cycling-jacket, and given some more fancy light sequences, as I am very novice in Arduino programming. At the bottom of this page i have pasted in my code. Check out Leah's homepage for more detailed info on how to connect the electronic components together, particularly her jacket!

To insulate the conductive thread is advisable. This helps the threads touching eachother. Paint all the threads with puffy textile paint.

int BL1 = 10;
int BL2 = 9;
int BL3 = 8;
int TL1 = 6;
int TL2 = 5;
int TL3 = 4;

int BR1 = 11;
int BR2 = 12;
int BR3 = 13;
int TR3 = 3;
int TR2 = 2;
int TR1 = 1;

int leftSwitch = 7;
int rightSwitch = 0;

int x, y;
int mode = 0;
int DAY = 0;
int NIGHT = 1;

int d;

void setup() // run once, when the sketch starts
{
d = 100;

pinMode(BL1, OUTPUT);
pinMode(BL2, OUTPUT);
pinMode(BL3, OUTPUT);
pinMode(TL1, OUTPUT);
pinMode(TL2, OUTPUT);
pinMode(TL3, OUTPUT);

pinMode(leftSwitch, INPUT);
digitalWrite(leftSwitch, HIGH);
pinMode(rightSwitch, INPUT);
digitalWrite(rightSwitch, HIGH);

pinMode(TR1, OUTPUT);
pinMode(TR2, OUTPUT);
pinMode(TR3, OUTPUT);
pinMode(BR1, OUTPUT);
pinMode(BR2, OUTPUT);
pinMode(BR3, OUTPUT);

}

void loop() // run over and over again
{
checkLeft();
checkRight();
if (mode == NIGHT)
night();
else
day();
}

void checkLeft()
{
if (digitalRead(leftSwitch) == LOW)
{

while (digitalRead(leftSwitch) == LOW)
{
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW | digitalRead(leftSwitch) == LOW);
mode = 1-mode;

return;
}
}
leftTurn();
}
}

void checkRight()
{
if (digitalRead(rightSwitch) == LOW)
{

while (digitalRead(rightSwitch) == LOW)
{
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW | digitalRead(rightSwitch) == LOW);
mode = 1-mode;

return;
}
}
rightTurn();
}
}

void leftTurn()
{
for (x=0;x<10;x++)
{
digitalWrite(TL1, HIGH);
digitalWrite(BL1, LOW);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW);
digitalWrite(TL1, LOW);
digitalWrite(BL1, LOW);
return;
}
}
digitalWrite(TL1, LOW);
digitalWrite(BL1, HIGH);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(leftSwitch) == LOW)
{
while (digitalRead(leftSwitch) == LOW);
digitalWrite(TL1, LOW);
digitalWrite(BL1, LOW);
return;
}
}
digitalWrite(BL1, LOW);
}
}

void rightTurn()
{
for (x=0;x<10;x++)
{
digitalWrite(TR1, HIGH);
delay(d);
digitalWrite(TR2, HIGH);
delay(d);
digitalWrite(TR3, HIGH);
delay(d);
digitalWrite(BR1, LOW);
delay(50);
digitalWrite(BR2, LOW);
delay(50);
digitalWrite(BR3, LOW);
delay(50);
digitalWrite(TL1, LOW);
digitalWrite(BL1, LOW);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW);
digitalWrite(TR1, LOW);
delay(d);
digitalWrite(TR2, LOW);
delay(d);
digitalWrite(TR3, LOW);
delay(d);
digitalWrite(BR1, LOW);
delay(d);
digitalWrite(BR2, LOW);
delay(d);
digitalWrite(BR3, LOW);
delay(d);
return;
}
}
digitalWrite(TR1, LOW);
delay(d);
digitalWrite(TR2, LOW);
delay(d);
digitalWrite(TR3, LOW);
delay(d);
digitalWrite(BR1, HIGH);
delay(d);
digitalWrite(BR2, HIGH);
delay(d);
digitalWrite(BR3, HIGH);
delay(d);
for(y=0;y<10;y++)
{
delay(30);
if (digitalRead(rightSwitch) == LOW)
{
while (digitalRead(rightSwitch) == LOW);
digitalWrite(TR1, LOW);
delay(d);
digitalWrite(TR2, LOW);
delay(d);
digitalWrite(TR3, LOW);
delay(d);
digitalWrite(BR1, LOW);
delay(d);
digitalWrite(BR2, LOW);
delay(d);
digitalWrite(BR3, LOW);
delay(d);
return;
}
}
//digitalWrite(BR1, LOW);
digitalWrite(TR1, LOW);
digitalWrite(TR2, LOW);
digitalWrite(TR3, LOW);
digitalWrite(BR1, LOW);
digitalWrite(BR2, LOW);
digitalWrite(BR3, LOW);
}
}

void night()
{

digitalWrite(TR1, HIGH);
digitalWrite(TR2, HIGH);
digitalWrite(TR3, HIGH);
digitalWrite(BR1, HIGH);
digitalWrite(BR2, HIGH);
digitalWrite(BR3, HIGH);
digitalWrite(TL1, HIGH);
digitalWrite(TL2, HIGH);
digitalWrite(TL3, HIGH);
digitalWrite(BL1, HIGH);
digitalWrite(BL2, HIGH);
digitalWrite(BL3, HIGH);

}

void day()
{

digitalWrite(TL1, HIGH);
digitalWrite(TR1, HIGH);

digitalWrite(BR1, HIGH);
digitalWrite(BL1, HIGH);
}

Step 9: And there was light!

Picture of And there was light!
mothersdayjacket-8.jpg
mothersdayjacket.jpg
mothersdayjacket-2.jpg
And there was light! The jacket works well, and my mother is now a whole lot safer cycling at dark. And mum, if you read this, remember to wear a helmet!
bkf115 years ago
Hi. I am very impressed by the care and integrity of this project. I love the way you incorporated the LEDs into buttons and used conductive thread (where do you get that from?) and thus really incorporate the electronics into the piece of clothing rather than simply sewing wires and bare LEDs onto a jacket. Very very clever! Benjamin
lioncour2 years ago
This is so cool.
The woman is also nice.
is it washable??
Is it ?
ShortedOut5 years ago
If you are still monitoring this instructable... Judging from the size of your buttons next to the drill bit in your photo (you said that you drilled 6 mm holes), they must be around 3 cm in diameter? I have searched everywhere for semi-transparent buttons in a large size, and can't locate any. Were these vintage buttons that you already had? Or were they new when you made the instructable? If so, is there a place online where I could buy them? Thanks so much..
Also try http://www.buttons-boutique.com/
this site has a variety: http://www.thefind.com/crafts/info-clear-round-buttons If you live in the US check fabric stores like JoAnn's or Hancocks. Craft stores often have bags or small tubs of misc buttons, but may only have 6 of same one
skunkbait6 years ago
Don't wear it to the airport!!!!!
That's what they said about my road flare coat.
hahaha
ShortedOut5 years ago

I thought of a tip for sanding down your LEDs... could you perhaps use a fingernail file instead? I'm thinking of the kind that you can buy cheaply at the pharmacy (or druggist, as they say in the UK), which have a course grit on one side and a fine grit on the other. Might be a way to avoid sanding your fingers...

0utbreak5 years ago
wow man u have skills :D
nakul6666 years ago
a life saving instructable:)
graytac6 years ago
Very cool and Mom is not so bad either.
Thats kinda what i was thinking when i saw the second picture.
LOL Dude, leave his mum alone!
patapon6 years ago
Good luck!
kempton (author) 6 years ago
The jacket is insulated with puffy fabric paint, that isolate the conductive thread, so they don't corrode. The arduino lilypad is also waterproof. The weakest point would be the battery i presume, so don't get too wet :) Regarding the helmet, I agree that it is important. Too many people don't bother with it. This was the case when I took pictures of my mother in the Frogner park in Oslo.
gtrldy6 years ago
What about wearing in the rain? Will this cause any trouble with rusting or such of the parts?
great idea wont make a difference without a helmet
Preventing an accident, and minimizing injury IN THE EVENT of an accident are two very different things. If you think you're going to have an accident, then by all means, wear the helmet. But many of us are satisfied with just taking steps to prevent the accident in the first place.
vhcl6 years ago
THIS IS GREAT!!!!!! Now I have to get a Sewing machine for my wife, and convince her to do the sewing and I'll take care of the electronics. Thank U for a awesome Instructable
Phoghat6 years ago
I may be dense, but why didn't you use the jacket you ripped apart?
kempton (author)  Phoghat6 years ago
Well, really I just wanted to make a jacket with a sporty fit in a material like hemp which is more casual. Also, the jacket was black, and I found the shining buttons to be a lot more visible on a light background/textile.
Calorie kempton6 years ago
Aren't sporty and casual at odds? And what's wrong with denim cotton?
oscaram126 years ago
Wow, I am a biker man, this is awesome, but i don't know sew; with this idea I have an inspiration to try with an old jacket. Jacket with LED´s rocks.
mdandron6 years ago
this Instructable is awesome! I'm very impressed with your sewing/electrical talent.
kempton (author) 6 years ago
The switches for the turningsignals are placed at the end of each sleeve. this makes it easy to either hit the sleeve on the handlebar, simply pressing it, or against your body. I did try with a accelerometer, but it proved to be slightly overkill and expensive. What I also would like to get hold of, is conductive thread that is already isolated, so I dont have to use fabric paint afterwards. Suggestions?
I wonder if you could sew with thin magnet wire. It has an insulating coating and is about as thin as some threads.
Magnet wire is not ideal for two reasons: more subject to fatigue than conductive thread, and also the insulated coating is probably too fragile to survive long in this application. Mostly it's the fatigue that would get you.
astri-ma6 years ago
Oh, and we need a hat. (EHM - isn't there supposed to be a helmet? Hmmmmm, the model seems to be a bit of an anarchist. Or is it the designer?) But I'd want a couple buttons on the top of the hat too, to signal low-flying aircraft or crows.
astri-ma6 years ago
Brilliantly simple, recyclable non-invasive idea. So simple - "even mom can do it," -uh - oh, right, Kodak got sued for that silly line. But it's brilliantly democratic. I want one! But I want more buttons. It would be cool to take it a step further, and do a customized design on the back, with smaller buttons. For me, a nice spiral with echoes of viking and celtic. Keep it up Kempton!
thepelton6 years ago
I like it! I do a lot of bike riding myself, and find myself out on the street after dark a lot. What I would probably do is put one or more of the shoulder lights out on the sleeves so you could signal right and left just by putting out your arms.
Light for life - I love this title :) This is one great design, aesthetically and comes with fabulously detailed instructions.
Doctor What6 years ago
How fantastic! It looks amazing, and she looks dashing in it!
kenbob6 years ago
I like it! where did you put the switches for turn signals?
fwjs286 years ago
sweetness...
lemonie6 years ago
Yea, I like it! L