Fiber Optic Jellyfish Skirt




About: Exploring how new creative software, tools, and electronics can be used for design. Creating fashion technology pieces with code + digital fabrication. Also writing books about electronics and programming.

Because the effect of fiber optics is so fascinating I was thinking about making an outfit with fiber optics and RGB LEDs. It took me some time until I came up with a design and figured out how to attach the fibers onto the LED strip. In the end I made this Jelly Fish Skirt: strands of fiber optics are glued into vinyl tubes which are taped onto a LED strip and belt. In the back is a little bag for the battery and microcontroller that supplies the LED with power and data. Because the LEDs on the strip are addressable the belt can light up in different pre programmed colors and patterns.

This project is a great way to get started with RGB LEDs and learn about programming with the Arduino IDE. And no worries you neither need excellent soldering nor programming skills to make this skirt.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Supplies


· 200 x 2 m long fiber optics - 0.05 cm diameter [eBay]

· Addressable 5V RGB LEDs (60/m) with silicone case [Adafruit, eBay]

· Arduino microcontroller [Sparkfun, Adafruit, Watterott]

· Lithium (ion) polymer battery or USB power bank [Sparkfun, Adafruit, eBay]

· Clear vinyl tube - 0.6 cm diameter [hardware store]

· Clear 5 Minute Epoxy or E6000 adhesive for plastic [hardware store]

· Clear strong duck tape (preferably bi-filament) [hardware store]

· Heat shrink - 1 cm diameter [hardware store]

· 1.5 m of 22 AWG stranded copper cable/wire [hardware store]

· Thin belt

· 10 cm strong sticky-backed Velcro [fabric store]

· Fabric for battery bag


· Hot glue gun

· Soldering iron

· Solder

· Knife

· Scissors

· Lighter

· Heat gun

· Needle & thread

· Meassuring tape

Step 2: RGB LED Strip

RGB LEDs can light up in various colors and patterns because they are addressable. Each RGB LED has a red, green and blue LED as well as a tiny driver chip. Because of the chip, the RGB LED is smarter than a regular LED. Each LED's chip knows its own position on the strip and can also control the brightness of red, green and blue individually. Therefore, almost every imaginable pattern and color can be programmed.

Between each individual LED you can find three lines: +5V, DO/DI and GND. The 5V line (which stands for "5 Volts") provides the LED with power; DI/DO (which stands for "Data Input" and "Data Output") tells the LED how and when to light up; GND stands for ground. On top of those three lines is the symbol of a little scissor – this is the only spot where you should cut the LED strip.

You should also find arrows on the strip. The arrows show the direction the data is traveling. It is important to indicate the beginning and ending of the strip: the cut edge with the arrow pointing away from you is the beginning. This side needs to be connected to a power source and microcontroller. Before you use an LED strip in a project, be sure to test that all of the LEDs are working. In Step 14 we'll go over how to upload a program and test your LED strip.

LED strips come with different densities of LEDs (30 LEDs/m, 60 LEDs/m or 90 LEDs/m). For this project, I’d recommend using 60 LEDs/m or even more LEDs/meter for a fuller looking skirt.

Step 3: Microcontroller

There are many different microcontrollers to choose from. In the picture you can see 4 different microcontrollers I usually use for wearables:

The red Wattuino Nanite85from Watterott is the smallest board with an Atmel ATtiny85 microprocessor. It's great for most wearable projects. Even though it doesn't have big holes for sewing, it's easy to attach onto your clothes because it's so small. On the board is a USB-Bootloader to connect it to your computer and attach a power source like a power bank. The board has 6 pins: 4 data pins, 1 GND and 1 power.

The small black board is Gemma from Adafruit which also has an Atmel ATtiny85 microprocessor. The holes are a little bigger and you can use conductive thread for sewing it. Gemma has a USB-port and a JST-connection for Lithium Polymer batteries. The board is great for small projects because it has 6 pins: 3 data pins, 1 GND and 2 power (3 V and Vout).

The bigger black microcontroller is theFlorafrom Adafruit. The Flora has a more powerful microprocessor (Atmel Mega 32u4) and can be used for complex projects (connecting multiple sensors, microphones, etc.). The board has a USB-port and a JST-connector for Lithium Polymer batteries. Besides 14 pins (8 data, 3 GND and 3 power) there is also an on/off switch on the board.

