Introduction: TwirLED: Light Up Skirt

About: Creative Technologist and Craftswoman

The basic idea for this project is a skirt that reacts to motion and lights up when you spin around on the dance floor. For social dancing like blues, swing, and salsa, the "show off" moment is when a dancer spins, so I wanted a skirt that only lights up at that time.

The function is accomplished by running a simple program that reads the position in the z-axis of a 3-axis sensor and triggers a light strand to blink if the reading is above a certain value.

Required Skills:

  • Basic Sewing
  • Soldering
  • Programming a micro controller with Arduio
  • Patience

Don't be intimidated by any of this; it's a great chance to learn and or practice skills. The sewing can all be done by hand if you don't have access to a sewing machine. I only learned to solder two projects prior to this one, so if you don't know how before taking on an endeavor such as this, you certainly will after! Arduino isn't too hard to learn and you don't have to do any of the code writing.

Step 1: Gather Materials and Tools

I included links to some of the products and components I used, but anything similar with the same pins should work. Just make sure everything can handle 5V input so you don't burn out your board or sensor.


  • Sewing machine (not required, but helpful)
  • Computer to program your micro controler
  • Soldering Iron
  • "third hand" to help hold things in place whilst soldering
  • Wire strippers
  • Hot glue gun


If you want to make your own skirt, make sure you get a fabric that has a non-directional pattern and a stretchy fabric if you don't want to install a zipper. Here is one tutorial on how to make one: DIY Skater/Circle Skirt by DIYlover89.

Step 2: Make Pocket for Power Pack

here is a way to make a quick pocket to hold the power bank and micro-controller so they are secure.

  • pin and sew zipper to inside of skirt where you want the pocket to be.
  • unzip and cut a slit i the fabric between the zipper teeth
  • zigzag stitch on top of the fabric to secure the sipper in place
  • cut a piece of fabric the size of the power bank and pro micro
  • cut, pin and sew a smaller piece of fabric so the pro micro will have its own "home" (a pocket within a pocket)
  • pin the whole pocket inside the skirt over the zipper slit
  • sew in place
  • make sure to leave an opening in the bottom of the pocket to run wires through

Step 3: Layout Wiring Plan

After the pocket is in place, hang skirt up and add some pins where you want the lights to show through. I chose to align my LEDs with the white polka dots in my skirt because I think it creates a great aesthetic when they twinkel.

Lay skirt out upside-down so you can see where you put your pin markers.

Put one LED on each pin so you can visualize better how they are distributed, and adjust the layout if it seems really uneven. I used 35 LEDs in this skirt, but I think the power bank is capable of powering more if you want to experiment.

Make a map of your wiring layout by running a colored string or wire or drawing a line through each LED. If you mark this with a marker or pencil, make sure it doesn't show through your fabric as you won't be able to put this through the washing machine.

It's important to make a plan so you don't lose your place once you start soldering all the lights together into one long strand.

Step 4: Solder Everything Together

I don't want to turn this into a soldering tutorial, but here are a few tips and techniques that might be useful:


Follow your wiring map and cut the wires as you go, not all at once.

When measuring and cutting, leave some slack in the wire running between LEDs.

In places where the strand of LED's makes a turn, cut the wire on the outside of the turn slightly longer and the wire on the inside slightly shorter than the middle wire. This helps put less stress on the solder joints.


This is the most time consuming part of the project.

Make sure you are working in a well ventilated area and take breaks.

The solder points are pretty tight on the LED breakout boards I used, so I found it easier to put a drop of solder on each of contact points, then re-melt it and stick the wire into the molten solder.

Step 5: Download and Install Software

  1. Arduino IDE if you don't already have it installed. I use the downloadable version. Haven't tried the web editor version yet.
  2. ATMega boards require a few extra steps for before you can upload code. Spark Fun Pro Micro Hookup Guide. Make sure to follow all the steps carefully, or you will "brick" your board.
  3. For the "sparkle" light animation library I used, go to Libraries, Manage Libraries and add ALA Library. You can use any light mode or library you like, just switch out the code.

Step 6: Hook Up Components and Upload Code

I like to test my code, sensors and LEDs on a board I know works to make sure the new components are functional before sewing them into a garment. I recommend keeping micro controller like an Arduino Uno or a Sparkfun RedBoard that isn't dedicated to a project so you can experiment and run tests. When I was making my LED strand, I would hook it up to check I had good connections every so often.

Here is how to hook up the components for this project:

Accelerometer Hook-up:

  • VCC on accelerometer to VCC on Pro Micro
  • GND on accelerometer to GND on Pro Micro
  • Z-OUT on accelerometer to A0 on Pro Micro
  • Y-OUT on accelerometer to A1 on Pro Micro
  • x-OUT on accelerometer to A2 on Pro Micro

LED Strand Hook-up:

  • 5V on first LED to RAW on Pro Micro
  • Din on first LED to pin 2 on Pro Micro
  • gnd on first LED to GND on Pro Micro
  • When creating the strand of LEDs, make sure the arrows are pointing in the same direction, away from the power source.

Connect power bank to the Pro Micro with the USB cable

  • Make sure the power bank is charged

Here is the code:

#include  <AlaLedRgb.h>

AlaLedRgb rgbStrip;

AlaSeq spin[ ] =
  { ALA_OFF,            100, 100, alaPalNull },
  { ALA_SPARKLE,        1000, 1000, alaPalCool },  
  { ALA_OFF,            100, 100, alaPalNull },

int z;

void setup()
  	Serial.begin(9600);      // sets the serial port to 9600
  	rgbStrip.initWS2812(35, 2);  //set number of LEDs in strand to 35 and sends data to pin 2

void loop()
  z = analogRead(0);       // read analog input pin A0
  Serial.println(z, DEC);  // print the acceleration in the Z axis

if (z >= 400) 
      Serial.print("step two, three");

Step 7: Sew LED Strand Into Skirt

Following the path you laid out earlier, loosely whip stitch the LED strand into place making sure to secure each light where you want it to show through. I wanted mine aligned with the white polka-dots so the color shows through nicely.

After the strand is lightly secured, add some hot glue to each LED over the solder points to insulate the electric contacts, and under the sides of the LED to ensure it stays in place while you are moving/dancing.

Using either a mesh fabric or ribbon, cut long strips about 2" wide, and fold the edges under while pinning them in place over the LED strand, then sew in place. This will make the strand more stable on the fabric of the skirt and keep the components from scratching or catching on legs or nylons or other people.

Step 8: Have Fun!!! :)

Microcontroller Contest

Participated in the
Microcontroller Contest