Files
Jonathan BennettandClaude Opus 5.5 1546ebee2f Report the BLE address in DeviceMetadata.ble_address (#12281)
* Report the BLE address in DeviceMetadata.ble_address

Fills the field added in meshtastic/protobufs#1159 with the address the
BLE stack advertises on, so a client can read it over USB instead of
scanning for it (e.g. to print a connect QR code for a fixed-PIN node).

- getBluetoothAddr() joins getMacAddr()/getDeviceId() as a per-arch hook.
- ESP32: esp_read_mac(ESP_MAC_BT), the controller's public address that
  NimBLE uses; it differs from the base MAC. None on ESP32-S2.
- nRF52: sd_ble_gap_addr_get() while the SoftDevice runs, else the FICR
  identity address getMacAddr() already derives.
- nRF54, RP2xx0, STM32WL, native: no address yet; the field stays empty.
- formatMacAddr() renders "AA:BB:CC:DD:EE:FF".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011C7D9ehe42gSGx3n1gXFJw

* test(ble_address): run under the native test harness

Include TestUtil.h and call initializeTestEnvironment(), as test/README.md
requires: the suite calls getDeviceMetadata(), so it is not one of the
pure-function suites that skip the harness, and its RUN_TEST then gets
the per-test environment and state checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011C7D9ehe42gSGx3n1gXFJw

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-03 05:00:25 +00:00
..