The purple microcontroller is the LilypadArduino Simple from Sparkfun with an Atmel Mega328 microprocessor. The board has a JST-connector, an on/off-switch as well as a programmable button-switch. Since the USB-port is not on the board (FTDI breakout) it's more complicated using a power bank for the power supply. It has 11 pins: 9 data pins, 1 GND and 1 power. The Lilypad is washable and is good for sewing projects because of it's big holes.

For this project I used the Flora. I could have used a smaller microcontroller but it was the only one I had on hand at that time.

Step 4: Power Supply

Lithium Polymer batteries are powerful and easy to recharge. Depending on the capacity (mA) the batteries come in different sizes. Lithium Polymer batteries usually come with a 2-pin JST connector, which can be plugged into the microcontroller. A 3.7 V battery has about 4.2 V when fully charged and dies at 3.0 V.

The LED Strip should run on a 5 V power supply but it also works with a 3.7 V battery. Never go higher than 5 V though.

What capacity is right for your project? One LED draws about 60 mA (milliamps) of current. Imagine you have 20 LEDs on your strip, they will most likely draw 1,200 mA in total. A 1200mAh (milliamp hours) battery can supply 1200mA for an hour, so if your battery has the capacity of 2,500 mAh it will last for two hours or more:

2,500 mAh / 1,200 mA = 2.08 h

Since the LEDs won’t run on full brightness all the time, the battery will most likely last longer. You can find a great guide about estimating the running time of your battery on Adafruit.

When not used correctly, Lithium Polymer batteries can be really dangerous. If you’re not too familiar with electronics I’d recommend using a USB power bank. It comes with a USB cable to power/charge small electronics like your smartphone or in this case, microcontroller. It is safer wearing a USB power bank on your body because the Lithium Polymer battery is protected in an aluminum case and less likely to get damaged which could cause it to leak or explode. You don't want this to happen.

In this tutorial I used a Lithium Polymer battery directly (not in an aluminum case). I have since switched to using power banks.

Step 5: Cutting the LED Strip and Belt

To start, you need to figure out the length of the belt and how many LEDs and fiber optic strands you will need. Measure the size of your waist (help for taking measurements) and cut an LED strip as long as your measurement. Cut the strip on the closest cutting line marked with little scissors (see picture). In the best case the LED strip is slightly shorter than the length of your hip measurement. Now count the LEDs on the strip – this is the number of individual fiber optic strands you are going to prepare. Also this is the number of LEDs you have to declare in the NeoPixel code before uploading the program onto your microcontroller.

My strip has 60 LEDs per meter. After cutting a 70 cm long piece there are 42 LEDs left on the strip.

Later on I’ll tape the LED strip onto a thin belt for more support. The belt should be as wide as the LED strip and about 10cm longer. Because you’ll use Velcro to close the belt, make sure to cut off the belt buckle.

Step 6: Solder Wires Onto the LED Strip

In the next step you'll need to solder the three wires onto the LED strip and seal it with hot glue and heat shrink. First push a small piece of heat shrink (about 1.5 cm long) onto the silicone case. Then cut three wires and solder a wire to each of the conductive +5V, DIN and GND pins at the beginning of the strip (how to solder LED strips tutorial). If you are using the same colored wire for all three lines, put some tape around each wire and mark them so you won’t mix them up. Make sure the wires are long enough - about 30 cm - to solder them to your microcontroller later on. Make them longer than you think you should if you aren't sure.

Now push a small amount of hot glue into the silicone case, but not so far as to cover the first LED with glue. While the glue is still soft, pull the heat shrink half way over the silicone case and half way over the wires. Press some glue out of the strip into the heat shrink tube and use a heat gun, lighter or the soldering iron to warm up the heat shrink until it’s tight around the strip and wires. Now seal the other end of the LED strip with some hot glue.

Step 7: Prepare Fiber Optic Bundles

I purchased a 2 m long strand of 200 fiber optic fibers with a diameter of 0.05 cm. There are thinner fiber optic fibers on the market but the thicker the fiber, the brighter the ends are going to shine and the less likely they are to break.

Because I wanted the skirt to be about 50 cm long, I cut the fiber optic strand three times and got 800 fibres at 50 cm.

Now a little bundle of fiber optics needs to be glued onto each LED. I used a clear vinyl tube with a diameter of 0.6 cm, which I cut into 42 pieces (number of my LEDs) each 3 cm long. I put about 17 fibers in each vinyl piece and pushed them through the tube and a little past the end, about 3 to 4 cm. Depending on the thickness of your fibers or vinyl tube, you may have a different amount of fibers in each tube. Use as many as can possibly fit.

