Ble_Central connect to periphral spend a long time

Dear Nordic

I use nRF5 SDK BLE_Central / uart to connect our custom peripherals by address, and I found that it seem need to 4~5 seconds to finish connecting 

Here is the log. Is there any way to improve the connection speed?

Thanks

 [00:00:05.637,329] <debug> ble_scan: Connecting
 
 [00:00:05.637,329] <debug> ble_scan: Connection status: 0
 
 [00:00:06.145,446] <debug> nrf_ble_gatt: Updating data length to 251 on connection 0x0.
 
 [00:00:06.145,507] <info> app: Connecting to target E11xxxxxxx
 
 [00:00:06.145,568] <debug> nrf_ble_gq: Registering connection handle: 0x0000
 
 [00:00:06.145,629] <debug> app: conn set to 4dBm successfully
 
 [00:00:06.326,904] <debug> nrf_ble_gatt: Data length updated to 27 on connection 0x0.
 
 [00:00:06.326,904] <debug> nrf_ble_gatt: max_rx_octets: 27
 
 [00:00:06.326,904] <debug> nrf_ble_gatt: max_tx_octets: 27
 
 [00:00:06.326,904] <debug> nrf_ble_gatt: max_rx_time: 328
 
 [00:00:06.326,965] <debug> nrf_ble_gatt: max_tx_time: 328
 
 [00:00:07.345,642] <debug> app: Requesting to update ATT MTU to 247 bytes on connection 0x0.
 
 [00:00:07.586,975] <debug> nrf_ble_gatt: ATT MTU updated to 247 bytes on connection 0x0 (response).
 
 [00:00:07.586,975] <info> app: ATT MTU exchange completed.
 
 [00:00:07.586,975] <info> app: Ble NUS max data length set to 0xF4(244)
 
 [00:00:07.586,975] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:07.845,825] <debug> ble_db_disc: Starting discovery of service with UUID 0xAE30 on connection handle 0x0.
 
 [00:00:07.845,825] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:07.845,825] <debug> nrf_ble_gq: GATTC Primary Services Discovery Request
 
 [00:00:07.845,886] <debug> nrf_ble_gq: SD GATT procedure (2) succeeded on connection handle: 0.
 
 [00:00:08.846,984] <debug> ble_db_disc: Found service UUID 0xAE30.
 
 [00:00:08.846,984] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:08.846,984] <debug> nrf_ble_gq: GATTC Characteristic Discovery Request
 
 [00:00:08.847,045] <debug> nrf_ble_gq: SD GATT procedure (3) succeeded on connection handle: 0.
 
 [00:00:08.847,045] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:08.967,773] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:08.967,773] <debug> nrf_ble_gq: GATTC Characteristic Descriptor Request
 
 [00:00:08.967,834] <debug> nrf_ble_gq: SD GATT procedure (4) succeeded on connection handle: 0.
 
 [00:00:08.967,834] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.086,975] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:09.086,975] <debug> nrf_ble_gq: GATTC Characteristic Descriptor Request
 
 [00:00:09.087,036] <debug> nrf_ble_gq: SD GATT procedure (4) succeeded on connection handle: 0.
 
 [00:00:09.087,036] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.206,970] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:09.207,031] <debug> nrf_ble_gq: GATTC Characteristic Descriptor Request
 
 [00:00:09.207,031] <debug> nrf_ble_gq: SD GATT procedure (4) succeeded on connection handle: 0.
 
 [00:00:09.207,092] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.326,965] <debug> ble_db_disc: Discovery of service with UUID 0xAE30 completed with success on connection handle 0x0.
 
 [00:00:09.327,026] <info> app: Discovery complete.
 
 [00:00:09.327,026] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:09.327,026] <debug> nrf_ble_gq: GATTC Write Request
 
 [00:00:09.327,087] <debug> nrf_ble_gq: SD GATT procedure (1) succeeded on connection handle: 0.
 
 [00:00:09.327,087] <debug> nrf_ble_gq: Adding item to the request queue
 
 [00:00:09.327,148] <debug> nrf_ble_gq: GATTC Write Request
 
 [00:00:09.327,148] <debug> nrf_ble_gq: SD is currently busy. The GATT request procedure will be attempted                       again later.
 
 [00:00:09.327,148] <debug> nrf_ble_gq: Pointer to allocated memory block: 0x20009798.
 
 [00:00:09.327,148] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.327,209] <debug> nrf_ble_gq: GATTC Write Request
 
 [00:00:09.327,209] <debug> nrf_ble_gq: SD is currently busy. The GATT request procedure will be attempted                           again later.
 
 [00:00:09.327,209] <info> app: Connected to device with Nordic UART Service.
 
 [00:00:09.327,514] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.327,514] <debug> nrf_ble_gq: GATTC Write Request
 
 [00:00:09.327,514] <debug> nrf_ble_gq: SD is currently busy. The GATT request procedure will be attempted                           again later.
 
 [00:00:09.327,575] <debug> nrf_ble_gq: Processing the request queue...
 
 [00:00:09.327,575] <debug> nrf_ble_gq: GATTC Write Request
 
 [00:00:09.327,575] <debug> nrf_ble_gq: Pointer to freed memory block: 0x20009798.
 
 [00:00:09.327,575] <debug> nrf_ble_gq: SD GATT procedure (1) succeeded on connection handle: 0.
 
 [00:00:09.327,575] <debug> nrf_ble_gq: Processing the request queue...

Parents
  • Hi Irving.Li,

    Does the problem happen when the central connect with a device running the ble_app_uart example?

    Another thing to note is the environment you are testing in. Are there a lot of BLE devices, advertiser or scanner? Advertisers would cause packet losses due to collision, and active scanner would slow down connection establishment if your peripherals advertise with scan responses.

    Hieu

Reply
  • Hi Irving.Li,

    Does the problem happen when the central connect with a device running the ble_app_uart example?

    Another thing to note is the environment you are testing in. Are there a lot of BLE devices, advertiser or scanner? Advertisers would cause packet losses due to collision, and active scanner would slow down connection establishment if your peripherals advertise with scan responses.

    Hieu

Children
No Data
Related