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

pc-ble-driver no scan response

I want to incoorperate the pc-ble-driver into a product, using the PCA10059 USB-dongle. My design requires me to receive advertising scan responses. I successfully receive advertising events and I see both, scan resquests and scan responses with a sniffer, but I never receive any scan responses. According to the debug messages, printed by the pc-ble-driver I suspect that scan responses are never send from the PCA10059 to the connected PC.

I expect the `type.scan_response` field in the received `ble_gap_evt_adv_report_t` event to be set once in a while.

Any idea, why I do not receive any scan responses? Do I have to configure the reception? A'm I'm using the wrong connectivity firmware?

I'm using the connectivity_4.1.1_usb_with_s140_6.1.1 with an PCA10059 1.0.0 on OS/X 10.14.5.

See attached, the sniff and the logfile.

best regards,

Torsten

no_scan_response.pcapngno_scan_response.log

  • Well, that makes sense. Unfortunatelly, this doesn't solve my problem, as I need advertising response and BLE 5.0 features :-(

  • Hello,

    I Get it.

    Advertising data and scanresponse data are send separately.

    They both put in relationship directly by nrf connect on mobile and on pc app by using the mac adress. (that's why thez are displayed quickly)

    In pc-ble-driver-py it is not the case. Advertising datas ans scan response datas are receive separatly.

    the srdata are received when the adv_type calue is None

        def on_gap_evt_adv_report(self, ble_driver, conn_handle, peer_addr, rssi, adv_type, adv_data):
            dev_name_list = None
    
            if adv_type is None :
                print 'scanResponse'
                print (adv_data.records)

    This is the result of the print of oine of my device.

    {<Types.manufacturer_specific_data: 255>: [255, 255, DATAS]}

    In the end you have to link these data with your device by using the peer_addr

    I hope this will help you to solve your problem

    Best Regards

    Geoffrey

  • I expected to receive Advertising data and Scan Response data seperatly. And I'm able to receive Scan Response data, _but_: It takes up to minutes to receive a single Scan Response. I think this is really an issue with the SD V6 API, which does not allow for larger latency (which is introduced by using the API over USB).

    The reason, why you see Scan Response data might be, because you are using an earlier connectivity firmware, which does not have that problem. (Which is unfortunatelly not an option for me, as I'm require some 5.0 features).

    We've decided yesterday to not use the pc-ble-driver in our product. Either we will write something on our own, or see, if other vendory provide something similar.

  • will this bug be resolved, is currently worked on this?

  • Hi,

    I also have the problems with receiving of scan responses on API V6 S140. in wireshark I can see many of scan requests and scan responses but I can't see them in on_adv_report()  (nordic_uart_client example).

    But when I use API V5 S132 - all is ok with getting scan responses.

    I guess it might be because of this request when using API V6:

    #if NRF_SD_BLE_API >= 6
    	else {
    		err_code = sd_ble_gap_scan_start(m_adapter, NULL, &m_adv_report_buffer);
    		if (err_code != NRF_SUCCESS)
    		{
    			printf("Scan start failed with error code: %d\n", err_code);
    			fflush(stdout);
    		}
    		else
    		{
    			printf("Scan started\n");
    			fflush(stdout);
    		}
    	}
    #endif

    It is a chunk from here https://github.com/NordicSemiconductor/pc-ble-driver/blob/master/examples/nordic_uart_client/main.c

    More: I am using nrf52840 dongle and I wonder why there is "connectivity_4.1.4_usb_with_s132_5.1.0.hex" which means it uses softdevice S132. But as of this table https://infocenter.nordicsemi.com/topic/ug_gsg_ses/UG/gsg/softdevices.html S132 is not for nrf52840. And more, nrf52832 doesn't have USB.  

    May be some one can give answers.

Related