In the end that you pushed through, spread some clear glue (I used E6000) in amongst the fibers. Make sure that the glue gets in between the fibers and pull the top of the strand back into the tube. I orignally choose a 5 minute epoxy but it wasn’t the best choice. The glue got really hard and the fibers sometimes broke. A clear E6000 adhesive works just as well and is more flexible.

Step 8: Make the Fiber Optics Shine Brighter

When the glue is dry, cut about 0.5 cm off the tip of the tube with a sharp knife. Make sure that all of the fibers are now flush with the cut end and not receded inside. The cleaner the cut, the better the light will transfer to the fibers.

To make the ends shine even brighter you can also melt the cut end. Hold the end of the vinyl tube close to a clean flame (gas oven or lighter but not a candle) until the fibers are slightly melted. Be careful though and don’t hold it too close to the flame - you don’t want to burn the tube. Now the fiber tips should shine twice as bright.

Step 9: Separate the Fibers

Now the individual strands are almost done. For a fuller looking skirt, we need to seperate the fibers. At the end of the tube where the fibers come out, spread them evenly apart and carefully put some hot glue on top. Don’t use too much glue or put the glue gun too close though because the fibers will melt and bend. Hold it in place until the glue is dry.

Step 10: Build Vinyl Tube Holder

The LED strip has a removable, waterproof silicone case. I tried many different glues but nothing stuck to the silicone permanently. However, I wanted to keep the silicone case for protection.

To attach the fiber bundle on top of each LED, it is necessary to build a little holder made out of hot glue. Place a fiber optic strand on top of an LED and put some hot glue around and on the right and left side of the tube – wait until it’s dry. Repeat for all the other fibre strands, individually. Then carefully melt the glue on the side and glue 4 to 5 tubes together – pay close attention to the distance between the vinyl tubes. In the end, every fiber optic bundle should be right on top of an LED.

Step 11: Tape Tubes on Strip and Belt

In the next step, cut the duck tape in 5 cm long thin strips and tape the tube holders around the LED strip and belt. Start with the end of the strip that has the 3 wires and leave 10 cm of belt uncovered. Make sure to place every strand exactly on top of an LED. After attaching a section of tube holders, attach the next section with the same process as the last step where we made the holders themselves. Then attach the next section. Don’t tape the last three tubes of the last holder onto the strip and belt yet.

On the end with the 3 wires, cut a little hole into the belt and pull the three wires though the hole. Bend the wires toward the center of the strip and secure them a few with a few loops of tape. We'll eventually lead the wires further to where the battery pocket will be.

Step 12: Make Battery Pocket

For the battery and microcontroller, I sewed a small pocket. If you can’t sew, just cut two square pieces of fabric and glue them together. To attach it to the belt, I cut a square with a handle out of a plastic mesh fabric (see picture) – regular fabric should work just as well. The square should be about the same size as the battery pocket.

Now choose a spot where you want to carry the battery pocket. Mine is in the back a little to the right. Now remove the one loop of tape in between the two vinyl tubes where you'd like to place the pocket and push the handle between the LED strip and belt. Pull the handle down and sew or glue it onto the square. Stick some velcro onto the battery pocket and holder. Also, don’t forget to tape the LED strip back onto the belt again.

I chose velcro because I wanted to be able to replace the battery bag depending on the outfit I'm wearing. There are many other ways to make a permanent battery bag that is even safer and more secure.

Step 13: Build the Belt Fastener

Cut a 10 cm long velcro piece and stick the rough piece on top of the belt where we left 10 cm uncovered. Set the fuzzy piece aside for later.

Because the belt is a little heavy I was afraid that the velcro would open while I was wearing it. For more support, I cut three small velcro strips. On the end of the belt where you left 3 tubes untaped, tape the small velcro strips between the belt and LED strip, aligned underneath the tubes. The fuzzy piece should stick to the LED strip, while the rough side should stick to the belt. The fuzzy piece should stick out on one side, and the rough piece should stick out of the other. Therefore, each piece will only be able to be halfway between the belt and LED strip, before touching the other piece. The sticky sides that stick out past the LED stip and belt can be covered in fabric so that they are no longer sticky.

With some tape strips secure the last vinyl tube holders onto the belt.

Now get the 10 cm fuzzy piece you had set aside. Stick it underneath the belt on the same side where you just put the small velcro strips.

Now you can try on the skirt and close the belt.

Step 14: Upload the LED Program

Now you need to upload the LED program onto your microcontroller.

Since there are so many well written and detailed tutorials, I'll just share the links with you:

