This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

hciconfig is not showing my nrf52840 dongle on my linux terminal

Hi,

I flashed my nrf52840 dongle by nrf Desktop connect app with ble-blinky hex file from nRF5_SDK_15.2.0_9412b96 SDK and I am able to connect to it from nrf connect ios app.

But unable to see the device on hciconfig.

Basing on this below link flashed the dongle with ble_connectivity_s140_usb_hci_pca10059.hex which I got from SDK instead of Zephyr BLE HCI_USB controller firmware as I didn't find its hex file.

devzone.nordicsemi.com/.../flashing-nrf52840-dongle-to-support-bluez

What should be done to make the dongle visible in hciconfig.. ??

Parents
  • nRF connect desktop uses serialized softdevice (Nordic BT stack) API to communicate with the connectivity chip, not HCI commands. In other words, ble_connectivity_s140_usb_hci_pca10059.hex will not work with the Bluez host. 

    Do you have a programmer to program the dongle, or do you need to upload the FW through USB DFU? 

  • In Case ID: 211988 https://devzone.nordicsemi.com/f/nordic-q-a/37237/flashing-nrf52840-dongle-to-support-bluez

    You mentioned to flash Zephyr BLE HCI_USB controller firmware on dongle.

    Could you please point me to the FW as I was unable to locate the hex file.

    You also mentioned to change the linker file. Please share the link of source code to change the FW start address.

    Our goal is to connect dongle to raspberry Pi and use this dongle to perform BT operations instead of onboard BT chip using BLUEZ library.

    Thankyou in advance.

  • Zephyr does not include any pre-compiled .hex files so the samples need to be built from source. I have built the example for you, but not verified if it works, see attached. 

    zephyr.hex

  • Thanks for the hex

    With this hex I am able to see the device but its mac id is wrong.

    santhosh@santhosh:~/Desktop/gw$ hciconfig
    hci0:    Type: BR/EDR  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 27:7  SCO MTU: 0:0
        DOWN
        RX bytes:215 acl:0 sco:0 events:16 errors:0
        TX bytes:72 acl:0 sco:0 commands:16 errors:0

  • I belive there is a HCI command to set the address, please refer to the Zephyr documentation for more details. 

  • I am trying to change the address with bdaddr but it is throwing the following error

    pi@raspberrypi:~/bluez-5.50/tools $ sudo ./bdaddr
    Can't read version info for hci0: Network is down (100)

    kernel version

    pi@raspberrypi:~/bluez-5.50/tools $ uname -a
    Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

    Bluetooth status

    pi@raspberrypi:~/bluez-5.50/tools $ sudo service bluetooth status
    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled)
       Active: active (running) since Wed 2019-01-30 08:17:09 UTC; 51min ago
         Docs: man:bluetoothd(8)
     Main PID: 862 (bluetoothd)
       Status: "Running"
       CGroup: /system.slice/bluetooth.service
               └─862 /usr/local/libexec/bluetooth/bluetoothd

    Jan 30 08:17:09 raspberrypi systemd[1]: Started Bluetooth service.
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Starting SDP server
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Bluetooth management interface 1.14 initialized
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Failed to open crypto
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: No Bluetooth address for index 0
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Failed to set privacy: Rejected (0x0b)
    Jan 30 08:17:12 raspberrypi bluetoothd[862]: Endpoint registered: sender=:1.16 path=/MediaEndpoint/A2DPSource
    Jan 30 08:17:12 raspberrypi bluetoothd[862]: Endpoint registered: sender=:1.16 path=/MediaEndpoint/A2DPSink
    Jan 30 08:17:13 raspberrypi bluetoothd[862]: Endpoint unregistered: sender=:1.16 path=/MediaEndpoint/A2DPSource
    Jan 30 08:17:13 raspberrypi bluetoothd[862]: Endpoint unregistered: sender=:1.16 path=/MediaEndpoint/A2DPSink

    Can you suggest me how to change the BD address and make it work on my raspberrypi

Reply
  • I am trying to change the address with bdaddr but it is throwing the following error

    pi@raspberrypi:~/bluez-5.50/tools $ sudo ./bdaddr
    Can't read version info for hci0: Network is down (100)

    kernel version

    pi@raspberrypi:~/bluez-5.50/tools $ uname -a
    Linux raspberrypi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

    Bluetooth status

    pi@raspberrypi:~/bluez-5.50/tools $ sudo service bluetooth status
    ● bluetooth.service - Bluetooth service
       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled)
       Active: active (running) since Wed 2019-01-30 08:17:09 UTC; 51min ago
         Docs: man:bluetoothd(8)
     Main PID: 862 (bluetoothd)
       Status: "Running"
       CGroup: /system.slice/bluetooth.service
               └─862 /usr/local/libexec/bluetooth/bluetoothd

    Jan 30 08:17:09 raspberrypi systemd[1]: Started Bluetooth service.
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Starting SDP server
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Bluetooth management interface 1.14 initialized
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Failed to open crypto
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: No Bluetooth address for index 0
    Jan 30 08:17:09 raspberrypi bluetoothd[862]: Failed to set privacy: Rejected (0x0b)
    Jan 30 08:17:12 raspberrypi bluetoothd[862]: Endpoint registered: sender=:1.16 path=/MediaEndpoint/A2DPSource
    Jan 30 08:17:12 raspberrypi bluetoothd[862]: Endpoint registered: sender=:1.16 path=/MediaEndpoint/A2DPSink
    Jan 30 08:17:13 raspberrypi bluetoothd[862]: Endpoint unregistered: sender=:1.16 path=/MediaEndpoint/A2DPSource
    Jan 30 08:17:13 raspberrypi bluetoothd[862]: Endpoint unregistered: sender=:1.16 path=/MediaEndpoint/A2DPSink

    Can you suggest me how to change the BD address and make it work on my raspberrypi

Children
Related