DIY LED Hula Hoop

Bill of materials

So I made an LED hula hoop. It has 96 LEDs, 105 different modes, and lasts about 3.5 hours at full brightness. It’s also the only hoop I’ve seen that displays a message using persistence of vision.


The batteries are wired in parallel so they basically just add up the mAh capacity. If they were wired up in series, the voltage would add instead. The hoop would work with just one, but then the mass wouldn’t be evenly distributed and the hoop balance would be a little off. And it would also go dead in half an hour. They start out sending 4.2 volts, but slowly drop until it hits 3.3 volts (the actual discharge characteristics depend on the temperature). They are the same size and shape as AA batteries, but keep in mind, AA batteries are 1.5v, and these are not.

The batteries are wired up behind a Tenergy 32003 to protect them from overdraining and overcharging. When in use, the hoop will actually cut off before the voltage goes too low to prevent damage to the batteries. The circuit protects from overcharging too, but so does the charger. The 32003 didn’t want any more than 4.2 volts, so finding a wall-wart charger was a little difficult. I ended up wiring a charger directly into an extra charger for 18650s. It only charges at 600 mA, so I’m sure there’s a more appropriate charger out there.


The LEDs operate on a daisy chained controller, and come printed on a pretty flexible strip. 5050 RGB LEDs are mounted about every 2.5 inches. The LEDs are rated at 5 volts, but will dim when given lower voltage. I was actually able to overcharge them and get them brighter, but was warned this would burn the drivers if I kept at it so I stopped. My original plan was actually to run on 7.4 volts to keep them this bright.


At Bonnaroo 2010, I met this guy who had built his girlfriend a hoop, and was a huge help in this one. He pointed out that the Pro Mini can run off of anywhere from 3 volts to 5 volts. The difference is really just the crystal operating at 8 or 16 mHz (for stability concerns). So that made things a lot simpler.

The LED strip has two inputs for power, and two wires going to the Arduino for data and clock. The library that Adafruit provides for it lets us use any two pins on the Arduino to control it via bit-banged software SPI. However, if you happen to have pins 11 and 13 free (which we do), then you can use hardware SPI and get roughly 3-4 times the speed which makes POV at high speeds (i.e. while hooping) possible. If you edit the source of the LPD8806 library, you can change the SPI clock divider to go even faster, but you’ll have to worry about interference.

I used pins 2, 3, and 4 for pushbutton switches. 4 can be moved around, but 2 and 3 were pretty important because I send the arduino its sleep mode to save power. External interrupts pull it out and wake it up, but only pins 2 and 3 can do this.

So basically there’s an “off” button, a “mode” button, and a “color” button. The modes cycle through various modes of “Solid”, “Dragonfly”, “Strobe”, “Chasers”, “Chasers with statics”, “Rainbow”, and POV. The colors cycle through various colors, except for the chasers, where you can cycle through all the colors, and keep cycling through adding another chaser every time, up to 5. The POV mode displays the logo of Carrot Creative. Space is pretty cramped on the chip, so it’s just stored as an on/off bitmask, 32 pixels high (so each column is 1 32-bit int). The first few columns are green, so I just did that bit manually.


Probably the most frustrating part of this project is the assembly. It’s important for everything to be snug inside of the hoop so it doesn’t rattle, and wrapping it in bubble wrap greatly helps this, but the bubble wrap grips the sides of the tube. Taping three unraveled coat hangers together, and using them to pull the strip through helped a lot. Another thing to watch out for is that the contacts need to be insulated and wrapped in electrical tape so you don’t get shorts inside the tube which are nearly impossible to find and fix without a complete disassembly.

Source Code & EAGLE Wiring Diagrams

UPDATE, 2012-09-28: Here’s how I turned an image into a bitmask for the POV

UPDATE, 2014-05-08: A note about the tabs, it’s important to get a battery with tabs. We’re soldering our wires directly to the battery tabs that are arc-welded to the battery itself. You never want to solder directly onto the battery itself because you will either have a bad solder joint which will break off later, or you will heat up the battery so much during soldering that it explodes. That’s bad.