If you need more help getting started with an Arduino, learning about the Arduino Environment, connecting the microcontroller to a computer and uploading programs onto the Arduino you can find helpful information on the Arduino website or Adafruit Flora Tutorial.

A great LED program to start with is the Strandtest from Adafruit. Just follow the tutorial, download the NeoPixel zip file and add it to your Arduino library. If you want to learn more about RGB LEDs and write your own code check out the FastLED library. It is another Arduino library for programming addressable LED strips and pixels. Check out the Fast LED community to see some great examples.

Step 15: Connect the Strip to the Microcontroller

Solder the +5 V wire from the belt to the VBAT pin on the microcontroller, GND to GND and the data wire to the pin you defined in the LED code you uploaded to the microcontroller. I chose pin 6. To be sure the wires won’t tear off, I taped the Flora onto a piece of plastic and protected the pins with some hot glue. You can also see a little button switch in the left corner - I added it for changing between different LED patterns.
Now connect your power source to the microcontroller and the LED belt should light up.

Step 16: ... Almost Done

Almost done! Now you can trim the fibers to different lengths. In case you want different effects, you can use sandpaper along the length of the fibers or slightly bend the fibers. I sandpapered the ends a little bit more for a more diffuse glow toward the ends.

Thanks for reading my instructable and have fun building and wearing your skirt. In case you have any questions or something isn't clear, don't hesitate to ask.

Halloween Costume Contest 2015

Participated in the
Halloween Costume Contest 2015

2 People Made This Project!


  • Instrument Contest

    Instrument Contest
  • Make it Glow Contest

    Make it Glow Contest
  • STEM Contest

    STEM Contest

63 Discussions


5 months ago

Hi is the measurement of the tubing length correct, you have put cut it to lengths of 3cm but the pictures look more like 3 inchs


1 year ago

So I've been attempting to create this project and have been having a nightmare of a time with the microcontroller and LED strip. I purchased "WS2812B 5050 RGB LED Strip 144 LEDs/M ws2812 IC Individual Addressable 5V" on ebay for my LED strip and the Adafruit Flora v3 microcontroller. The LED strip came with two three pin JST connections (one on each end), so I removed one and soldered the wires to the VBATT, GND, and #6, respectively. Uploaded strandtest to microcontroller and attempted to light LED strip. It lights up (at least part way) and remains lit, but the microcontroller disconnects from the computer before any programming can be done. The reset button also doesn't seem to work, but the green power light remains on. I thought at first that I just had a faulty microcontroller (because the LED strand will light up to varying lengths prior to the disconnect - occasionally all the way to the end, I didn't think it was the LED strip), but I returned my original ebay purchase and purchased a second directly from the manufacturer and am experiencing the exact same problem. From your pictures, it looks like your LED strip is the same kind (WS28128) and the Adafruit Flora v3 shouldn't have a problem controlling the 144 LEDs, so I'm very confused. It can't be a power supply problem, since it's happening when connected directly to the computer. Any ideas as to what I'm doing wrong? Or does it just seem like I've got another lemon microcontroller? (I might just give up and try a different kind after this)

1 reply

Reply 1 year ago

Hi there: did you try controlling only a few LEDs (like 20)? Check if you have the same problem. What power supply are you using? Best, Lina


2 years ago

Thank you so much for this instructable. It is answering lots of questions I had from looking at other instructables in this area. I am planning to make myself a fibre optic dress like the one Natalina made on this site, but she used a fibre optic whip so I've been struggling to work out how to do it.

Did you use end light fibre optics? Do you think side light ones would use up too much battery as they release more light?
And how do you attach a battery pack? And how large can it be without blowing the electrics?
Thank you hugely for your help!
Susie :)

1 reply

Reply 2 years ago

Hi Susie: I'm happy to hear that this instructable helped you. To answer your questions: I used end emitting fiber optics and manipulated the ends with sand paper. You can also use side emitting fiber optics. They don't require more power, the light is just not traveling to the end but "breaking out". Check out this fiber optic instructable. Also, I'd recommend a 5V rechargeable power bank battery. Together with the microcontroller, I put the battery in a little pouch. Best, Lina


2 years ago

I wish I'd seen this earlier! I'm making a wig and you came up with a lot of the same processes as me, only I didn't know it until just now, haha. Would have saved me a lot of time. :) Anyway, can you explain how the switch changes between modes? That's the only part of the process I don't understand yet.

2 replies

Reply 2 years ago

