Our project uses a Raspberry Pi compute module 3 connected via UART to 2 nRF51822. I'll go through what is working and than describe the issues I'm having
What's going on without issues:
btattach -B /dev/ttyAMA0 -S 115200 -P h4
btmgmt --index 0
static-addr FF:22:33:44:55:FF
Static address successfully set
power on
le-obb
LE Device Address: FF:22:33:44:55:FF
find -l
systemctl status bluetooth
bluetoothd -v
The issue:
The BD address is always 00:00:00:00:00 and this seems to have implications on tools like bluetoothctland others.
00:00:00:00:00
bluetoothctl
I'm basically trying every tool every command line I can find on Google (e.g. this link) to set the address and there's always errors.
hciconfig
BD Address: 00:00:00:00:00:00
bdaddr
Manufacturer: internal use (65535). Device address: 00:00:00:00:00:00 (XEROX CORPORATION)
bdaddr -i hci0 FF:22:33:44:55:FF
Unsupported manufacturer
hciattach
btattach
00
bluetoothctl show
bluetoothctl list
No default controller available
show 0
show hci0
Controller 0 not available
As per "Raju" on the comments section of the nRF5x support within the Zephyr Project RTOS blog post it seems that it seems that there's some issue on mapping the address on Zephyr, but I'm not sure if that is my issue or something unrelated.
I've tried to find on the source code of Zephyr anything related to the bd address, how to set it, or how to change it, and I couldn't find anything. If needed I can recompile it with extras flags, or include some params, extra protocol. But I'm really running out of options here.
Any help will be deeply appreciated.
Hi, thanks for pointing it out the direction of the code. But the issue here is the public address. It's always zero on the linux host which causes issues. We do have a address space from IEEE. How can…
Please address your questions to the Zephyr support team. They can be reached for technical questions, through the mailing lists or IRC channels for prompt assistance.
Thanks, Nordic employees help follow up the requests in Zephyr support portals, see Carles' answer in this thread.
Hi,
The code that set random address from FICR on the nRF5x devices in not included in the hci_uart example, only on host + controller samples. If you want to use random addresses, you can patch the sample code with this code that ge and set the random values from FICR. You can also set a public address the same way, if you have acquired one from IEEE.
Best regards,
Jørgen
Hi, thanks for pointing it out the direction of the code. But the issue here is the public address. It's always zero on the linux host which causes issues. We do have a address space from IEEE. How can I set it using the hci_uart?
Hi Ronaldo,
Did you got a solution to your problem?
Thanks,
Frank