Summary of SPINDUINO – IOT FIDGET SPINNER
This article details the development of "SPINDUINO," a programmable IoT fidget spinner featuring an RGB PoV display, magnetic spin detection, and BLE connectivity via an nRF52832 chip. The project highlights improvements over previous versions, including a 5V charge pump for consistent LED output and symmetric PCB design. It also documents troubleshooting challenges with the TPS60150 charge pump and antenna grounding, leading to hardware hacks like direct capacitor soldering and adding pull-down resistors to ensure stable sleep mode operation.
Parts used in the SPINDUINO:
- Javascript
- 10-Pixel RGB PoV display (using APA102 LEDs)
- Magnetic latch
- Nordic Semiconductor nRF52832 chip
- Bluetooth Low Energy (BLE) module
- CR2032 batteries
- TPS60150 5V charge pump
- Hall effect sensors
- MC74VHC1GT125 Logic Level converter
DESCRIPTION
* JavaScript programmable
* 10-Pixel RGB PoV display (using APA102 LEDs)
* Spin count / speed detection using a magnetic latch
* Using Nordic Semiconductor nRF52832 chip
* Bluetooth Low Energy (BLE) communication with smart phone / computer for controlling the display, reading the spin count and programming
* Over-the-air firmware upgrades
* Fully open-source
They have several improvements over the first version:
-
-
- 5V charge pump for driving the LEDs (TPS60150)
- Power for LEDs and hall effect sensors controlled by the CPU
- Ground copper pour under the board
- Board is now truly symmetric – first version was slightly asymmetric
- Tighter grip of the bearing
-
These improvements give consistent light output from the LEDs, and enable saving power while the beacon in stand-by mode. The first prototype used about 15mA in standby (4mA by each hall-effect sensor, and another 7 mA by the LEDs), causing the CR2032 batteries to last only for a few hours.
-
- Soldering the PCB and trying to run it revealed some issues with the new version. The most prominent one was switching the Enable and Flying Capacitor pins of the 5V Charge pump (TPS60150), which basically rendered it useless, as it was feeding the LEDs around 2.5V instead of 5V. Also, pouring copper below the antenna of the BLE module was not a good idea, as it reduces its performance. I also used the wrong footprint for the Logic Level converter (MC74VHC1GT125), so I had a hard time soldering it.
I designed a third prototype version of the board to address these issues, and sent it to the fab. meanwhile, I decided to try hacking around the issues by hacking the board:
You can see how I soldered the capacitor directly to the relevant pin of the TPS60150 (green arrow), and also cut the original trace leading to that pin (the one that goes below the capacitor). I also added a pull-down resistor to the Enable pin (red arrow). This was done in order to ensure the charge pump will start in sleep mode. Otherwise, with the pin floating, it would randomly start before the CPU had a change to pull the line low, causing the LEDs to randomly flicker, sometimes drawing so much power that the CPU could not even start correctly.
Read More: SPINDUINO – IOT FIDGET SPINNER
- How does the device detect spin count?
The device uses a magnetic latch for spin count and speed detection. - What chip is used for processing?
The project uses the Nordic Semiconductor nRF52832 chip. - Can the firmware be updated wirelessly?
Yes, the device supports Over-the-air firmware upgrades. - Why was the first prototype's battery life short?
The first prototype consumed about 15mA in standby, causing CR2032 batteries to last only a few hours. - What issue occurred with the TPS60150 charge pump during testing?
Switching the Enable and Flying Capacitor pins rendered the pump useless by feeding LEDs around 2.5V instead of 5V. - Why did pouring copper below the BLE antenna cause problems?
Pouring copper below the antenna reduced its performance. - What hardware modification ensured the charge pump starts in sleep mode?
A pull-down resistor was added to the Enable pin to prevent random starting and flickering. - How were the capacitor and trace issues on the TPS60150 resolved?
The capacitor was soldered directly to the relevant pin, and the original trace leading to that pin was cut.
