Cannot get device name in advertise data with pc-ble-driver and nrf52840 dongle

Hello,

I compiled pc-ble-driver from github and it when i debug heart_rate_collector in adv_report_parse function i only get 1, 10, 255 field_type and never  BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME or  BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME

If i launch nRF Connect for iPad i can see many names as peripheral.

heart_rate_monitor_sd_api_v6 works fine i can see the address rssi etc... but never the short or long name.

s140_nrf52_6.1.1_softdevice.hex is used

Thanks

  • Hello,

    Do you happen to know whether the advertising name is located in the advertising packet or the scan response data? 

    The reason I ask is that in the later pc-ble-driver the application (running on the PC) is not able to pick up scan response data, because of a change in the softdevice behavior. 

    What peripheral are you trying to scan for? ble_app_hrs from the normal SDK, or another example?

    When you get the fields that you mentioned, can you please try to copy and print the entire advertising message? You can use the nRF Sniffer to see what the advertising data you are scanning actually looks like. Perhaps you can find something else that you can filter on, such as the address. What does the advertising packet on the peripheral you are looking for look like?

    Best regards,

    Edvin

  • Hello,

    Thank you for your answer.

    I don't know if its in the advertising packet or scan response , i don't change the code for that.

    The peripheral i try to scan are some devices i use.(phone tablet, computer)

    I can see all of them with some other from my neighbors with their name with nrfConnect desktop. Its OK.

    If i use wireshark i can only see one well formatted name but its not my device, there is some 8 or 9 type but its 1 byte long or not readable.

    If i put a printf with type and length in the adv_report_parse/heart_rate_collector.c and run there is no 9 or 8 type (there is 1, 10, 255).

    What nrfConnect desktop do that pc-ble_driver don't ?

    Regards

  • 0
    17946 pts.
    in reply to Stephane_L

    So for all we know, none of the devices have the advertising name in the initial packet, then.

    nRF Connect for Desktop uses an older version of pc-ble-driver. I am not sure exactly what version that this change was introduced. 

    What you need to do:

    Stephane_L said:
    If i use wireshark i can only see one well formatted name but its not my device, there is some 8 or 9 type but its 1 byte long or not readable.

    It is not easy to give proper support if you don't know what you are looking for. Can you please try to capture a sniffer trace of one device that you want to scan, and see whether the name is in the first or last packet? Then upload the sniffer trace here. (save it as .pcapng). 

    Stephane_L said:
    If i put a printf with type and length in the adv_report_parse/heart_rate_collector.c and run there is no 9 or 8 type (there is 1, 10, 255).

    Can you please show me how you check this, and how it is printed?

    Best regards,

    Edvin

  • Sorry i made a mistake. it is not nrfConnect desktop who gives the correct name of the devices but another application with apple bluetooth framework. In fact in nrfConnect for desktop (Bluetooth low energy v3.0.0) there is no name displayed only <Unknown name>.

    The question is How apple in their framework get the name without connection ? I doubt i will get any answer here and their framework is not open source.

    So by only scanning , wireshark, ble_driver_pc and nrf connect does not get any name of my devices.

    I send you by PM the wireshark result (pcapng file) , the modification i made in adv_report_parse/heart_rate_collector.c and the result.

  • Hello,

    pc-ble-driver and nrfconnect for desktop does not give any names of any devices. Adding a printf in adv_report_parse/heart_rate_collector.c to see it confirm this like the wireshark result.
    With nrfconnect for iPad or with the apple framework i can see by scanning only, not connecting to the device, the names of the devices (somme are apple devices others are not).

    How can i get the names of these devices ?

    Thank you

    Regards

Related