mirror of
https://github.com/ALLFATHER-BV/wadamesh.git
synced 2026-10-15 01:57:35 +00:00
Second 7-dimension adversarially-verified audit over the 08-19 tree. Headliners: SUB_MAP over a display-only Lua app orphaned the app page (key-only soft-lock); Back-ladder z-order redesign (CC/power always- frontmost, confirm-modal deference, Lua key-forward suppressed while a confirm is up — the send-permission dialog was unanswerable); map pan flag could go stale across tab jumps/popups; null-close progress rows now genuinely block the registry dismiss (shared fix); terminal RX mirror, fullscreen title, wallpaper caption, storage-error guidance widened to M9; accent/@-mention pickers suppressed (dead chrome on a touchless board); kb-backlight cache only latches ACKed duties (0xFF sentinel == duty 255 skipped the first write every boot); deep sleep actually drops the rails now (display refcount, LEDC pin re-route, RTC/digital holds) and powers off radio+GPS; TCXO fallback no longer codifies the disproven 0.0f; RadioLib old-FW patch fail-closes at link; ENV_SKIP_GPS_DETECT + CORE_DEBUG_LEVEL=0 added to the env. Full round log in M9_PORT.md 'Audit pass 2 (2026-08-20)'. All four touch envs (M9, T-Deck, V4-R8, pager) compile clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
| 1 | # Heltec ThinkNode M9 firmware — custom partition table. |
|---|---|
| 2 | # |
| 3 | # 16 MB layout with TWO EQUAL OTA app slots so the firmware can self-update |
| 4 | # (HTTP OTA via the meshcomod proxy). The app region (app0+app1) is split |
| 5 | # evenly at 3.875 MB each — the firmware is ~2.99 MB (2026-08 builds), leaving |
| 6 | # ~0.88 MB of growth headroom per slot. Re-check that number at release time: |
| 7 | # the slots CANNOT grow later without moving the tiles/spiffs offsets, which |
| 8 | # the next paragraph forbids. The tiles + spiffs offsets are UNCHANGED from the |
| 9 | # previous (single-big-app0) layout, so an OTA — or a one-time USB re-flash to |
| 10 | # install this table — keeps the map tile cache and all user data (prefs / |
| 11 | # contacts / channels / chat history) intact. |
| 12 | # - app0 3.875 MB (ota_0) ┐ equal A/B slots; OTA ping-pongs between them |
| 13 | # - app1 3.875 MB (ota_1) ┘ |
| 14 | # slippy-tile pack |
| 15 | # - spiffs 3.375 MB for user data (/new_prefs, /contacts3, /channels2, chat |
| 16 | # history) |
| 17 | # |
| 18 | # Layout (16 MB total): |
| 19 | # 0x000000–0x009000 bootloader + partition table |
| 20 | # 0x009000–0x00E000 nvs (20 KB) |
| 21 | # 0x00E000–0x010000 otadata (8 KB) |
| 22 | # 0x010000–0x3F0000 app0 (3.875 MB, ota_0) |
| 23 | # 0x3F0000–0x7D0000 app1 (3.875 MB, ota_1) |
| 24 | # 0x7D0000–0xC90000 tiles (4.75 MB, LittleFS, type 0x83) [unchanged] |
| 25 | # 0xC90000–0xFF0000 spiffs (3.375 MB) [unchanged] |
| 26 | # 0xFF0000–0x1000000 coredump (64 KB) |
| 27 | # Name, Type, SubType, Offset, Size, Flags |
| 28 | nvs, data, nvs, 0x9000, 0x5000, |
| 29 | otadata, data, ota, 0xe000, 0x2000, |
| 30 | app0, app, ota_0, 0x10000, 0x3E0000, |
| 31 | app1, app, ota_1, 0x3F0000, 0x3E0000, |
| 32 | tiles, data, 0x83, 0x7D0000, 0x4C0000, |
| 33 | spiffs, data, spiffs, 0xC90000, 0x360000, |
| 34 | coredump, data, coredump, 0xFF0000, 0x10000, |