Getting to cheap – Tearing-down a $3 Fidget Spinner with LED POV display

Fidget spinners are everywhere, but surprisingly few have POV LED displays. I found one that costs only $3.29 including shipping from China – let’s see how it works!

What you get for $3.29

An otherwise crappy fidget spinner inside a crappy box… but one of the weights has been replaced with an LED module!

When you squeeze the module, the LEDs start a blinking.

When you spin it as fidgetters do…

…the magic photon fairies paint lovely images across your retinas.

Do not get too excited. Even though the photos look pretty cool, in real life there is no syncing going on here so the image only “locks in” for a single brief second during the spin. The rest of the time it is rotating  and smearing because we are spinning too fast or too slow.

Enter the module

The plastic is plastic. Not a bad press fit for the two halves, and for the module into the spinner body.

I was surprised to see a CR1632 rather than the slightly larger, but longer lasting and more popular CR2032. Maybe it balanced better?

On to the PCB is where the action is!

Where the blinks come from

A tidy layout. Extra points for balanced composition.

The LEDs are 0603 according to Adafruit, but they look smaller – maybe because of the clear package?…

Mystery chip unmasked

Even though they sanded off the markings, based on the pin connections and the provenance this is almost certainly an EM78P153 8-Bit Microcontroller with OTP ROM. 

These are super-duper cheap in Asia (<$0.10) and can do all the normal stuff you’d expect from our beloved ARVs and PICs – albeit with some quirks and sparser data sheets.

It is probably not worth the effort of sanding the marks off, people.

Making connections

A couple of minutes of poking with the multimeter reveals the very simple schematic…


Here are the voltages across 3 of the LEDs while a pattern is being displayed…

Can’t get any simpler – each LED blink lasts for 600us, making for update rate of 1,666 columns per second.

The 10K pull-up on ~RESET may seem to be superfluous here, but this processor only enables the internal pull-up on that pin when it is used for RESET, not when it is used to wake from sleep like done here.

What’s missing?

The MMF (massively missing feature) in this POV spinner (and all the others I’ve seen) is a way to sync the display to the rotation angle or speed. Without this, all joy is ruined for me.

But how could you implement such a sync?

Would you buy a really, really sweet POV spinner?

Should we build the POV spinner that we would want to buy?

It would have spectacular color LEDs that would look glued in space at any speed. Of course there would be fully programmable (and awesome!) patterns & text. Maybe even Arduino compatible.

What if it was $25?

I’d buy an awesome POV spinner!


If enough people say yes, maybe we’ll build it!

UPDATE 6/20/17

You have to move fast in the fruit-fly world of fidget spinner innovation!

This one clearly has position feedback and it makes a huge difference…

How did they do the position sensing? My first guess is there is a physical switch based on the clicking in the video, but I just ordered a couple different ones on Amazon and will report back when they arrive!