Skip to content

Releases: mikecarper/Adafruit_nRF52_Bootloader_OTAFIX

OTAFIX 2.4.1 Preview 6 - SD-backed MeshTower updates

Choose a tag to compare

Preview 6 adds an optional Heltec MeshTower V2 bootloader target for SD-backed MeshCore self-updates. The new heltec_mesh_tower_v2_sdcard build reads a validated raw-sector SD handoff and applies either a full application image or an in-place differential MOTA package.

The existing internal-flash MeshTower V2 target remains available and unchanged. Install only the update UF2 made for the exact board and storage layout.

Additional validation in this preview exercises real externally generated full and differential MOTA packages through the bootloader SD apply path and checks the reconstructed application byte for byte.

Validation before tagging:

  • Make builds passed for all 17 boards.
  • Fresh CMake builds passed for all 17 boards.
  • Signed and dual-bank Make/CMake feature builds passed for Heltec T096 and T114 (8/8).
  • Host apply, readback, bootloader-image, SD full/delta/corruption, and external CLI-vector tests passed.
  • All 51 locally generated Preview 6 assets are present and non-empty, including the three new MeshTower V2 SD-card assets.

This release contains the 51 locally validated artifacts listed above.

OTAFIX 2.4.1 Preview 5 - CRC-verified self-update and MeshTower

Choose a tag to compare

Preview 5 adds Heltec MeshTower V2 support and hardens UF2 bootloader self-updates with a build-patched whole-image CRC32 manifest, board/device identity checks, UICR and layout validation, consistent block-set checks, and complete staging erase.

It also corrects the Heltec T096/T114 display-controller definitions, adds CMake coverage across all 16 boards, services inherited watchdogs during delta OTA, and expands CI coverage for host tests plus signed and dual-bank display variants.

Compatibility: use the update UF2 for the exact board. An initial update from an older bootloader still relies on its legacy VID/PID check; once Preview 5 is installed, later self-updates also require the matching device identity and complete-image CRC. The nRF52840 bootloader start remains 0xF4000; the code region is 39.5 KB.

Validation before tagging: Make passed 16/16 boards, clean CMake builds passed for Heltec T096 and T114, and all host tests passed. GitHub Actions rebuilds and attaches the release artifacts.

OTAFIX 2.4.1 Preview 4 - reliable BLE DFU

Choose a tag to compare

Preview 4 improves BLE DFU reliability with phone-controlled connection updates, a 15-30 ms preferred interval, zero slave latency, and a 4-second supervision timeout. It recommends PRN 8 and aligns Make optimization flags so all 15 boards build successfully. Validation: tools/build_all.py passed 15/15 boards.

OTAFIX 2.4.1 Preview 3 - restored BLE throughput

Choose a tag to compare

This preview supersedes Preview 2 for testing while preserving the earlier releases and tags.

Changes since Preview 2:

  • Restore the upstream OTAFIX 10 ms minimum BLE connection interval.
  • Restore zero BLE slave latency, addressing the observed OTA throughput regression from approximately 5.4 kB/s to 1.4 kB/s.
  • Retain the Preview 2 DFU validation, clean BLE reboot, and USB-first recovery improvements.

Direct UF2 downloads:

Validation completed with successful CMake builds for heltec_t096 and heltec_t114.

OTAFIX 2.4.1 Preview 2 - reliable DFU completion

Choose a tag to compare

This preview supersedes Preview 1 for testing while preserving the earlier release and tag.

Changes since Preview 1:

  • Persist the CRC validated during application DFU so later boots can verify application integrity.
  • Hardware-reset after a successfully completed BLE application update for clean SoftDevice, radio, and peripheral state.
  • Preserve recovery behavior for interrupted updates and support both single-bank and dual-bank validation paths.
  • Retain USB-first recovery: an active USB data host gets serial/UF2 DFU, with automatic BLE fallback when USB data is unavailable.

Validation completed for heltec_t096 and heltec_t114 in normal and signed-firmware configurations, plus all host delta tests.

OTAFIX 2.4.1 Preview 1 - USB-first recovery

Choose a tag to compare

Preview of OTAFIX 2.4.1 for USB-first recovery testing.

Changes since OTAFIX 2.4

  • When no valid application is present, briefly offers USB CDC/UF2 and selects it only after host enumeration.
  • Falls back immediately to BLE without VBUS, or after 3 seconds when VBUS is power-only or unconfigured.
  • Releases the direct POWER interrupt before enabling the SoftDevice for BLE fallback.
  • Services an inherited watchdog during delta OTA and USB probing.

Intended validation

  • After a full erase and bootloader flash, a connected computer can install MeshCore over USB.
  • Without an active USB data host, a phone can install MeshCore over BLE.

Validation

  • Heltec T096 (ST7735S) and T114 (ST7789) CMake builds pass.
  • The complete board release matrix and artifacts are generated by GitHub Actions.

This is a preview release intended for hardware testing.

OTAFIX 2.4 - MeshCore LoRa delta updates

Choose a tag to compare

@mikecarper mikecarper released this 17 Jul 20:02

OTAFIX 2.4 adds bootloader-side application of compact MeshCore .mota in-place delta updates, enabling supported single-slot nRF52840 devices to update over LoRa without transferring a full firmware image.

What is included

  • Validates that the delta base_hash matches the exact running application before writing.
  • Applies codec 2 (detools-in-place) packages from the protected staging area.
  • Invalidates the application before writes and verifies the completed image hash before committing it.
  • Falls back to recovery DFU instead of booting a partial image after interruption or validation failure.
  • Includes hardened container geometry, flash bounds, volatile flash readback, and source-region guards.
  • Retains the OTAFIX BLE/USB DFU behavior and board-specific DFU names from earlier releases.

Supported boards

  • Heltec T096 and T114
  • LILYGO T-Echo
  • Minewsemi MX25LE01
  • ProMicro nRF52840
  • SenseCAP Solar Node P1 and T1000-E
  • ThinkNode M1, M3, and M6
  • Wio Tracker L1
  • WisCore RAK4631 and RAK WisMesh Tag
  • XIAO nRF52840 BLE and XIAO nRF52840 BLE Sense

Installation

Use only the asset for the device's exact board. The recommended update is the matching update-..._nosd.uf2 file: enter UF2 mode and copy it to the device. The .hex and .zip assets contain the bootloader plus the board's matching SoftDevice and are intended for full recovery/programming workflows.

If the device is currently running MeshCore companion firmware or Ripple firmware, follow the repository README's erase instructions after installing a new bootloader so the ExtraFS area is cleared correctly. XIAO users must preserve the Sense/non-Sense variant shown in INFO_UF2.TXT.

Validation

  • GCC 12.3.1 complete matrix: 15/15 boards passed.
  • Required CMake builds passed for both display controllers: Heltec T096 (ST7735S) and T114 (ST7789).
  • Host simulation passed successful in-place apply, interrupted/stale-readback rejection, malformed-geometry rejection, and source-region protection.
  • All 45 release artifacts passed ZIP/HEX/UF2 integrity checks and contain the 0.9.2-OTAFIX2.4 version plus OTA apply capability marker.