Skip to content

SolarXiao three power profiles, 2026-10-21

Base and Advanced share the same onboard power telemetry: XIAO battery voltage and MCU temperature. Their analog charger designs differ, but the published layouts expose no additional digital charger measurements or controls. The firmware now combines them into one Basic power profile without claiming which charger is fitted. Additional power measurements require added hardware/wiring.

There are three canonical choices:

  • auto: verify INA260 to enable MPPT; otherwise self-only, retrying.
  • basic: Base/Advanced self readings with native power-chip access disabled.
  • mppt: manual MPPT override, retaining independent charger write checks.

Auto remains the default without a saved selection. Old base and advanced command values remain compatibility aliases for basic, not separate modes. Readbacks and help show only the three canonical choices. Existing Advanced record value 1 and Base value 3 both load as Basic without a startup write. New Basic/alias saves use value 1. MPPT and Auto retain values 0 and 2.

Radio target choice remains independent: select the existing 30S/33S target for the fitted E22 module. No RF settings, PA limits, OTA identities, bootloader, flash layout, battery protection or automatic detection behavior changed.

Qualified source and packages

Application source: aa91fffae41465ba932f069f2a45e2a3ae1c7ad4. Version: v1.18.0.1-halo-keymind-cascade-dev-aa91fffa.

Target Profile Application bytes EndF body hash
solarxiao_33S_repeater Full 598,824 37EE3060D73CAB2E
solarxiao_33S_repeater Reduced 568,828 2174A0D9CB1EA7B9
solarxiao_30S_repeater Full 598,824 3525D6629B234891
solarxiao_30S_repeater Reduced 568,828 8037A8127A7D324A

All four DFU/UF2 builds passed linked capability, packaging and runtime memory checks. Full has 150,576 internal bytes available; Reduced has 152,224, against 76,960 required. Independent package checks verified version, EndF body length, body hash, unchanged target/hardware IDs, artifact hashes and linked Basic capabilities. Every application contains the three-option help and omits the old four-option help. PlatformIO ran one process at a time.

Host acceptance and scope

All 28 checks passed: 19 carrier methods, 3 existing power methods and 6 XIAO startup/battery safety checks. Native harnesses use ASan/UBSan. Compatibility tests cover every old record value 0..3, both aliases, canonical Basic saves, identical actual-adapter gating and no startup rewrite. Every out-of-range record value 4..255 fails closed with no native bus access.

The actual adapter retains live self readings in Basic mode while native commands, periodic access, telemetry and voltage-history calls make no native bus calls. Existing detection/retry, timer-wrap/long-uptime replay, persistence fault, identity, permission, parser-boundary, canary and history checks pass.

These are host/build results only. No device was flashed and no physical Auto, radio, charger, boot/soak or LoRa OTA test was performed for this image. SEA Sherwood remains unreachable and unchanged. Earlier hardware reports apply only to their named firmware revisions.

See the validation record for package hashes and the controls guide for hardware sources and commands. Packages and logs are retained under /home/mesh/hwtest/solarxiao-basic-20261021/.