Skip to content

Releases: meshtastic/Adafruit_nRF52_Bootloader_OTAFIX

0.9.2-OTAFIX2.3-BP1.6

Choose a tag to compare

@jamesarich jamesarich released this 21 Aug 15:41
9855791

Backport-patch release on OTAFIX 2.3. Assets per board are attached by CI (.zip for adafruit-nrfutil serial DFU, .hex for a debug probe, update-*.uf2 to update the bootloader from the UF2 drive).

Fixed

  • CURRENT.UF2 backups are no longer truncated after a DFU update (#34). bank_0_size means "bytes from the application start" to the CRC check and the serial/OTA DFU path, but the UF2 flash path counted every block written since the start of flash, and the dump window trusted whichever meaning it found. Net effect: a CURRENT.UF2 dump taken after a serial or BLE OTA update was silently short by the SoftDevice span, and restoring such a dump only worked while the missing tail happened to still be in flash. If you keep CURRENT.UF2 backups and have updated firmware over serial or BLE since taking them, re-take them on this release. Verified on RAK4631 in both directions.

Changed

  • lib/tinyusb digest bump (0.21.0-241-g7800876, #29) — exercised on hardware via UF2 mass-storage flashing, USB CDC and serial DFU on RAK4631.
  • Docs: the AGENTS.md GCC-15 note now reflects the backported -Warray-bounds fix (#31).

Full changelog: changelog.md

0.9.2-OTAFIX2.3-BP1.5

Choose a tag to compare

@jamesarich jamesarich released this 19 Aug 20:54
61c9ebe

Since 0.9.2-OTAFIX2.2-BP1.4

  • New boards: Heltec T096, Heltec T1, RAK 3401 (#24 — merged from oltaco's upstream, which calls this same board-support work "OTAFIX 2.3" too)
  • screen.c refactored to a display-size-agnostic layout (macro-based bar/text positions instead of hardcoded pixel offsets) — no behavior change for existing boards (#24)
  • ST7735 display controller support, alongside the existing ST7789 path (#24)
  • Five upstream Adafruit fixes backported, hardware-validated on a RAK4631 (#26):
    • Boot loop from a wrong REGOUT0 read
    • GCC 15 build errors (Makefile version filter, ghostfat.c)
    • -Werror=array-bounds false positive in bootloader_settings.c, now a scoped pragma instead of the previous repo-wide --param=min-pagesize=0 workaround
    • Clear CONTROL/PRIMASK/BASEPRI/FAULTMASK before jumping to the application — was rarely causing lockups
    • Wait for BLE notification-queue room instead of silently dropping DFU completion notifications
  • Fixed a latent out-of-bounds write in screen.c's print() (#24 review fix) — not reachable on any current board, but a real hazard for future board.h layouts
  • Docs: bank_0-zeroed BLE-OTA-wait behavior on serial DFU, refreshed board/check counts (#27, #28)

Hardware-testing note: Heltec T096, Heltec T1, and RAK 3401 are new to this fork and have not been hardware-validated here — per CONTRIBUTING.md's own bar, "a bootloader that compiles but was never flashed is not a contribution, it's a liability." None of the three are flagged in Meshtastic-Android's device_bootloader_ota_quirks.json as requiring a bootloader upgrade, so this is parity/completeness work, not something blocking anyone. Everything else in this release (RAK4631, and the five backported fixes) was tested on real RAK4631 hardware, including a full BLE OTA DFU round-trip.

0.9.2-OTAFIX2.2-BP1.4

Choose a tag to compare

@jamesarich jamesarich released this 19 Aug 13:16
18c3dc5

Meshtastic's first release cut from this fork (previous tags were inherited from oltaco/Adafruit_nRF52_Bootloader_OTAFIX).

Since 0.9.2-OTAFIX2.2-BP1.3

  • fix: bump lib/nrfx (pinned to v3.14.0) and lib/tinyusb together, fix the fallout (#19) — real-hardware tested on RAK4631
  • fix: size CURRENT.UF2 to the real installed app instead of the max region, fixing a dump-and-restore hang (#20) — real-hardware tested on RAK4631
  • docs: explain the boot chain, SoftDevice, and the three update paths (#21)
  • ci: GitHub Actions maintenance (actions/checkout v7, upload-artifact v7, action-gh-release v3) (#15-#18)

Board coverage is otherwise unchanged from BP1.3 (14 boards). NANO_G2_ULTRA and NOMADSTAR_METEOR_PRO are tracked in #4/#5 and not yet in this release.