SpinDuel — The Ultimate Spin Challenge! Compete with friends to see who spins the longest! SpinDuel tracks your spin time with precision sensors and shares your results live via Bluetooth. Challenge yourself — Beat the record — Spin smarter!
Welcome to the SpinDuel project! This guide will walk you through building your own DIY spinner top for use with the SpinDuel app.
- 1x Seeed XIAO nRF52840 Sense
- 1x LiPo Battery 3.7V, minimum 200mAh (type 502025 recommended)
- 4x Device Screws M2x8mm Hex
- 1x Steel Ball 6mm
- 3D printed parts (PLA+ or PETG)
-
Spinner Firmware uf2-file: Download firmware
-
3D Printer STL files: Download 3D models from Thingiverse
-
3D Printer STL files: Download 3D models from Printables
Use your 3D printer with the following settings or use the sliced download files to print
- Infill: 25% - 30%
- Layer height: 0.2 mm
- Supports: Yes (grid recommended)
- Filament: PLA/PLA+ or PETG (I used PLA+ from Elegoo)
- Estimated print time: ~3.5 hours
- Connect the XIAO nRF52840 Sense to your computer.
- Double-press the small rst button quickly on the board.
- A USB drive will appear on your computer.
- Copy the
flash.uf2file to the USB drive. - The XIAO SENSE will reset automatically.
If you receive any error message (often with Macbook) you need to copy flash.uf2 via terminal.
- ls /Volumes
- dot_clean /Volumes/XIAO-SENSE/
- cp flash.uf2 "/Volumes/XIAO-SENSE/"
Example (ignore the errors): simoneisele@Mac Desktop % ls /Volumes
Macintosh HD XIAO-SENSE
simoneisele@Mac Desktop % dot_clean /Volumes/XIAO-SENSE/
simoneisele@Mac Desktop %
simoneisele@Mac Desktop % cp flash.uf2 /Volumes/XIAO-SENSE
cp: /Volumes/XIAO-SENSE/flash.uf2: fcopyfile failed: Input/output error cp: /Volumes/XIAO-SENSE/flash.uf2: fchmod failed: Device not configured
cp: flash.uf2: could not copy extended attributes to /Volumes/XIAO-SENSE/flash.uf2: Device not configured
cp: /Volumes/XIAO-SENSE/flash.uf2: Device not configured
If the Xiao is doing reset than it should work! After reconnect of the ciao the XIAO-SENSE should not more appear as a volume.
The bootloader should be deactivated
With windows pc I was not able to see such issues but in case.
- open cmd
- navigate to the downloaded file (C:\Users\Simon\Downloads)
- check which drive is you connected XIAO-SENSE E:\
- copy flash.uf2 E:\
- Solder the LiPo battery to the
+and-pins on the back of the board. - Double-check the polarity – incorrect wiring may damage the device.
- Use a 3.7V LiPo battery with at least 200mAh capacity.
- Mount the board and components using the printed parts and screws.
- Heat the steel ball with a lighter to avoid 3d print bottom whole is cracking.
- Android APK: Download the SpinDuel App - comming soon
- Apple IOS: Download the SpinDuel App
- GitHub Repository: View Source Code
- Xiao nRf52840 Sense: Xiao nRf52840 Sense
- Screws M2x8mm: Amazon Screws
- LiPo 200mAh battery: LiPo Battery
SpinDuel is an interactive game where you compete based on how high and fast your custom spinner top spins. The app connects via Bluetooth to measure spin time and performance.
Developed by Simone Eisele.
Feel free to open an issue if you run into problems or have improvement suggestions. Happy building and spinning!


