Neopixel LED Skirt

DIY Skirt with 120 Neopixel LEDs and motion detection

Public Chat
Similar projects worth following
My first wearable project integrating 120 WS2812B RGB LEDs to a DIY skirt.
Of course, I was only responsible for the LED and coding stuff, sewing and pattern construction was done by a pro (who luckily is my girlfriend).
This project war inspired by and

Bouncing ball example triggered by motion:

Video showing the fist implemented light effects:

  • bouncing balls (motion triggered)
  • meteor rain
  • fire


Meteor rain example from the video

ino - 2.66 kB - 02/03/2021 at 17:50


  • 1 × Adafruit QT PY
  • 120 × WS2812B Neopixel LED (60 LED/m stripe) Electronic Components / Misc. Electronic Components
  • 1 × Adafruit LSM6DSO32 board
  • 1 × STEMMA cable
  • 1 × 5000 mAh USB power bank

  • Circuit diagram

    makeTVee02/20/2021 at 08:22 0 comments

    Simple circuit diagram for connecting the strip and sensor:

  • Coding

    makeTVee02/03/2021 at 17:49 0 comments

    1. Meteor rain

    Simple example using the following lib: which I have found on 

    To install the library, you have to download the AGNeoPatterns folder from the repository above, put it into a zip-file and include this in the Arduino IDE as a library.

    It allows me to define virtual strip segments in a long LED strip, so I can control the 6 strips separately even if they are connected to a single pin of the controller.

    2. Bouncing Ball

    added to my Github: as a PlatformIO project.

    special version with rainbow color change balls, looks even better ;-)

    If you are using RGBW strips instead of RGB strips, you have to change the init parameters for the Neopixels:

    RGB: npNeoPixel pixels = npNeoPixel(20, NeoPin, NEO_GRB + NEO_KHZ800, 1.0);

    RGBW: npNeoPixel pixels = npNeoPixel(20, NeoPin, NEO_GRBW + NEO_KHZ800, 1.0);

  • LED integration and skirt design

    makeTVee02/02/2021 at 17:53 0 comments

    6 LED stripes with 20 LEDs each are installed only at the front of the skirt. There are no LEDs at the back because of practical reasons (sitting, rest room etc.). 

    The stripes are connected in a serpentine layout, so only one pin on the QT PY is used. Therefore, there are three connections at the bottom of the skirt, which are secured on the stripe with some hot glue (not the final solution). 

    The skirt itself has 3 layers: 

    • blue semi transparent top layer for diffusion
    • white middle layer (cotton) holding the LEDs  and guiding the cable, also used at the waistband
    • white bottom layer (lining fabric) to reduce resistance esp. during walking.

    The stripes are attached to the skirt with Velcro, one side glued to the stripe, the other one sewed to the fabric. Every stripe has 4 Velcro points.

    Power is distributed at the top of the stripes and hidden in the white double layer at the top.

    Shrinking tubes are already installed, but not shrinked yet.

    The cable is guided to a pocket at the back of the skirt. There is a buttonhole to reach the pocket from inside.

    As mentioned, there are no LEDs at the back for better daily use. Of course, for special reasons (e.g. dancing), this skirt can be easily updated to a full LED set by adding stripes on the back via Velcro. 

    The pocket at the top of the back is large enough to hold the USB power bank and the controller, but still small enough to hide it under a shirt.

    All 6 stripes are accessed by this single cable ending in the pocket.

    If everything is install, the pocket looks like this

    Apart from this, the skirt is a normal skirt with full functionality ;-) So it is also a nice skirt without LEDs. But why should someone do this....

    So better switch the lights on: 


  • Build process

    makeTVee02/02/2021 at 17:52 0 comments

    Some pictures from the build process:

    Pattern cut out:

    Velcro points on fabric:

    Fastener on waist band:

    LED arrangement (serpentine layout):

View all 4 project logs

Enjoy this project?



Chris Weed wrote 05/19/2021 at 22:56 point

