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

Best way to send larger chunks of data through BLE UART?

Right now i have based myself on the BLE UART example where it is UART over BLE.

So naturally I use ble_nus_string_send to send data. After some digging I saw that this takes max 20 bytes of data. Also there seems to be a fixed queue size, so anything after a filled queue will be disregarded with an error returned from this function. The qeue size by the looks of it is 6, right?

So, how do I send bigger chunks (all the data is one big chunk which is treated as one entity)? First I tried to just retry if ble_nus_string_send returned an error with a nrf_delay_ms(20) in a loop with 100 retries. It does work, but it can't be an elegant solution. Also on the 2nd chunk of data sent over, it seems to struggle a lot more when sent over. It comes in small portions of 3 chunks over time. I am testing on android with the NRF UART app.

Thanks!

Parents
  • On my application, I organize my data in a way that it has a structured way in each 20 bytes chunk. Then, I have a state machine, which just en-queue packets until the buffer is full. After that it just keeps retrying until all my data is sent.

    Is something like this:

    -> Init (send a "data init" packet)
    -> Data loop (keep sending data until the end)
    -> End (send a "data end" packet)

    On the receiving side, I receive everything in order, and just have to reorganize it and parse.

Reply
  • On my application, I organize my data in a way that it has a structured way in each 20 bytes chunk. Then, I have a state machine, which just en-queue packets until the buffer is full. After that it just keeps retrying until all my data is sent.

    Is something like this:

    -> Init (send a "data init" packet)
    -> Data loop (keep sending data until the end)
    -> End (send a "data end" packet)

    On the receiving side, I receive everything in order, and just have to reorganize it and parse.

Children
Related