
VeloSwing
A swing, read back as speed and light.
Beginners feel a swing. They cannot measure it.
VeloSwing turns it into a number and a colour.
Fits one hand.



Front 
Side 
Rear
- 88 × 116 × 26
- mm, outside
- ≈ 45 g
- two shells, as PLA, from CAD volume
- 5
- printed pieces
- 128 × 32
- pixel OLED, 26 × 11 mm window
- 8
- addressable LEDs, WS2812B
- 100 Hz
- 6-axis motion sensor

Graphite, matte.
- Shell
- Two halves, one seam
- Screen
- Speed, stroke, count
- Diffuser
- Eight LEDs, one colour
- Strap loops
- Two straps to the throat
- Button
- Reset · 2 s kcal · 5 s sleep






- Front shell
- Diffuser cap
- OLED, 128 × 32
- Arduino Nano 33 BLE Rev2
- Carrier, 74AHCT125 buffer
- Button, tactile switch
- 8 WS2812B LEDs
- Rear shell
Five printed pieces, two identical caps.
Nine versions to one.











Every swing, answered.
Slow, mid, fast, serve, then a 2 s hold.
300+ swings on a real court.
- [0381] Forehand 94.76% 34.0
- [0382] Forehand 91.29% 43.0
- [0383] Forehand 91.26% 28.0
- [0384] Forehand 96.66% 33.0
- [0391] Forehand 88.32% 37.0
- [0392] Backhand 94.02% 45.0
- [0393] Backhand 98.10% 37.0
- [0394] Backhand 92.75% 38.0
Three strokes, three shapes.
−0.45 sImpact+0.45 s
Named at 0.70, or not at all.
Unknown. Speed counts, the stroke does not.
00.701
- 544
- windows, open dataset
- 87.68%
- correct, all windows
Every wire, redrawn.
- Joined
- Crossing, not joined
- No connection
| 5V | Nano VUSB, AHCT 14, 13, 10, 4, 100 nF to pin 14, Strip +5V |
|---|---|
| 3V3 | Nano 3V3, OLED VCC |
| GND | Nano GND, OLED GND, AHCT 1, 5, 7, 9, 12, 100 nF to pin 7, 10 kΩ low side, Button contact, Strip GND |
| SDA | Nano A4, OLED SDA |
| SCL | Nano A5, OLED SCL |
| D2 BUTTON | Nano D2, Button contact |
| D6 DATA | Nano D6, AHCT 2 (1A), 10 kΩ to GND |
| DIN | AHCT 3 (1Y), 330 Ω in series, Strip DIN |
| Not connected | AHCT 6, 8, 11. Strip DOUT. Nano VIN. |
Process

No phone. No internet. Only light.

Family of Form
Next project, 2 of 5












