Lightweight driver + content server for flipdot displays.
The architecture consists of a Rust-based driver running on a Raspberry Pi and a Convex (TypeScript/React) backend for content generation and management.
driver-rs/: Rust driver that subscribes to Convex and drives the hardware via serial.server/: Convex backend + React virtual display.
[Convex Backend] ──real-time subscription──> [Rust Driver] ──serial──> [FlipDot Hardware]
│ │
cron: clock ConvexClient
rendering pipeline Driver
displays table SerialConnection
│
[React Virtual Display] (dev/testing UI, subscribes to same query)
The driver runs on a Raspberry Pi and communicates with the flipdot modules over serial.
cd driver-rs
cargo build --release
./target/release/flipdot --config config.jsonSee driver-rs/config.example.json for configuration options.
The server manages display state and provides a virtual preview.
cd server
npm install
npm run dev- Real-time updates: Subscribes to Convex for instant content changes.
- Minimal footprint: Rust driver is efficient and has minimal dependencies.
- Virtual Display: Web-based preview for development without hardware.
- Flexible Layout: Supports multiple modules in various configurations.
MIT