From 5cb38b13dc7299aab966f58164172fab009eaff9 Mon Sep 17 00:00:00 2001 From: liquidraver <504870+liquidraver@users.noreply.github.com> Date: Thu, 16 Jul 2026 10:52:31 +0200 Subject: [PATCH] upgrade formatted to be flasher compatible --- .gitignore | 5 +++ PROVIDER_CATALOG.md | 28 ++++++------ build.sh | 20 +++++++++ formatter/README.md | 57 +++++++++++++++++++++--- formatter/SoftDevice_v6_formatter.uf2 | Bin 100864 -> 100864 bytes formatter/SoftDevice_v6_formatter.zip | Bin 0 -> 51158 bytes formatter/SoftDevice_v7_formatter.uf2 | Bin 97792 -> 97792 bytes formatter/SoftDevice_v7_formatter.zip | Bin 0 -> 49680 bytes gen_provider_catalog.py | 28 ++++++++++-- zephcore/tools/formatter/CMakeLists.txt | 36 +++++++++++++++ 10 files changed, 151 insertions(+), 23 deletions(-) create mode 100644 formatter/SoftDevice_v6_formatter.zip create mode 100644 formatter/SoftDevice_v7_formatter.zip diff --git a/.gitignore b/.gitignore index 915f44e..4cae925 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,11 @@ rtt_*.log *.a *.zip +# ...except the prebuilt formatter DFU packages. These are shipped artifacts, not +# build output: build.sh publishes them as the Mesh America configurator's `erase` +# packages (see formatter/README.md, PROVIDER_CATALOG.md), so they must be tracked. +!formatter/*.zip + # OS junk .DS_Store Thumbs.db diff --git a/PROVIDER_CATALOG.md b/PROVIDER_CATALOG.md index 56a935c..e436f92 100644 --- a/PROVIDER_CATALOG.md +++ b/PROVIDER_CATALOG.md @@ -65,19 +65,21 @@ Notes on the mapping: boards without dedicated art fall back to a neutral LoRa icon. Swap in ZephCore-branded art by pointing `img` at your own absolute HTTPS URLs. -> [!WARNING] -> **The configurator's "Erase Flash" is not ZephCore-aware — do not use it on a ZephCore node.** -> `erase` is a MeshCore device-level field, not a provider field, so a folded nRF52 device -> inherits the *base* device's formatter (e.g. Wio Tracker L1 → `WioTrackerL1_QSPIFlash_Format`). -> That formatter targets MeshCore/Ripple's flash layout, which does not match ZephCore's -> LittleFS — so it performs a partial, inconsistent wipe (observed: nukes `channels`, leaves -> identity/prefs/contacts) and can leave the filesystem half-corrupted. New tiles inherit no -> `erase` at all, so Erase Flash is a no-op there. -> -> To factory-reset a ZephCore node, use ZephCore's own mechanism, which formats **all** of -> `/lfs` + `/ext` (and the NVS bond partition) and reboots: the `erase` command over the USB -> serial CLI, the companion app's factory reset, or simply reflash (ZephCore auto-formats on -> first boot when it detects an incompatible/blank FS). +- **Erase / "wipe settings" (nRF52) uses ZephCore's own formatter.** MeshCore's official erase + targets a different flash layout and only *partially* wipes a ZephCore node (observed on a Wio + Tracker L1: nuked `channels`, left identity/prefs/contacts, LittleFS half-corrupted). Since spec + §4a we override it: each nRF52 firmware option carries an `erase` pointing at ZephCore's + formatter. The formatter is **SoftDevice-specific** (v6 and v7 have different partition maps), so + `SOFTDEVICE` in the generator maps every nRF52 board to `SoftDevice_v6_formatter.zip` or + `SoftDevice_v7_formatter.zip`; `build.sh` publishes both from `formatter/` under stable, un-hashed + names so the erase URLs never change. The `.zip` drives the automated DFU erase flow; the `.uf2` + is published too as the manual drag-and-drop fallback. + - `erase` goes on the **firmware option**, never the device object — a device-level `erase` is an + official-only field that providers get silently ignored + warned for (§4a). + - ESP32 has no `erase` (the field is nRF52-only); `flash-wipe` already reinstalls cleanly. + - Users can still factory-reset on-device without the flasher: the `erase` command over the USB + serial CLI, the app's factory reset, or a reflash (ZephCore auto-formats on first boot when it + detects an incompatible/blank FS). All format `/lfs` + `/ext` + the NVS bond partition. ## Local test diff --git a/build.sh b/build.sh index a7006b7..9c888ab 100644 --- a/build.sh +++ b/build.sh @@ -82,6 +82,26 @@ if [[ $1 == "nrf" ]]; then mv build/zephyr/zephyr.zip firmware/"$board"-repeater-noscreen-"$COMMIT_HASH".zip fi done + + # ZephCore's storage formatter — published as the `erase` package for the + # Mesh America configurator (spec §4a). MeshCore's official erase targets a + # different flash layout and only partially wipes a ZephCore node, so each + # nRF52 board points `erase` at the formatter for its SoftDevice (v6/v7 have + # different partition maps; see SOFTDEVICE in gen_provider_catalog.py). + # Copied under stable, un-hashed names so the catalog's erase URLs stay + # stable. The .zip drives the configurator's automated DFU erase flow; the + # .uf2 is the manual drag-and-drop fallback. Skipped if not built yet. + for sd in 6 7; do + for ext in zip uf2; do + f="formatter/SoftDevice_v${sd}_formatter.${ext}" + if [[ -f "$f" ]]; then + cp "$f" firmware/ + echo "Published formatter: $f" + else + echo "NOTE: $f not present — erase package for SoftDevice v${sd} will 404" + fi + done + done fi if [[ $1 == "linux" ]]; then diff --git a/formatter/README.md b/formatter/README.md index 0edbd0b..36c6297 100644 --- a/formatter/README.md +++ b/formatter/README.md @@ -1,7 +1,50 @@ -nRF formatter tools - -- QSPI is formatted for all supported boards -- Watch out for softdevice version! Flashing the wrong version can corrupt the node and you'll need a full bootloader reflash with adafruit-nrfutil! - - You can check what softdevice version you use if you open INFO_UF2.TXT on the storage drive when in DFU mode. Bootloader should say "sxxx 6.x.x" for v6 and "sxxx 7.x.x" for v7 -- Formatter output logs from the process over serial -- After format, it puts back the device to Mass Storage DFU mode +nRF formatter tools + +- QSPI is formatted for all supported boards +- Watch out for softdevice version! Flashing the wrong version can corrupt the node and you'll need a full bootloader reflash with adafruit-nrfutil! + - You can check what softdevice version you use if you open INFO_UF2.TXT on the storage drive when in DFU mode. Bootloader should say "sxxx 6.x.x" for v6 and "sxxx 7.x.x" for v7 + - That warning applies to the **`.uf2`** files, which have no version guard. The **`.zip`** packages carry an `--sd-req` guard (v6 = `0x00B6`, v7 = `0x0123`), so the bootloader *rejects* a mismatched package instead of corrupting the node. +- Formatter output logs from the process over serial +- After format, it puts back the device to Mass Storage DFU mode + +## Files + +| SoftDevice | Boards | +|------------|--------| +| **v6** | RAK4631, RAK3401 1W, ThinkNode M1/M3/M6, RAK WisMesh Tag, LilyGo T-Echo, LilyGo T-Impulse Plus, ProMicro SX1262, Heltec T114, Heltec T096, GAT562 30s | +| **v7** | Wio Tracker L1, T1000-E, Ikoka Nano 30dBm, SenseCAP Solar, XIAO nRF52840 | + +- **`.uf2`** — manual drag-and-drop onto the UF2 mass-storage drive. +- **`.zip`** — Adafruit DFU package. Used by the Mesh America configurator as ZephCore's + `erase` package (its automated erase flow), and flashable by hand with + `adafruit-nrfutil dfu serial -pkg -p COMx -b 115200 --singlebank --touch 1200`. + See `PROVIDER_CATALOG.md` for how the catalog wires these up per board. + +`build.sh nrf` copies all four files into `firmware/` under these exact names so the +catalog's `erase` URLs stay stable across releases — don't rename them. + +## Rebuilding + +Two universal builds, one per SoftDevice. Source is `zephcore/tools/formatter`. The +partition map comes from the build board's overlay, and `qspi_probe.c` probes QSPI +bare-metal, so one image covers every board on that SoftDevice. + +```bash +# SoftDevice v6 (universal target: rak4631) +west build -b rak4631 zephcore/tools/formatter --pristine -d build_fmt6 +cp build_fmt6/zephyr/zephyr.uf2 formatter/SoftDevice_v6_formatter.uf2 +cp build_fmt6/zephyr/zephyr.zip formatter/SoftDevice_v6_formatter.zip + +# SoftDevice v7 (universal target: t1000_e) +west build -b t1000_e zephcore/tools/formatter --pristine -d build_fmt7 +cp build_fmt7/zephyr/zephyr.uf2 formatter/SoftDevice_v7_formatter.uf2 +cp build_fmt7/zephyr/zephyr.zip formatter/SoftDevice_v7_formatter.zip +``` + +The `.zip` needs `adafruit-nrfutil` on PATH (`pip install adafruit-nrfutil`); the build +prints `Formatter DFU zip: ENABLED (sd-req=...)` when wired up, and silently skips the +zip otherwise. `--sd-req` is read automatically from the build board's `board.conf` +(`CONFIG_ZEPHCORE_SD_FWID`), so it always matches the SoftDevice being targeted. + +To support a new board, add its QSPI pin mapping to `known_boards[]` in +`zephcore/tools/formatter/src/qspi_probe.c` — no DTS or Kconfig changes needed. diff --git a/formatter/SoftDevice_v6_formatter.uf2 b/formatter/SoftDevice_v6_formatter.uf2 index d28d08604d0a8cebdb511e100ef9710d34fba8a6..010c40cc89142e60e42af6938423e882f7677a2a 100644 GIT binary patch delta 16359 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 delta 14976 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 Fe*xqkkZS+{ diff --git a/formatter/SoftDevice_v6_formatter.zip b/formatter/SoftDevice_v6_formatter.zip new file mode 100644 index 0000000000000000000000000000000000000000..1215bbbb409b0214d5b1a33cdf1045992bd2af0d GIT binary patch literal 51158 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 z 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 Dk4=kf delta 14471 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 Z#o-Jrn}BH2=U12DI7}sw8s}Gq{txsF07U=* diff --git a/formatter/SoftDevice_v7_formatter.zip b/formatter/SoftDevice_v7_formatter.zip new file mode 100644 index 0000000000000000000000000000000000000000..52d3f98ebb3e8732a6b424c68c9e6f20f7efdb08 GIT binary patch literal 49680 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 F{tpK}RDS>f literal 0 HcmV?d00001 diff --git a/gen_provider_catalog.py b/gen_provider_catalog.py index b4de921..8d8e140 100644 --- a/gen_provider_catalog.py +++ b/gen_provider_catalog.py @@ -175,6 +175,21 @@ BOARDS = [ DEVICE_TYPE = {"nrf": "nrf52", "esp32": "esp32", "linux": "noflash"} +# nRF52 erase package (spec §4a). ZephCore's LittleFS layout differs from MeshCore's, +# so the official erase would wipe the wrong region — we point `erase` at ZephCore's +# own formatter tool instead. The formatter is SoftDevice-specific (partition map +# differs between SD v6 and v7), so each board maps to its SD's formatter .zip. +# Files are published to firmware-dist by build.sh (stable names, no hash). +SOFTDEVICE = { + "rak4631": 6, "rak3401_1watt": 6, "thinknode_m1": 6, "thinknode_m3": 6, + "thinknode_m6": 6, "rak_wismesh_tag": 6, "lilygo_techo": 6, + "lilygo_timpulse_plus": 6, "promicro_sx1262": 6, "heltec_t114": 6, + "heltec_t096": 6, "gat562_30s": 6, + "wio_tracker_l1": 7, "t1000_e": 7, "ikoka_nano_30dbm": 7, + "sensecap_solar": 7, "xiao_nrf52840": 7, +} +FORMATTER_FILE = {6: "SoftDevice_v6_formatter.zip", 7: "SoftDevice_v7_formatter.zip"} + # Companion firmware is a single image that serves both transports (and, on # Linux, TCP). Expose it under each applicable role, all pointing at one file. COMPANION_ROLES = { @@ -241,10 +256,12 @@ def build(assets, url_base, version): for (t, name, title) in triples ] - def add_option(dev, role, subtitle, version, triples): + def add_option(dev, role, subtitle, version, triples, erase=None): opt = {"role": role, "version": {version: {"notes": "", "files": spec_files(triples)}}} if subtitle: opt["subTitle"] = subtitle + if erase: + opt["erase"] = erase # spec §4a: on the firmware option, not the device dev["firmware"].append(opt) used_roles.add(role) @@ -275,11 +292,16 @@ def build(assets, url_base, version): stats["new" if board.get("new") else "fold"] += 1 dev = devices[name] + # nRF52 boards get ZephCore's own SoftDevice-specific formatter as `erase`. + erase = None + if board["kind"] == "nrf": + erase = f"{base}/{FORMATTER_FILE[SOFTDEVICE[board['stem']]]}" + if comp: for role in COMPANION_ROLES[board["kind"]]: - add_option(dev, role, subtitle, version, comp) + add_option(dev, role, subtitle, version, comp, erase) if repe: - add_option(dev, "repeater", subtitle, version, repe) + add_option(dev, "repeater", subtitle, version, repe, erase) catalog = { "description": DESCRIPTION, diff --git a/zephcore/tools/formatter/CMakeLists.txt b/zephcore/tools/formatter/CMakeLists.txt index 842ba9a..7a7658d 100644 --- a/zephcore/tools/formatter/CMakeLists.txt +++ b/zephcore/tools/formatter/CMakeLists.txt @@ -54,7 +54,43 @@ endif() message(STATUS "Formatter board overlay: ${FORMATTER_BOARD_OVERLAY}") message(STATUS "Formatter board conf: ${FMT_BOARD_CONF}") +# Read the SoftDevice firmware ID from the MAIN board.conf for this board. +# The Adafruit bootloader rejects a DFU package whose --sd-req doesn't match the +# SoftDevice it's running, which is exactly the guard we want: the SDv6 formatter +# must never apply to an SDv7 node (wrong partition map = corrupted node). +# SoftDevice v6 -> 0x00B6 SoftDevice v7 -> 0x0123 +file(GLOB_RECURSE MAIN_BOARD_CONF_CANDIDATES + "${CMAKE_CURRENT_SOURCE_DIR}/../../boards/*/${BOARD_BASE}/board.conf") +if(MAIN_BOARD_CONF_CANDIDATES) + list(GET MAIN_BOARD_CONF_CANDIDATES 0 MAIN_BOARD_CONF) + file(STRINGS "${MAIN_BOARD_CONF}" _sd_fwid_line REGEX "^CONFIG_ZEPHCORE_SD_FWID=") + if(_sd_fwid_line) + string(REGEX REPLACE "^CONFIG_ZEPHCORE_SD_FWID=" "" FORMATTER_SD_REQ "${_sd_fwid_line}") + endif() +endif() + find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(zephcore_formatter) target_sources(app PRIVATE src/main.c src/qspi_probe.c) + +# Generate an Adafruit DFU package (.zip) next to the .uf2. The .zip is what the +# Mesh America configurator uses for its automated `erase` flow (spec §4a); the +# .uf2 remains the manual drag-and-drop fallback. See PROVIDER_CATALOG.md. +find_program(ADAFRUIT_NRFUTIL adafruit-nrfutil) +if(ADAFRUIT_NRFUTIL AND FORMATTER_SD_REQ) + add_custom_target(dfu_zip ALL + COMMAND ${ADAFRUIT_NRFUTIL} dfu genpkg + --dev-type 0x0052 + --sd-req ${FORMATTER_SD_REQ} + --application ${CMAKE_BINARY_DIR}/zephyr/zephyr.hex + ${CMAKE_BINARY_DIR}/zephyr/zephyr.zip + DEPENDS ${CMAKE_BINARY_DIR}/zephyr/zephyr.hex + COMMENT "Generating formatter DFU package: zephyr.zip (sd-req=${FORMATTER_SD_REQ})" + VERBATIM + ) + add_dependencies(dfu_zip zephyr_final) + message(STATUS "Formatter DFU zip: ENABLED (sd-req=${FORMATTER_SD_REQ})") +else() + message(STATUS "Formatter DFU zip: DISABLED (adafruit-nrfutil or SD_FWID missing)") +endif()