Thank you for the inspiration.  I've always been "eh LEDs in clothes, that looks strange" but this is very well done.  I just purchased the parts and am going to get started ASAP.  This will also be my first "real" project that I'll be listening to the instructions :)  Good work!

  Are you sure? yes | no

hedenstedmads wrote 05/05/2021 at 07:24 point

I made it!

The first project I have finished. Sort off, my bouncing balls are syncretic, and I can't figure out why!?

But it's was a cool project to make, thank you for sharing it.

  Are you sure? yes | no

makeTVee wrote 05/05/2021 at 17:38 point

Great stuff! If you want to have fixed colors for the balls, just uncomment line 82.

  Are you sure? yes | no

hedenstedmads wrote 05/06/2021 at 16:00 point

On the clip you have posted it looks like the LED strip's bouncing more random. I basically have a line of LEDs moving up and down my wife.

  Are you sure? yes | no

makeTVee wrote 05/07/2021 at 10:47 point

okay, that is unexpected, can you send me your code via direct message here at hackaday? I will test it on my setup.

  Are you sure? yes | no

ba.vaughan wrote 03/18/2021 at 17:20 point

Ported the software to an Arduino pro mini. Substituted a mercury tilt switch for the accelerometer. Very simple. Works great. Got to learn PlatformIO and blinky lights. Thank you for the project.

  Are you sure? yes | no

SimonAllen wrote 03/01/2021 at 21:16 point

I am still having problems.  The error I get is 

Meteor_rain:11:10: fatal error: npMeteor.h: No such file or directory
   11 | #include <npMeteor.h>
      |          ^~~~~~~~~~~~
compilation terminated.

exit status 1
npMeteor.h: No such file or directory

I have downloaded  I have pointed Arduino IDE at it and asked it to install the library. I have tried this a few times but I still get the error.  If I look in Sketch/Include Library I see at the bottom Recommended Libraries - Adafruit NeoPixel.  The file npMeteor.h is in the zip file.  I checked that.

However, it is clearly not seeing it. Any ideas.  My version on Arduino is 1.8.12 which is the penultimate one.  I am puzzled as to what is awry.  Any ideas?

  Are you sure? yes | no

makeTVee wrote 03/02/2021 at 05:01 point

Hi Simon,

then please try to copy the AGNeoPatterns folder from the zip into the folder with your .ino file. 

  Are you sure? yes | no

SimonAllen wrote 03/03/2021 at 08:53 point

I have tried that and got the same error.  It does not see the npMeteor.h file, even though it is plainly there.  I then moved over to a Mac where I have Arduino IDE running but I get the same error there.  I have downloaded Visual Code Studio with the Arduino add on but as I feared it is a new program to me and I am lost at the moment.  I have already built the circuit and it is ready to attach to the QT PI but I am stuck.  I do feel rather dumb.  I know what the purpose of npMeteor.h is and it clearly must be used elsewhere.  It is in both examples of the code you have posted.  Other people must use it too.   I have googled this error but I am still stuck.  What else can I try? 

  Are you sure? yes | no

makeTVee wrote 03/03/2021 at 10:27 point

I have sent you a message

  Are you sure? yes | no

makeTVee wrote 03/03/2021 at 20:06 point

just to add it here, issue is fixed now by importing the to the Arduino IDE as a lib. Already updated the project log.

  Are you sure? yes | no

Ken Yap wrote 03/03/2021 at 10:49 point

IIRC #include <> searches in standard directories but not the current directory. Try changing the <> to "", thus #include "npMeteor.h"

  Are you sure? yes | no

SimonAllen wrote 02/28/2021 at 22:13 point

A couple of questions.  I cannot find the file npMeteor.h.  Any idea where I can find that?  Also, does it need a resistor inserted on A3. 

  Are you sure? yes | no

makeTVee wrote 03/01/2021 at 05:44 point

Hi Simon, 

npMeteor.h is part of the mentioned external library 

