View this page on MeshCore Docs.
SolarXiao 33S HEAD bootloader, LoRa OTA and repeater acceptance, 2026-10-21
The SolarXaio MPPT 12V LiFePO4 carrier with a Seeed XIAO nRF52840 and Ebyte E22-900M33S passed a full application update over LoRa and subsequent repeater acceptance on the Mercerwood bench. TX was configured to -6 dBm and repeating enabled. Both settings survived the application update and a further warm restart. Final core error flags were zero.
Machine-readable results bind this result to the following revisions. These were the checked-out HEAD revisions used for qualification; subsequent commits require separate testing.
| Component | Qualified revision or value |
|---|---|
| MeshCore source | efad0076816f7ba2293c68f56f8db18ac17344b9 |
| Application environment | solarxiao_33S_repeater, Full OTA package |
| Application version | v1.18.0.1-halo-keymind-cascade-dev-efad0076 |
| OTAFIX bootloader source | b07255d4cdc601f1313e4cbe020caad3b5544821 |
| Bootloader profile | xiao_nrf52840_ble, board 28860044, name XIAO_DFU |
| Bootloader packed test version | 0x02040B7E, displayed as OTAFIX2.4.11-preview.126 |
| Verified bootloader manifest CRC | 76EBABBF; ABI 3, capabilities 0E |
| SoftDevice | S140 7.3.0 |
| Application body hash | 6280E8156DB1042F |
| Application image size | 578,752 bytes |
| Application image SHA-256 | 1a182b5338f7655b4fe057436768b84069c00aa151971c96d6c2b6f7c98e8524 |
The bootloader is the named HEAD build. Its preview version string retains the 2.4.11 base label; this campaign did not install the 2.4.11 release artifact. The bootloader and SoftDevice were updated through serial DFU, followed by restoration of the preceding application. Identity and saved settings remained intact, and the running application confirmed QSPI bootloader-apply support.
Full LoRa application update
A Heltec V4.3 Full Companion running source revision 2bd4cb4d seeded the exact
Full .mota package. The destination started on application revision e16db810
with body hash C9137AAAB9A5FCDB. USB CLI controlled the target; application
image bytes traveled over LoRa. The target received zero firmware bytes over
USB during this application OTA test.
Both radios used a temporary 909.5 MHz, 500 kHz, SF7, CR 4/5 profile with a 32-symbol preamble. Target RX power saving was temporarily disabled for the transfer; its configured TX remained -6 dBm. The source retained its saved power-saving policy and TX setting.
Manifest 55E532FA reached 283/283 blocks, ready to install, with destination
session age 439 seconds. Host seeder logs showed reads of all 283 payload
blocks. After the install request, the target booted the expected version and
reported body hash 6280E8156DB1042F. Its bootloader identity and CRC still
matched the qualified HEAD build.
A preliminary attempt to activate scheduled temporary channels through remote administration failed before payload transfer. The completed test used local USB CLI to activate the maintenance channel. Fully remote scheduled activation and OTA with target RX power saving enabled remain unqualified by this run.
Restart and repeater acceptance
Ten USB query cycles, three close/reopen cycles and a warm restart passed. The version, body hash, board, role, public identity, TX setting and repeating state remained consistent. An independent XIAO S3 WIO Companion then sent three nonce-bound trace requests using the target's exact four-byte prefix route on the normal channel.
| Round | Exact nonce and one-hop route | Target direct RX/TX delta | Trace elapsed | Receive error delta |
|---|---|---|---|---|
| 1 | PASS | 1 / 1 | 0.498 s | 0 |
| 2 | PASS | 1 / 1 | 0.555 s | 0 |
| 3 | PASS | 1 / 1 | 0.536 s | 0 |
These traces establish reception and reply forwarding by the updated target. The final core error flags were zero; the final packet counters reported zero receive errors. The source and trace partner retained their saved settings.
Final configuration and cleanup
- Repeater role, repeating
on, TX-6dBm. - Saved normal radio
910.5250244,62.5,7,5; temporary radio inactive. - RX power saving restored to
on,level=8,preamble=16,rx=39657,sleep=15975. - No active download or staged bootloader package; QSPI self-update support ready.
- Temporary seeder, source contact and SSH forwarding connection removed.
- USB endpoints closed after verification.
The first source cleanup check sampled the radio before its deferred restore finished and reported an active window. A subsequent check confirmed temporary radio inactive and exact equality with all saved source settings. The JSON preserves that initial cleanup result and the completed restoration check.