POV Display
Overview
This was my first adventure with embedded rust.
I put together some slides summarizing this project for a show-and-tell presentation at work. The PDF is available here.
The project is a custom-built Persistence of Vision (POV) display that creates the illusion of floating graphics in midair using rapidly spinning LEDs. The core challenge? Turning lights on and off with millisecond precision in lockstep with the signal spinning the stepper motor.

Rendering Animated Text
Built with an STM32F405 microcontroller and APA102 LEDs, the device uses a stepper motor with microstepping and a couple belt-driven pulleys to get things spinning fast enough. I wrote all firmware in Rust, leveraging the RTIC framework for real-time interrupt-driven concurrency—ideal for juggling tasks like rendering frames, processing input, and managing timers with zero heap or threads.
To display complex animations, I modeled the spinning array as a 80x19 pixel grid, updating the LED strip every 40th tick of a 3200-step revolution. Graphics are generated using Rust traits and the embedded-graphics library, with effects like a spinning globe or text easily rendered in real-time.
All components—mechanical and electrical—were designed from scratch, including the control interface (rotary knobs + OLED display), printed housing, and custom effect engine.
The Stick

The Stick (origin of my adafruit-seesaw firmware crate)
You can see the knob being used in the video at the top to rotate the globe.
3D Printed Parts

Sideview of the assembly
Below is a 3D model of the assembly. I wouldn't recommend printing it. The design was mechanically unstable but worked well enough to prove the concept.