Hi nancianne: sure, I soldered a button onto one of the pins on the board. Then I programmed the switch and uploaded multiple LED patterns onto the microcontroller. Now I can switch in-between the different LED-patterns, whenever I push the button. Hope that helps. Best, Lina


Reply 2 years ago

Thanks! I'm just starting to learn to code so I think I might be able to figure out the mode changes...but it's sure daunting, haha. Hopefully my project comes out as beautifully as yours. I'll be ready to post it in a few weeks and I'll make sure to post a link to yours for inspiration and details.


2 years ago

If I have no experience with micro controllers, is it possible to attach all of this to an LED strip that comes with a remote?

1 reply

Reply 2 years ago

yes, you can just use an LED strip with a remote control and battery pack instead of a microcontroller


3 years ago

I made this for Halloween and it was a huge hit! Now... How do I store it?

Because it's so three dimensional I'm not sure how to best hang / fold / box it. Any words of wisdom?

Thanks so much for designing this and posting this!

1 reply

Reply 3 years ago

Happy you made the skirt! Yes, storing isn't super easy and mine is on a mannequin to keep it's shape. But you can open up the skirt and tape the belt part onto a long piece of wood and hang it flat on a wall. Or carefully roll up about 5 fiber optic bundles each and tape them together. Like that it's easier storing it in a box. Hope that helps


3 years ago

I really love this!!! the only part to be improved is connecting the fibers to the LED strip. I wonder if something can be 3d printed to assist with that.


3 years ago

approx how much did the materials cost you for this skirt?

1 reply

Reply 3 years ago

In the end I spent about $90 (fiber optic bundle $25, microcontroller $25, LED strip $12, battery $10, glue...). If you want to save some money & work I found this pre programmed LED strip on ebay. t's the same I'm using except it comes with a battery pack and microcontroller already. It has buttons to change the color: It's only $5. Happy making


3 years ago

Hello firstly this is amazing an absolute workof art and absolutely brilliant, thank you for sharing your process.
Also I'm sorry to ask this may be a silly question but if you had used a power bank instead of the li po battery how would you go about connecting it to the flora because the flora site does have
"You can only power FLORA through its onboard JST port" in the description and I've been looking for something like a JST to USB cable but have had not luck at all.
I thought you would be a good person to ask because at the beginning you say you've since switched to using powerbanks yourself.

1 reply

Reply 3 years ago

Thanks so much. No worries you can use a power bank even tough it doesn't explicitly say it in their flora tutorials. I powered the old and the new flora with a usb power bank and both work fine. Whenever you connect your flora to your computer via usb (for uploading programs) its also powering the flora.

I hope I could help you a little and have fun with your first project.

Best, Lina


4 years ago

This is way cool!! You are definitely a handy chick wow. this instantly inspired a whole bunch of concepts bouncing around in my head


4 years ago

Hey Lena!

Wonderful art I must say, and I'm preconceiving what it will take to recreate it. I have some questions:

-The Battery pack part confuses me. I see you used plastic mesh. did you attach the mesh to the skirt via soldering iron or glue, and then sew the cloth to it to enclose the pack?

-It's also unclear to me how exactly there is an on/off switch mechanism. When I want to turn it off do I just remove the battery wires from the Gemma platform? You seem to have an actual switch, but on the arduino I'm looking at there doesn't appear to have a switch.


1 reply

Reply 4 years ago

Hi Julia:

The plastic mesh has two ‘legs’, which I pulled through the LED-strip and belt (big picture step 12). I folded those legs and sewed them onto the ‘mesh square’ (bottom middle picture step 12). Now the plastic mesh is attached to the belt. After sewing the battery pocket I put sticky-backed Velcro on the back of the pocket and put the opposite Velcro piece onto the plastic mesh square. In the bottom right picture of step 12 you can see the battery pocket next to the plastic square. Now I can stick the battery pocket onto the mesh square.

In the end you just need a little pocket attached to something so you don’t have to hold on to the microcontroller and battery all the time. Just make sure the wires coming from the LED-strip are long enough.

If you want to turn off your LEDs you can use the on/off switch on the Flora. In the big picture of step 15 you can see the switch above the bottom 3.3 V pin. You can also unplug the battery from the microcontroller. In the picture of step 4 there is a blue LiPo battery with an JST-plug (white plastic plug). The Flora has a JST-jack (white plastic box on the board). You can easily plug and unplug your battery without removing any wires. Depending on the Arduino you’re using you might not have a switch on the board. You can always remove your power source from the board to turn off the LEDs though.

I hope I could help you a little and have fun building the skirt.