From 1fd63d8d1f9ba17ec6f151b7428b0d04d5f27f0e Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Wed, 8 Jul 2026 10:57:48 +0200 Subject: [PATCH] fix: display Bluetooth MAC addresses in conventional MSB-first order bdAddr bytes are stored LSB-first (HCI wire order) throughout the stack, but the bluetooth app and btbonds tool formatted them LSB-first too, so every MAC displayed byte-reversed. Print addr[5] down to addr[0] instead. Display-only change; wire-order parsing and syscalls untouched. Co-Authored-By: Claude Fable 5 --- programs/src/bluetooth/main.cpp | 8 ++++---- programs/src/btbonds/main.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/programs/src/bluetooth/main.cpp b/programs/src/bluetooth/main.cpp index afa4ac6..2f78401 100644 --- a/programs/src/bluetooth/main.cpp +++ b/programs/src/bluetooth/main.cpp @@ -297,9 +297,9 @@ static void refresh_devices() { } if (!found) { snprintf(g_device_names[i], 64, "%02X:%02X:%02X:%02X:%02X:%02X", - g_devices[i].bdAddr[0], g_devices[i].bdAddr[1], - g_devices[i].bdAddr[2], g_devices[i].bdAddr[3], - g_devices[i].bdAddr[4], g_devices[i].bdAddr[5]); + g_devices[i].bdAddr[5], g_devices[i].bdAddr[4], + g_devices[i].bdAddr[3], g_devices[i].bdAddr[2], + g_devices[i].bdAddr[1], g_devices[i].bdAddr[0]); } } } @@ -374,7 +374,7 @@ static const char* device_class_str(uint32_t cod) { static void format_addr(char* buf, int len, const uint8_t* addr) { snprintf(buf, len, "%02X:%02X:%02X:%02X:%02X:%02X", - addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]); + addr[5], addr[4], addr[3], addr[2], addr[1], addr[0]); } static const char* rssi_bar(int8_t rssi) { diff --git a/programs/src/btbonds/main.cpp b/programs/src/btbonds/main.cpp index 8e05550..a757313 100644 --- a/programs/src/btbonds/main.cpp +++ b/programs/src/btbonds/main.cpp @@ -8,7 +8,7 @@ const char* addr_to_string(char* str, uint8_t* bdAddr) { snprintf(str, 18, "%02x:%02x:%02x:%02x:%02x:%02x", - bdAddr[0], bdAddr[1], bdAddr[2], bdAddr[3], bdAddr[4], bdAddr[5] + bdAddr[5], bdAddr[4], bdAddr[3], bdAddr[2], bdAddr[1], bdAddr[0] ); return (const char*)str;