Close
0%
0%

Persistence of Vision Fidget Spinner

POV Fidget spinner which uses Enhanced PIC16 AngularTimer peripheral, Bluetooth Low Energy 4.2 link, LabVIEW PC application, touch button...

Similar projects worth following
This is a fidget spinner which uses Persistence of Vision effect which is an optical illusion whereby multiple discrete images blend into a single image in the human mind.

The text or graphics can be changed via Bluetooth Low Energy link by using a PC application that I have programmed in LabVIEW or by using a freely available smartphone BLE app.


One of the most important characteristics is that the displayed graphics doesn’t depend on rotation velocity thanks to its innovative solution for keeping the track of rotation angle. Meaning that the displayed graphic is perceived the same at both, higher and lower rotational speeds (for instance, when the fidget spinner is slowing down when held in the hand).

This is also one of the main difference between various POV device on the market (POV clocks, etc.) which must have a constant rotational speed in order for the image to be displayed correctly.



Difference between other POV devices on market

One of the most important characteristics is that the displayed graphics doesn’t depend on rotation velocity thanks to its innovative solution for keeping the track of rotation angle. Meaning that the displayed graphic is perceived the same at both, higher and lower rotational speeds (for instance, when the fidget spinner is slowing down when held in the hand).

This is also one of the main difference between various POV device on the market (POV clocks, etc.) which must have a constant rotational speed in order for the image to be displayed correctly.

It is also worth noting that all the components are selected to have the lowest possible energy use in an effort to prolong the battery life



Technical Description

It uses enhanced Microchip PIC 16F1619 microcontroller as its core. The MCU has built-in Angular Timer peripheral which uses omnipolar Hall sensor DRV5033 and one magnet to keep the track of current rotational angle.

The graphics is displayed using a total of 32 LEDs, 16 green and 16 red light emitting diodes (nominal current 2mA). The diodes are driven by two 16 channel constant current shift register drivers TLC59282 connected in daisy chain.

In order to have a remote access to the device, there is a Bluetooth Low Energy module RN4871 which communicates to the microcontroller via UART interface. The device can be accessed from either a personal computer or a smartphone.

The device is turned on by using a capacitive touch button which is embedded under the solder mask on the printed circuit board. The output from the capacitive IC PCF8883 is fed to the OR logic gate BU4S71G2. The other input to the OR gates is a signal from the MCU. The output from OR gates is connected to the Enable pin of a step-down converter TPS62745. By using this setup I am able to power on/off the device by using only one touch button.

Capacitive button can also be used to change between different modes of operation or for instance to turn on the bluetooth radio only when needed in order to save energy.

Step down converter TPS62745 converts 6V nominal from the batteries to a stable 3.3V. I have choose this converter because it has high efficiency with light loads, low quiescent current, operates with a tiny 4.7uH coil, it has integrated input voltage switch which I use to measure battery's capacity with minimal current consumption and the output voltage is user-selectable by four inputs rather than feedback resistors (reduces BOM). The device goes to sleep automatically after 5min of inactivity. The current consumption in sleep is less than 7uA.

The batteries are located on the back:



Keeping the track of rotational angle

The rotational angle is tracked "by hardware“ rather by software meaning that the CPU has a lot more time at its disposal to do other tasks. For that I have used Angular Timer peripheral which is built into the used microcontroller PIC 16F1619.

Input to the Angular Timer is a signal from Hall sensor DRV5033. The Hall sensor will generate a pulse every time a magnet passes by it. The Hall sensor is located at the spinning part of the device while the magnet is located on a static part for which the user holds the device. Since I used only one magnet that means that the Hall sensor will produce a...

Read more »

hex - 32.96 kB - 04/25/2019 at 12:25

Download

POV_Schematic.pdf

Schematic

Adobe Portable Document Format - 486.68 kB - 04/25/2019 at 12:24

Preview
Download

W147860ASH3_POV_FS.zip

Gerber files

x-zip-compressed - 228.99 kB - 04/25/2019 at 12:23

Download

  • 1 × PIC16F1619 MCU
  • 2 × TLC59282 Interface and IO ICs / Display Interface
  • 1 × RN4871 BLE module
  • 1 × DRV5033 Omnipolar hall sensor
  • 1 × TPS62745 DC/DC step down converter

View all 7 components

  • Inspiration for this project

    Matej Nogić05/31/2019 at 17:23 0 comments

    Last year I was at the Embedded World fair in Nurnberg, Germany. There was a Microchip's booth where they, among many things, presented their new peripheral in PIC16 series MCUs, called Angular Timer. As a demo of this new feature they developed a fidget spinner which they were giving away:

    This is the moment I got an idea to do one by myself. Of course, I didn't want my project to be the same as theirs so I was looking for ways how to improve the Microchip's fidget spinner. 

    At the end I came up with fidget spinner which is nothing like the Microchip's, except for the MCU (because of the AT) and the BLE module (it was the smallest BLE module I could find on the market at the time). My fidget spinner has:

    - Improved resolution (32 LEDs instead of 8)

    - Two colors of LEDs

    - Much better efficiency in terms of battery usage which leads to longer battery life

    - Capacitive touch button for turning on and changing between the different modes

    - Uses only one magnet and omnipolar hall sensor instead of two magnets and bipolar sensor which reduces costs and assembly time

    You can read more about Microchip's fidget spinner here: https://www.microchip.com/promo/bluetooth-fidget-spinner

  • Adacemic paper

    Matej Nogić05/31/2019 at 17:10 0 comments

    This project was presented at Electrotechnical and Computer Science Conference ERK 2018 in Portoroz, Slovenia. The conference was organised by IEEE Slovenia. 

    You can read the publication at: https://erk.fe.uni-lj.si/2018/papers/nogic(programirljiva_prstna).pdf Although the paper is in Slovenian (apart from the English abstract), there are some images that are not posted here.

  • PCB design

    Matej Nogić05/30/2019 at 20:14 0 comments

    This is how the design started:

    In the last log you can see how it looked like at the end. This PCB was specific because of its shape so a lot of traces needed to be curved by some angle. Luckily, Altium has this worked out very well.

  • PCB layout

    Matej Nogić05/10/2019 at 09:33 0 comments

    The PCB is dual layer. Images of the layer are shown bellow. Gerbers are available at the Files section.

    Top layer
    Top layer
    Bottom layer

View all 4 project logs

Enjoy this project?

Share

Discussions

wyzarddoc wrote 09/23/2019 at 20:57 point

I would like to buy a kit or assembled unit also

  Are you sure? yes | no

Froidjie wrote 07/03/2019 at 02:43 point

good

  Are you sure? yes | no

AlexC wrote 05/09/2019 at 15:38 point

Would like to build your project, but I'm not patient enough to acquire the components from various sources. Do you have plans for providing a complete kit of parts? Pre-assembled maybe? Or partially pre-assembled?

  Are you sure? yes | no

Matej Nogić wrote 05/10/2019 at 09:35 point

Actually, I have never thought about this, you are the first one asking. That is definitely a possibility in the future. Right now I am preoccupied with writing my master thesis.

  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