Skip to the content
PCBKitNew board
2 layers119 × 27 mmPuya spinner, the printed circuit board in 3D

Puya PY32 deliberately-overengineered fidget spinner

Size
119 × 27 mm
Copper layers
2
Thickness
1.6 mm
Parts
52
Nets
31
Pads
141
Tracks, vias
288, 45
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
3 Sep 2024
Updated
3 Sep 2024

Overview

Puya spinner is an open-source printed circuit board by ArcaneNibble, from the ArcaneNibble/puya-spinner repository on GitHub, published under the 0BSD licence. It is a 2-layer board of 119 × 27 mm with 52 parts on 31 nets, routed with 288 tracks and 45 vias.

It is built around the PY32F002AF15P6-E, SC7A20 and AO3401A, with the CR2032 among its other parts. Its parts include 30 diodes, 8 resistors, 4 capacitors, 2 ICs and 1 transistor.

Main components

4

README

README.md

PY32 fidget spinner demo

3d render of board

This is a quick-and-dirty demo of just how cheap embedded compute can get nowadays — approximately USD$6 for an assembled board with a 32-bit Cortex-M0.

In order to actually make good use of this available compute, the idea was to build a modern (i.e. state-space) control theory estimator to determine the orientation of the fidget spinner from accelerometer data, rather than more traditional approaches involving hall effect sensors.

Status

Revision A was ordered from JLCPCB, and all of the essential components work.

The state estimator has yet to be written, as the author is aphantasic and not much of a shape rotator (and thus struggling with writing out the necessary "physical world" equations).

Main components

  • PY32F002AL15 (MCU)
  • SC7A20 (accelerometer)
  • CR2032 battery
  • 30 charlieplexed LEDs

Parts

52
QtyValueFootprintReferences
30REDLED_SMD:LED_0603_1608MetricD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +14
6100Resistor_SMD:R_0402_1005MetricR3, R4, R5, R6, R7, R8
30.1 uFCapacitor_SMD:C_0402_1005MetricC1, C2, C3
210kResistor_SMD:R_0402_1005MetricR1, R2
2SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1, JP2
2TestPointTestPoint:TestPoint_Pad_2.0x2.0mmTP1, TP2
110 uFCapacitor_SMD:C_1206_3216MetricC4
1608 bearingparts:fixme_608_bearingH1
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1CR2032parts:Battery_MYOUNG_BS-07-A1BJ001_CR2032BT1
1Conn_ARM_SWD_TagConnect_TC2030Connector:Tag-Connect_TC2030-IDC-FP_2x03_P1.27mm_VerticalJ1
1PY32F002AF15P6Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU1
1SC7A20Package_LGA:LGA-12_2x2mm_P0.5mmU2

Questions

How big is the Puya spinner PCB?

It measures 119 × 27 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Puya spinner use?

52 parts, built around the PY32F002AF15P6-E, SC7A20, AO3401A and CR2032. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Puya spinner KiCad files?

From the ArcaneNibble/puya-spinner repository on GitHub, at the commit this page was made from: the board is puya-spinner.kicad_pcb and its schematic puya-spinner.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Puya spinner design in my own project?

Its repository publishes it under the 0BSD licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers77.3 × 89 mmPanelized, the printed circuit board in 3D

    Panelized

    avycado13/cheapoboard

    See firmware/README.md for the PA0 blink example, build instructions, and SWD flashing guide.

    120 parts
  • 4 layers83.1 × 92.5 mmTildagon base, the printed circuit board in 3D

    Tildagon base

    emfcamp/badge-2024-hardware

    183 parts40
  • 2 layers53.4 × 84.4 mmPOV card v1, the printed circuit board in 3D

    POV card v1

    ExcessiveOverkill/POV-card-v1

    Persistence-of-vision shake light-up badges designed by Excessive Overkill

    64 parts5
  • 4 layers83.8 × 22.9 mmRemex wch, the printed circuit board in 3D

    Remex wch

    ArcaneNibble/remex-wch

    CH32V307 GigE development board

    102 parts10BSD
  • 4 layers71.9 × 20 mmHD800-wireless, the printed circuit board in 3D

    HD800-wireless

    AarnimM22/HD800-wireless

    dual CS43131 + nrf5340 DAC/AMP for turning Sennheiser HD800 into wireless

    121 parts
  • 2 layers58.4 × 40.6 mmLP MSPM0C1104-EB V1.1, the printed circuit board in 3D

    LP MSPM0C1104-EB V1.1

    dvhai08/LP_MSPM0C1104-Expansion-Board

    MSPM0C1104 LaunchPad™ development kit for 24-MHz Arm® Cortex®-M0+ MCU

    72 parts
  • 4 layers100 × 13.5 mmUsbc soldering iron, the printed circuit board in 3D

    Usbc soldering iron

    ma-ale/usbc_soldering_iron

    synched from https://git.alemauri.eu/alema/usbc_soldering_iron

    82 parts
  • 2 layers38 × 46 mmMicroswadge reflector, the printed circuit board in 3D

    Microswadge reflector

    cnlohr/cnhardware

    My dumping grounds for all my kicad projects and random hardware bringup.

    30 parts114