The Hawaii STEM Conference was held March 30/31st at the Marriott Hotel in Wailea, Maui HI. This is an annual gathering hosted by MEDB’s Women in Technology (link) to bring together students and teachers from Hawaii middle and high schools for classes and sharing various STEM (Science Technology Engineering and Math) topics.
This year Maui Makers was invited to repeat the Sewing Electronics class taught at the February “Introduce a Girl to Engineering Day” event also sponsored by MEDB’s WIT. The 2 hour class was listed as “Creative Innovation”, promising:
“The way things are invented is changing rapidly. Technology is now available to create innovative products on deemed, locally at low cost. Shared equipment workshops known as Makerspaces and FabLabs are popping up around the world, giving people access tanned training in this technology. Join the Maui Makers group as they help you explore various technologies from laser cutting and 3D Printing to sewing electronics into clothing.”
That translated into a short (~15 minute) presentation and ~45 min of sewing color cycling RGB LEDs onto a felt bracelet, with a Makerbot Thing-0-matic running on a side table. I was assisted in this class by Makers Evelyn Z (also a teacher at Kihei Charter School), Dina M., Lynn F., Kimberly D. and my son Brian. There were about 25 kids in the class, with a couple friends of mine (Lotus and Josh) from King Kekaulike High School Robotics Club coming in later after they finished presenting their school’s STEMWorks projects.
The presentation itself was pretty simple. I called it “21st Century Innovation and Hands-on Sewing Electronics”. I have split it into two parts for PDF uploads. The first half is on 21st Century Innovation Spaces and the 2nd half is the Hands-on Sewing Electronics portion.
First I talked about the history of making (hand crafting -> industrial manufacturing -> 21st century print-on-demand). Then on into ’21st Century Innovation Spaces” – namely FabLabs, TechShop and Makerspaces. I talked about CNC and Desktop Fabrication (additive and subtractive) with example pictures. I touched on Electronics and Physical Computing then moved on to Soft Circuits (aka e-Textiles). I finished up with a quick review of how to do 3d printing on a Makerbot – as Evelyn Z fired up the Thing-o-matic.
Teaching a room of middle/high school kids is fairly new to me. There were a few points were I tossed out some terms (eg. Fabrication) that probably were new to many of the kids. Fortunately, Evelyn was there to help me – interjecting questions to the students for these teaching moments.
I had a surprise for the kids when I got to the e-Textile slide. Under my shirt, I was wearing my LED T-Shirt. This is a plain white T with an 8×10 array of individually addressable RGB LEDs sewn in. I fired it up mid-slide and WOW! kids lit up brighter than the shirt. More on this shirt further down this post.
The later half of the presentation was instructions on sewing the LED bracelet. I gave a quick overview of the project and then started the kids working on the steps. As we worked through the steps, I advanced the slides. Printouts of the main steps had been distributed to the tables, along with components before the class started.
The bracelet was pretty straight forward – black felt, conductive thread, battery holder & battery, two LEDs on LilyPad PC boards, and metal snaps. The basic idea was to sew from one snap to – side of battery holder; from + side of battery to + sides of both LEDs; from – sides of both LEDs to the other snap. Closing the snaps around the wrist would complete the circuit and light the LEDS.
This was a step up from the “Intro a Girl to Engr.” class, that lacked the battery holder and snaps. I figured with 2 hours (vs 1) we would have time for other components. Another big change from the last class was better visual aids. The presentation/handouts had pictures of what was expected, and Kimberly brought in a terrific multi-color blackboard/chalk drawing. Dina and Evelyn made a few quick additions before class started. It was a big help to some of the kids. Having the assistants was absolutely essential. Kimberly and Dina had been over to the makerspace on Tuesday for a trial run, which was big help. Evelyn and Lynn had helped me at the Intro A Girl class. Brian, well, he was friends with many of the kids.
One big area that helped was having LOTS of the needle threaders. Conductive thread is rather large and very difficult to fit through eye of needles – especially when needles need to be small enough to fit through holes in battery holders, etc. Last class we ran out as they broke, etc. This time I had 250 on hand.
The best laid plans of mice and teachers … it was amazing how many creative ways simple instructions can go wrong. The assistants were quite busy helping kids out – and kids were helping each other too. Several kids ran out of thread and needed more – generally due to some sewing mistake that needed to be backed out. We had some super perfectionists who took a lot longer than others. Their work was great, it just took longer. Overall the kids were successful. I think all the bracelets worked. I saw several of the kids wearing theirs later in the day. Then again there were some who gave me back their finished projects, not really wanting to take it home.
Classic mistakes were:
- sewing wrong polarity of battery/LEDs (quite easy to do)
- crossed stitching or loose ends shorting out
- thread looping around sides rather than thru material
- loosely attached parts – threads not pulled tight
The LillyPad PC boards come in two varieties – pre-populated with SMD LEDs, and bare boards with thru-hole plating. I used the later as they are much less expensive (including bay purchased leds), the holes are bigger and I can get ing 5mm LEDs while the SMD boards are single color. I soldered up about 30 of each type a day or three before the class. These are fairly easy to do, although a bit of a pain as they don’t lie down well for sewing. If I do this class again, I might consider making a jig to hold a bunch of them in position for soldering. An alternative to using the PC boards is to roll the LED legs and sew through the loops.
Sources of materials
You could buy most of the materials at local stores, except maybe the LEDs and battery holders. However small quantities can be very expensive. I was able to get significantly better prices buying from E-bay in quantity. Sparkfun.com was my source for the LilyPad PC boards, conductive thread, and battery holders.
- Blank LilyPad LED PC Boards (Set of 10)
- Sewable/SMD Coin Cell Battery Holder
- Conductive Thread 2ply 1oz, 150yard spool $35
LEDs -E-bay vendor JeledHK I bought both slow and fast change and gave kids one of each:
Batteries – CR 2032 (to match Battery Holder) look around carefully. You can buy singles and 3 packs from lots of sources. I found a vendor that sold 100 for less than the price of buying a few retail single packs.
Needle Threaders – buy lots of these. The ones I got are pretty cheap – in both senses of the word. Having lots of them meant it was no big deal if they break…. and they will break. I’m not sure the higher quality ones are worth the premium price – but I haven’t tried many.
Snaps and Felt: Local Fabric Store. I was able to find quite decent 12 packs of metal snaps for a decent price. Felt may or may not be best choice for bracelets. It worked for me as a strong, simple material. Some instructables (LINK) and advice from friends suggested using the material with cover/backing material. This would add extra sewing which would be fine for personal or semi-commercial projects, but part of my consideration for the class was keeping it simple and fast.
Beads – Dina M. added some small metal beads to her example bracelet, along with doing some artistic patterns with the thread. These made the finished project look MUCH better (her professional level sewing skills helped too.). We made beads available to kids as an option.
The LED T-Shirt was something that I threw together in the week before the class. Syuzi P posted about a CuteCircuit’s really amazing Aurora Dress with hundreds of LEDS created for an opera. When I commented on wanting that on a shirt on Facebook, Suyzi challenged me by saying ‘you could make one’. I had a bunch of LED Strip lying around, and Adafruit had published some interesting tutorials/forum posts about creating arrays, so I took up the challenge.
The result is a fairly simple array using 8 strips of 10 LEDs, using the older HL1606 controller based strips that Adafruit sold in 2010. They upgraded the RGB strips in 2011 (?) to use LDP8806 controllers, so if you buy now you will get the new (better) ones. I had about 10meters of the tape lying around gathering dust. I used 3 of it for Logo Glowego (LINK) but still had lots left over. The 80 LEDs works out to just under 3 meters (32 lights/meter), which at $30+/meter is still pretty expensive. I could probably have used discrete LEDs and saved a lot of money, at the trade off of a LOT of sewing and programming. Having the strips on hand made this a no-brainer. I also had an extra PJRC Teensy 2.0 which is a great form factor for small projects. A LilyPad or AdaFruit’s new Flora platform would be better alternative, but I had Teensy on hand.
First step, after ascertaining there was existing code to help me complete the project quickly, was to cut up the strips and wire them up as an array. Since the strip is linearly addressed, you have to connect them in a ZigZag pattern. The Adavision code from Adafruit provides a function to remap an array to linear LED id. The code was for Processing (eg java code) but it is still basically C, so moving it to Arduino was trivial.
The tricky part of the code was that the Processing code converts the LED id to a pixel array index – which is also a linear vector index. The Processing code effectively has 3 values for each LED – the original pixel image, the mapping value, and the value sent out. This is too much data for a small machine. I wanted a function that would take a pixel index and convert it to an LED index, so applications could set led values directly using this mapping function. Rather than derive a new function that could provide the options of the Processing one, I chose to use its mapping calculations. I wrote these into the mapping vector, then stepped through this array setting corresponding values of the library’s led array with index, then copied the values back to the mapping.. effectively using the leds array as a temporary. I then cleared the led array…
// invert the mapping matrix into leds array
for (i = 0; i < _numLEDs; i++)
_leds[_remapMatrix[i]] = i;
// copy back to mapping matrix
for (i = 0; i < _numLEDs; i++)
_remapMatrix[i] = _leds[i];
// clear led array
for (i = 0; i < _numLEDs; i++)
_leds[i] = 0;
I have not uploaded the code changes for this, as it combines the Java Code (one license) into the HL1606 Adafruit library (different license). Perhaps I can get this straightened out and shared soon.
I chose to make my strips vertical with the power/control coming in at the lower left corner (when viewed from the front.) This allowed me to attach the array only at the top of each column and letting them hang naturally. There was some movement of the strips, but this was a trade of between time and effort. I chose the quick and simple method. It also lets me quickly detach the array to wash the shirt, as the strips are NOT fully water tight sealed.
The wiring required jumping the 3 control lines at alternate ends of columns to create the proper zig-zag, remembering that the left/right pads of each column were reversed (eg column 1 wend gnd A B C NC vcc, while col 2 goes vcc NC C B A gnu) — check this, use real names
Power and ground were connected along the bottom of columns in a daisy chain fashion. Extra care was taken to insure proper connection, remembering the pad reversal each column. Initially I used cables with male/female connectors in the power segment. this left long cumbersome wires, so I replaced them with simple no-connector wiring.
The resulting mesh hangs together pretty well. I used ElementalLED’s silicon sealant to seal the ends of each column. It may be water tight but I have not tested it. I think it needs a second application of silicon before I’m willing to try. (NOTE: do NOT buy the sealant kit or end caps they sell. These are the wrong size. Adafruit has started selling some that are the right size)
The processor used was a PJRC Teensy 2.0. I gained significant comfort using these on the Logo Glowego project. They are a very nice arduino compatible board. I hounded the Teensy on an Adafruit breadboard with standoffs, and put the board inside a Sucrets box. The pins I used to create the socket for Teensy made it a bit too tall to fit into the classic Altoids tin. Fortunately, my parts collection yielded up an old Sucrets lozenge tin that fit quite well.
The LEDs strips draw significant power – about 1amp/meter, at 5vdc. While a LiPo battery would be nice and small, I only had 3.5v LiPos handy. So I opted to use a 4 D Cell battery pack that was in my parts collection. This is pretty hefty but worked well. I used a DC-DC step-down converter (Pololu) to insure the power 5vdc. I used connectors on both input and output ends of the converter making the output one with yellow electrical tape. The mounting screw holes in the dc-dc board were too small fo the scres I had (Spartkfun part link) so I wrapped the entire converter with black tape.
Programming the Teensy beyond the library changes was pretty simple. I used the Basic Patterns example from the Adafruit library with small mods to call the mapping functions. I was going to try using the more advanced PWM version of the library but the examples for that are single effect. I wanted to show off a couple effects.
The setup is quite adaptable. There is expansion room with the Teensy to support sensors to control effects (buttons, body motion, etc.) Adding a blue tooth connection to a desktop or android device would provide more effects.