Close

Research

A project log for IoT POV Fidget Spinner

A WiFi fidget spinner, taken from concept to ordering parts in one weekend

matthiasMatthias 06/09/2017 at 13:560 Comments

So the first step of any good project is research. There are multiple important parts to this:

What size is a regular fidget spinner?

That question was actually very easy to answer:

How many LEDs do you need? How fast do you need to control them?

Especially the speed can be challenging. So I started with that. After some perusal of google, I found an article on hackster.io which gave me numbers of about 200-1500rpm when spun by hand. Of course, they can get quite a bit faster, as shown in the Hackaday article I referenced previously. [Frank] spun his spinner up to 2200rpm. For a rough estimate, that's already sufficient data. It means, that there are essentially three ways of controlling a LED this fast. Either I use a fast shift register (most '595 chips get to about 100MHz, so plenty fast), an FPGA or an LED with a very fast PWM controller. Some more perusal of Google, the Mouser site and Aliexpress led me to believe, that there was a single "best" solution. Since I want a regular size spinner with as many RGB LEDs as possible, I more or less have to use the APA102-2020. That's the APA102 (think of it as a SPI driven WS2812 on steroids) in a tiny 2x2mm package.

Even at this size, I can still only fit 11 LEDs in a row on a normal size fidget spinner. That's a lot more realistic than having to fit 12 shift registers or an FPGA with 100+ pins and 32 RGB LEDs on a dual layer PCB that can be produced reasonably cheap.

Since we could get down to 200rpm (or about 3.3 revolutions per second), we need a way to still get a sufficient refresh rate. That's easy, though, since we have three "wings" on a regular fidget spinner. This still gives us a about 10fps at 200rpm.

How do you power this thing? Where do you store the battery?

I decided to go with a 1S LiPo and put it where you would usually have one of the outer bearings. This means, that I will probably have to find a way to add more weight to this wing. This also gives me enough space for a charger, ESP8285, accelerometer, and so on. Also, I don't want to disassemble the device to charge it. So I decided to use the remaining two outer bearings as conductors for the 5V supply the charger IC needs. Since soldering to the bearings would probably be complicated, a battery contact seems like the best solution. The batteries usually have a diameter of 20mm, the bearings come in at 19mm. That's close enough.

Discussions