Intro: EL Wire Lightsuit
Electroluminescent Wire is very interesting. While it doesn't photograph particularly well, in a dark room, the effect is very brilliant. I decided to create an Arduino controlled light suit with an attached helmet. The methods outlined here can be applied to an endless variety of applications.
Step 1: Acquire the Materials
This project has an extensive list of materials. These are presented in no particular order:
- Black, spandex body suit. I found one online that shipped from China. There are dance supply catalogs that carry these items. However, some of them are very stretchy and are very small when not being worn. Think of how shrunken panty hose are before being put on. The EL wire isn't elastic, so the garment has to be close to its final size in an unstressed state.
- Black nylon gloves: You can find these online at outlets for dance teams, cheerleaders, and marching bands.
- Mannequin. It may seem unnecessary, but it is almost impossible to work on the lightsuit without one. I found a cheap plastic one online (from China again). It's important to find one that's in a neutral position. Most mannequins have a dynamic pose which makes it very difficult to create a symmetrical layout. Dressforms are another option, but they are for professionals and can be very expensive.
- Electroluminescent Wire. I bought mine from various online outlets. Sometimes called Cool Neon or EL, it's available in different diameters and brightness. It works similar to fluorescent lights. A high frequency, high voltage alternating current causes the phosphors to emit photons. It doesn't get hot, but if there's a loose wire, it can shock you (thoroughly). Mine was 2.6mm super bright. Thinner wire can't handle the flexing of a garment; the thicker wire is too stiff. I used about 70 feet total.
- Materials to terminate the EL wire ends. You need wire strippers, a soldering iron and its accessories, heat shrink tubing, and adhesive copper tape. There are plenty of Instructables detailing the attachment of conductors to the EL wire. It might take a little practice to master the technique.
- EL Tape and Panels. Available from Sparkfun, I used these for the eyes and mouthpiece.
- EL Inverters (or Drivers). These transform DC power into high voltage alternating current to run the EL wire. I used two of them, the Big Boy Classic from Cool Neon Lighting. Make sure it's rated for the length of EL wire you plan to use (hence my need for two of them).
- Curved sewing needles, fishing line, and cyanoacrylate glue. I got my needles from a leather shop. A pair of needle nosed pliers or forceps are also helpful.
- 2-conductor and Ribbon Wire: You'll need a lot of wire to run between the EL material and the control boards. I used 6-conductor ribbon wire to run down the arms to the fingertip switches.
- Black Gorilla Tape: I used up two rolls by the time I was done.
- Autocad, Inventor, and/or 3DS Max software: You'll need CAD-type software and some modeling expertise to create the various enclosures and the helmet.
- (Access to) a 3D Printer and a CNC router table: The helmet was cut in 1 1/2" thick layers out of blue foam. All the other parts were made out of ABS plastic in a 3D printer.
- 8-Cell AA battery holder: I needed the raw voltage supply to be 12V to run the inverters, and I needed it to provide a decent amp-hour duration, so I decided on AA batteries. They're heavy, but placed between the shoulder blades, it's not that bad.
- Two Panel-mount Rocker Switches: These are used for the main power switches.
- Micro Push Buttons (maximum of 8): These are for the fingertip controls. They're momentary contact switches attached to inputs on the Arduino board.
- Micro-controllers and circuit components: I used two Arduino Uno micro-controllers, two El Escudo Dos EL shields from Sparkfun, two audio analyzer breakout boards from DFRobot along with two of their microphone boards. This lets me run two completely independent systems. One runs the helmet, and the other runs the body. The computer programs are slightly different for each.
- Various Tools: You'll need a multimeter, forceps, miniature screwdrivers, knives, scissors, etc.
Step 2: Build the Helmet
I got lazy right from the beginning. I bought a 3D model off of Turbosquid of a Predator helmet. I've seen motorcycle helmets that look like the helmet from the movies, and I thought it would be cool. Since this lightsuit was for my daughter, I considered a more rounded, feminine shape, but it was too hard to resist this version.
I made many adjustments to the model. I wanted the eye shield to have higher temples that were more pointed. I also had to turn it into a three dimensional shell because the purchased version was just a single surface. Modeling in 3DS Max takes some effort. Even though I've used it for years, I'm still learning new things. There are many wonderful tutorials on Youtube that you can spend hours studying. This guy taught me a lot:
By the way, I intended to make the Predator hair out of 5mm EL wire. In fact, I did. The strands were too stiff to flow like hair, and so I just took them out.
Once I had the 3D model to my liking, I made sure it was the right scale to fit her head. Then I used the modeling tools in Max to cut it into slices. These slices were laid out flat (digitally) and converted into a .stl file for the CNC router. We had to experiment a bit. The parts had to stay attached together with pieces of foam so the entire assembly could be lifted off the table and flipped over. It was routed from both sides, and that meant it had to be exactly registered.
Once cut, the pieces can be glued together. Be very careful what type of glue you use. Contact cement will instantly dissolve the foam. I've used the special construction adhesive for foam available from Home Depot etc. It's used to attached styrofoam for EIFS. But it is very thick and you can't squeeze the pieces tightly together. For this project, I ended up using white tacky craft glue. It can take forever to dry.
The blue helmet photo shows it's raw form with some masking tape still attached. Once the glue is dry, you can fill imperfections with spackling compound. I absolutely love Evercoat Rage body filler, but it was too rigid for this application (helmet attempt no. 1 proved this). Lightly sand the helmet until you're satisfied.
I used 1/8" pinstriping masking tape to mark where I wanted the EL wire. Once I was satisfied, I sprayed a light coat of black paint over the helmet and then removed the tape. Now I had a nice guide to make grooves with my Dremel tool. Once the grooves were cut, I sprayed the final coats of black paint on the helmet.
Step 3: Add the EL Wire to the Helmet
Decide how many "channels" you want on the helmet. I decided on three: one for the eyes and mouth, one for the top of the head, and the last one for the side and back.
The wire is fairly continuous. It goes into a hole at the end of segment, then re-emerges elsewhere. At a corner, it might go inside the helmet, make a tight loop, and then come back out the same hole.
You want to minimize the number of connections you have to make to the EL wire. Well, you don't have to, but if you're interested in saving time, you'll do so. Also, my EL wire came on an 80' spool. I didn't want to waste any of it, so I had to fish the wire through the holes and work backwards. If that doesn't make sense, just think it through, or learn the hard way by doing it.
I used a glue gun to attach the wire inside the grooves. That didn't always work, and it made the traditional glue-gun mess. So I alternated with gel cyanoacrylate glue from the RC hobby store.
You'll want to leave enough wire at the end inside the helmet that you can conveniently attach the wires. I won't go through the method because it's detailed elsewhere on the internet (Adafruit comes to mind). Realize that it is almost impossible to accomplish if there's only an inch of EL wire sticking inside the helmet where your hands can't reach.
I covered the EL wire inside the helmet with black Gorilla tape (duct tape as NASA would design it). Make sure there are no raw ends otherwise your daughter might get shocked on the head, and that won't end well for you.
The wire leads accumulate in a bundle that I ran out the back of the helmet. I salvaged a wire loom wrap from a computer power supply that fit nicely around the wires and make it look halfway professional. I bought a 6-wire interlocking connector from Radio Shack so the helmet could be disconnected from the overall lightsuit.
Step 4: Install the Eye Shield and the Mouthpiece
The mouthpiece is fabricated from two layers of ABS plastic. The top piece has the grooves and the back piece is solid. They're modeled with a slight gap except around the edges. I cut a red EL panel (available from Sparkfun and even Radioshack) to fit the shape, sandwiched between the plastic pieces, and glued it together. The wire connector comes out the top but is buried inside the foam.
By the way, I got an electrical foam cutter from Michael's that makes cutting holes a breeze.
The eyes were printed in two pieces because it was too large for my printer. I made tabs on one side and holes on the other. I've found the best glue for ABS plastic comes from Home Depot in the plumbing section. It's like the PVC solvent glue, but it's "universal". Regular PVC cement won't work.
The eye shield was fashioned so the slots below the wide band would be at eye level. There's no peripheral vision in the helmet, but the view straight ahead is pretty good.
For the wide red band, I use the EL tape that comes in 1 meter segments. I just taped it to the backside with gorilla tape.
I glued the eye shield in place, and caulked around the edges with a paintable silicone caulk. This I later painted black.
The wires were joined together and routed to the controller along with the other wires. The inside of the helmet ended up being a uniform layer of gorilla tape. I bought some green foam from the fabric store (the stuff used in cushions). I used spray adhesive to attach a narrow strip at the crown of the head. I then made two U-shapes to fit under the ears. Make sure to test fit this to the standard daughter's head size.
Oh, the tape and panels come with a factory connector. I've read that it's possible to make your own connection like with the EL wire, but that it's very difficult. I tried it as an experiment. It's practically impossible. So I've wasted a lot of material.
Lastly, I wanted the helmet to look perfect, i.e. flat black. I had smudges from hot glue and the silicone adhesive. I tried brushing over it with flat black Testor's paint. Because the foam was so porous, it didn't look any better after I'd done it. Of course, this is only supposed to be used in the dark, so I had to just let it go.
Step 5: Attach EL Wire to the Suit
Verify your daughter is not likely to outgrow the lightsuit by the time you complete it.
Dress your mannequin in the lightsuit. Use the pinstriping masking tape to create your pattern. My pursuit of perfection deteriorated over time. It turns out that it's not critical that the left and right sides be absolutely symmetrical. It just has to be close.
I left the tape in place as I stitched the EL next to it. It was relatively easy to rip it off later. I realized that gorilla tape helped a lot. Where the fabric was deforming too much, I placed tape on the inside to stiffen it. Then as I progressed, I started adding tape to the outside as well. At corners, you sometimes need to stitch through the tape. That's hard to do, and you'll need pliers to help force the needle.
My sewing technique evolved. At first, I'd run the needle through the fabric, make a loop around the wire, tie a knot, and then cut the line. I was doing this every 1/2" or so. So then I got lazy. I made the knot but didn't cut the line. I advanced about an inch up the wire and made another loop/knot. I got into a rhythm that a surgeon would envy.
In this method, the fishing line runs parallel to the wire. Every so often, I'd pause and put a drop of cyanoacrylate glue on the knots. Otherwise, they tend to unravel. Don't glue them until you're sure of the position! And be careful where the glue runs. I have a spot on the zipper that's really stiff from the glue and hard to get past.
When you want to have a crisp corner, you can do several things. Cut a hole in the fabric, then push a loop inside. The wire can't bend tightly, but you can create a loop so from the outside it looks like a corner. You can sew this in place or cover it in tape. Sometimes I got lazy and created the loop on the outside and taped the whole thing down.
I ended up with seven different channels. Each has a pair of conductors running back to the control board.
This is a very laborious and time-consuming step.
Step 6: Create Fingertip Switches
I thought about various methods of controlling the lights. I settled on switches attached to the fingers. In the middle of a dance performance, it could be distracting to reach for a control panel; a thumb touching a finger however, cannot be noticed.
I 3D printed little fingertip cups. I created a bump on the side to enclose a miniature single pole pushbutton switch (Sparkfun COM-00097). I then made a cap to hold the button in place.
Attaching wire leads to the switches and getting them to fit proved to be very difficult. When debugging the final assembly, I had several broken connections to deal with.
A 6-conductor ribbon wire runs up the arm, over the shoulder, and down to the control boards where I attached them to Arduino analog pins 2, 3, and 4. Each hand has three switches--I just didn't need the pinky finger.
I stuffed these into the fingers of a cheap pair of black nylon gloves. They're practically invisible.
By this point, I was getting really lazy. So there's a long length of gorilla tape running up the whole arm covering the ribbon wire.
Step 7: Make the Electrical Enclosures
I'm using two independent systems. The only thing they share is the battery pack. Originally, I planned on using separate batteries, but then I realized that wasn't necessary, and I was running out of space.
Every time I create an enclosure for circuit boards, I never leave enough room. My two systems look different. After debugging and dealing with loose connections, I had to make an extended box for the last system (it has a hump in it).
To summarize, I have two little boxes that the rocker switches snap into. These are the main on/off switches. I have a box for the batteries. I have two inverter boxes. I then have two boxes for each micro-controller. On the back of each box are loops. Originally, I planned on making a harness of webbing that the boxes would attach to. This degenerated into gorilla tape. I covered the entire back of the suit in tape to make it semi-rigid. I also ran loops up the shoulders and around the waist to create structural support. The boxes are taped over this.
It's not pretty, but it's all black, and it stays close to her center of gravity. I tried creating larger boxes that fit more components, but they didn't conform well to the body.
A note about the main enclosure: This has to fit an Arduino with the El Escudo shield on top of it. The lid has pegs on the underside that the DFRobot audio analyzer and microphone snap into. These boards attach to the pinouts on the Arduino/Shield stack. The hole in the lid is for the microphone.
In the second version, I used female headers to make the connections instead of soldering wires to pins (I was bug chasing). That necessitated a 1 cm extension.
So figure out where these things can conveniently fit, and tape them in place.
Step 8: Make Electrical Connections
This isn't easy to describe.
The EL systems will attach via 2-wire JST connectors onto the EL Escudo shield. You'll need to keep track of which channel attaches to which pin (or experiment later in the programming stage to find them).
The microphone plugs into the audio analyzer with the supplied cables. However, I cut them them down because I didn't have space for all that extra wire. The audio analyzer needs a 5V connection, ground, and signal connections. I had to edit the software libraries because the pins used by the shield, the audio system, and the fingertip switches overlapped.
I had to use the analog pins for my finger switches. This is just a software change, so no big deal.
You end up with a real maze of wiring. The battery goes to the main switch, which then feeds 12V to the board. The board feeds DC to the inverter and then receives back another wire with the 120V +/- AC side. All the digital inputs have to be connected. I tried very hard to make sure everything was wrapped in heat shrink insulation, because the high voltage side would blow things up if there was an errant connection.
Oh, the El Escudo board has a jumper that you have to solder across to use a 12V inverter. By default, it's set for 3V. Don't forget to do this or you'll spend days trying to figure out why it's not working.
Step 9: Program the Arduinos
The micro-controllers are little computers. All they do is run the program you write for them (called sketches). The Arduino IDE (software) is available online. You write the code in a version of the C programming language. My (very poorly written) code for the lightsuit is attached.
You will need to link in at least two libraries. The audio analyzer library is available on DFRobot and it gives you the ability to interface with the MSGEQ7 seven band equalizer. The other library is Bounce2. It's needed to properly debounce the fingertip switches.
I wanted the lightsuit to function in two basic modes. First, you press a switch and the lights come on. Simple. The second mode would be to "dance" to the music.
The microphones pass a signal to the audio analyzer. It divides it into seven bands and outputs an array of integers representing the signal strength in each band (low frequency to high frequency). I had grand dreams of creating a beat detection algorithm. I brushed up on Fourier transforms and found it was too intense for the little Arduino (or I wasn't up to the task). I then tried taking first and second derivatives of the data stream to detect peaks. That didn't work out too well. In the end, I used a kludge. I keep a running average of the signal strength accumulated over a few seconds. The value of this average can change with the overall intensity of the music and the background. Once a signal in a particular band is above a threshold percentage I experimentally established (110%), the lights for that channel turn on. I then set an endurance counter. At first, the lights just flickered. I used the endurance counter to slow down how often the light cycles.
I understand PWM doesn't work well with EL wire since you have the AC cycle competing with the PWM cycle. So I didn't try any dimming. The EL wire is either full on or full off.
Even though I had more channels wired to the board, I ended up just using three "systems." The legs work on the lower frequency bands, the torso works off the mid-range, and the shoulders/arms run on the high frequency sounds.
So in conclusion, the index finger turns on the lights as long as the switch is pressed. The middle finger starts the dance mode. The ring finger terminates the dance mode. That's it. For the helmet, the index finger only lights the eyes and mouthpiece, because that looks much cooler than turning everything on.
I had intentions on making the third switch do something more dramatic, but in the end, it wasn't worth it.
Step 10: Perform
Convince the assistant principal that it's OK to turn out the lights at halftime of the basketball game.
Still working on this one...