A hobby art project creating beautiful spinning LED displays using Persistence of Vision.
A Persistence of Vision (POV) display creates images by spinning LEDs fast enough that your eye blends them into a continuous picture. This project combines:
- Rotating LED arrays - 3 arms with 40 LEDs total, creating a radial display
- 10+ visual effects - Rainbow spirals, Perlin noise, test patterns, and more
- Real-time rendering - Calculates what to display based on rotation angle
- Wireless power - Inductive coil eliminates slip rings
| Component | Part |
|---|---|
| MCU | Seeed XIAO ESP32-S3 |
| LEDs | HD107S (40 total: 13 + 13 + 14 per arm) |
| IMU | MPU-9250 (accelerometer/gyroscope) |
| Position Sensor | A3144 Hall Effect Sensor |
| Power | 5V wireless inductive coil |
| Component | Part |
|---|---|
| MCU | ESP32-S3-Zero |
| Motor Driver | L298N H-Bridge |
| Input | VS1838B IR Receiver |
| Status | RGB LED indicator |
| Communication | ESP-NOW (bidirectional with LED display) |
Full mechanical design available on OnShape:
Both projects use uv + PlatformIO:
# LED Display
cd led_display
uv sync
uv run pio run -e seeed_xiao_esp32s3
uv run pio run -e seeed_xiao_esp32s3 -t upload
# Motor Controller
cd motor_controller
uv sync
uv run pio run
uv run pio run -t upload# From project root
uv sync
pov telemetry status # Check motor controller state
pov telemetry dump # Download telemetry CSVs| System | Status | Operating Range |
|---|---|---|
| LED Display | Operational | 700-2800 RPM |
| Motor Controller | Operational | 240-1489 RPM |
| ESP-NOW Integration | Operational | IR forwarding, telemetry exchange |
- Project Structure - Codebase layout and key files
- LED Display Docs - Architecture, timing analysis, effect system
- Motor Controller Docs - Calibration, datasheets
- IR Control Spec - Remote control implementation



