Vision
Replace static decorative TFT animations with live host-system info on the AK820 Pro's bottom-right TFT panel. Reported by @wsclx as the actual ask behind Phase 5c:
"Beispielsweise Akkustand, Lautstärkeprozent, aber auch andere Systeminformationen, die hilfreich sein können."
Scope (10 presets)
- Battery percent + charging indicator
- Volume percent with mute state
- CPU usage with rolling sparkline
- Memory pressure
- Clock (HH:MM + date)
- Network up/down rates
- Now Playing (track + artist, scroll if overflow)
- Wi-Fi SSID + signal strength
- Date big-font
- Stopwatch / Timer (driven by automation)
What's needed
Two things this build doesn't have yet:
- Bitmap-font rasteriser — render text as 128 × 128 RGB565 frames. Smallish 5×7 or 7×9 monospace bitmap font, embed as Rust
&[u8] constant. Could borrow from embedded-graphics if we want vector glyphs.
- Polling loop — host-side timer (~1 Hz for clock/battery, ~10 Hz for volume/CPU) that re-rasterises the active preset and re-uploads. Tauri command starts/stops the loop; loop owns its own TFT connection so it doesn't fight the user's preset/image uploads.
Open questions
- Does the firmware actually accept re-uploads at 1 Hz, or does it throttle? Test before committing to a polling design.
- Do we want the user to compose their own preset (e.g. "Volume + Clock"), or are these 10 fixed?
Out of scope
- Per-user customisation of text/colours within a preset (later).
- TFT keyboard-knob interaction (the firmware doesn't expose this — see CLOSED won't-fix).
References
Vision
Replace static decorative TFT animations with live host-system info on the AK820 Pro's bottom-right TFT panel. Reported by @wsclx as the actual ask behind Phase 5c:
Scope (10 presets)
What's needed
Two things this build doesn't have yet:
&[u8]constant. Could borrow fromembedded-graphicsif we want vector glyphs.Open questions
Out of scope
References
[Unreleased]Deferredcrates/ak820-protocol/src/commands/tft.rscrates/ak820-protocol/src/commands/tft_presets.rs