'capture' with any argument (tinySA-App sends 'capture rle') sends the
screen in the NanoVNA-D (DiSlord) RLE8 format: "BM", width, height,
bpp 8, compression 1, the palette, then per row the PackBits packed
palette indices. Plain 'capture' still sends raw RGB565.
The palette holds all colours the tinySA draws, so the screen is read
once: the LCD palette, the waterfall colours and the trace colours ORed
over each other and over the colours drawn before them in draw_cell().
The image viewer and the display test set capture_verify, as does a
colour not in the palette: the next capture then reads the screen twice
to add its colours, or sends raw when there are more than 256.
The screen is now read as one DMA stream (ili9341_read_memory_start /
next / end) so the next row is read while the current one is packed or
sent. Tested on HW V0.4.5.1, pixel exact against raw on normal, 4 trace,
waterfall, menu and keypad screens:
- capture rle: about 28 KB, 253 ms (was 482 ms raw)
- capture: 345 ms (was 482 ms)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The zero-span time grid can be calculated before actual_sweep_time_us is updated, leaving the display aligned to the previous sweep duration.
Calculate grid geometry without mutating global state, recompute it after the measured sweep time is stored, and redraw only when the resulting tuple changes. Use 64-bit arithmetic through the final time-domain division so short sweeps retain exact pixel geometry.
It's now possible to save capture, traces, or both by clicking SD card icon
Disabling both options hides SD card icon
Config submenu was added to Storage menu, and all settings were moved there
Existing config remains valid, and default behavior with saving a capture is kept
added run "file.name" console command, only for in cmd file
added AUTO SAVE to trigger menu
added wait {seconds} console command
added 3rd waterfall size