Skip to content

fix: map SoftDevice variants for the new nrf52840 boards - #131

Merged
jamesarich merged 1 commit into
masterfrom
fix/softdevice-quirks-new-boards
Aug 24, 2026
Merged

fix: map SoftDevice variants for the new nrf52840 boards#131
jamesarich merged 1 commit into
masterfrom
fix/softdevice-quirks-new-boards

Conversation

@jamesarich

@jamesarich jamesarich commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Why

The Meshtastic-Android #6822 hardware-catalog refresh added nrf52840 boards with no SoftDevice mapping, so the destructive-flash gate would refuse OTA updates for them. Android PR meshtastic/Meshtastic-Android#6843 fixed the app's bundled seed (androidApp/src/main/assets/device_bootloader_ota_quirks.json), but that seed is refreshed on a schedule from this repo's resource/bootloaderOtaQuirks data. Without the same rows here, the next scheduled refresh reverts the app fix.

What

Four changes to data/bootloaderOtaQuirks.json, all under softDeviceVariants:

  • hwModel 9 (RAK4631): add platformioTargets rak_wismesh_pocket and rak_wismesh_repeater_mini (softDevice stays 6.1.1)
  • hwModel 117 (RAK3401): add platformioTarget rak_wismesh_repeater_mini_hp (softDevice stays 6.1.1)
  • New row hwModel 139 HELTEC_MESH_TOWER_V2, target heltec-mesh-tower-v2, softDevice 6.1.1
  • New row hwModel 144 SEEED_WIO_TRACKER_L1_PRO_1W, target seeed_wio_tracker_L1_Pro_1W, softDevice 7.3.0

Derivation

From meshtastic/firmware ldscripts: heltec_mesh_tower_v2 links nrf52840_s140_v6.ld (SoftDevice 6.1.1); seeed_wio_tracker_L1_Pro_1W links nrf52840_s140_v7.ld (7.3.0); rak_wismesh_pocket, rak_wismesh_repeater_mini, and rak_wismesh_repeater_mini_hp all build on wiscore_rak4631 with v6 (6.1.1).

Testing Performed

  • JSON parses; 34 variant rows, hwModel-sorted, no duplicate hwModel or platformioTarget values
  • Verified the added rows match the schema in src/lib/bootloaderOtaQuirks.ts (SoftDeviceVariantEntry)
  • No repo test script covers this data file (package.json only has validate:maintenance-uf2)

🤖 Generated with Claude Code

https://claude.ai/code/session_012mU7P5KvLFZFNoHL4ExrBN

Summary by CodeRabbit

  • New Features
    • Added support for RAK WiMesh Pocket and Repeater Mini devices.
    • Added support for the WiMesh Repeater Mini HP.
    • Added soft-device variants for Heltec Mesh Tower V2 and Seeed Wio Tracker L1 Pro 1W.

The #6822 hardware-catalog refresh in Meshtastic-Android added nrf52840
boards that had no SoftDevice mapping here, so the OTA gate would refuse
to flash them. Android PR #6843 fixed the app's bundled seed
(device_bootloader_ota_quirks.json), but that seed is refreshed on a
schedule from this repo's data: without the same rows here, the next
scheduled refresh reverts the app fix.

Derived from meshtastic/firmware ldscripts: heltec_mesh_tower_v2 links
nrf52840_s140_v6.ld (SoftDevice 6.1.1); seeed_wio_tracker_L1_Pro_1W
links nrf52840_s140_v7.ld (7.3.0); rak_wismesh_pocket,
rak_wismesh_repeater_mini, and rak_wismesh_repeater_mini_hp all build
on wiscore_rak4631 with v6 (6.1.1).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1ddae385-8699-421e-918f-1457bffcd43d

📥 Commits

Reviewing files that changed from the base of the PR and between 69772f5 and f580e6a.

📒 Files selected for processing (1)
  • data/bootloaderOtaQuirks.json

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The bootloader OTA configuration adds three RAK WiMesh PlatformIO targets. It also adds soft-device variant entries for Heltec Mesh Tower V2 and Seeed Wio Tracker L1 Pro 1W.

Changes

Bootloader OTA configuration

Layer / File(s) Summary
RAK WiMesh PlatformIO targets
data/bootloaderOtaQuirks.json
The RAK4631 variant adds rak_wismesh_pocket and rak_wismesh_repeater_mini. The RAK3401 variant adds rak_wismesh_repeater_mini_hp.
Hardware soft-device variants
data/bootloaderOtaQuirks.json
Hardware models 139 and 144 receive configurations using SoftDevice 6.1.1 and 7.3.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to f580e

This localized data update adds and corrects SoftDevice mappings for supported boards without identified merge-blocking risk; it is merge-ready after normal checks and review.

Poem

A rabbit checks the targets bright,
WiMesh entries hop in sight.
Two soft devices join the queue,
With OTA paths made clear and true.
Carrots cheer the JSON crew!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: mapping SoftDevice variants for new nRF52840 boards.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jamesarich
jamesarich merged commit 702205e into master Aug 24, 2026
4 checks passed
@jamesarich
jamesarich deleted the fix/softdevice-quirks-new-boards branch August 24, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant