- background page (4th tile): built-in or any GIF in /gifs on the SD card
- chosen GIF is copied into a raw 11.9 MB 'bggif' flash partition (header
written last) and played memory-mapped from flash; SD only needed when
choosing or when the file changed (checked at boot in the background)
- own partitions.csv: 4 MB app + bggif + NVS
- tools/gif_to_360.py: convert GIFs to 360x360 keeping frame timing;
converted output (12-OBD-Speed/sd/) is git-ignored
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- speed page: 120 px antialiased number (lv_font_conv) + 0-200 km/h arc
gauge over ezgif-5-cb56986bc7.gif (embedded via board_build.embed_files)
- swipe-left menu: scan, OBD-like adapters first, tap to select; adapter
remembered in NVS, auto-connect at boot and reconnect every 3 s
- ELM327 init ATZ/ATE0/ATL0/ATS0/ATH0/ATSP0/0100, then 010D polling
- shared ini: -DLV_LVGL_H_INCLUDE_SIMPLE for generated fonts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>