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

ble_uart demo throughput is very slow

Hello Nordic,

I am using the BL600 third-party module and SDK 10. I was able to modify and compile project with GCC at examples\ble_peripheral\ble_app_uart\ for s110. It works nice, but the transfer speed is very low (around 500 Bytes/s). When I send a big chunk of data via UART, the module sometimes just hangs up. Definitely this example is not suitable for production. I have read all topics with descriptions about increasing the speed, but w/o success. Maybe Nordic can provide some good example for handling big amounts of data via BLE UART? Maybe with results of transfer speed for some evaluation board...

Parents
  • Hello. I added this lines to the event handler:

    case BLE_GAP_EVT_CONNECTED:
                err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
                APP_ERROR_CHECK(err_code);
                m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
                // Check connection interval
                printf("Max interval %d\n",  p_ble_evt->evt.gap_evt.params.connected.conn_params.max_conn_interval);
                printf("Min interval %d\n",  p_ble_evt->evt.gap_evt.params.connected.conn_params.min_conn_interval);
    

    And I got 39 for both. It gives me around 500 bytes per second. Maybe I can decrease this interval in the Android side? How should I modify nRF UART app?

    Also I have modifed sending part (APP_UART_DATA_READY event) from UART to BLE according to your advice, but this did not improve speed, but the FW stability was better.

Reply
  • Hello. I added this lines to the event handler:

    case BLE_GAP_EVT_CONNECTED:
                err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
                APP_ERROR_CHECK(err_code);
                m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
                // Check connection interval
                printf("Max interval %d\n",  p_ble_evt->evt.gap_evt.params.connected.conn_params.max_conn_interval);
                printf("Min interval %d\n",  p_ble_evt->evt.gap_evt.params.connected.conn_params.min_conn_interval);
    

    And I got 39 for both. It gives me around 500 bytes per second. Maybe I can decrease this interval in the Android side? How should I modify nRF UART app?

    Also I have modifed sending part (APP_UART_DATA_READY event) from UART to BLE according to your advice, but this did not improve speed, but the FW stability was better.

Children
No Data
Related