Introduction: Color-Changing Prom Dress With Magic Wand

I wanted to sew my daughter a prom dress, but not just any prom dress--one that had a wand that could scan the color off of any object and light up the dress that same color, kinda like a chameleon.

I had never sewed clothing before and still consider myself a beginner sewer. So why would I want to tackle this enormous project? Why not? I love to learn and make new things. I love to stretch myself to projects that are just outside my expertise so that I can move the goal lines of my abilities. I couldn't do this project alone though. I know my strengths and weaknesses and I know where I am not confident, I can count on my husband to be the expert. He wrote the programs for the microcontrollers, modified and modeled the star wand and light caps, and soldered its electronics. Without him, I wouldn't have been able to finish this project.

And just because I like hard mode: my daughter had her senior prom on the same weekend as her graduation from high school and it was also located out of state. So we had to fly ourselves and her dress to a different state for graduation/prom weekend and hope that her dress would arrive in one piece! That meant no way of fixing broken solder or glue joints or microcontroller brains. And if her zipper didn't work, I joked that I would have to sew her into the dress for the evening, even though I didn't bring enough thread for that fix either. I finished the dress only hours before we had to fly the next day so we didn't have really any time for troubleshooting while she was wearing it. Fortunately, we did catch a few problems and it was a late-night trying to glue and solder pieces back together before packing the dress components up in the luggage and saying a prayer that it would work.

