Repository navigation
v1.0.0 — First working release
The first fully working release of Liner — verified end-to-end on real M5Stack PaperColor hardware against a live Volumio instance.
Features
- Connects to Wi-Fi and polls Volumio's local REST API for playback state
- Now-playing card: album art + title/artist/album, rendered to the 400×600 Spectra 6 e-paper panel
- Idle screen when nothing is playing
- Event-driven refresh — only redraws on track change, since a full e-paper refresh takes 15–30s
- Up/down buttons skip to next/previous track
- Top button cycles through a configurable list of known Wi-Fi networks
- Service-aware album art resolution, with Tidal verified working and local/Spotify paths stubbed in for future testing
Key fix: album art
Tidal (and many CDNs) serve album art as progressive JPEG, which M5GFX's embedded decoder can't handle — drawJpg() was silently failing on every image. Fixed by routing external art URLs through the wsrv.nl image proxy, which re-encodes as baseline JPEG and pre-scales to the display's art box in the same request (also shrinking the download significantly).
Key fix: button responsiveness
The main loop used to block on a 5-second delay() between Volumio polls. Button edge-detection only runs inside M5.update(), so a quick tap that started and ended within that blocked window was never observed. Polling is now non-blocking and time-gated instead, so buttons stay responsive.
Known limitations
- Only the Tidal album art path is verified; local file (
mpd) and Spotify (spop/volspotconnect2) branches exist as stubs, untested - Network switching is a compile-time list, not an interactive on-screen picker (deliberate, given e-paper's refresh time)
- Flashing and booting the board both currently require manual button presses — see the README's Setup section
⚠️ Before flashing this prebuilt binary
Liner-v1.0.0-merged.bin is a single flashable image built with the maintainer's own Wi-Fi network and Volumio host baked in (from a personal config.h, not committed to the repo). It will not connect to your network as-is.
For your own setup, build from source instead: copy include/config.h.example to include/config.h, fill in your own Wi-Fi/Volumio details, then build and flash per the README. This prebuilt binary is provided mainly as a working reference/checksum for M5Burner-style distribution, not a drop-in flash-and-go image.
Flash at offset 0x0 — this is a merged image (bootloader + partition table + app), not just the app partition.