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

nRF52832 BLE UART transfer rate limit?

I want to transfer data using UART to BLE by Baud Rate 460800 up to(using nRF52832). I need to send a file, its size is 100MBytes However, the use of examples(14.0vesion ble_central / ble_peripheral) to modify the test, but the transfer rate of only 1.5KByte / ps Is there any way to do 10KBytes / ps up ?

How can I do it successly?

Thank you.

Parents
  • there any way to do 10KBytes / ps up ?

    Depends on the other party, unfortunately.

    Android 5.0+ can request a higher connection priority, this will use a faster interval time (about 15ms IIRC). I got about 4.5 kByte/sec throughput in my app.

    Windows 10 can go even higher - but that depends on the BT hardware. One of my BT4.0 USB sticks only does the 4.5 kB/s like Android, some others go as high as ~12KByte/sec. Note that Windows 10 Creatrors and newer would accept even faster connection times - but you need to request them from your device.

    I don't use IOS here, but you seem to be limited to 50ms interval time here. That would give you only about 1.5 kB/sec IIRC.

    The only workaround that I am aware of is implementing the HID service on the BTLE device. Presense of this service makes IOS use a faster connection interval, but that has side effects: IOS will now actively try connect to your device as long as there is pairing/bonding information present.

  • Btw. default connection interval in iOS (at least till iOS9) used to be 30ms while Android uses 48.75ms. Yes, the only way how to go lower is to pretend being BLE HID Service which should allow going down to 10-20ms range (at least on iOS).

Reply Children
No Data
Related