feat(ui-lvgl): SD card as a USB drive, message banner, card format, restart screen

- USB through TinyUSB (ARDUINO_USB_MODE=0) instead of USB-Serial/JTAG: the
  serial port stays, and plugged into a computer (enumerated, the bus not
  suspended -- on battery an unplug only shows as a suspend) the device asks
  "Charge only / USB drive". As a drive the firmware lets go of the card and
  the computer gets its sectors; ejected or unplugged, the device restarts.
- Incoming messages: a banner slides down from under the status bar (icon,
  sender or channel, two lines of the text from history); a tap opens the
  conversation (not while locked), a swipe up dismisses it, not shown for
  the conversation already open. Toasts moved up there too, under the banner
  when both are up; the ones only echoing a switch or a choice are gone.
- Storage > Format card: a popup saying what goes, then Format tapped twice;
  one FAT32 volume over the whole card (readable or not), then a restart.
- A deliberate restart shows a full "Restarting..." screen with the reason
  instead of the screen just freezing.
- The screenshot flash is a thin frame round the edges: a full-screen fade
  redrew all 320x240 each step and tore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-28 17:17:38 +02:00
co-authored by Claude Opus 5.5
parent 95c4c093f0
commit 51530ac451
8 changed files with 512 additions and 48 deletions
+6
View File
@@ -43,8 +43,14 @@ lib_deps =
[env:Wio_Tracker_L2_companion_solo_lvgl]
extends = Wio_Tracker_L2
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.312-1/platform-espressif32.zip
; USB through TinyUSB, not the chip's USB-Serial/JTAG: the serial port stays
; (CDC, reset-to-flash by the 1200 bps touch) and the SD card can be lent to
; a computer as a USB drive (ui-lvgl/LvglPort.h). A firmware that crashes
; early may need BOOT held over reset to flash.
build_unflags = -DARDUINO_USB_MODE=1
build_flags =
${Wio_Tracker_L2.build_flags}
-D ARDUINO_USB_MODE=0
-I examples/companion_radio/ui-lvgl
-D DISPLAY_CLASS=WioTrackerL2Display
-D UI_ZOOM=1