LED Color Sensing Chameleon Costume
This is a mascot style foam suit covered in ~600 addressable LEDs, controlled by an Arduino microprocessor and powered by 12-15 lithium ion battery packs. It includes a color sensor in the hand. I can touch any colored surface and the entire suit will change color to match. It can also display complex lighting patterns. The goal was to keep the suit as translucent as possible to glow, so the entire suit is textured with hot glue dots and thin foam.
Ironically adding more steps can speed up the process and yeild a higher quality product (see foam fabrication process). Spending a little extra on supplies can save you MANY hours of labor and headaches. I strongly suggest if you launch into a build like this that you splurge a little to keep it enjoyable. To learn more about foam fabrication and electronics, review videos from Stan Winston School, Adafruit, Punished Props and Evil Ted. There is a lot of information on the interwebs.
I’m a relative expert in foam fabrication, so I’d love to share my process. Ironically, more steps can save you time. Begin by sculpting the overall forms. Pay special attention to areas where you want sharp edges or smooth rounded shapes. Coat the sculpt with masking tape. Lay tape perpendicular to the seam you intend to mark. Study the shape to identify if you want large pieces, or if you need to do multiple pieces to get complex curves (4 wedges forms more of a boxy shape vs 10 crecents making a round beach ball). It can help to study the seam work on existing materials (stuffed animals, balls, etc to understand how foam will contour…just like stuffed/inflated fabric). Draw your seams on the tape with a fine tipped permanent marker. Number each piece (including underlining 6/9/etc). Then make alignment marks across each seam (refer to evil ted videos). It’s best to use a variety of alignment marks to avoid confusion later (I, II, III, V, X). TAKE PHOTOS of the fully marked up tape while it’s still on the sculpture. This will be critical to later assembly.
Take careful measurements of your sculpture using calipers and record them, preferably with calipers. Then put very accurate scale markings on several pattern pieces (1″, 1CM) (see later section). This will allow you to scale up your sculpt to a precise size so that it fits your body. It can also help identify issues where your sculpt proportions do not match body proportions. Take measurements of your body and reconcile the values to identify scaling ratios (which must be a single value per shape). Example: For the chameleon body, I had to ensure it matched the width of my armpits so that my arms would fall normally, which meant the height had to be confirmed to ensure it didn’t go to my knees or go over my face.
Cutting and Scanning Patterns
CAREFULLY and PRECISELY cut the patterns apart and stick them to a piece of rigid glass or plastic. These patterns will be blown up 10-20x so sloppy lines, marks and cuts will be exaggerated later. Put the cut patterns (adhered to clear substrate) onto a scanner. All pieces should be in the same image if possible. If separate scans are required, each image must have a scale mark included (see the 1″ above).
I recommend buying a digital projector for ~$40, but the following can be accomplished through more expensive large scale printing at a print shop. Once you’ve identified your scaling ratio (let’s assume 1:10), project your pattern onto a wall. Tape thick paper or plastic to the wall (I prefer paper due to dart punch cited later). Scale your image on the computer/projector until your 1″ scale mark on the image shows up as 10″ on the wall when measured. Make sure the projector is in a spot where it won’t shift (mark if needed), and document the zoom level in the photo application you’re using to speed up multiple sessions (e.g. 123% zoom). Trace the pattern pieces onto the paper or plastic including all numbering and alignment marks. Take notes to ensure you get all the pieces (checklist) so you don’t figure it out you’re missing a piece later.
Foam/Marking material selection and supplies:
Many people try to use foam floor tiles for fabrication. I highly recommend you avoid this and buy full/partial sheets of cross linked polyethylene foam (2-4lb density depending on application…structural vs contours needing flex). Foam by mail dot com is the most cost effective site I’ve found. Free shipping, multiple colors to minimize painting (white is a good base unless it’s a black costume). It also doesn’t have any sealing or coating that can impact glue adhesion.
- Glue: Barge contact cement (in the YELLOW can) is the only type you should use (unless hot glue works in non-visible spots). Do not get the blue (low VOC) formulation. You can find it from 1qt to 1gallon on Amazon. I recommend you purchase the matching thinner to keep it from getting too thick in use. Canning jars work well for holding it (air tight) but there is always the drop risk.
- Pattern punch: I recommend a darting hole puncher, it makes patterning go MUCH faster.
- Markers: Be very careful when using sharpies to mark out patterns. The marks will bleed through final paint in many cases. It’s helpful to use a color that can hide if it does bleed (not black under light blue paint). Ideally (although it can be more confusing), you will transfer all marks onto what will be the BACK of each piece of foam. Most pieces are mirror images so you would just swap the left for the right. You then would transfer the alignment mark from the back, around onto the edge so that you can match them up from the FRONT. Note that I forgot to do so on the right side of the main body. This saves you from sanding and double sealing.
- Gluing: Lay out pieces and confirm all alignment marks make sense. You don’t want to troubleshoot with glue over drying. Apply barge thinly and evenly. Let it dry for roughly 5 minutes. You want the finish to go dull, remain tacky, but not pull off when you touch it. Obviously it shouldn’t still be wet and glossy. Hold the pieces with the finished surface facing you. Move slowly so the pieces fit flush to avoid later sanding and fill. For contours you’ll need to pull tension into one surface or the other to make alignment marks match. This is how you turn flat crescents into a round ball.
- Texture: I bought bulk hot glue and got an industrial high heat glue gun. I took silicone baking sheets and put drops of glue onto them. They would flatten out and form the bumps that form the texture of the chameleon’s skin. I also
I went with WS2811 addressable LEDs. These are sometimes referred to as “Neopixels” which are more of a name brand from Adafruit. The premise is that each LED has a little microchip and ID number that tells it what to do. The string is controlled by a microprocessor (Arduino based Flora chip in this case). The microprocessor has a clock for timing, and sends commands down the data wire telling each LED what to do. This way you can start to get motion, patterns and fading color schemes. Specifically, this allows the Arduino chip to read a color from the color sensor, and then send that color code out to the LEDs in a flowing pattern. It also allows a slow fading rainbow morphing pattern. I started with the following tutorial from Adafruit, and used the source code. The circuit was adapted slightly so that it could run the Arduino chip and each strip of lights off of separate portable battery packs. The main challenge is that each string of lines needs a ground that goes back to the chip (not just a power/ground going to the battery). Please reference the photos for my recommended design of a power/ground/date wiring harness. It allows the flow of power/ground in from the battery, input of the data from a central harness, and ground fed out to the microchip. There is a capacitor present to avoid burn out on initial power up (refer to the neopixel uber guide for general principles)
This harness and plug design was pretty critical. It allowed me to easily connect and disconnect wiring. I wanted to minimize the solder joints, avoid any crimped connections, and I hot glued all connections to ensure wires didn’t pull out. Plugs are listed in the Amazon wish list.
Creating the primary wiring connection:
1) add a 1000uF capacitor across the +/- terminals of the black female 5mm power plug.
3) obtain a 3 wire MALE JST plug
4) connect the positive and ground wires from the JST plug to the black 5mm power plug terminals
5) add a short ground lead extending from the black 5mm power plug terminal
Creating the signal and ground wiring harness:
1) Obtain (2) 12 terminal wiring blocks (see Amazon list). One block will serve to connect all data (signal) lines going from the 1 pin on the arduino board to the ~15 light strips across the suit. NOTE THAT DATA HAS A DIRECTION ON THE LED STRIPS. You MUST connect to the correct end of the strip, and there is usually an arrow on the strip to guide you.
2) Identify where all of your lighting will be mounted so you know where the start of each string is located. Also note where arms, legs and the head will plug in.
3) Cut wire to the proper length to go from the main block (mounted on the backpack) to each location. In hindsight I would have used 2 lead power wire where the wires insulation is connected. This avoids messiness. LABEL both ends of each length of wire noting where it corresponds to (head, leg, chest, left back, right back).
4) solder one of the power/data wiring connections to each length of wire from the harness (soldering the ground to the small ground lead, and data to the green wire extending from the JST plug. Now all you have to do is plug in a power lead and attach the JST plug to the LED strip. This makes it easy to quickly attach/deattach for items like the legs which need to be connected during suiting up.
I wanted to avoid having an appearance that was pin point led sources of light. I wanted the whole surface to glow. For most of the surface I used ping pong balls with LEDs inserted and hot glued into place. I used a metal cookie cutter, heated with a 1500w heat gun, and cut holes into the foam to mount the ping pong balls. I mounted LEDs behind ¼” soft cell upholstery foam for diffused glow (chin). I sculpted bumps and horns out of clay, molded them with silicone, and “casted” horns with very hot hot-glue. For horns on the top surface of the head I drilled holes to embed the LEDs. For the chin I embedded plugged clear tubing to embed LEDs. It was a theme of using the cloudy hot glue to diffuse light in different ways.
I used colored stickers usually used for reinforcing hole punches to map out lighting placement. Each hole had a maximum distance in between based on the wire length of the LED string. I had to plan the path in which I would route them around the suit. This was highly valuable since many locations had to be shifted. It also allows you to easily match the number of stickers (30/sheet) to the number of LEDs per string. This way you know how strips may need to be cut or connected. Fabric pins and bamboo skewers can also allow you to pin lights to the surface to plan layout.
I cut small X shaped holes in each ping pong ball, inserted the LED and then added hot glue to keep it in place. Balls were inserted into the precut holes in the suit, and then rotated to minimize the distance they extend into the costume (I didn’t want it to resemble a wiring porcupine inside the suit, and I needed plenty of room to move). A bead of hot glue was then added on the outside of the ball on the surface to hold it in place.
I always build these suits based on an aluminum frame backpack. I buy mine for cheap by getting old ones off Craigslist for $20, but you can get them for $40 on amazon. I avoid plastic frames since drilling can be more risky.
I mounted the eyes on vertical rods to allow them to pivot forward and backward. I will add cables or servos at a later date to move them remotely.
Arms/Legs are attached using plastic buckles like those you’d find on a backpack. There is strap that is strongly mounted to the shoulders/hips and reinforced since durability is key. For the legs the straps should go around a belt on your waist. This allows you to put the legs on prior to the body. I attach the arms to the body prior to putting the body over my head.
An aluminum triangle was mounted on the backpack and supported with an elastic strap to give upward flexible support. An aluminum bar then mounts to this triangle, extends through the back, and into the tail to provide support. This way the tail is removeable and the base is more of a tension connection instead of structural. The bar is attached using cotter pins so that it’s relatively easy to remove and connect quickly. Photos should better show the setup. An aluminum flat bar was mounted to support the shoulders. This better distributes the weight of the suit (up to 30lbs maybe) so you don’t tear the shoulders. A lot of the weight comes from the wiring (copper) and the 10-15 batteries that are required to power the system for an extended period at high brightness.
Power: All lighting was powered via portable lithium ion battery packs meant for charging cellphones on the go. I have links in the Amazon shopping list for units I used. Outputs MUST support a minimum of 2Amps. This corresponds to 40 LEDs at full brightness for a white color (red green and blue sub-LEDs illuminated). With the rainbow cycling, your peak current shouldn’t hit those levels so >40 LEDs can be attached to 1 battery pack. Using multiple ports on the battery can help. IF YOU DRAW TOO MUCH CURRENT, THE BATTERY PACKS WILL POWER DOWN. YOU’LL BE A SAD SAD DARK CHAMELEON! You also have to be careful about power packs having an auto off function. If you plug in the lights, delay turning them on via the Arduino chip, you may have to manually hit the button which is hard to reach. The Arduino brain should be powered by a AAA battery pack with a JST plug on the end. The chips do not draw enough power to keep 95% of USB power packs from automatically turning off. THIS IS A HUGE HEADACHE. Get a box that has an on/off switch. For mounting, I put several battery packs in a fanny pack, cut holes for the plugs to pass through. This let me keep it organized and clip them to the backpack VERY easily. I highly recommend this strategy.
Eyes: They are 2 bowls from the dollar store that have been layered with clear resin to give strength. I then cut out the circles that had heavy resin and replaced with laser cut light diffusing acrylic. I then cut black vinyl to form the pupil. Once installed, I sprayed adhesive on the surface and adhered spandex fabric that had hot glue dots added prior. Make sure to note the direction in which the spandex stretches and align it front to back with the head. I mounted ring neopixels behind the eye to get a round light diffusion pattern. They were wired at the end of the head circuit so by default their color would be out of synch with the rest of the head to give a contrasting color (which was critical in the appearance in my opinion).
Feet: I used upside down floor tiles as the soles for the feet to give texture and therefore traction. Cheap slip on shoes from Walmart were glued onto the flooring tiles using plenty of barge (2 coats and weighted pressing).
Hopefully the photos will illustrate how the head was created. The horizontal piece is 2 pieces of corrugated with a layer of ABS plastic laminated in between for lightweight strength. 2 pieces of aluminum rod are bent at a 90 degree angle, attached to the horizontal plastic and then insert into the backpack to take weight off of your head. The corrugated plastic is then glued into the head with barge contact cement and a strip of foam above and below. There’s room for improvement on the design since the rod can bend and put more weight on your head. Lighter components would also help since the suit weight built up quickly. Refer to the “eyes” slide to see how the eyes were created, mounted and allowed to rotate front and back via cables.