Skip to content

SolarXiao INA260 battery telemetry, 2026-10-21

The SolarXaio MPPT 12V LiFePO4 carrier on the Mercerwood bench now reports its INA260 measurements in the normal MeshCore Full repeater build. With the user reporting a 13.2 V bench supply applied to BAT, all three LoRa telemetry replies reported 13.26 V, with signed current readings of -11, -8 and -8 mA. Three subsequent nonce-bound repeater trace tests passed at -6 dBm.

Machine-readable results contain the measurements, exact firmware identity, trace evidence, cleanup and limitations.

Discovery and correction

The original Full build contained the INA260 driver, but its carrier I2C pins were reversed and its generic INA260 address was 0x41. Read-only diagnostic transactions identified this board's INA260 at 0x40, manufacturer ID 5449, device ID 2270, with SDA=P0.09 (variant pin 30) and SCL=P0.10 (variant pin 31). Three USB-only readings were about 0.11125 V before the user connected the BAT supply.

The SolarXiao target now supplies these carrier pins through PIN_BOARD_SDA and PIN_BOARD_SCL, and overrides TELEM_INA260_ADDRESS to 0x40. Generic XIAO wiring and the generic INA260 address remain unchanged. Discovery tries the INA260's device-ID check before the INA219 driver can claim the same address and write an incompatible configuration.

Qualified build and live acceptance

Item Result
Source revision a947f936ecd279b7b3c97b4d832c4efc9a8a696b
Environment and installed profile solarxiao_33S_repeater, Full
Application version v1.18.0.1-halo-keymind-cascade-dev-a947f936
Application body hash E6E4E0E7CA5DB232
Application image 579,792 bytes
Application SHA-256 0ba24397e11c0c30b0e3213ea597c536c4bc075c25fae44fc39fa43ce0e5626b
Full and Reduced builds PASS; memory, DFU and nine capability markers per package
Board startup tests Six PASS, including carrier pin override and GPIO safety negative controls; ASan/UBSan
Warm restart PASS; sensor discovery, identity and saved settings preserved
LoRa telemetry Three replies; channel 2 has voltage, current and power
Repeater traces Three PASS; exact nonce, four-byte route and one target hop
Trace direct RX/TX 1 / 1 per round; zero added receive errors
Final core error flags Zero

The requested setup retained USB power, applied the supply to BAT and left solar disconnected. This checks sensor discovery and functional readout; it does not calibrate the INA260 against an independent voltage reference. Channel 1 is the XIAO internal ADC reading. Channel 2 is the carrier INA260. Reported power was 0 W in these near-zero signed-current samples; it is not an independent power or charger-performance measurement.

The normal radio remained 910.5250244,62.5,7,5, repeating stayed on, and TX stayed -6 dBm. RX power saving remained on,level=8,preamble=16,rx=39657,sleep=15975. The telemetry controller's temporary contact and forwarding connection were removed, the trace partner's settings were preserved, and USB endpoints were closed.

Scope and retained evidence

The installed application was updated through USB serial DFU. The qualified HEAD bootloader remained at revision b07255d4cdc601f1313e4cbe020caad3b5544821, manifest CRC 76EBABBF. The earlier full LoRa OTA transfer on application efad0076 is documented in the bootloader and LoRa OTA report. This run verifies LoRa telemetry and repeater forwarding on a947f936; it does not repeat a complete firmware transfer on that application.

An additional UART-pin diagnostic probe timed out after the successful INA260 reads. The original application and settings were restored before installing the final fix. The first trace run passed all three RF traces but failed a cleanup assertion that compared the entire changing radio2.status response. The corrected check compares saved radio settings exactly and verifies radio2 remains off; the subsequent complete run passed. Its final cumulative receive error counter was 7, with zero added during each owned trace round.

No LTC4162 charger configuration registers were written. The charger SKU is LTC4162-FSTM as reported by the user. Charging behavior and other carrier revisions are outside this acceptance result. The Reduced package was build-checked only; live INA260 acceptance used the Full package.