Make your own wearable LED display |
Click on an image for a movie of the shirt animating the Game of Life (1.7 MB).
Click here for more information about the shirt I made.
what you will need
Some of the supplies you’ll need.
about LED arrays
The naive way to power an array of LEDs would be to allocate one I/O pin of a microcontroller for each LED, tying the anode lead (+) of each LED to the microcontroller, and the cathode lead (-) to ground. This arrangement would quickly become unwieldy, requiring a chip with 100 pins to run a 10 x 10 matrix. Thankfully, we can exploit the essential property of diodes to implement a much more efficient design which will only require 20 pins to run a 10 x 10 array.
Diodes allow current to flow in only one direction. LEDs emit light when current flows through them. By exploiting this property, we can use the design shown below to power N LEDs with square root (N) microcontroller pins. As can be seen from the schematic, the LEDs are arranged in an row-column array with the anode end of each LED attached to a row and the cathode end of each LED attached to a column. Each row and each column is then attached to a microcontroller pin. The microcontroller can then be used to control each LED individually. For example, suppose we want only the LED at row0 column0 (LED R0 C0) turned on. To accomplish this, we first turn all of the LEDs off by setting all of the rows to ground and all of the columns to +5 volts, applying a reverse voltage to all of the LEDs. Then, to turn on LED R0 C0, we set R0 to +5V and C0 to ground. LED R0 C0 is the only LED with current running through it so it will emit light.
A schematic diagram of a row-column LED matrix.
The matrix architecture allows us to control each LED individually, but does not give us complete flexibility. For example, it is impossible to simultaneously turn on only LED R0 C0 and LED R1 C1. To display complex patterns and animations, we exploit the shortcomings of human vision. To make it appear as though LED R0 C0 and LED R1 C1 are on at the same time, we quickly flash first LED R0 C0 and then LED R1 C1 and repeat this cycle for as long as we want the illusion to appear. As long as our eye can’t detect the flicker, we perceive only the diagonal line of light.
For more information on LEDs check out:
How LEDs work from Howstuffworks
LEDs from Wikipedia
Now, on with the project…
design
1. Pick a garment to sew on, a pattern that will let you sew your own garment, or design your own pattern.
2. Design your display. decide on the number of LEDs you want and their general placement. This will depend on the garment you chose and the microcontroller you intend to use as well as how you’d like the display to look. I decided to sew a simple tank top and I chose to place the LEDs evenly across my tank top every 2". Since my tank top is approximately 28" around and 12" tall I needed 84 LEDs.
3. Decide on the microcontroller you want to use. Choose one with an internal oscillator, and make sure you have enough i/o pins to control your matrix. It’s a good idea to pick a microcontroller you are familiar with and read the data sheet carefully! It can take some reading to discover that what you thought was a general purpose I/O pin is input only or an open drain output.
4. Decide on the power-source you want to use.
construction
0. If you’re sewing your own garment, cut out the pieces and partially or fully assemble them.
1. Package your LEDs into sequins. Get out the crimping beads and surface mount LEDs. Tip an LED on its side. Using a soldering iron with a very clean tip, place the tip of the iron into a bead. Tin the bead with lead-free solder; melt some solder onto the outside of the bead. With the soldering iron, drag the bead up to the LED as is shown in the photo below. When the melted solder touches the LED’s contact, the bead will adhere to the LED. Lift the soldering iron out of the bead. If your soldering iron tip is dirty, it will stick to the bead and make the job very difficult. If this is happening you should clean or replace your tip. Once you get the hang of it, this should go pretty fast. You should be able to solder 100 LEDs within an hour.
You may want to take some measures at this stage to distinguish the cathode from the anode lead of each LED. The cathode end is often marked with a green line on the front or back of the surface mount package. To distinguish the two, you can solder a brass crimping bead to the cathode lead and a silver bead to the anode lead for each LED.
LED sequins.
2. In a similar way, solder beads to the appropriate leads for your battery and switch so that they can also be sewn on.
A switch sequin.
3. Mark the lines for your LED matrix on your garment. Also mark where you want your microcontroller (IC socket) and power-supply to be. You want a grid of conductive traces where the vertical traces do not touch the horizontal ones. A simple way to do this is to put one trace on one side of the fabric and the other trace on the the flip side of the fabric, utilizing the fabric as a natural insulator. The lines for the vertical traces should be on one side of your garment and the lines for the horizontal traces should be on the other. I marked both sets of lines on both sides to make sure my lines were well-placed. Use a T square to get good right angles and straight lines.
Marking the lines for the display matrix.
Sew one trial row-column crossing and make sure your threads are being sufficiently insulated by the fabric. If your fabric is too thin, the bobbin thread may be pulled through the fabric and your crossing traces may short out. If there is contact at your intersections, you will need to take action to correct this. As you are sewing out the traces you should stop the sewing machine just before each intersection, and, without breaking the threads, move your fabric past the intersection and resume sewing. This will insure that the conductive thread stays on the proper side of the fabric at each crossing.
Sew out your vertical traces. Flip your garment over and sew out your horizontal traces. You should stop your matrix stitches at a distance from the IC socket to leave room for the knots you will make while sewing it on by hand. You will want to avoid tying knots in areas where space is limited, as it will be in the traces close to the socket, because these knots can cause shorts.
Sewing out the traces.
Top and bottom views of my partially assembled tank top after I sewed on my traces.
5. Sew on the IC socket that will hold your microcontroller. Trim the pins off of the bottom of the socket and pull of any tape or other material blocking the holes. If necessary, drill out the holes so that a needle can pass through them. Position the socket where you want it on your garment and stitch it in place with conductive thread, sewing traces from each microcontroller socket to the matrix traces you sewed. You want to make sure that the conductive thread makes contact with each socket hole, but also to be careful that no two threads cross. This is a delicate job that requires some patience, but if you’re used to doing soldering or any other meticulous work it should be no problem.
Make sure that you tie your knots where there is ample room for them (away from the socket) where they’re less likely to cause shorts with neighbouring traces. Coat each knot with fabric glue. This will keep knots from fraying and coming untied.
Sewing on the socket: back view.
Sewing on the socket: front view
6. Sew on your LEDs. Attach the cathode end of each LED to a row and the anode end of each LED to a column or vice versa. If you did not take steps during the soldering phase to differentiate the cathode from anode leads, you will have to make the distinction now. The cathode end is often marked with a green line on the front or back of the surface mount package. If you are able to find this marking despite your soldering, you can use it. Otherwise, learn to distinguish the direction from the appearance of face of the LED. Test one by running a current through it for reference. Be careful to use a voltage and current appropriate for your LED.
While sewing, take care to make good connections between your thread and each bead, looping the thread through each bead several times, as shown below. The fastest way to sew is to stitch each row and column continuously, not stopping to tie off the thread for each LED. That is, sewing in the cathode end of one LED, and sewing down your row to the next LED cathode without cutting your thread; however, this makes it harder to replace missewn or broken LEDs since you’ll have to cut the continuous thread and tie the ends off in the event of a problem. Alternately, you can sew each LED on individually. This will make repairs easier, but your sewing will take much longer. I chose the first option for faster sewing, but did have to replace a few LEDs.
Sewing the LEDs.
7. Test out your circuit. Using a multimeter, make sure none of your traces are shorting out with one another and all of them are leading to the appropriate LED rows and columns. Spun stainless steel thread tends to fray and give off small "hairs". Make sure there are no miniscule conducting hairs interfering with any of your traces.
You may also want to verify that your LED matrix is working properly by attaching the leads of a suitable power supply to the rows and columns of your array in turn. Look at the specifications for your LEDs if you’re not sure what power supply to use or you may fry all of your LEDs!
Once you’ve done some thorough testing, glue an insulating backing onto the traces you sewed for your IC socket so that your power supply will be easy to attach and these traces will remain in place without fraying with wear.
8. Sew on your power supply and switch.
Front and back views of my tank top after I sewed on the power supply. Notice the insulating backing that was applied prior to sewing.
9. Glue an insulating backing over your power supply and switch traces so that you will not accidentally turn on your display.
10. Program your microcontroller. Here’s my code which implements the game of life for the AVR ATMEGA16:
game_of_life.c
game_of_life.h
tank_top.c
tank_top.h
makefile
See my materials and techniques links page for links to AVR and PIC microcontroller resources that should help you get started if you’re new to this kind of programming.
11. Put everything together and troubleshoot your garment. Inevitably, you’ve attached an LED the wrong way, or a bad solder joint has broken. In repairing problems, I recommend that you avoid attempting to solder LEDs that are on your garment. It’s virtually impossible to do well, and you’re risking ruining your entire shirt by attempting it.
My completed tank top.
12. Enjoy! Go clubbing or something!
This article is reposted with permission of Leah Buechley. (c) Leah Buechley 2005
This material is based upon work supported by the National Science Foundation under Grant No. 0326054.
Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).
You must be logged in to post a comment.
Help us continue our work with a donation
18 queries. 0.395 seconds
October 14th, 2005 at 17:59
I want a shirt like this
GRYNX Make your own wearable LED display Can someone make this for me? :-)…
October 14th, 2005 at 20:13
this is the most well conceived and executed tutorial on this subject i have ever seen. Good work!
October 14th, 2005 at 20:57
Thanks for the comprehensive detail. I’m making scifi underwear as soon as possible.
October 14th, 2005 at 21:50
I’m glad to see that an actual girl was willing to associate with whoever made this thing and wear it. Kudos to the blurred hotty, and wtf is the game Life?
October 14th, 2005 at 21:55
OMG, “you iz a lady.” Waaaay too hot. (inserting foot in mouth) I’m sorry for automagically assuming male gender. A thousand apologees. I’m glad to see girl tinkerers do exist, outside of my dreams. Maybe you (and your electronic junk pile) and me (and my electronic junk pile) can get together, if we can put aside our differences, like say me being a PIC guy and you being a Atsmell girl. =)
October 14th, 2005 at 22:42
This is great work. Try googling for e-textiles (the old Darpa project) and take a look at:
http://www.wipo.int/patentscope/en/database/fetch.jsp?LANG=ENG&DBSELECT=PCTI2C-ALL.vdb&SERVER_TYPE=19&SORT=1130823-KEY&TYPE_FIELD=256&IDB=5&IDOC=130480&ELEMENT_SET=IA,WO,TTL-EN&RESULT=1&TOTAL=5&START=1&DISP=25&FORM=SEP-0/HITNUM,B-ENG,DP,MC,PA,ABSUM-ENG&QUERY=in%2ftrotz
and
http://www.wipo.int/patentscope/en/database/fetch.jsp?LANG=ENG&DBSELECT=PCTI2C-ALL.vdb&SERVER_TYPE=19&SORT=1130823-KEY&TYPE_FIELD=256&IDB=5&IDOC=129470&ELEMENT_SET=IA,WO,TTL-EN&RESULT=3&TOTAL=5&START=1&DISP=25&FORM=SEP-0/HITNUM,B-ENG,DP,MC,PA,ABSUM-ENG&QUERY=in%2ftrotz
I only mention this because I’m curious what you think about the relative manufacturability of woven e-textiles as opposed
to post-embroidery essentially of an existing woven or knitted
object.
October 15th, 2005 at 13:05
Muahaha
Lol
That is SO damn cool!
bye
Funman
October 15th, 2005 at 17:41
Make your own wearable LED display
Chris writes “In a 7 page article Leah Buechley will show you from a-z how she put together a wearable led display perfect for club hopping! (Or maybe NOT!) The purpose of the whole display is to show off the “Game of life” which is a mathematical …
October 15th, 2005 at 23:34
cool project, just in time for Halloween!
To play a java Game of Life online go here:
http://www.bitstorm.org/gameoflife/
The game/demo demonstrates some aspects of “cellular automata”,
how simple rules can lead to complex behavior.
October 16th, 2005 at 1:31
I see you didn’t use any resistors. The part you used does not have R’s built-in. I am puzzled. Is the resistance of the conductive wire so high that you can go without current-limiting ones?
October 16th, 2005 at 4:43
Make your own wearable LED display
Link: GRYNX � Make your own wearable LED
October 18th, 2005 at 15:37
winter break project
GRYNX � Make your own wearable LED display (thanks, marc)…
October 21st, 2005 at 1:24
about resistors – the short answer is yes, the conductive thread has enough resistance so that you don’t need to worry. But, if you’re attaching both LED leads directly to a microcontroller you often don’t have to worry about resistors anyway because the controllers can’t produce that much current.
about weaving – this is something I haven’t tried yet, but there’s lots of cool work being done in this area. see for example “international fashion machines”: http://www.ifmachines.com/index.html
(thank you glen for giving me a good laugh!)
October 26th, 2005 at 11:18
I was wondering how you go about washing this garment. Can u take out the socket and wash it? Can the LED’s be washed?
November 7th, 2005 at 17:31
you can wash it. I haven’t washed the shirt yet, but have washed trial patches (in standard washing & drying machines) with the same LEDs sewn in and they wash fine. The microcontroller can be popped out of its socket & this probably should be done before washing…
November 18th, 2005 at 14:52
Looks like a flowerier.
December 5th, 2005 at 7:28
It may the new style for fahsion designer.
January 10th, 2006 at 20:18
Its not often I get too see an original use for LEDs, especially when used in conjunction with fabrics, who would of thought it, top job.
Fancy having them bracelets manufactured?
June 14th, 2006 at 14:25
I just came acrossed this site… (grin–love it!)
I started doing similar things a few years ago.
I prefer to use acrylic/LEDs together and have come up with methods to fasten them to clothing or make them entirely out of a different material. I’ve attended the local events wearing a tuxedo with approx 55 leds that will cycle through colors… I don’t really sell my stuff or post pictures… The easiest place to see my creations is to find Rustycon or Norwescon…
October 2nd, 2006 at 16:51
That’s great! Thanks for putting this online! Now your next challenge is to figure out how Phillips makes their LED “Lumalight” product check it out:
http://www.research.philips.com/initiatives/photext/index.html
and a video of it here on youtube.com http://www.youtube.com/watch?v=Yd99gyE4jCk
cool, eh?
October 17th, 2006 at 1:52
This is a great idea. However, for me (male) it might look kind of strange…
October 27th, 2006 at 1:37
test dje ek2 djd 23dk32kjd 2kjdkdjk d
December 1st, 2006 at 17:14
(ha ha ha…..!!)
sure. What the world needed more.
Ingenuitiy. And fun.
Keep the good work. Young lady…
(aha ha ha ha..!!)
Be the force with you…
January 2nd, 2007 at 22:24
Comment to Ed (posted on 10/17/06):
When would you wear this sort of thing?
I’m thinking almost any place that has a dance floor (“club-wear”). It wouldn’t matter, guy or gal could wear this sort of thing. I love the fact that you can turn into your own light-show. If you need/want any help catching some extra attention, this is definately one more way to do it!
Then again, I’m much more formal (tux). Everything I do “blends” with what I’m already wearing–You can’t see the display until I turn it on.
Neil
February 22nd, 2007 at 12:48
Thanks so much for all the detailed instructions.
I want to incorporate LEDs into a costume.
How much do I need to learn about electronics before attempting this project? Currently, I have zero knowledge.
Is there anyone in the Bay Area that may be able to provide some instructions?
Thanks.
March 2nd, 2007 at 1:34
Woo Woo! We got a 8×10 array working on a shirt (sort of). We still need to track down some loose ends, but the darn thing works!
Stephanie, the programming part is fairly straightforward but it does require some programming experience. For us, most of the effort was in getting the shirt made. The sewing of the traces was very time consuming and delicate. We might be interested in helping you out, we could certainly provide you with a chip that was preprogrammed. Tansy and I live in Oakland part time, send me mail at cxbrooks at gmail dot com if you are interested.
_Christopher
April 9th, 2007 at 14:25
Dear madim why not sew one trace onto one sheet of material and the other trace into another sheet of material and use a layer of cotton in-between the two layers so stopping short circuits and making shure that nothing starts smoaking while your waring it. Also you might find Electro-Coat will work instead of soldering altough you will have to heat the electro-coat joints up so that the connection goes low resistence….yours faithfully greg.
May 1st, 2007 at 19:09
LED’s and stuff in a costume… =)
Some cheap steps for the untrained in electronics…
1) Buy a soldering iron
2) Practice using it on a scrap piece of circuit board, likely from an electronic appliance that no longer works… =)
X) *** Please Note: Extremely dangerous to heat batteries! ***
3) Try to solder some of those components back on… =)
4) Realizing–most LED’s can be run on a “2016” or “2032” 3v battery. Make a cheap battery holder, switch, and wire up a cheap make-shift flashlight or hijack other “pre-made” circuits!
5) Try buying a simple electronics kit (such as http://store.qkits.com/category.cfm/LED)
* Try smaller/simpler first!!!! *
Here’s what I did (I finally made a picture and put it on the internet):
http://lightsntux.livejournal.com/
6)… Have fun.
Neil
November 9th, 2007 at 22:57
pls i’ll like you to assist me in the design of a project on led scrolling display, i want to display and
sroll “welcome to electrical engineering” pls kindly assist and advice
December 12th, 2007 at 2:28
Great,Creative!
May 2nd, 2008 at 3:52
i am afraid to solder a battery..
can u give me a tips on long can you let the soldering iron touch the battery?
or how can i make it safe..
thanks
May 2nd, 2008 at 3:52
i am afraid to solder a battery..
can u give me a tip on long can you let the soldering iron touch the battery?
or how can i make it safe..
thanks
May 7th, 2008 at 23:10
Can i run the avr micro controller programs on any linux version instead of Mac OS.Will the softwares and C libraries for avr microcontroller you mentioned work on linux of any version also?
Please send me the details or answer my query.
August 16th, 2009 at 19:06
Hey, I’m not sure if you were being serious poster 31…. soldering batteries is never okay – that’s why you have a battery holder 😉