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

Transfer binary data over BLE

Hello all,

I am trying to write a program that that updates the firmware on an external chip from a smartphone over BLE. Currently my approach is working but quite slow and I’m wondering if there is a better approach.

Essentially, I’ve created a multi-byte writeable tag and simply doing basic write to that element. I have a temporary buffer to hold incoming data as it is being flashed and my phone/computer “updater” monitors the state of the buffer for flow control (sending more as the data is transferred to the chip being updated). Essentially a FIFO scheme. This seems to take well over a minute to send ~10k which seems extremely slow. Is that normal? Is there a better, well-known way of solving this problem? Essentially I just need to stream binary data over BLE as quickly as possible...

I looked into the OTS example but TBH I’m not confident I could create the “sender” side of that protocol. I would much prefer to stay at the upper layers of the BLE stack. Is there a better example to look at?

I’ve tried to do some searching around this forum and found people talking about the UART example but that feels like it would be even slower since it is only sending one byte at a time.

Sorry if this has been discussed elsewhere :)

Thanks,

Eamon

Related