Skip to content

MeshTower SD: OTAFIX 2.4.3 to 2.4.12

PASS, 2026-10-26. The MercerWoodMesh Pi's Heltec MeshTower V2 SD downloaded the official signed 2.4.12 bootloader over LoRa and installed it from microSD while running the exact older firmware from the reported node. No intermediate application or bootloader upgrade was needed.

Fixture and result

Check Result
Starting application 4d5ccbdd, v1.17.1.4, body hash F5C095D649FFBE43
Starting application lengths 474,964-byte body; 475,020-byte image
Starting bootloader OTAFIX 2.4.3, CRC D48D45A9
Bootloader identity Board 239A0071, target 1150F50E, TOWER_V2_OTA, ABI 3, caps 09
LoRa download MID 57CBECA2, 40/40 blocks, ready at 159 seconds
Staged image hash C9479891C5D0446D
Installed bootloader OTAFIX 2.4.12, CRC 59326292
Apply result blup:C8, no download, staged:none
Application after bootloader update Original F5C095D649FFBE43 body unchanged

The source was a Heltec V4.3 Full Companion running 5aac9570. Both radios used temporary 909.5 MHz, BW500, SF7, CR5 at 0 dBm. Package bytes crossed LoRa; target commands, including the single explicit install command, used USB. Remote admin control over LoRa was not exercised in this run.

The test used update-heltec_mesh_tower_v2_sdcard_bootloader-v0.11.0-OTAFIX2.4.12.mota from the official 2.4.12 bundle. Bundle SHA256: a0c6f223684972d527c115c19e2d38cbc2d271084df7caf2a26a60b35bdc7f87. Package SHA256: 8d9dd04bd63f1fc40cf582de7ef4ae29cf6d6decbdcff516af8444314d933895. The official Ed25519 signature was verified independently before transfer. The seeder executable SHA256 was 203e70aeb72330f9ce32c1d8c7f84502cf437e9f7272643bb3c8a24d56c1ef45.

Restoration and limits

The Tower's original v1.18.0.1 application 807343de was restored through application-only USB serial DFU. Its body hash returned to E5324C388E987A8E; the installed bootloader remained 2.4.12, CRC 59326292. Name, public identity, saved radio, TX power, repeat, RXPS, radio2, radio2.cross, temporary-radio state and the original three trusted signer entries matched the baseline. The temporary official signer entry was removed afterward. No settings erase was performed.

The source's radio, TX power and radio2 settings were restored, its folder disconnected, serving count zero and temporary radio inactive. Both serial ports were released. ModemManager was restored and the unrelated soak broker remained active.

The controlled local rollback to 2.4.3 used a bootloader-only UF2. Linux reported a final sync EIO after detach; the returned application independently confirmed the exact 2.4.3 CRC and unchanged application hash. During subsequent application restoration, one 1200-baud touch and one serial open returned USB protocol error 71. The same device was reidentified before continuing; no uncertain install command was replayed. The signed update's install reply was also lost at reboot; version, CRC, unchanged application hash and C8 resolved the outcome. These are not clean USB transport results or power-cut tests.

Private evidence archive SHA256: 97dc0b6851a7c478beb7f871a2e613b4186509af8e5019a8014ba235cd6946dd.