Please download the library as a zip file and install it in Arduino IDE (add .zip lib):

Resistor on A3 is recommended (470 Ohm), but it works also without. 

  Are you sure? yes | no

SimonAllen wrote 02/21/2021 at 08:54 point

What IDE would recommend for uploading the code.  I am new to this but have some Arduino experience.

  Are you sure? yes | no

makeTVee wrote 02/21/2021 at 16:42 point

With Arduino experience, I would recommend Arduino IDE. If you like a more modern approach, use Visual Studio Code with PlatformIO. That's my preferred setup.

  Are you sure? yes | no

SimonAllen wrote 02/19/2021 at 21:43 point

Is there a circuit diagram?

  Are you sure? yes | no

makeTVee wrote 02/20/2021 at 08:23 point

just added it to the project log

  Are you sure? yes | no

SimonAllen wrote 02/20/2021 at 10:05 point

Good gracious.  It is as straight forward as that.  I was thinking that it had other components.  Am I right that it is possible to individually address each string?  I noticed that in the bouncing video some decay slower than others.

  Are you sure? yes | no

Tom_Neverwinter wrote 02/18/2021 at 08:15 point

Its a cool project. Until you look at the price to make it due to using proprietary boards. an esp32 and a 6dof sensor with cheap ws2812b/11 strips would be cheaper and more effective. 

  Are you sure? yes | no

makeTVee wrote 02/18/2021 at 11:48 point

Thanks, but I don't get your point. As you can see on the pictures, I am using cheap WS2812B IP30 strips from China, QT Py is 6 $ and as proprietary as esp32 boards. Why using an ESP32 if Bluetooth and Wifi are not used? There are cheaper Arduino boards out there. And Adafruit documentation is brilliant, so using an Adafruit board is always my prefered way to finish projects fast. But of course, it is always possible to save some money in the next iteration after finishing the prototype...

  Are you sure? yes | no

Danica Roberts wrote 02/18/2021 at 04:40 point

OMG I LOVE THIS!!! Putting on my list of things to try :)

  Are you sure? yes | no

sandor wrote 02/17/2021 at 21:36 point

This looks fantastic. My daughter has a tenuous relationship with gravity so she'll love something that bounces when she does.

  Are you sure? yes | no

Ted wrote 02/17/2021 at 21:36 point

I like this idea of virtual kinetics.

I've integrated IMUs in some of my LED wearables, but I haven't figured out a good application for them yet. I've implemented a halter-top that sparkles if you jump (somewhat unreliably), but this is much cooler.

  Are you sure? yes | no

SimonAllen wrote 02/17/2021 at 19:57 point

Is there a pattern for the fabric?

  Are you sure? yes | no

makeTVee wrote 02/18/2021 at 11:51 point

Unfourtunatly not, it is a custom pattern designed for a perfect fit to the designers body. But if you start with a thick waistband, you can use a panel skirt design with 6 panels to get a similar result. If you need more information, send me a direct message and I will try to help with more details.

  Are you sure? yes | no

Chris wrote 02/17/2021 at 17:30 point

Reminds me of my wedding suit from a couple of years back! But you've made it more interesting with the bouncing balls!! Though mine was WiFi controllable so guests could change the pattern while the speed adjusted to the music.

  Are you sure? yes | no

benkokes wrote 02/17/2021 at 17:20 point

What a great, clever concept! And well executed!  I love it, great job!

  Are you sure? yes | no

Mike Szczys wrote 02/16/2021 at 15:46 point

Wow! That came out great. I absolutely love the bouncing ball animations.

The material does a great job of obscuring the strips without blocking the light. Even thought I know the trick it fools my eye into thinking there's something more complex than a set of columns going on here. Love it!

  Are you sure? yes | no

makeTVee wrote 02/16/2021 at 17:29 point

Thank you! Yes, it's a pretty simple LED setup, but it looks great and even better in real life. It is so much fun seeing the people's reaction on the street.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates