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

Loss HVN events when data rate is around 1kbps

I created a BLE central device using nrf51422 chip base on S120, it connects to a peripheral device which can send around 12k bytes in 10 seconds. My device always received around 500 (HVN events) instead of 600 (12000 bytes/ 20 bytes). I already made the min and max connect interval to 7. It looks like the less connect interval the more packages I can get. #define MIN_CONNECTION_INTERVAL 7 #define MAX_CONNECTION_INTERVAL 7 I can't make it less because it will cause connection failed. What's else can I do to get all packets.

In fact, the bit-rate is much less the capacity of 51822, is right?

Teddy

Parents
  • The minimum connection interval is 7.5 ms.

    The S120 is capable of receiving one notification of 20 bytes in each connection interval.

    So it is capable of receiving 133 notifications of 20 bytes per second.

    Why you are only receiving 50 is difficult to answer, it would however match with a connection interval of 20 ms, not 7.5 ms. Are you sure you actually connection interval is 7.5 ms? You can check the connection interval with sniffer, or you can check it when you get the BLE_GAP_EVT_CONNECTED event, p_ble_evt->evt.gap_evt.params.connected.conn_params.min_conn_interval or p_ble_evt->evt.gap_evt.params.connected.conn_params.max_conn_interval. These will be equal.

Reply
  • The minimum connection interval is 7.5 ms.

    The S120 is capable of receiving one notification of 20 bytes in each connection interval.

    So it is capable of receiving 133 notifications of 20 bytes per second.

    Why you are only receiving 50 is difficult to answer, it would however match with a connection interval of 20 ms, not 7.5 ms. Are you sure you actually connection interval is 7.5 ms? You can check the connection interval with sniffer, or you can check it when you get the BLE_GAP_EVT_CONNECTED event, p_ble_evt->evt.gap_evt.params.connected.conn_params.min_conn_interval or p_ble_evt->evt.gap_evt.params.connected.conn_params.max_conn_interval. These will be equal.

Children
Related