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:
- The 2 nRF51822 are running project Zephyr HCI_UART sample with a very small change to blink an LED.
- The Raspberry Pi is running the latest Jessie (from Mar/2017) with Kernel 4.4
- I compiled both blueZ 5.43 and 5.44 (they have different tools) without issues.
- Attach the modules
btattach -B /dev/ttyAMA0 -S 115200 -P h4
and I can see communication on btmon - Check hciconfig and I can data being transmitted/received to/from the module
btmgmt --index 0
and callstatic-addr FF:22:33:44:55:FF
I getStatic address successfully set
and thenpower on
. All good.- I call
le-obb
and it shows the address as theLE Device Address: FF:22:33:44:55:FF
- I call
find -l
and I can see it finding BT devices around. - Checking
systemctl status bluetooth
andbluetoothd -v
it's all up and running and it's running the one from bluez 5.44
The issue:
The BD address is always 00:00:00:00:00
and this seems to have implications on tools like bluetoothctl
and others.
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.
- Invoking
hciconfig
always returns the address asBD Address: 00:00:00:00:00:00
- Invoking
bdaddr
I getManufacturer: internal use (65535). Device address: 00:00:00:00:00:00 (XEROX CORPORATION)
- Trying to change the address via bdaddr
bdaddr -i hci0 FF:22:33:44:55:FF
I get,Unsupported manufacturer
- trying to use
hciattach
to connect instead ofbtattach
and passing a bdaddr param, it connects but the address is still00
bluetoothctl show
orbluetoothctl list
returns empty.bluetoothctl show
givesNo default controller available
andshow 0
orshow hci0
givesController 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.