v0.7.0
MM1-BLACK v0.7.0
Portrait UI, paginated POINTS table, stable large CSV load, and capture beyond 100 points with SD spill.
Added
- Paginated POINTS (#14): 20 rows per page, ‹ › controls, counter
N pts · page X/Y(orN+100 ptswith SD spill). - Async CSV load: large SD files without blocking the LVGL UI; total point count while loading.
- Capture beyond 100 points: with SD inserted, oldest point spills to file automatically; SAVE appends when spill data exists.
- Lightweight table: fixed 21-row grid (header + 20); cell text instead of draw callbacks — lower heap use.
- Portrait splash 320×480 (
tools/gen_mira_splash.py --portrait).
Changed
- Portrait layout R6 (#18):
TFT_ROTATION=0, custom tab bars on main screen, SETUP sub-tabs Bright → Cal → BT → About, dark theme on bars. - About: product version via
FW_VERSION(no build date in About). - POINTS UI: columns
D(m)/Azm/Inc; DEL / CLR / SAVE / TX bar aligned to theme; WiFi removed from primary UX.
Fixed
- Reboot when changing page, loading CSV, or opening an empty file (no dynamic
set_row_cntorDRAW_PART_ENDdraw in LVGL callbacks). - Freeze with 77+ table rows (48 KB LVGL heap exhaustion).
- Capture button: checks table full before laser measurement; without SD shows "Full — insert SD"; with SD continues past 100 points.
- ~29 kB CSV load: non-blocking read in
loop(),readBytesUntil, EOF fix for BLE/TX stream.
Install
- Open Install MM1-BLACK in Chrome or Edge.
- Select v0.7.0.
- Use 115200 baud (recommended for CH340 / Web Serial). Do not unplug USB during flash.
Assets: MM1-BLACK-denky32-v0.7.0.bin + .sha256
Full changelog: CHANGELOG.md