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.

Reply
  • 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.

Children
Related