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

Slow DFU speed

Hello,

yesterday I got a Thingy:52 device at an event held in Frankfurt/Germany. At home I've tested the DFU for the latest firmware and observed that the image was transfered at a very low speed. The image was transfered with 0.4 kByte/second. I've the BLE packets logged at the smartphone and found the following:

  1. In the LE Connection Complete Event I've seen that the connection interval was set to 48.75ms.
  2. Later the Thingy (peripherial) sends the Connection Parameter Update Request with connection interval set to 15ms-30ms. The smartphone (central) accepts this request by sending Connection Parameter Update Response.
  3. After that the complete firmware will be transmitted packet by packet in the connection interval. But only one 20 byte packet in one connection interval. And the interval is 40-50ms in reality.

That results in 45ms/20bytes or 0.4 kByte/second transfer speed. Why do I have so low transfer speed?

The smartphone is a Samsung Galaxy S4 mini (GT-I9195).

Thanks in advance

Parents
  • Hi Superkurt,

    It's odd that the speed was only 0.4kB/s. We need to have a look at the sniffer trace to see how many packet was sent on every connection event/interval. Usually we see 4 to 6 packets. If the connection interval is set at 30ms, the throughput should be around 2.6kB/s.

    Note that not all the time we have full control of what configuration the phone should use. The app has limited access to BLE stack on the phone.

    I'm seeing here throughput of 4kB/s with my Galaxy S8.

  • The relatively low through put on the S8 due to we don't implement Bluetooth 4.2 or 5.0 on the DFU bootloader as we want it to be compatible with older device. Usually the max through put on Bluetooth 4.1 is about 16kB/s. But you won't be able to get to that value because the phone doesn't want to give the full time domain for BLE also it would prefer to save the power consumption.

    If you want to test thoughput, I would suggest to use our throughput test example in the SDK.

Reply
  • The relatively low through put on the S8 due to we don't implement Bluetooth 4.2 or 5.0 on the DFU bootloader as we want it to be compatible with older device. Usually the max through put on Bluetooth 4.1 is about 16kB/s. But you won't be able to get to that value because the phone doesn't want to give the full time domain for BLE also it would prefer to save the power consumption.

    If you want to test thoughput, I would suggest to use our throughput test example in the SDK.

Children
No Data
Related