data rate over BLE

Dear Sir or Madam,

I have a Nrf52840 device that needs to send 45k Bytes per second over BLE to another Nrf52840 central device.

I use the NUS UART profile from SDK 17.1.0 in the device to send 244 bytes every 10 milliseconds

To connect to the device, I use the UART central example from SDK 17.1.0 and transmit the data over USB CDC to a PC, I implemented the USB in the project.

All works well when the packet send rate is 50 milliseconds; however, when I attempt to increase the speed to 10 milliseconds per pack, I lose packages

Could you please advise what I can do in order to avoid losing packages?

Shimon

Parents
  • Hi

    You can make the advertiser advertise on the 2MBPS PHY by adding the following in the advertising_init() function:

    init.config.ble_adv_primary_phy      = BLE_GAP_PHY_2MBPS;

    However, the scanning and advertising PHYs shouldn't matter too much as long as there is a PHY update requested upon connection from either side that sets the PHY once connected to 2MBPS. This blog post from NovelBits does a great job of showing how you can maximize the throughput of your BLE application, so please check it out.

    Best regards,

    Simon

Reply
  • Hi

    You can make the advertiser advertise on the 2MBPS PHY by adding the following in the advertising_init() function:

    init.config.ble_adv_primary_phy      = BLE_GAP_PHY_2MBPS;

    However, the scanning and advertising PHYs shouldn't matter too much as long as there is a PHY update requested upon connection from either side that sets the PHY once connected to 2MBPS. This blog post from NovelBits does a great job of showing how you can maximize the throughput of your BLE application, so please check it out.

    Best regards,

    Simon

Children
No Data
Related