Files

1.8 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
28nvs, data, nvs, 0x9000, 0x5000,
29otadata, data, ota, 0xe000, 0x2000,
30app0, app, ota_0, 0x10000, 0x3E0000,
31app1, app, ota_1, 0x3F0000, 0x3E0000,
32tiles, data, 0x83, 0x7D0000, 0x4C0000,
33spiffs, data, spiffs, 0xC90000, 0x360000,
34coredump, data, coredump, 0xFF0000, 0x10000,