UPDATE, 2018-08-17: You can get batteries with the protection circuit built-in. That should simplify things.


    Posted February 24, 2012 at 4:17 pm | Permalink


    Do you know if this project would work with an arduino pro micro? It is small enough but I am new to programming. I am using the pro micro right now to control a rgb 2801 strip and it is working but I want to use Adafruit’s digital strip.

    • philihp
      Posted February 24, 2012 at 6:26 pm | Permalink

      Yes, it should! The width of the board is really the biggest challenge, and the Pro Micro looks to be the same size as the Pro Mini. A Seeeduino FILM might be able to go smaller though.

      Check the datasheet on the ATmega32U4, or manually test to see if it minds being underpowered at 3.5-4.2 volts. At a certain point (for me it was like 2.5 volts) the chip becomes unstable and nothing happens. The Li-ion protection chip cuts off far before the batteries hit that level though.

  • Luis
    Posted April 20, 2012 at 3:12 pm | Permalink

    I’m building one of these for my girlfriend. Do you have any pictures of the assembly? I’m most interested in how you mounted the push buttons and the plug for the charger.

    • philihp
      Posted June 25, 2012 at 2:44 pm | Permalink

      I didn’t have a good sturdy way of mounting the buttons on the outside. The plug for the charger can be mounted easily on the outside.

  • Glenn Wright
    Posted May 9, 2012 at 5:31 am | Permalink

    My friend and I made a hoop almost exactly like this one a while back – great minds think alike! A couple of differences, we used a single 18650 Li-ion battery, which created a large blank space but was easier to thread; also, this was back in the ever-so-long-ago days of HL1606. Ditto on assembly being the hardest part; there’s a tool called an elecrician’s snake that helps a lot, but we still had a hard time with the bubble wrap.

  • John
    Posted June 2, 2012 at 9:57 pm | Permalink

    Hi Philihp,
    This hoop looks amazing! I really want to make this hoop for my wifes birthday. Do you have any more instructions regarding the installation of the Arduino into the hoop itself?

    Many Thanks

  • Kristy
    Posted June 6, 2012 at 3:07 am | Permalink

    How much would one of these cost to make? Could I pay ya to make one for me?? Lol I’m not very mechanically inclined to do this myself. Use my email to write me back and we’ll talk up a deal 🙂 Thanks

  • John
    Posted June 22, 2012 at 1:02 pm | Permalink

    Do you know how to alter the code to work with the LPD6803? The libraries don’t make a whole lot of sense to me.

    • philihp
      Posted October 8, 2012 at 7:10 pm | Permalink

      Check with Adafruit.

  • Andrew
    Posted July 26, 2012 at 3:43 am | Permalink

    I want to power 3meter of LPD8806 strip (instead buying from adafruit, I bought from for $117 per reel). I am controlling it with the 5V arduino pro mini. How can I safely power it with 3 2500 mAh NiMH AAA Batterys? Will I need a 5V step-up breakout? and how should I handle the amps?

    • philihp
      Posted October 8, 2012 at 7:09 pm | Permalink

      I don’t recommend doing that just because of a lack of voltage and juice. You will need to put three of those batteries in series in order to get enough voltage, and the strips at full brightness are going to kill them in about an hour.

      You could add more batteries, but then you’re increasing the weight of the hoop. Alkaline or Lithium batteries pack much more juice per weight.

  • Jane
    Posted July 29, 2012 at 11:54 am | Permalink

    I have had some experiance with electronics and making led hula hoops before and i would really like to give this a go. Do you think it would be in the ok for an a beginner project for ardiuno or Is it to difficult.

    Also using the chip would i be able to make up my own to time sequences like 10sec Blue 25sec two different colours 50sec all white. That sort of thing?

    Sorry for all the questions but i’m just try to work out if this is the project i’m looking for.

    • philihp
      Posted October 8, 2012 at 6:58 pm | Permalink

      Of course! It’s pretty easy for a beginner. The hardest part is actually making the switch assembly. There’s probably a better way, but I don’t know it. Build it all out before you put it in the tube, that way you know it all works.

      Extending the timing is easy. Shortening the timing actually gets pretty tough though.

      Feel free to email me for faster responses.

  • Flower
    Posted October 8, 2012 at 6:41 pm | Permalink

    Hi there,

    Love the tutorial. I’ve been gathering supplies to try one of my own. However, I need to fit it inside a hoop with inner diameter .625″ (1.58cm). I’m thinking perhaps the Seeeduino film might be able to bend inside the hoop, allowing me to squeeze it in. I thought I’d ask you first though, to see if you have any advice.


    • philihp
      Posted October 8, 2012 at 6:54 pm | Permalink

      A seeeduino film would work, but you will probably want to get some smaller batteries at that point. The batteries are long, so even though the batteries fit within the radius, they might not fit in a bent tube. #thirddimensionproblems

  • Justin Ellis
    Posted October 20, 2012 at 12:10 am | Permalink

    Great design, really enjoyed making this and finding a new use for the arduinos. Unfortunately used too much force to pull the assembly through the hoop at the very end and damaged a section of the LED strip at the end, bummer. Now that one section is permanently illuminated, must have pinched the contacts. Oh well, gonna take a break from this and start over again in a couple week 😉 Thanks for the code and parts list, very cool!

    • philihp
      Posted November 17, 2012 at 5:39 pm | Permalink

      Glad to hear it!! I actually did the same thing a few times. My theory was that some static electricity from the tube burnt out the chip. You can actually just remove one segment and solder the two ends back together and it all works again.

      See if you can find some sort of lubricant that evaporates away?

      • nick
        Posted November 18, 2012 at 2:57 am | Permalink

        Well, hairspray will lubricate till it dries, but then become tacky. I was thinking dielectric grease, brakleen, or liquid graphite. Still trying to figure out what to use for a lubricant, I’m using an arduino film and trying for as small a hoop as possible, .75in ID or less. The person its for is too “advanced” to settle with a 1″ hoop, 96 leds or no, apparently. Reminds me of webdesign :-/

        • philihp
          Posted November 20, 2012 at 5:55 am | Permalink

          Oh I am well aware. They can get rather picky. Make sure your tube is wide enough to fit the batteries too!

  • pete
    Posted November 17, 2012 at 2:11 am | Permalink

    does the Arduino Pro Mini 328 come per-programed with different modes or do you have to connect it to a usb interface and dl to the chip, also do need to worry about the carrot pov, putting together the circuitry and figuring out assembly is no problem for me as long as i have a schematic just new to programming something like this so would rather not have to.

    • philihp
      Posted November 17, 2012 at 5:36 pm | Permalink

      No, the chip does not come pre-programmed. You can upload my code as-is and everything will work, it should be a good template to work from and modify.

  • nick
    Posted December 1, 2012 at 3:49 am | Permalink

    I thought you’d like this too, its pretty sweet. I’m using a spacer behind it to push it up and hot glue to hold it in place, cut a hole in the side of the hoop, and viola! a very pro looking 5-way joystick! sticks up about 1mm or so

    • philihp
      Posted March 4, 2013 at 8:04 pm | Permalink

      Sweet!! I wish I had one of these then. How is the hot glue holding up? I worried about it losing its hold after temperature changes.

  • Patrick
    Posted December 6, 2012 at 10:18 am | Permalink

    Do you know if pins 2 and 3 are the same on teensy 2.0? Would they be able to pull it out of sleep mode?

    • philihp
      Posted March 4, 2013 at 8:09 pm | Permalink

      I have no idea, but if they have the same ATmega chip you can look at the PCB and trace it down to which pins it hits on the IC.

  • patrick
    Posted December 9, 2012 at 12:48 am | Permalink

    Would you use the same pins to pull it out of sleep mode on a teensy 2.0, pins 2 and 3?

    • philihp
      Posted January 20, 2013 at 2:16 pm | Permalink

      I’m sorry, I’m not familiar with the Teensy — If you lookup datasheets on the ATmega chip inside of the Arduino, you’ll see that the pins on it trace directly to the pins on the Arduino board. That’s how I knew which pins to wire up for my hoop. You could do something similar with the chip on the Teensy.

  • francois
    Posted January 9, 2013 at 6:24 pm | Permalink

    Hi there,
    I am new to electronics, in fact the most I have done is wire plugs and such, but I am determined to make this hoop!

    I have no parts yet and want to purchase everything soon. I am starting with absolutely nothing, and even need to purchase a soldering iron etc.
    Can you please correct me if I am wrong…. What I need to do is purchase the Arduino Pro Mini 328 – 5V/16MHz, AND then also get an Arduino starter kit with UNO board so that I can connect to and program the Pro Mini…is this correct?
    I see there is also a similar product (Pro Micro – 5V will this work exactly the same? Would that product also need me to get the UNO board, or can it communicate directly with the pc through that USB?
    Would you suggest one option over the other?
    I am wanting to make the hoop and design my own patterns to load onto the hoop…do you think there will be enough space on the chip to load say 100 patterns? What about images? Is there limits to image size or type?
    I am sorry for all these questions that must seem very basic to you, but I am very new to this and I want to make this work 🙂

    Thank you

    • philihp
      Posted March 4, 2013 at 8:08 pm | Permalink

      That chip would work. It wasn’t out when I did this project, and I’m sure having an integrated USB controller will make things simpler.

      I was limited by space on the chip, and wasn’t able to fit another bitmap. Depending on the complexity of your patterns, and how small you can get the optimized code down, you can easily fit 100 patterns up. You might want to look into adding an SD card reader to have a better interface and give yourself a few gigs of storage space for images.

  • Justin
    Posted February 13, 2013 at 10:14 pm | Permalink

    Curious as to how you positioned the batteries inside the hoop. Did you put two on each side of the hoop? I ask because you were concerned with the balance of the hoop. Thanks!

    • philihp
      Posted March 4, 2013 at 8:06 pm | Permalink

      I tried to space them evenly around the hoop. It’s pretty easy to get nearly perfect balance with 3 or more batteries, but maddeningly hard with only 2.

  • Ali
    Posted March 12, 2013 at 7:10 pm | Permalink

    I was wondering, is it possible to do this with smaller diameter tubing? such as 5/8’s?

    • philihp
      Posted March 21, 2013 at 8:18 pm | Permalink

      Yes, but make sure the Arduino fits. It’s 0.7″ wide, that’s really the limiting factor. You could use thinner batteries, just remember that if this lasts 4 hours, and you use batteries with only a quarter the mAh, you’ve literally cut your lifetime down to 1 hour.

  • Psyhooper
    Posted March 13, 2013 at 4:44 am | Permalink

    Lovin this site but a few questions.

    1. With 4 batteries wont that make 4 blank spaces inside the hoop?

    2.Programming the hoop… I dont know ANYTHING about programming. Can you explain a little how that works and will there choices of patterns you can choose from? Will I need to get extra software?

    3. Could you use a different battery by chance? Like lets say I wanted a 3/4 hdpe or polypro.. Will the batteries still fit? Can I use maybe just one 3.7 v 2200mah


    • philihp
      Posted March 21, 2013 at 8:16 pm | Permalink

      1. The LED strip sits on the outside, sandwiched between the battery and the inside of the tube. You can see it pressed up, and the lighting is a bit less diffused, but in motion you can’t tell.

      2. Check for some great tutorials. You will need the Arduino software (which is free) in order to upload your patterns onto the chip.

      3. You can use any Lipo 3.7 volt battery, one with a lower mAh capacity will just not last as long. I really can’t speak as to if it will fit, the main concerns are that the Arduino board being too wide, and the battery being able to be sandwiched between the LED strip (which is about 3/16″ thick IIRC)

  • Teak
    Posted May 9, 2013 at 2:29 pm | Permalink

    Great post! Guess I’m going to give this a go for my girlfriend’s birthday. First, a few questions:

    1) What would you do differently if you were to build another?

    2) Would the same code work if I were to use this chip:

    and this joystick?

    3) Would the hula-hoop become too heavy if you were to keep the 4 batteries together and use something of equal weight to offset/balance the hoop?

    Again, thanks for your post. It is the most technical & helpful on the web!

    • philihp
      Posted May 31, 2013 at 6:39 pm | Permalink


      1) I would find some sort of lubricant (that would evaporate) to slide in the assembly into the hoop. That was easily the most difficult part.

      2) I’m 99% sure it probably would work with the Pro Micro. I think others have tried that and it worked. The only thing that should be different is the pins used for connecting to the LED strip (I had to use specific ones for hardware clocking), and the pins used for going to sleep. The code definitely would need to be modified to work with the 5-position switch, but that’s probably a better option.

      3) The more skilled the user the lighter they want the hoop. There’s no such thing as “too heavy”, however it’s difficult to go very fast using one. It’s all a matter of taste… ask the person you’re making it for 🙂

      You’re welcome. I hope it (at least) gives you a good starting place!

  • john
    Posted June 3, 2013 at 3:49 pm | Permalink


    So I’ve been working on a hoop based on your design for a while now and now that it’s finished I find I have a pixel in the middle of the strip that has gone bad. It seems to have lost it’s green led. Is there a way to just disable a single pixel in the code? I’m afraid i don’t have time to pull it all apart and would probably break something else.

    P.S. For lubricant, I found mineral oil to work well and it is non- conductive. Also it is a lot easier to pull through the tubing when the tube is uncoiled as much as possible.

  • Posted June 6, 2013 at 11:19 pm | Permalink

    Hi, I’ve been making and selling led hoops for a few years now and as a Hooper have decided I wanted to make myself an affordable “smart” hoop. I am going to school for software development and have some programming skills so your tutorial is xactly what I needed. Couple tips, for your buttons, try to find surface mount buttons, drill small screw holes and push them against the tubing with a screwdriver and screw them on.

    Also, you can easily use hot glue to protect your connections wrapped with clear electrical tape and it holds up REALLY well. We make all of our hoops with hot glue and even secure many of the components by drilling a tiny hole in the tubing and back filling with hot glue. You can wet your finger and smooth the glue over the hole once filled and it is nearly invisible.

    We use 3 nimh aa batteries from tenergy in all of our hoops however this would require at least 4 for sufficient power/battery life but i doubt it will fit behind the light strip so I am considering using 6 or 8 AAA wired with 2 sets of 3 or 4 in series and those sets in parallel. Might be heavier but nimh is MUCH safer and more reliable/longer overall life. I’ll have to play around with it a bit.

    Hope this helps.

    • Posted June 6, 2013 at 11:20 pm | Permalink

      That is push the buttons up from the INSIDE through drilled holes and put flat screws on both sides.

    • Posted June 6, 2013 at 11:32 pm | Permalink

      Oh, also, we used to use bubble wrap but migrated to clear cellophane which you can find rolls of at dollar tree or anywhere that sells wrapping paper. You just roll it around your entire project (skipping the batteries due to space constraint) about 3 layers thick and it provides a nice cushion while not dimming/distorting the light output like bubblewrap can sometimes do.

      Another thing, small drill bits and a rivet gun can be your best friend. Find some the depth you want for your tubing wall and button/circuit board and punch a rivet through a small drilled hole. It really secures the components and prevents them from rattling or shaking around and possibly breaking against the inside of the tubing. You can fins white rivets online fairly cheap and they sit flush with the tubing and look very professional. We use them to secure switches and connectors to the hoop walls.

    • Teak
      Posted June 20, 2013 at 11:58 pm | Permalink

      Would you be willing to share any of your lighting patterns/effects code (assuming it is different than the jubilee/ledbelttest/longstrandtest code)?

      The patters used by moodhoops are pretty cool (see e.g., but I don’t have the slightest idea of how to accomplish that effect.

  • Melissa
    Posted July 10, 2013 at 10:11 pm | Permalink

    Hi, I want to do this with the 7 segment radio shack LED strip. The coding is ridiculous (for me) is it possible? It looks like this chip only has 1 input based on timing. Thank you!

    • philihp
      Posted August 9, 2013 at 8:05 pm | Permalink

      It’s certainly possible with that. It depends on how the pin-outs are, usually I see 7-segment displays having 8 pins (7 for each LED and 1 as a common anode or cathode to all of them), and if you have multiple digits you have to multiplex them.

  • Leah
    Posted July 25, 2013 at 9:24 pm | Permalink

    Is there a cheaper alternative to the Adafruit Digitally Addressable LEDs? Something that will work the same?
    I’m very new to all of this but I’ve been making regular hoops for a while and would like to branch out to LED hoops.

    • philihp
      Posted August 9, 2013 at 8:16 pm | Permalink

      You could try finding a direct source for them in China on There are a lot of scammers on that site, but if you can build a good working relationship you’ll save a lot of money.

      Good luck! LED hoops require a lot of specialized knowledge, but remember: if it were easy, it wouldn’t be rewarding.

    • Tekket
      Posted August 12, 2013 at 3:42 pm | Permalink


      Ive bought many reels from them at 12/m. They arrived to me here in Canada in 3 business days.
      (my last project of my own using them: )

      Had more then a few people at the festival ask me about hula hoops, and I found this post.

      Love the work, I’ll be giving it a go myself shortly! Hopefully work on adding more effects/sequences as well.

  • John P
    Posted September 4, 2013 at 7:46 pm | Permalink

    can you help me with this not much programming knowledge i would really appreciate it…

    sketch_sep04d.ino:1:29: error: LPD8806/LPD8806.h: No such file or directory
    sketch_sep04d.ino:4:20: error: carrot.h: No such file or directory
    sketch_sep04d:7: error: ‘LPD8806’ does not name a type
    sketch_sep04d.ino: In function ‘void blackout()’:
    sketch_sep04d:41: error: ‘strip’ was not declared in this scope
    sketch_sep04d:44: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void handleStrip()’:
    sketch_sep04d:104: error: ‘strip’ was not declared in this scope
    sketch_sep04d:110: error: ‘strip’ was not declared in this scope
    sketch_sep04d:117: error: ‘strip’ was not declared in this scope
    sketch_sep04d:122: error: ‘strip’ was not declared in this scope
    sketch_sep04d:131: error: ‘strip’ was not declared in this scope
    sketch_sep04d:163: error: ‘carrot’ was not declared in this scope
    sketch_sep04d:179: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void setup()’:
    sketch_sep04d:187: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void colorWipe(uint32_t, uint8_t)’:
    sketch_sep04d:208: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void colorChase(uint32_t, uint8_t)’:
    sketch_sep04d:220: error: ‘strip’ was not declared in this scope
    sketch_sep04d:224: error: ‘strip’ was not declared in this scope
    sketch_sep04d:230: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void dither(uint32_t, uint8_t)’:
    sketch_sep04d:239: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void scanner(uint8_t, uint8_t, uint8_t, uint8_t)’:
    sketch_sep04d:266: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘void wave(uint32_t, int, uint8_t)’:
    sketch_sep04d:307: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘uint32_t Wheel(uint16_t)’:
    sketch_sep04d:357: error: ‘strip’ was not declared in this scope
    sketch_sep04d.ino: In function ‘uint32_t GetColor(int)’:
    sketch_sep04d:365: error: ‘strip’ was not declared in this scope

    • philihp
      Posted September 13, 2013 at 6:38 pm | Permalink

      Your compiler is having trouble finding the header files. Are they in the right location?

      • Kevin
        Posted November 5, 2013 at 6:18 am | Permalink

        I’m getting the same errors. I am running arduino on my mac, and I have the LPD8806 folder in the same folder as jubilee.pde. Considering the code doesn’t say “../LPD8806/LPD8806.h” I can only assume I have it in the correct location.

  • terre
    Posted September 11, 2013 at 12:36 pm | Permalink

    How about contacting manufacturers in the states about supplying them instead? Isn’t this part of our mission- to be sustainable and support local business when possible?

    • philihp
      Posted September 13, 2013 at 6:48 pm | Permalink

      Are you referring to any of the components in particular?

      It’s a little off topic, but personally I believe globalization is the best deterrent to military conflict. I subscribe to the Dell Theory of Conflict Prevention.

  • Bob Green
    Posted September 15, 2013 at 6:46 pm | Permalink

    Hi I am looking at building one of these. A tiny lily may get the tubing size down as it is 14mm which means I can use 5/8 inch ID tube. But will this still run the code and have the buttons for selecting the patterns?

    • larry
      Posted October 1, 2013 at 3:52 pm | Permalink

      if you really need to get the size down you could use a ATtiny85 chip.

    • Nick
      Posted April 9, 2015 at 5:09 pm | Permalink

      Did you get this to work on the Attiny? Looking to do this with a Neopixel strip

      • philihp
        Posted April 21, 2015 at 8:59 am | Permalink

        I only did it on the chip I listed. I don’t see any reason why it wouldn’t work, though.

  • larry
    Posted September 30, 2013 at 7:18 pm | Permalink

    where did you locate a charger at? any pic or more info? also could this be used with a different type of led strip light? like ws2801 or something a little cheaper??

    • Andrew
      Posted October 18, 2013 at 11:31 am | Permalink

      The charger is on the parts list, from Amazon. What my friend did when we made one was find a wall wart with the correct diameter barrel plug, open that up, and remove the whole cord, including the strain relief. Then, we opened up the wall charger, cut a small square inlet for the strain relief at the bottom, and soldered the wires to the appropriate terminals on the board and closed it back up. Now it has a nice, clean looking plug that goes into the charging port in the tube, and the charger is still perfectly useful for charging 18650’s.

      We had looked at using the other lights like you mentioned, and I don’t see any reason why they wouldn’t work. Most of those cheaper ones use a 1-wire serial protocol, so that would have to be accounted for, but the libraries are out there already.

      • Josh D
        Posted October 30, 2013 at 1:36 am | Permalink

        any word on cheaper leds?

  • anomad
    Posted October 14, 2013 at 7:39 pm | Permalink

    . just finished building an rgb hoop based off of your design and code. 🙂 i just wanted to say thank you for sharing this information !

    . and here’s shot of your carrot logo –

    • philihp
      Posted October 21, 2013 at 10:05 pm | Permalink

      Looks good!!

  • anomad
    Posted October 23, 2013 at 8:17 pm | Permalink

    . i decided to convert the persistent visual code to 16 color –

    • Posted January 5, 2014 at 4:07 pm | Permalink


      Can you give an explanation on how you made that graphic for the hoop? I am struggling to make different patterns, any help would be appreciated.

      • philihp
        Posted January 6, 2014 at 3:46 am | Permalink

        Unfortunately the method of making the graphic is a little technically advanced. Each row in the array in carrot.h is a bitmask of what each of the LEDs will show, where a 0 is off, and 1 is on. Every time the hoop iterates, it shows the next row of the array.

        Unfortunately space inside the chip was really limited, so to do color I just had the first 32 iterations show green, and the other 96 iterations show orange.

        To create your own image, you’d want to create your own bitmask array. This might be helpful:

  • Josh D
    Posted October 30, 2013 at 1:11 am | Permalink
  • Josh D
    Posted October 30, 2013 at 1:34 am | Permalink
    • philihp
      Posted November 24, 2013 at 4:38 pm | Permalink

      That might be too wide. You’ll have to make sure it fits in your tube. That’s really the limiting factor.

    • Mike Nopes
      Posted December 4, 2013 at 5:44 am | Permalink

      With it being that size I’d use 3/4″ tubing

    • Larry Molter
      Posted February 7, 2014 at 9:36 pm | Permalink

      Josh, did you ever build a hoop with femtoduino after all?

  • sophie
    Posted November 9, 2013 at 11:48 am | Permalink

    Hi , do you have a full tutorial at all , i really want to make one of these .

    • philihp
      Posted November 24, 2013 at 4:36 pm | Permalink

      Hi Sophie,

      This is the full tutorial 🙂

  • Posted November 15, 2013 at 6:53 am | Permalink

    Hi Philihp,

    Tell me, how did you create the carrot logo? I dont understand how it is made in the carrot.h file?

    Do you have a link that can explain? Any tips would be greatly appreciated 😀

    • philihp
      Posted November 24, 2013 at 4:36 pm | Permalink


      It’s a hack, but if you expand out the bits of the integers in the header file, you’ll see the logo written in binary. There’s a writeup of how I did it with a quick-and-dirty java program here:

      • Posted December 11, 2013 at 4:02 pm | Permalink

        Awesome! thanks, I have made your design and it is all working, except that I didnt realise how difficult it would be to get into the tubing. I am struggling to get it all in at the moment, but otherwise its working perfectly 😀

        • philihp
          Posted December 11, 2013 at 4:42 pm | Permalink

          Yeah, that’s by far the most annoying part of it!! I hear there is non-corrosive/conductive lubricant that evaporates cleanly. I’m not sure what it’s called, but it should help a lot.

          • Posted January 5, 2014 at 4:28 pm | Permalink

            OMG! I have taken the hoop apart about 20 times to make it perfect, and its still not right lol!
            I am using 3/4″ clear polypro tubing, so its a much smaller ID. I removed the waterproof plastic off the LED strip, but there are now areas where the strip starts to try and fold a bit, instead of be straight all round the hoop. I am thinking of putting on the plastic sleeve again, but then its going to be a nightmare getting the batteries in….although I heard parrafin might work well as a lubricant, so am gonna give that a try. Here is what the hoop looks like on rainbow mode, using clear polypro piping…
            It looks pretty good, but there are one or two blank spots I need to fix up, then seal again.

  • Julie
    Posted November 16, 2013 at 5:26 am | Permalink

    Are they really this bright?

  • Julie
    Posted November 16, 2013 at 5:28 am | Permalink

    I want to build one for my daughter who is nine cuz I can’t find any in Lebanon….. She is going to be in a talent show and she is really good at using the hula hoop…… I just gotta figure out how to build this thing…… How many lights are in the really bright one?

    • philihp
      Posted November 24, 2013 at 4:35 pm | Permalink

      How much time do you have before the talent show, and have you built anything like this before?

  • Mike Nopes
    Posted December 4, 2013 at 5:41 am | Permalink

    I am wanting to do this project could you post some pictures to help with all this information seeing how you put it all together and in a hula hoop would really help.

    • Mike Nopes
      Posted December 4, 2013 at 5:46 am | Permalink

      Oh and I think it’s great that someone actually put this online to help others with their projects thank you you are awesome!

    • philihp
      Posted December 11, 2013 at 5:58 pm | Permalink

      Hi Mike, sorry I don’t have any pictures. Please take some when you make yours, and I’ll be happy to post them for others.

  • Mike Nopes
    Posted December 4, 2013 at 5:42 am | Permalink

    Also I’m using a 177 led strip will that cause an difference in the programming you provided for the arduino

    • philihp
      Posted December 11, 2013 at 5:59 pm | Permalink

      You’ll want to change out some of the constants in the programming to account for that.

  • Monica
    Posted December 18, 2013 at 5:04 pm | Permalink

    Hi! I was debating making my own hula hoop but I don’t want it to be a smart hoop. I just want it to be white. I haven’t seen many tutorials using the led strips and was wondering what would differ in this tutorial if I just wanted a single white led strip.

    • philihp
      Posted January 3, 2014 at 8:02 pm | Permalink

      Yes, a solid white LED hoop is much simpler (and cheaper!). How would you want to power it? AA batteries? Lithiums?

  • Posted January 5, 2014 at 11:14 am | Permalink

    I’ve never built a DIY hula hoop, but the decent instructions provided here quite convinced me that DIY hula hoop making process is easy and I’m looking forward to give it a try. Thanks for the handy instructions.

  • Larry Molter
    Posted February 2, 2014 at 2:16 pm | Permalink

    For experimentation purposes, I bought 2 feet of an LPD8806 strip. My daughter, the recipient of my smart hoop once it’s done, commented that there’s too many LEDs. At 30/meter, we’re talking ultimately of 90 or so LEDs in the hoop. But commercial hoops I’ve seen have between 20 and 30 total. Is there some other form of addressable LEDs in a smaller LED/meter density? I guess (ugh) I could address every other (or every third) LED to achieve the same effect. This is my first attempt at a hoop. I have electronics experience and I have programmed various PICs and micro controllers for a while, so I just need advice on materials and assembly. You seem to be the goto guy on hoops. Thanks in advance.


    • philihp
      Posted February 6, 2014 at 10:38 pm | Permalink

      I’m flattered that I’m the goto guy, I’ve honestly only made 2 and a half of them, and really just did it for the challenge.

      I don’t know of any strips that go less than 32 LEDs/meter. There are some that certainly go higher, though. All of the strips seem to have LPD8806’s or WS2801’s in them, which are shift registers that will internally PWM the lights to be whichever color. When your daughter says there are too many LEDs, she probably means to say that the total brightness of the hoop is too bright. Instead of turning off half of them, why not shift darker colors in? For example, instead of 0xFF0000 for red, shift in 0x7F0000. The PWM of the registers is actually rather fast (much faster than the speed of the Arduino), so the flicker of them won’t be perceivable unless you’re looking for it.

      I would love to see your source code when you’re done. My background is in software, not hardware. There were a lot of “hacks” in my source code, so I’m sure there are things in there that will make you cringe 🙂

      • Larry Molter
        Posted February 7, 2014 at 1:07 pm | Permalink

        I referred to you as the ‘goto guy’ because on every DIY hoop blog/forum I’ve visited and asked if anyone knew of a good technically-oriented LED hoop blog, they all pointed to you. See, you’re famous already.

        Ok, so you answered my one burning question: There are no LED strips with tless than 30 leds/meter. Good. It kind of narrows things down a little: LPD8806′s or WS2801′s. Someone over in the Arduino forum mentioned that the NeoPixels tend to look pixelated (dotty?) when painting a pattern because of their slow (?) refresh bit rate of 800KHz. The LPD8806’s can refresh at 2 MHz. The higher speed lends itself to a smoother rendering. Does your experience support this statement? Since I haven’t purchased the LEDs yet, I guess this is a good time to find out.

        I didn’t troll through all the posts here, but did you use 3/4″ or 1″ tubing for your hoops? I’m discovering that the 3/4″ tubing severly limits the kind of controller I can use. A Trinket will fit but it has memory limitations. I can try to shave down an Arduino micro or nano, I suppose. And I think the Teensy 3.x’s are too wide for shaving. But… I think my daughter specified the 3/4″ because of its light weight. And I’m not sure about ther comment on ‘too many LEDs’. Perhaps they were too bright, as you mentioned. I think, though, that they were too closely spaced. I’ll send her a text. She’s gone off to Maui for 9 months to go to massage therapy school.

        I know I’m jumping around here, but the one thing I liked about the NeoPixel library is that you can control the whole strip brightness in one function call. The LPD8806 library, to my dismay, does not have the same functionality. A lot of the code is inline assembly code, so hacking may not be an option. By me, at least.

        Anyway, I’ve got the hoop on order and I’ve got the batteries and the protection circuit. Just need to decide on the LEDs and I’m off. As someone said over on the Arduino forum, ‘building an LED hoop is a path to lunacy’. I’m beginning to see his point, and I’ve barely got my feet wet.


        • philihp
          Posted February 7, 2014 at 3:47 pm | Permalink

          I haven’t seen NeoPixel’s, but faster is definitely better. One not-so-subtle thing is the number of LEDs will affect your render speed. The key thing is the Arduino shooting data down the line of LEDs before it flips the latch. It takes 3 times longer to send down 90 LEDs than it does to send down 30 LEDs, so your refresh rate will be 3 times slower. There are two special pins on the Arduino that, if used, will use a hardware timer instead of software timing, and the difference is very noticeable.

          I would use the thinnest hoop size that you can fit your controller into. I used 1″ here, but the one I used after this used 3/4″ (IIRC). The Trinket didn’t exist when I did this, but at the time I also considered using the Seeeduino FILM because of its onboard Li-Po battery circuit. I didn’t because it was out of stock at the time, but it’s certainly another option. At 3/4″ inner-diameter, you’ve got to start using AAA-sized LiPo batteries because the LED strip and a 5050 LED need to be sandwiched next to it.

          Speaking of that sandwich, the rest of the hoop tends to diffuse the LED fairly well since it’s sitting somewhere in the middle of the tube. At the battery sites, the LED is pushed up against the hoop. You can tell something is different there, but it still looks a lot better than a big gap (which you can see when all the LEDs are turned on).

          Again, I haven’t worked with NeoPixel, but controlling the entire strip in one call could be useful! I wonder if the chips actually recognize that, or if they still function as shift registers, and the library is just giving you that function as a convenience. Most of the cool patterns that you achieve are done through individually addressing the LEDs.

          Speaking of patterns, you will definitely want to add in a “demo” mode, that cycles through patterns. Hoopers tend to find one pattern they like, but often don’t really care, and don’t want to stop to change patterns.

          ‘building an LED hoop is a path to lunacy’ — it’s true. Don’t do it if you’re looking to save time, money, or sanity. Do it for the journey, and if you make it, it will make you want to put up a blog post to help others along the way 😉

          • Brooke A
            Posted October 2, 2016 at 10:36 pm | Permalink

            I cannot begin to express how much I appreciate all the information you have shared on this page! I am exploring the idea of embarking on my own LED-hoop-making journey.
            You said that after this project, you went on to make a 3/4″ hoop – how did you fit the Arduino inside? Or did you use a different microcontroller?

          • Philihp
            Posted October 3, 2016 at 8:12 am | Permalink

            I wouldn’t recommend it, but at the time I was able to fit an one-chip arduino like this in the tube. The main problem then became batteries, though, and how to fit AAA-sized batteries against the wall with the LED strip. It doesn’t look good, and you loose a lot of juice from downsizing the battery.

  • Posted February 8, 2014 at 4:33 pm | Permalink

    Ok. I took your advice and put up a blog. I’m not a WordPress guru, so sorry for any rough spots or lack of functionality.

  • Larry Molter
    Posted February 10, 2014 at 4:50 pm | Permalink

    I’m not sure I caught this on any earlier posts, but which controller did you use on your 3/4″ hoop? I’m beginning to see that the choices are limited for controllers with widths less than .625″. Ah ha moment: That’s why most of the smart hoops seem to be made with 1″ tubing.

    • philihp
      Posted February 10, 2014 at 8:23 pm | Permalink

      Yes, exactly! I was using the Pro Mini (0.7″ wide), however I would recommend the Pro Micro now, as it has an on-board USB port “for free”. This alleviates the need for an USB-to-TTL FTDI adapter breakout board. Thin hoops are preferred, since the user doesn’t tire out as quickly from pushing them around, and they’re easier to push faster and throw higher.

      To go smaller, I used an Ardweeny, which became my favorite Arduino clone board. I already had an FTDI board, and it fits directly onto a breadboard to make prototyping easier. When I was ready, I soldered the ATmega328 chip to the bottom, snipped off the leads, and clipped the FTDI shorter. It fits very snug in a 5/8″ tube, so the problem becomes batteries. used to sell (perhaps they still do by request?) a sampler pack of hoop widths. I think it was like $10 for a set of all of the tubes they had in both HDPE and Polypro. When I actually had them in my hand I had an “Aha!” moment when I realized that every size fit snugly inside of the next size up like a matryoshka doll. They sent a sample of about 6 inches of each, which was enough to see which battery sizes would fit. I guess you could model it out on paper, but I didn’t trust myself to that. Tubes are curved, and batteries are straight. This chart of battery sizes should help.

      • Posted February 16, 2014 at 5:09 pm | Permalink

        Great. I sent an email inquiring about the sample pack since I didn’t see it on their website. And thanks for the battery chart. Very helpful.

        I’m waiting for the Femtoduino folks to restock. That little board has on-board USB, 32K Flash, and a .6″ footprint. Sweet. (Oh, gawd, not something a 50-something should say). I’ll also look at the Ardweeny and put a link on my blog.

        • Posted February 17, 2014 at 8:02 pm | Permalink

 replied that they never did a sample kit. They DO supply 3 tapes and 3 tubing samples with every order, though. Hmmm… The kit sounds way more useful. I wonder who it was that did this.

          • philihp
            Posted February 18, 2014 at 6:45 pm | Permalink

            They absolutely did; I have an invoice email that says so. This was about 26 months ago, though, so the person responding may not have been working there.

        • JULIA
          Posted March 8, 2014 at 8:41 pm | Permalink

          HI.I own a Atomic LED hula hoop and just sent it off to get upgraded with the Persistence of vision modes.I have read your tutorial on how to make a programmable hoop as well as most of the comments in here and I am going to attempt to make one myself.I spent about $400 on my Astral Hoop Atomic pro.
          Thru the company it cost $50 to re-size,I am a do it yourself kind of gal,so I decided after examining how these LED strips work,decided that it just consists of cutting the strip down.So I used toe dremel to cut the plastic and just cut a section of LEDs down to the size.Since then I have re-sized it three times.The most recent had to re attach a wire .
          My hula hoop is collapse-able and has a 5 way switch for cycling thru modes and turning it off and on as well as adjusting brightness and setting my favorites in an easily accessible menu.I got it here…
          Not sure how it all works but willing to learn and try it .Especially interested in making the POV modes!

          • philihp
            Posted April 12, 2014 at 6:19 pm | Permalink

            Good luck! I would also strongly advise you not do this if you’re just looking to save money. Do it yourself for the love of craft and learning new things. There’s something almost biblical and magical about forging tin, lead, polypropylene, and crystal diodes together to create a device that lights up and makes pretty pretty. You’ll feel incredibly empowered, and people will look at your creation with awe, and imagine you to be some sort of technocrat sorceress.

  • Posted February 16, 2014 at 5:16 pm | Permalink

    Ah, another question… when running any of the 16MHz Arduino boards at 3.7 – 4.2V, was it ever necessary to replace the 16MHz xtal with an 8MHz one? I’ve seen this mentioned on other forums. Don’t know the exact reason why yet.

    • Larry Molter
      Posted February 20, 2014 at 4:08 pm | Permalink

      The femtoduino folks say their board will run at 3.7V without a crystal change. You just can’t burn a new bootloader into it at that voltage. Uploading sketches will work fine.

      For anyone interested: You can preorder the Femtoduino now for $20USD + shipping. They only have 30 available for a March 9th release. Go to

      • philihp
        Posted April 12, 2014 at 6:02 pm | Permalink

        It was never necessary for me, however I can’t say about recommended or not. Really good to know on the Femtoduino! It seems like a neat little board, I’m curious to see how it works out.

        • Posted May 3, 2014 at 5:23 pm | Permalink

          It’s been a while since I’ve been back visiting. The Femtoduino works just fine at 3.7 volts. BTW, the prices have gone up on those. You might want to edit my post about the price and just leave the web address.

          Haven’t finished it yet, but I’m still going at it. I have all the parts. Just tweaking the software at this point.


  • Akiva
    Posted March 21, 2014 at 11:58 am | Permalink

    Love the Tutorial.

    Re batteries: is there an advantage of Li-ion vs LiPo? The aim is max usage time…


    • philihp
      Posted April 12, 2014 at 6:22 pm | Permalink

      I thought those were the same thing, but I guess not! I have no idea 🙂

      The major concern/limitation here is that the battery actually fits into the tube. It has to fit in the tube wedged between the strip, which is mostly the thickness of the 5050 LED.

  • Stéphane
    Posted April 10, 2014 at 5:43 am | Permalink


    i would like to know something about the battery, maybe i can contact you by email ?

  • Stéphane
    Posted April 10, 2014 at 7:48 am | Permalink

    , the question is , do the project will work with , 4 li-ion battery AAA size , with 3.6v or 3.7v and 350mAh or 800 mAh ?

    thx u alot for sharing this !!


    • philihp
      Posted April 12, 2014 at 6:41 pm | Permalink

      The main limitation is the size of the battery. You want it to fit inside of the tube. IIRC, 3.6/3.7v are the same; the voltage has to do with the chemistry of it. I could be wrong on this, but I’m fairly sure. When it comes to mAh, more is better, and it directly relates to how long the hoop runs.

  • stephane
    Posted April 22, 2014 at 6:57 am | Permalink

    Thx , you ,

    and i would like to know something also about , the led strip , i need a 4 pin connector if i want some fade effect , if i understood this story good ?

    • Posted May 3, 2014 at 5:28 pm | Permalink

      Stephane, pardon me for jumping in. The 4-pin connector is for LED strips based on the LPD8860 controller chip; 3 pins for the strips based on the WS2812B controller chip. The fade effect you want is accomplished through software, not pins on the strip. It’s just that 4-pin strip requires an extra signal line to address the LEDs. The 3-pin strip has a different interface.

  • Shannan
    Posted April 27, 2014 at 1:22 am | Permalink

    Hi, Philihp! Thanks so much for writing this tutorial! I ended up buying a 5M RGB 6803IC 5050 SMD light strip, and then I realized that it must have a chip since the light strip alone can do 133 different modes. So I really don’t need the Arduino Pro Mini 328, correct?
    Also, I will be cutting the LED strip down to fit into a 34″ hoop. Do you think I could run it off of two 3V CR2032 coin batteries?


    • philihp
      Posted May 2, 2014 at 2:43 am | Permalink

      Hi Shannan! I’m assuming you purchased XKTTSUEERCRR 5M 5050 RGB Dream color 6803 IC LED Strip Light. It’s a good price, but it says it uses a 12-volt line. The LPD-8806 strips that I used ran off of 5-volts, which was conveniently what the Arduino ran off of.

      You most certainly *NOT* run it off of two CR2032 coins for very long. I would be surprised if you got more than a few seconds of juice from them before they overheated. Pay attention to the mAh rating of the batteries; 2032s have about 200 mAh. 3 meters of the strip when on full blast (white) should pull somewhere between 2000-4000 mA. Theoretically this means you’ll get about 6 minutes before your battery dies, although I would imagine pulling that much current will probably cause the battery to overheat first and blow up (the heat will cause the battery to get hotter and hotter until bad things happen).

      You’ll see I used 3.7 volt Li-Ion batteries. This is because at full capacity they give out 4.2 volts, and give out less and less until they’re depleted at about 3.3 volts, which is convenient for powering 5-volt things. It’s usually okay to undervolt things by a little bit, they will still often work just fine; however if you undervolt a 12-volt thing, and only give it 4 volts, it’s most certainly not going to work.

  • Larry Molter
    Posted May 9, 2014 at 3:02 pm | Permalink

    , thx you very much Larry Molter , this help when you know nothing !

    so now i think a have all the component,

    it’s normal when i turn my led strip on , with a 5v charger dc,

    i have NO led lighting on , and when i put a 12v charger dc , i have just ONE led lighting on .

    maybe somebody can help me ?

  • Harli
    Posted May 12, 2014 at 1:09 pm | Permalink

    Hi Phillip I have been tryin to find a led strip as cheap as possible and come across a 5M 150led WS2811 WS2812 Led Digital strip Waterproof Individually Addressable 5V and was wondering if this would work with the micro chip. Many thanks 🙂

    • philihp
      Posted July 8, 2014 at 6:37 am | Permalink

      Hi, they would work but you might need to swap out the Adafruit library that I used. I would first see if you could get a small meter sample of them, and see if you could get an Arduino to drive them. Remember, your batteries are only going to be sending out about 3.4 to 4.2 volts (slowly going down as the batteries use up their charge). Giving a chip less current than it wants is usually fine, but once you go low enough the current isn’t stable enough to run.

  • Grayson
    Posted May 16, 2014 at 5:27 am | Permalink

    The one question I have for you is how did you get the batteries to stay in place in the hoop so they don’t move when its used when you assembled it?

    • philihp
      Posted July 8, 2014 at 6:38 am | Permalink

      They’re very tightly wedged in there with bubble wrap around the outside. Use a lubricant that evaporates cleanly from the electronics.

  • Akiva Atwood
    Posted May 26, 2014 at 9:41 pm | Permalink


    I’m deep in the process of hoop code at the moment — and was wondering if your code was available anywhere? I’m looking for inspiration….


    • philihp
      Posted July 8, 2014 at 6:38 am | Permalink


      • Shannan
        Posted November 9, 2014 at 8:58 pm | Permalink

        Hi, Philihp! Can you direct me to your code? I’m having troubles downloading the adafruit library. Thanks!!

  • Stacey
    Posted May 29, 2014 at 2:51 pm | Permalink

    Question… I am not sure if you know the answer or not but you seem pretty knowledgeable and I can’t find the answer I am looking for anywhere… I bought a remote controlled LED light strip …. Is it possible to make the light strip run off rechargable batteries? If so do you know how I would do that?

    • philihp
      Posted July 8, 2014 at 6:44 am | Permalink

      Probably! You’ll need to figure out how much power the light strips use. They’re probably either 5 volts or 12 volts. You can find this by using a voltmeter (you may have used one before if you took high school physics).

      Then just string batteries up until you have that many volts. Remember that putting batteries in a line will add the volts together. Think of a battery as like a waterfall, and the distance the water falls is the volts. If you have three waterfalls one after another, each falling 200 feet, then in total the water falls 600 feet.

  • Ryan
    Posted July 16, 2014 at 1:35 am | Permalink

    awesome hoop. have you given it a shot with the arduino micro yet? the pins are setup different than the diagram and i was just wondering if you have anything for that board or not.


    • philihp
      Posted January 14, 2015 at 10:23 am | Permalink

      It should work just the same.

  • Jesse
    Posted July 18, 2014 at 3:26 am | Permalink

    Has anybody been able to get the Arduino Micro to work?

    I have been trying for two days and it seems to not interface correctly when I try to add buttons and the data/clk to 11 and 13.

    The buttons seem to send a signal to the arduino but it is not responding correctly. It actually seems like it is just resetting.

    I have tried using the strandtest with the 8806 library and all goes well with that suite of tests.

    I’m near positive I hooked up everything like the schematic says (noting changes in pinout locations). Do you have to use the ICSP bus?

  • Posted August 15, 2014 at 2:40 pm | Permalink

    Great tutorial! I just have one question as I’m doing my own LED project. The led strip that I have is 5 volts and you’re right running at 3.7 volts is ok. However the brightest goes down but the current draw is much lower which is great for the battery life. My question is at 3.7 volts was the brightest still acceptable to you – did you still get and have that “wow” effect?

    • philihp
      Posted October 10, 2014 at 6:46 pm | Permalink

      The brightness is still acceptable 🙂 It’s still the brightest thing out there by far because of the density of the LEDs (at the time I made this, hoops commonly had only 32 LEDs, not 90-something, although that’s less common now). You could go brighter, sure, but I found that the only other “glowy” things out there were glow sticks, which didn’t hold a candle to LEDs.

  • Mandi
    Posted September 18, 2014 at 5:25 pm | Permalink

    Can this be done with smaller tubing? I use 5/8 but would be open to 3/4 tubing. 1″ is just way too big for me to use (I have tiny hands and perform a lot).

    I have some engineer guy friends helping out with this, but I am not sure which parts I would be able to get in a smaller size to fit into the smaller tubing?

    Any help/insight would be MUCH APPRECIATED!

    Thank you

    – Mandi

    • philihp
      Posted October 10, 2014 at 6:48 pm | Permalink

      It can be done with as small as you like, but the size constraints are (A) you need to have your Arduino fit inside the tube, and (B) you need to have a 5050 LED sandwiched against a battery and inside the tube. The tube is a torus, while the battery is a cylinder, so keep that in mind.

    • Kristy
      Posted January 12, 2015 at 10:57 pm | Permalink

      Hi Mandi!

      Were you able to make this hoop with smaller tubing? I am also interested in making a 5/8in hoop but not sure how to adjust.


      • philihp
        Posted January 14, 2015 at 9:43 am | Permalink

        You could, just make sure everything fits inside of it.

  • lydia
    Posted December 3, 2014 at 2:42 am | Permalink

    what kind of connector did you use to close your hoop?

    I have a metal push button connector that I was planning on using along with a rivet, so that the hoop can be opened again.

    I was wondering if there was any wiring that needed to go behind the connector.

    • philihp
      Posted January 14, 2015 at 9:56 am | Permalink

      I used a small tube insert of the next smallest size with a rivet and a push button connector from No wires need to go in the connector.

  • Walter
    Posted December 8, 2014 at 3:19 pm | Permalink

    Dear Philihp,

    I wanted to surprise my fiance with a pre-wedding gift. Would you be willing to make one for me by any chance?

    Thank you Sir,


    • philihp
      Posted January 14, 2015 at 9:55 am | Permalink

      Hi Walter,

      If you aren’t interested in making one for yourself, I would suggest buying one from someone who has done this more than twice. I am a fan of Spin-FX’s Phoenix, although it is rather expensive. The Proton Labs Helix is a close second place.

  • Arlene
    Posted December 11, 2014 at 7:18 pm | Permalink

    Hello world! 🙂 ~ I’m just your friendly neighborhood IT support girl at a local University in so-cal. I have also previously worked as an electrician, (I often think about “combining” experience from both to become an electrical engineer). Even though I have only ever mildly dabbled in programming, I feel it may be enough along with my other experiences to use this project as a vehicle to learn? (Good idea -or- bad idea?) I would hit “two pigs with one bird” learning java and making myself a hoop! I’m both very excited and very nervous about executing the steps in this post (reading the musings on making a hoop as a path to lunacy was slightly unnerving). I have most of what I need in a shopping cart and I’m ready to click purchase. I did read your warnings not to do it to save time or money and know that I am definitely not doing that as sanity is very valuable to me; unfortunately, not more than learning and creating like a god.

    @philihp, with your permission, I’d like to document my process via video and release it on YouTube eventually, even though I already see it now “day 44 and I’m starting to dream in LED strips.” I would of course give nod and links to your tutorial. I do a lot of help videos/tutorials though to make my job more interesting and it seems like something a lot of users want anyway. Let me know and thank you for the wonderful tutorial, also I must know if read the XKCD webcomics…?

    • philihp
      Posted January 14, 2015 at 9:50 am | Permalink

      Hi! That’s awesome!! The best way to learn a new skill is to have a need for it! Please feel free to email me updates on your progress. You are more than welcome to document your process; I would love to link to it from this article, too. When I initially posted this, I had no idea that it would be so useful to people so many years later.

      I am also a fan of Randall Munroe and XKCD.

  • philihp
    Posted January 14, 2015 at 9:59 am | Permalink

    No, I do not. I published my plans in hopes that others might learn from them.

  • Atrius
    Posted January 28, 2015 at 9:07 am | Permalink

    Hi Philihp,

    This tutorial is excellent, thank you for providing it. I am just wondering if I am going crazy. I can’t find your Arduino source code anywhere. I looked all through the article and the GitHub for an .ino file and couldn’t find one anywhere. Don’t know if I’m blind or if it just isn’t there. Any help would be greatly appreciated.

    Thank you.

    • philihp
      Posted March 3, 2015 at 2:41 am | Permalink

      It’s the PDE file. At some point Arduino started calling their projects INO files instead of PDE files.

  • V1x0r
    Posted February 24, 2015 at 12:36 pm | Permalink

    This is definitely helpful as not much is available in this realm m, especially not for the fiber whips or space whips. Have you considered instead of using the arduino to use the arduino as an isp and insert instead something like the attiny85? If you are using a 5v line then it’s pretty straight forward for running the attiny85 in line without needing much other than a couple resistors for it. Plus, super cheap and you don’t waste an arduino where not necessary. Thanks for sharing your work on this. 🙂

    • philihp
      Posted March 3, 2015 at 2:39 am | Permalink

      You’re welcome! I hope your projects turn out great, I’d love to see some pictures.

      I wouldn’t say it’s “wasting an arduino”, since the cost of it is only going to be about $20, however you could get by with just pulling off the chip. When I last dabbled with a hoop, I was trying to use an ardweeny, because the board was thinner and I could get a thinner tube. One thing I would look out for is if your chip you use has enough space on it for the POV image. Space is really limited. Also, please be aware that I don’t know what I’m doing. I have a degree in computer science, but almost no formal electrical engineering background. This being said, I’m totally full of shit.

  • Nathan
    Posted March 28, 2015 at 5:13 pm | Permalink

    Thanks for the writeup philihp! I’ve bought everything on the list to start this project for my wife’s birthday. I’m in the Arduino software right now and I’m getting these errors:

    jubilee.cpp.o: In function `blackout()’:
    /Users/user/jubilee.ino:44: undefined reference to `LPD8806::numPixels()’
    /Users/user/jubilee.ino:45: undefined reference to `LPD8806::Color(unsigned char, unsigned char, unsigned char)
    ………more and more and more errors like this…then:
    collect2: error: ld returned 1 exit status
    Error compiling.

    So I know it has to do with the number of pixels and the color, as it states that in the notes:

    // Set the first variable to the NUMBER of pixels. 32 = 32 pixels in a row
    // The LED strips are 32 LEDs per meter but you can extend/cut the strip

    ….however, I’m new to this so I’m not sure exactly sure where to put the 32 and how the colors are defined…. I’m pretty sure they have to be entered in here:


    void blackout() {
    for(int i=0; i < strip.numPixels()+1; i++) {
    strip.setPixelColor(i, strip.Color(0,0,0));

    ….but I don't know where to put those. Can you help me out a little?

    • philihp
      Posted April 21, 2015 at 8:57 am | Permalink

      It sounds like you need the LPD8806 library.

      • Danwah
        Posted December 15, 2015 at 8:35 pm | Permalink

        Nathan, I encountered the same problem. You need to place the LPD8806.h library file into the same folder you have your jubilee.pde file in for it to compile properly. Hope this helps

        • Nathan
          Posted May 4, 2016 at 7:42 am | Permalink

          Finally getting back to this project. I appreciate your replies; however, I made sure the LPD8806.h library was in the same folder as the jubilee file. In the Arduino software, it shows the LPD8806.h tab with the code in there, but when I verify the project, it is coming up with similar errors:

          /HDlocation/jubilee/jubilee.ino: In function ‘void handleStrip()’:
          jubilee:107: error: no matching function for call to ‘LPD8806::numPixels()’
          for(i=0; i<strip.numPixels(); i++) {

          ….and it goes on like that saying "no matching function" and "candidate expects 1 argument, 0 provided"

          Do I have to edit the code with the proper amount of pixels? I'm brand new to Arduino….so I'm not quite sure why it's erring out like that. Any other thoughts?

        • Nathan
          Posted May 17, 2016 at 9:29 am | Permalink

          Managed to figure out my library issue so I’m golden there. Thanks for the help with that.

          In the original wiring schematic, it showing the wiring for a Arduino Pro Mini. I was able to figure out how to wire everything up on the Pro Macro, with the exception of the three wires that are coming off all three switches that connect together and go to the VCC pin on the Mini board. It doesn’t look like the Macro has that VCC pin (which, from what I have been able to gather is the regulated power pin)….

          Which pin should I connect that to instead?

  • Nick
    Posted April 9, 2015 at 5:13 pm | Permalink

    I could really use some help on getting this to work on an Attiny85 thats on an olimex85s board, and adafruit neopixel ws2811 rgb strip. Thanks! This way you can use 5/8 tubing! BTW great writeup!

    • philihp
      Posted April 21, 2015 at 8:59 am | Permalink

      Good luck!

      • Posted June 19, 2015 at 9:44 am | Permalink

        he will def need it with that set up.

        Been there done that. Almost wrote a book.

  • Andrew
    Posted April 21, 2015 at 2:04 am | Permalink

    With your wiring diagram, is there any difference between your Red, Blue, and Green/Yellow lines or is it just to make it easier to read?

    I’m very new to trying all of this sort of stuff, but it seems like you have the batteries hooked up the Arduino and LED strip off the same wire, and then a separate wire for the charger. When you charge the battery does it power the Arduino and LED at the same time, or do you have a connection point that you severe when you are trying to charge your batteries?

    Obviously its been several years since you’ve done this project, but I’m hoping to use your design to create a LED staff with the same sort of schematics.

    • philihp
      Posted April 21, 2015 at 9:01 am | Permalink

      You do not have to disconnect anything when you charge the battery. The charging circuit takes care of that for you.

      • Andrew
        Posted April 25, 2015 at 12:56 am | Permalink

        So when you are using the Arduino Micro, where do you attach the common wire for the resisters with the buttons as there isnt a VCC on the Micro?

  • jason h
    Posted May 13, 2015 at 5:56 am | Permalink

    So i have a really basic question… do u wire up the Size M coaxial plug?
    It appears fromt he Eagle drawing i would hook P+B+ to 1 side and P- to the other leaving center pin un touched. is this correct?

    and how do u tell which side is which to hook up to?
    I am building this hoop as a photo prop and am very excited about the xperience gained in the building. although i feel like im stuck a step 1 🙂

  • jimyy
    Posted May 16, 2015 at 10:06 am | Permalink

    Dear Philihp,
    the arduino(module) cannot communicate with Rgb addressable led strip(
    but web site in arduino(module) think that it can.
    So what are we going to do now? change MCU or ….

  • Posted June 7, 2015 at 7:43 pm | Permalink

    We have a new smart hoop prototyped with similar arduino technology that will be available on our site soon. LED Hula Hoops

    • philihp
      Posted August 25, 2015 at 8:27 pm | Permalink


  • von
    Posted June 19, 2015 at 3:49 am | Permalink

    Has anyone got the micro to work? Is there a new wire diagram for it? I’m have a ton of problems trying to figure out what pins to use

  • s k kan
    Posted July 7, 2015 at 2:40 pm | Permalink

    can you help me to make the text hula in china ?

  • Debs
    Posted October 8, 2015 at 12:54 am | Permalink

    Fingers crossed this thread has not completely died … lol

    Just a few newbie Q’s. Im looking try to build this with bit different coding but I’m wondering about charging. Im confused as to why if your using a micro pro arduino why we would need an external charger and how come a USB to wall/laptop wouldn’t work? and if it doesn’t could it?

    Annndddd with the battery Im looking at
    4 x LingsFire® 18650 3600mAh 3.7V battery®-3600mAh-Rechargeable-Universal-Double-Channel/dp/B00W4YOPAG

    so with 4 does this mean 14400mAH? or has the seller listed as a combined mAH?

    If 14400mAH would this be okay (linked parallel of course)? meaning circa 14 hours charge?

    Id really appreciate a response x

    • philihp
      Posted October 12, 2015 at 8:00 pm | Permalink

      At the time I made this, it was with an Arduino Pro Mini, which didn’t have an integrated USB on it. I don’t know if the Pro Micro is capable of charging its power source (in addition to powering itself off of its power source), although that would definitely be something worth looking into! One negative of charging from USB, however, is that you will be limited to 500 mA of power, so charging will be slow.

      3600*4 mAh sounds about right. When you wire batteries in parallel, they keep the same voltage and you increase the capacity. When you wire them in series, you increase the voltage instead and keep the same capacity. This is capacity, your actual hours of charge depends on how fast you drain. Your LEDs give the highest drain when all of them are on at full white brightness. If you have only a single LED chasing around in a circle (say 1 of 90 LEDs), you’re only using a fraction (1/90th) of the power.

      • Debs
        Posted October 25, 2015 at 6:23 am | Permalink

        Thanks Phillip you are so very helpful – still answering Q’s all these years later has probably took more time than you making the hoop haha!

        Damn I didn’t think about slow charging from USB, I thought it would be simplier for me as i couldn’t work how I would do it for a UK plug socket … back to the drawing board.

        I have couple other issues if you don’t mind… If I purchase batteries with solder tab that are already protected how come I you need to include the tenergy protection? The reason I ask is the amazon shop wouldn’t post to the UK and when I went direct the postage was $52! (plus customs) hunting for something similar but a bit worried about messing up the components.

        I also noticed on Adafruit it says to power strips over 1M in segments… The batteries will be spaced around the tube but if I break it into segments isn’t this wiring in parallel series so the voltage would increase per segment? and then id need a protection board for each battery?

        I am trying to make a globe POV in my hoop to include on a future dance performance (giving myself lots of time haha)l, theres loads of globe POV instructables out there but don’t think an actual hula hoop has been created yet. Don’t yet know if I can spin the hoop fast enough with my hand for this to work in real time but even so i’m sure some long exposure pictures would be fun!

        If I make it work happy to send some pics and share the code on here. This is pretty much the only place people can come to to find info on making their own hoop. I think its very much appreciated!!!

        Also for people with threading problems I have been using a polystyrene tubing and mounting the strip on it. I have absolutely no idea whether this is safe but it threads well.

        • Posted November 7, 2015 at 8:29 pm | Permalink

          The adafruit strips have to be ordered in 1 meter lengths — but you get a solid strip

          I’ve kept it connected and keep the batteries behind the strip — 4 batteries powering the strip and the cpu

          (in my opinion cutting the strip makes the project way more complicated…)

          • philihp
            Posted November 8, 2015 at 5:42 am | Permalink

            Yep. I wouldn’t cut the strip around the batteries, although it does look a little strange pressed up against the side of the tube. Since it’s pressed up, it’s more of a point light, and not as diffused… however that doesn’t look as bad as having a gap, which is what most hoops do.

        • philihp
          Posted November 8, 2015 at 6:04 am | Permalink

          Always happy to help people out 🙂 Especially when they are being industrious in doing so. I’m by no means an expert in this, though, and people should be very careful when working with lithium batteries; there is a very real potential for fires.

          It’s important to get batteries with a tab because you don’t want to solder directly onto a battery. If you heat the battery up enough to get a proper solder joint, you risk the battery exploding due to internal pressure, which is very bad. If you don’t heat it up enough, the joint will break after a bit of use and ruin someone’s night. Normally you would have to either get a small enclosure with a spring to make a connection to the batteries which is what most toys use, but since we’re pressed for space here this isn’t an issue. These battery tabs have to be attached by an arc welder.

          The protection circuit is there to prevent over-charge and over-drain of the batteries, both of which I hear can cause really bad shit to happen. Once the batteries go over their 4.2 volts, the circuit cuts off the juice. Similarly once they go under a certain voltage (IIRC it was like 2-ish??? I really don’t remember), the circuit cuts off the juice. The blue LEDs need 4 volts of forward voltage, so they’re usually the first to cut out, and then the greens. The user will usually stop to charge the thing when they just have reds left. So really the circuit prevents overcharge.

          I don’t remember reading Adafruit saying they have to be powered in 1m segments, so that’s probably a new disclaimer. You’re probably fine (just like we’re under-voltaging the Arduino). The lifespan of the strip might suffer, but relative to normal use of these strips being left on all day every day, these hoops have pretty low usage so I wouldn’t worry about it.

          If I were going to create a globe POV hoop (which would look SUUUUUUUUUUUUUUUUUUUUUPER SICK, OMG), I would definitely figure out a way to rig up at least 2 or 3 accelerometers to this at different points in the hoop, at 0 degrees, 90 degrees, and 180 degrees. Something small like this, already prefabricated and easy to hook in. Then I would do some really fancy pants coding to detect when the hoop was spinning on an axis, and choreograph an act to it, so that it would be like “okay at this point wait until you get a really strong vectors in specific directions, and you know she’s spinning it”. Then at that point I would go from a generic pattern into the globe pattern. It would also be feasible to have the device then detect where it thought the south and north poles were. That could get really complicated, but also really really impressive.

          Also, I very strongly endorse Hoop Daddy’s Phoenix as a prefabricated hoop. He’s a really cool guy, and doesn’t make any money on these when you consider the time it takes to make one. Your time is valuable! Making your own will be a difficult journey, and the end product may leave you disappointed when you consider the time it will take to get there. If you really want a durable, dependable LED hoop, buy one from him. If you want to learn how to do cool things with LEDs, and take things a step further, learn to make one yourself.

          • Posted November 9, 2015 at 9:55 am | Permalink

            1) I’ve used neopixels in less than 1 meter lengths — works fine. (And they have many projects where the strip is less than 1 meter…)
            2) My current hoop project uses adafruit’s accelerometer/compass — it lets you (with coding) do some cool stuff (like having the pattern always be relative to north… or to brighten as the speed increases)

            and I agree — if you just want a hoop buy one (and hoop daddy’s price is very reasonable). Smart hoops are hard to build reliably. But if you want to have fun (and enjoy hacking hardware and software) than build one. It’s a challenge. (currently on my third hoop…)

  • Sasha
    Posted December 1, 2015 at 8:35 pm | Permalink

    Thank you for writing this! Okay so a lot of the stuff you posted is outdated I suppose? A lot of the links to the products don’t work anymore.

    I am not particularly making a hula hoop, but i’m using the same components really.

    I will be using the Pro Micro. Your schematics are different from what is on mine. Is there any possible way you could quickly sketch out one for mine along with a 5 way , and a battery pack such as along with the obvious charging port and such? I have spent the past two days looking for anything and I just don’t quite know what I am doing here. Any help would be great! Thanks!

  • Jason
    Posted December 23, 2015 at 7:52 am | Permalink

    Hi, for batteries would it be possible to use CR1025 x30 (or more depending on mAh required) in parallel? Reason I ask is if one were to secure the 10mm flat battery on the sticky side of an led strip and have the rechargeable CR1025 every inch or so then not only would the weight be equally distributed but the lights could also cover the entire hoop with no gap for the battery.

    • philihp
      Posted December 24, 2015 at 6:40 pm | Permalink

      It’s possible, but expensive, and I don’t know of any LiPo rechargeable coin batteries (but surely they exist). That would be really sweet to have super-equally distributed weight like that, but I wouldn’t imagine it to be any more balanced than 6 or more equally distributed batteries.

  • Jaclyn
    Posted April 27, 2016 at 7:05 am | Permalink

    May I see some pics of your finished product? I’m building one myself and am interested in what your hoop looks like 🙂 thanks!

    • Philihp
      Posted May 5, 2016 at 4:26 am | Permalink

      The wordpress gallery was broken. It has been fixed. 🙂

      • Jaclyn
        Posted May 5, 2016 at 6:05 pm | Permalink

        That’s amazing!! Was it hard to do? I’d like to build my own, I’m tech savvy-ish, but definitely not an electrician lol On a scale of 1-10 (10 being the most difficult), how hard would you say it would be for someone who has an idea of what/how, but not quite ?
        Haha thank you

  • Deweeb fascrt
    Posted April 21, 2017 at 10:37 pm | Permalink

    Im curious to know if i could use a strip with 52 or 60 leds

    • Philihp
      Posted May 24, 2017 at 8:51 am | Permalink

      Go for it! I don’t see why not.

  • Oli
    Posted March 4, 2018 at 10:06 am | Permalink

    I want to see images from my pc on the hoop does it work? can i just drop them into a folder or something?

  • jan
    Posted March 7, 2018 at 1:23 pm | Permalink

    I want to control the addressable digital strip(
    I am controlling it with the ATMEGA32U4 at 5V/16MHz,but I never had an answer back from ws2812b led stip.
    Take a look and see if you’re doing something wrong! frequancy? or other?

  • Brooke
    Posted May 31, 2018 at 9:00 pm | Permalink

    Can anyone tell me if using 1″ tubing is absolutely necessary for this? For professional performance products, 1″ tubing is very unattractive to many clients. Ideally I’d like to do 5/8″ tubing or 3/4″ tubing.

    • Philihp
      Posted August 17, 2018 at 7:01 pm | Permalink

      You can totally go thinner, but you’ll have to make sure your batteries and Arduino fit in it. The batteries can go smaller, but you’ll get less juice out of them. Your Arduino might be trickier… there are probably smaller boards these days, though.

  • AJ
    Posted July 11, 2018 at 3:14 am | Permalink

    Hi! i wanted to replicate this project, but I’m having trouble figuring out the battery power, especially since Tenergy doesnt seem to make that part anymore? Do you have any suggestions for alternatives?

    • Philihp
      Posted August 17, 2018 at 6:59 pm | Permalink

      Hi! I updated the link to have batteries with the protection circuit built-in. That should simplify things, I hope.

  • Agnes Gundel
    Posted September 15, 2018 at 1:53 pm | Permalink

    HI I try to build a simple hula hoop with arduion trinket 5v and ws2812 led I try to use kinetic pov code to make some simple pattern for it bit the problem is I am using windows and I cant use python picture converter and I am not know anything about code writing I tried to use apa102 poi array coverter but there is not contain color palette so I am not sure is it good or not can you help me please? is it there somewhere a pattern converter for windows?
    Than You

    • Philihp
      Posted October 1, 2018 at 9:04 pm | Permalink

      Hi Agnes,

      APA102s should be great. This code here is over 5 years old now, and there are much better libraries out there now. I would suggest writing it from scratch if you can.

      • Agnes Gundel
        Posted October 2, 2018 at 3:46 pm | Permalink

        Hi thanks for replying I found something but still have a problem with coding Please can you look over my code ? I will explain my problem with it if you are able to help me.

Post a Comment

Your email is kept private. Required fields are marked *