Star Vest
Taking inspiration from the stars above and from a previous project I did, I thought it would be fun to take an upcycled vintage vest and turn it into a star-studded art-vest.
1darkwad (n) - someone without proper illumination at night who could get hit by bicyclists and art cars
Supplies
• Blue vest (free)
• Gemma ($10)
• 10 White Sequins (2x $4)
• 10 Blue Sequins (2x $4)
• 26AWG Silicone Wire ($5)
• Stainless Steel Thread ($6)
• Shrink Wrap Tubing ($5)
• 2000mAh Battery ($13)
• EL Wire w/ Inverter ($12)
• Copper Foil Tape ($6)
• 20 Zener Diodes ($7)
For this project I used different colored wires for each pin to help with visualization. Don't feel like you have to, though it does help a lot when working with all those wires!
Tools
Tools are pretty standard:
- Soldering Iron
- Solder
- Needle
- Clear Nail Polish
- Scissors
- 20-30 AWG Wire Strippers
- 10-22 AWG Wire Strippers
- Flush Diagonal Cutters
- Jewelers Pliers or Tweezers or Forceps
Concept and Planning
Half of the work on this project is in concept and planning. Aside from the aforementioned inspiration, I knew that I wanted to utilize the simplest design possible to create the desired effect. This vest will see a lot of activity so I wanted to minimize the failure points and keep components simple.
First, the concept. I knew I wanted to include EL Wire "piping" to accentuate the lines of the vest and that I wanted the stars to twinkle like real stars would. The twinkling effect would have to be random to achieve the perception of real stars, which with the number of stars I was hoping for to be visible at night in the desert, I would need to rely on a design with a lot of pins or one that utilizes multiplexing.
Once I had a concept down, I needed to tackle the brains. For simplicity sake, I considered using 555 timers for the dimming of the LEDs for the twinkling of the stars, but randomizing their timing complicated things. I decided instead to use a microcontroller. My options included the LilyTwinkle, Gemma, LilyPad, Flora, and probably several more. I decided upon the Gemma for a number of reasons including size, familiarity, ease of use, and functionality.
Next I had to figure which LEDs to use. Going back to my edict for the simplest means to achieve effect, I decided against addressable LEDs like Neopixels for the simpler but still "wearable" Sequins. The best way to connect them to the Gemma would be wire, since stainless steel thread was impractical due to their placement and distance. When doing wearables, standard solid core wire isn't ideal, so I went for flexible stranded silicone wire.
To make the whole thing twinkle in a seemingly random pattern with the Gemma, I needed to multiplex to give me more than 3 twinkling options (the Gemma has 3 pins). Now, just using simple multiplexing off of only 3 pins only gives me 6 twinkle options, but I figured with 20 LEDs this was enough. I chose this method above more complicated multiplexing methods to minimize failure points and reduce wiring.
Finally I designed a simple mock-up in 123D Circuits. The diodes are instrumental in making sure that the signal from one pin doesn't "travel backward" throughout the wires to the other pins. It's a little hard to conceptualize from the mock-up, but all multiplexed LEDs need diodes at some point prior to the wires meeting.
I'll spare you the machinations in my brain that made the drawings above possible (more on that in the next step anyway), suffice it to say I determined the placement of each of the 20 LEDs and how each would be distributed. With 20 LEDs that means each combination would be used at least three times. Given that with this design I'm already pushing the limits of the amperage off the 3 GPIO pins, I made sure to balance the drain on the 3 pins as best as I could.
Wiring Diagram
As if there by some cosmic plan, the Gemma's 3 GPIO pins corresponds perfectly to the 3 primary colors. As is visible in the last step, I took advantage of this while planning to make diagramming easier. So I renamed each of the pins a different color (Red, Blue and Yellow) and each pin combination a different secondary color (Orange, Green and Purple). Distributing the load as best I could, I came up with this:
R: 3
B: 4
Y: 3
O: 4
G: 3
P: 3
This distribution means that essentially each pin has 10 nodes, however the blue node will still see a slightly bigger draw than the other two. I distributed the nodes evenly (5 a piece) on each breast of the vest (see the "pearls on a string" illustration in the previous step).
Diode Prep
I decided to use the diodes as an intermediate to join the silicone stranded wire with the LED sequins. They can then play double duty by providing a terminal to solder to from the wire and a terminal to sew to using the stainless steel thread to the LED sequin (the LED sequins already have a resistor built in).
To prep the diodes for this double duty, I trimmed approximately half the length off of each terminal leg then used tweezers to bend the leg around into a circle to create a diode "bead". I can then sew one end of the bead while soldering to the other.
Wiring and Soldering
With the placement of the sequins all planned out (see the Wiring Diagram step) I ran the primary wire from each pin to each vest panel. I accomplished this by doubling (since there's two sides) the length of wire it would take to run from the back collar to the bottom of a front panel (plus a little extra) then stripping about 1.5 inches (4 cm) of the silicone sheath from the middle of the length of wire. After twisting this exposed section I formed a girth hitch around the Gemma pin with the exposed section and soldered it to the pin. This ensured a solid connection to the pin and a wire that's nearly impossible to pull out.
From there I just created nicks in the primary wire where I wanted to add a split. Then I used a length of wire that would reach two sequins from the split point and stripped the sheath from the section that would be joined and soldered to the primary wire. Heat shrink tubing was used to cover any exposed wire after the join (be conscious of where and when the heat shrink tubing should be put on).
Finally the ends of the wires that would be sewn directly to sequins and not joined to diodes (all of the primary colored nodes in the concept drawing) were formed into little eyelets by twisting a short length of the exposed wire at the end around another wire, soldering then covering with heat shrink tubing.
This was repeated for every wire and color.
The ground line was done differently and last. For the ground, I attempted as few splits as possible, opting instead to sew the conductive thread directly into slits made in the ground wire (see step Wiring the Sequins). This was easiest to do once all of the positive leads were sewn to the sequins.
Sewing on the Sequins
The folks over at Adafruit already have a pretty good tutorial on how to sew on led sequins with conductive thread (click here); since this is a bit of a hybrid method I thought it would be a good idea to cover some extra ground.
Given the distance the signal needs to travel from the microcontroller to the sequins and the amount of movement the vest will see, silicone stranded wire was the obvious choice. However the wire still needed to be joined to the sequins and that's where conductive thread comes in.
In all honesty, conductive thread is a bit of a pain to work with. It's as if a wire and a piece of thread had an ornery though incredibly useful child. It's hard to pierce through some fabrics, likes to kink up if you pull it through with any resistance and repels solder. Hence, you need to hold your knots and apply a dab of clear nail polish though I did have some luck getting the knots to stay better when using a single thickness of thread (see the Adafruit link above) and a double or triple overhand knot (essentially an overhand knot that you go through again before tightening).
For the vest, some extra foresight was needed. As I mentioned in the last step, some sequins were wired directly to the silicone braided wire (for this see the next step) others were wired to the diode "beads" which were then soldered to the silicone wire. All sequins were wired to the ground the same way however.
Wiring the Sequins
As I mentioned before, the sequins were wired in two different fashions. Wires that were to be connected directly to the sequins were connected using conductive thread through the positive pad on the sequin and through the eyelet created in step 6 (Wiring and Soldering). This accounted for the positive leads to half of the sequins.
The other half of the sequins were connected using conductive thread through their positive pads then through the loop at the cathode end of the diodes. Two diodes were used at each sequin corresponding to the aforementioned wiring diagram and concept.
Lastly, I used conductive thread to connect the negative pad of each sequin to the ground wire mentioned in step 6 (Wiring and Soldering).
All conductive thread was tied and secured with clear nail polish as mentioned in the previous step.
Finishing the Sequins
First I wanted to finish the sequins with some embroidery around each one, however time has a way of not cooperating. Instead I opted for just sewing over the non-light-emitting portion of the sequin with a thread matched to the color of the vest. This allowed for some sort of finish to the vest while also helping to secure the wires inside and relieve some pull strain. About ten to fifteen passes with the thread on each side of the sequin was all it took.
Uploading the Code
Since I had already tested a version of the code in Autodesk Circuits, I was pretty confident the code would work. After uploading, however, I did notice a few things.
The code was modified to work on the Arduino in Circuits, however the Gemma runs a little different. Namely, pad #0 and #1 are the only pwm pads, meaning that they support analogwrite in order to generate an analog signal. This analog signal provides an easy fade capability by choosing a number between 0 (off) and 255 (full power). Pad #2 on the Gemma only supports digitalwrite, so I needed to improvise an analog signal with software.
The improvised analog signal worked well enough, though obviously not as nice as analog write. Essentially I used timing in micros and millis to turn on and off the sequin, therefore simulating what analogwrite does. As I learned however, the anaologwrite command utilizes the Gemma's internal clock and doesn't rely on the cycle time of the sketch; the improvised analog is sketch dependent though, so it will be affected by the time it takes for the Gemma to cycle through.
You can download the code on the project's github. I utilized Arduino 1.6.6 interface to upload the code due to some reported issues with later versions compatibility with Gemma... by the time you read this I'm sure the issues will be resolved.
Adding the EL Wire
I wired the EL wire "piping" starting at one armpit and finishing at the other. This allowed for one continuous piece to be used from the EL wire inverter along the entire vest. You can cut the EL wire and rejoin it though, Adafruit has an excellent tutorial on all things EL wire here.
Using single-stranded clear monofilament thread (sometimes referred to as nylon or polyester quilting thread) I used a fairly tight overcast stitch to attach the EL wire to the edge of the vest. You probably don't need to use as tight of a stitch as I did, however I wanted to be sure that the EL wire would stay on and not get caught on anything considered all of the action the vest would see. The overcast stitch went all the way around, getting tighter at sections that required the EL wire to bend. Once I finished one length of thread, I would use the ensuing new thread to hide and tuck the knotted end of the previously finished piece so that the exposed thread ends wouldn't scratch my skin.
To add the inverter, I wanted it to run off of the same battery as the Gemma. So I cut only the top portion of the pack off (the actual inverter section, not the battery holder) and desoldered the AA positive and negative terminal pads. I then ran a wire from the Gemma ground pad to the negative terminal on the inverter and another wire from the Vout pad to the positive terminal on the inverter (be sure to use Vout and not the 3vo pad since the 3vo pad is limited at 150 mA). The inverter was then allowed to hang freely along with the other wires.
Finishing the Vest
I also added a patch pocket to the back to hold the LiPo battery for easy access, which worked very well.
Complete!
The vest was a huge hit!
I quickly became the de facto gathering point for the group since it was so easy to pick me out in a crowd and countless people commented on how amazing the vest was. The sparkling of the LEDs really did resemble stars and it had several people transfixed.
The battery lasted throughout the night on several nights, only needing topped off with my solar charger once during the week.
If I were to do this project again I think the only thing I would do is look into other diodes. I think the forward voltage on my Zener diodes was too high, therefore all of the sequins that the diodes were used on were about half as bright. This didn't take away from the effect much, since there are bright and dim stars though.