She loved how her dress had a different look in the daytime and as the night wore on she lit up her dress and used the wand to change the color of her dress to match the people she went up to. It was quite the party trick! She danced hard for four hours (she's no wallflower when it comes to dancing) and I was surprised how well the dress lasted through teenage jump dancing and silly group photos lying on the ground.


Tulle Skirt

Tulle (hard and soft total together): 33 meters or 36 yards plus extra

Cotton twill fabric for skirt yoke: 1/4 yard

Stretchy viscose inner yoke lining: 1/4 yard

Hook and eye tape: 3 rows by 7 inches or more depending on your measurements

Opulent Tulle Skirts: Materials, Cutting & Construction by Barbara Pesendorfer instructional PDF booklet

Fiber Optic Bodice

Fiber optic fabric: 1 yard

Cotton muslin fabric for lining: 1 yard plus more for mock-up

Pellon interfacing: 2 yards

Swedish tracing paper

Invisible separating zipper

3/8 inch lightweight clear elastic

Neopixel LED dot strand 20 with 4" pitch

Lipo battery (10050mAh 3.7V)

Feather M0 RFM69HCW Packet Radio 900MHz

JST-PH battery extension cable

On/off button switch

3D printed caps for Neopixel strand (both clear diffusers and black-out light-directing)

Electrical tape

Hot glue

Clear nail polish for fraying fabric/securing threads

Yoga bike shorts with a side pocket for holding the battery

Organza rose decoration with metal hair clip

Spiral metal boning with 1/4" tips for corsets (2 yards with 12 tips)

Cotton twill tape 1-inch wide by 2 yards

Sewing machine and sewing supplies

Water erasable marking pen

Tailor's ham and seam roll

Steam iron

3D-Printed Wand

3D printer

Clear and black filament

SPDT slide switch

Silicone-covered stranded-core 30AWG wire

Feather M0 RFM69HCW Packet Radio 900MHz

Neopixel ring 16

Flora color sensor

JST-PH battery extension cable

Tactile button switch

Li-ion cylindrical battery (2200mAh 3.7V)

Tiny screws to hold printed segments together

Step 1: Tulle Skirt

Make or even just buy a fluffy tulle skirt.

Buying a tulle skirt would have been easier and cheaper in the long run, but I wanted to learn how to make one from scratch since I've never sewn clothing before (is "scratch" the correct term to use here for sewing?). My first design of the tulle skirt also had the top layer embedded with fiber optic filament as well. Subsequent iterations of the dress changed to just having the bodice fiber optic and the tulle skirt lit up with diffused lights from the Neopixel dot strand.

I used the instructional booklet Opulent Tulle Skirts, purchased from Etsy. The author did a great job of explaining how to draft and create a custom tulle skirt that even a novice sewer like me could follow and understand. I don't feel right posting her instructions here for my project because she deserves to be paid for her work and booklet. As I said, you can easily just purchase a fluffy tulle skirt for this project and not have to make it yourself if you don't want to pay for a pattern. I did take a picture of my calculations for the amount of tulle I would need for each layer and its placement on the skirt lining and yoke if you want to decipher it! I had to work in metric because that is what the instructions did, but I had to buy all my fabric in yards--that is why there is a lot of converting it back and forth on the paper.

There are also different shades of "white" tulle in the layers of the dress, but I tried to hide them the best I could. I ordered tulle three times from two different companies (JoAnns and Luxetulle) and got back two different shades of white even when I ordered the same exact tulle from the same company twice. Why did I order three batches to begin with? Different iterations of the dress had me recalculating the number of layers and fluffiness in the layers--oops!

I ended up cutting about six inches off the length of the skirt in the end. I originally thought my daughter would want to wear heels with it since it looks like a formal wedding dress. Silly me, she wanted to wear white Converse high tops so she could jump and dance without breaking an ankle. Obviously, I had over-estimated the dress length quite a bit, because I wasn't planning to have her wear six-inch heels for it! I had to trim the dress layer by layer three days before we left on the plane so she wouldn't be stepping on it because of the change in footwear. It was not physically hard to do, but very frustrating because I could have saved myself time, effort, and material if I had done it correctly the first time.

Step 2: Fiber Optic Bodice (Basting and Cutting the Pattern Pieces)

I based the bodice portion of the dress on McCall's Patterns Ballerina Costume. In the pattern, I straightened the bottom hem to be a horizontal line because I could not cut the fiber optic filaments that flow up into the fabric into a "V" as the pattern wanted. I made a lining for the bodice out of cotton muslin that was interfaced for extra strength and stability. I don't know if it was needed, but it was thick enough to handle any scratchy ends of the fiber optic filaments that might have poked through and it supported the microcontroller sewed to it. I also interfaced the fiber optic fabric with all the pattern markings so I didn't have to mark seam allowances on the fabric itself. I did not follow McCall's directions on how to assemble the bodice since I had to figure out the best way to sew without damaging or cutting the fiber optic fabric in the wrong spots. I learned a lot from watching Youtube videos on wedding dress bodice designing and sewing. It probably helped in this instance that I was not an experienced seamstress because I didn't have to unlearn the "proper" way to sew clothes, I could do my own thing with sewing to make it work with this crazy fabric's limitations.

Seam allowances for the cotton muslin and its interfacing lining can be standard, but the fiber optic layer is a whole new beast. Since the fibers run vertical, you have to make sure all the seam allowances have all the light fibers you need to have the visible part of the bodice glowing, or you will need to make them wider. On the "Center Front" or CF part of the bodice, the seam allowances were increased to one inch (from the standard 5/8 inch) to account for all the light fibers that are needed to light up the bust. I even made sure to illuminate the fiber optic fabric, after I basted the interfacing pattern on top, and traced the individual light fibers down with erasing fabric marker to the bottom of the fabric to make sure I wasn't clipping any that were needed. Because of the way the fabric was manufactured, the bottom of it curved in places and the light fibers were not as vertical as I needed to keep them in the seam allowances, so I made sure to not severe those light fibers when cutting out the pieces or I would have dark spots in the finished bodice. I centered each of the pattern pieces on a fiber-optic "bundle" unless it was the CF panel, which needed two fiber optic bundles. This helped by letting the pieces not be tied together by the same fiber optic bundle when they were cut out. The supplied lights and button remotes were removed next because they will be replaced with my own Neopixel light strand, and I had to be able to sew the pieces together without an electrical umbilical cord getting in the way.

Step 3: Fiber Optic Bodice (Sewing Inner Lining and Adding Boning)

To make the inner lining of the bodice, I first sewed the cotton muslin pieces together with their respective pattern pieces in the interfacing webbing. I hand-basted the pieces but you could easily machine baste them together as well. There are seven pieces to this pattern, center front (CF), two mirrored side fronts (SF), two mirrored side backs (SB), and two mirrored center backs (CB). I first sewed the edges of CF to the two SF pieces, and each of the SBs to the CBs (ending with two separate SB/CB and CB/SB pieces). Then I sewed the SB/CB and CB/SB pieces to the ends of the SF/CF/SF piece. So the entire pattern looks like CB/SB/SF/CF/SF/SB/CB when all sewed together. Following it so far? Youtube videos on wedding-dress-bodice making were such a huge help to a visual learner like me.

Ironing the seams flat I found was best done with a tailor's ham or seam roll. They are rounded hard pillows used for ironing clothing seams since one is changing a two-dimensional pattern into fitting around a three-dimensional body. I snipped the seams around the bust part of the bodice to allow the fabric to lay flat around a curve.

Installing the boning into the lining of the bodice was next. I ironed a strip of white twill tape 1-inch wide in half, and cut it in lengths to fit on the seam allowance joins in the lining. I sewed the strips of twill tape down on each side to the lining and across the top. I cut strips of 1/4" spiral metal boning to fit the length of each boning fabric sheath and squeezed metal tips on both ends before inserting them. I pinked the edges of the seam allowances to keep them from fraying since I wasn't serging the seams. I didn't sew the bottom of the boning tubes up just yet, since I wanted a way to push down the metal boning away from the top seam when I had to sew the bodice together.

Step 4: Fiber Optic Bodice (Sewing Fiber Optic Layer)

The fiber optic top layer of the bodice is assembled the same way as the lining: CB/SB/SF/CF/SF/SB/CB. One big caveat when sewing with this fabric though: every time you nick one of the filament tubes with your sewing needle, you are going to cause a point of light to show from the fiber optic fabric. So your sewing lines/seams will be glowing extra bright on the bodice! I thought I needed to use heavy-duty sewing machine needles to get through the fiber optic fabric and its lining, but those just ended up puncturing huge dots of lights into the fabric. I changed to universal sewing needles and switched them out more often if they were getting dull so I would have smaller pinpoints of light on the seamline.

I couldn't iron the seams down as I did in the lining though. The heat from the iron would melt the little plastic filaments in the fiber optic fabric. So I squished them to one side and that is really hard to do around the bust part of the bodice as you would normally snip the seams to get them to lay flat around a curve. I ended up trimming the part of the seam allowance above the bust as short as I could to keep it from bunching into weird folds and showing light through to the front. Again, I was super cautious to not trim a needed light strand too early on either side of the seam!

Step 5: Fiber Optic Bodice (Attaching Both Layers Together)

Now the big join happens: putting the lining into the fiber optic top and sewing them together at the top and installing an invisible separating zipper along the CB seam. I erased the seam and pattern markings on the fabric with water now, before I installed the electronics and microcontroller into the bodice. Right sides together (the right side of the lining is the one without the boning tubes showing), I pinned the top of the bodice together making sure the points of the seams matched each other on the lining and the fiber optic top, and sewed 1/4" from the edge. I then understitched (a line of stitches that are sewn close to the edge of the hem) to keep the lining from rolling to the outside and showing. Lastly around the neckline, I zig-zagged stitched over the edge, wrong sides facing, to keep the top of the bodice flat and together. This fabric is basically micro plastic tubes lined up next to each other. It has a mind of its own on which way it wants to lay, so I don't know if what I did was overkill for the top hem but it worked.

I stitched the bottom of the boning tubes closed just on the lining portion of the bodice, since I was done with hemming the top. I also installed some clear elastic shoulder loops to keep the bodice from sliding down as the night wore on.

Now zipper time. I had to pick out all the super-duper back and forth sewing I did to secure the thread at the end of the top hem of the bodice where the zipper needed to go. (Youtube videos are the way to go for learning how to install an invisible zipper with lining). I also installed a single hook and eye at the top of the bodice to help with the zip-up. I didn't "finish" the bottom hem of the bodice, because I needed to get in between the lining and the fiber optic fabric to install the microcontroller. I kept the fiber optic fabric from fraying at the bottom edge with clear nail polish, but I didn't do anything for the cotton lining. It had interfacing sealed to it from ironing, but I could have pinked the bottom hem of the lining if I wanted.

I hot glued a white organza flower onto a metal hair clip and used it to decorate the center top of the bodice. I bought it for an earlier iteration of the dress that had an organza bertha around the neckline that I later nixed (think Aurora/Sleeping Beauty's dress and now you know why I had a wand that was magically changing the color of the dress), but I still wanted to use the flower somewhere.

Step 6: Wand (Code for Microcontrollers)

Adafruit's Feather M0 RFM69 Packet radio is a microcontroller with a built-in 868/915 MHz radio module. I picked this radio module because it said it was great for wireless communication but more flexible than Bluetooth LE and without the high power requirements of WiFi. And I read tutorials that showed it didn't need an antenna to talk to each other if they were located in the same room, which the wand would only be an arm's length away. The microcontroller that I sewed into the dress lining I will call "the receiver" because it is receiving its instructions from the microcontroller in the wand, "the transmitter."

My husband, Dave, developed the code for the wand/dress in steps. First, he had the color sensor scanning and displaying the color values in the serial monitor, then he displayed the colors it was reading in a Neopixel ring light. Next, he set up the transmitter to talk to the receiver by telling it to repeat back what he sent. Then he started transmitting random color values that the receiver would repeat back to see if they matched. Lastly, he had the receiver turn on a light strand to whatever color the sensor scanned and the transmitter sent out.

In the first iterations of the dress lights, I was using chainable 3W Pixie lights that would be super bright and automatically turn off if they overheat. But we couldn't get the Pixie to accurately display the color hue information it was receiving from the transmitter after trying to bump up the brightness of the scan in the code. We were running out of time to struggle our way to a solution, so I grabbed a string of Neopixel dot lights and we were able to get the color more accurately shown on that light strand, even if the Neopixels weren't as bright in the dress as the Pixies would have been if we could have got them to work. So you will see remnants of Pixie code in the Github repository file because he had to make a workaround for Neopixels. The good news is if you want to use Pixie lights in your design, the code is mostly there--just commented out. I am happy that the Neopixel dot strand worked because (1) its silicone coating made it weatherproof and sweatproof, and (2) I used the extra lights in the strand to hang down and illuminate the tulle skirt from the inside. If I didn't want to illuminate the tulle skirt, I could easily have the code shut off certain lights in the strand. And even if you couldn't tell it was on if the sun was out, the dress was bright enough to party in the dark!

Github code for wand (the transmitter microcontroller).

Github code for dress (the receiver microcontroller).

Step 7: Wand (Electronics and 3D Printing Files)

I selected a Thingaverse wand design that I wanted my wand based on and my husband created a look-a-like model that he modified with spaces to fit the Feather and all the electronics I wanted in it. I wanted a hole for the color sensor to read through, I wanted an on/off slide switch, and I also wanted a button press to tell the wand to scan for color now and a Neopixel ring light to display what color is scanned.

You will need to reorient the piece to print (20% infill with supports). We used M2 by 4mm and M3 by 5mm long screws for securing the wand parts together. We hot glued the push button to the wand handle cap to secure it by the former screw hole it was using.

We found that we needed to paint the inside of the hole in the wand the sensor was scanning through a matte black so it can accurately measure the hues of the color. The clear filament hole was allowing the light beamed from the sensor chip to bounce around and reflect back and it would read/show a muted color value. The black paint definitely helped with this reflection and we were able to show bolder colors in the light strand.


Step 8: Fiber Optic Bodice (Installing Electronics)

Dave designed and printed out caps that fit on each one of the Neopixel dot strand lights. Eight of the lights were needed to light up the fiber optic fabric, so it had a conical funnel shape that would force the strands to sit against the light source and it was printed in black plastic to black out any light escaping from around the Neopixel dot. The other 12 lights hung down in between the fiber optic light caps, so they could light up the tulle dress below the yoke. Dave printed domed caps in clear plastic to help diffuse the light under the dress instead of the pin-points of light it had normally.

Print with 100% infill with supports for black-out cover and diffuser.

After I clicked the diffuser caps onto the dot strand lights, I fixed the bottom of the Neopixel light permanently to the cap with hot glue.

Taking each of the eight bundles of fiber optic filament, I wrapped them securely with electrical tape to form a tight bundle and trimmed the ends flat so they would sit flush up against each light when shoved into a black cap. I used hot glue to secure the fiber optic bundle inside the hole of each cap, hot glue to secure the bottom of the cap to the Neopixel dot and I used a ring of hot glue to secure the electrical tape to the bundle of wires or it would slip off from the weight (don't melt the fiber-optic wires with the heat from the glue!).

The receiver microcontroller was sewed to the inner lining on the wrong side (the side facing the wrong side of the fiber optic fabric) with normal thread at the four corners. I used a JST-PH battery extension cord to allow the battery more length to fit comfortably in the pocket of the yoga shorts she'd be wearing and not pull on the microcontroller if she was dancing and moving. We also spliced in an on-off push button to the battery extension cord to give an easy way to turn on and off power to the board. On the night of the prom, I ended up yanking off two face mask loops that were elastic and securing the power button to the face of the battery. That way she could feel her way to the power button by sensing the battery pack against her leg and locating the button there. We didn't want her searching around for where the power button might have migrated to in the night if she needed to turn off the power fast. The battery never heated up during the evening, even with the lights on the whole time after dark.

The bright glowing line in the bodice is the top edge of the fiber optic fabric turned under to hem. Remember how bright the top of the fabric was when I cut the pattern from it? All that light that didn't come out in pricks of light in the fabric, comes out at the top edge of the fabric. And because I turned it under to hem it to the lining, it is a very bright line just below the top of the bodice. A bertha collar added to the bodice would have blocked this, but I ended up not doing it because of time and because my daughter liked the look of it as is.

Neopixel Cover

Neopixel Diffuser

Step 9: Bringing It Together

Steps to putting on the dress:

Lace up the high-top converse first, then put on the bra/corset and yoga shorts.

Zip up the fiber optic bodice, attach and place the battery in the side pocket of the shorts.

Slide the tulle dress over the head, securing together ten rows of hook and eye closures around the hips or where it sits comfortably.

Turn on the switch in the wand and press the button on top of the battery in the shorts to turn on the dress.

A yellow light will glow from the wand telling the user it is ready to scan a color with a press of a button.

The dress will quickly blink from blue to white and will stay white until it receives a color change from the wand.

You can shut off the wand to save on battery and the dress will stay the same as the last color it received.

Electronics Contest

First Prize in the
Electronics Contest