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

Throughput (Speed) Test

Hello Sirs,

We implemented a joint bandwidth test (or speed test) for a radio channel by transmitting notifications.

Parameters set in SDK config:

  • #define NRF_SDH_BLE_GATT_MAX_MTU_SIZE  247;
  • #define NRF_SDH_BLE_GAP_DATA_LENGTH      251;
  • #define NRF_SDH_BLE_GAP_EVENT_LENGTH   320;

Parameters of the radio channel:

  • PHY 1M;
  • Connection interval 50 ms (40 units);
  • Transmiter power 0 dbm;

After the connection is established and the exchange of parameters, the host allows the transfer of notification characteristics of the test characteristic(size 244 bytes). Next, the device in the loop begins to send data.

According to the data plotted. I attach his part below.

The average speed was 73 kB / s. But the range is from 35 kB / s to 80 kB / s.

If I understand correctly, this is due to the peculiarity of the protocol. namely, transmission within the connection interval to the first error. As a result, during one connection interval, data can be transmitted, for example, 50 ms, and in the next only 10.

The question is: is it possible to somehow stabilize the data flow?

Thanks, 

Max

Parents
  • s a result, during one connection interval, data can be transmitted, for example, 50 ms, and in the next only 10.

    That is in essence the reason yes, and also why I recommend to always use the shortest possible connection interval.

  • Thanks, about the intervals and the length of the packets, I understood.

    What about other influencing factors:
    Power level set upon connection

    case BLE_GAP_EVT_CONNECTED:
        NRF_LOG_INFO("Connected");
        m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
        err_code = nrf_ble_qwr_conn_handle_assign(&m_qwr, m_conn_handle);
        APP_ERROR_CHECK(err_code);
    
        /*-40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +2dBm, +3dBm, +4dBm, +5dBm, +6dBm, +7dBm and +8dBm.*/
        uint32_t err_code = sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_CONN, p_ble_evt->evt.common_evt.conn_handle, 4); 
    	APP_ERROR_CHECK(err_code); 
    
    	NotifyEvent.flags.fConnect = true;
        xTaskNotify(hDevCtrl, NotifyEvent.Value, eSetValueWithOverwrite);
    break;

    Will it be fixed (both for a distance of 0.1m and 10m) or will the chip reduce the signal power at a short range?

  • It's fixed yes, as configured by sd_ble_gap_tx_power_set().

  • With the power level also understood, but for general development: how the receiver will behave (nrf52840) with a high transmitter signal power (+8 dbm) and a small distance:
    1. will the signal exceed the permissible level and is not always perceived correctly?
    2. Will the automatic tuning of the amplifier work and the signal will be "partially suppressed"?

  • Never heard this to be an issue, there is just so much loss through air because the antenna radiate freely in all directions that it's impossible to saturate the input in any way.

    Best regards,
    Kenneth

  • Ok, thanks.

    I currently have no more questions)

Reply Children
Related