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

BLE Uart Example Data Link Layer

Dear Nordic Support,

does the BLE Uart example (SKD 14.2) inlcude any data link layer machnisms, for example error detection & correction, collision avoidance?

I implemented an echo mechnism for a type approval software. The BLE peripheral device sends an echo request to the central device, which should respond with an echo.

Sometimes (e.g. in 18 of ~ 5400 cases ) the central device does receive and echo request, but the peripheral device does not receive an echo.

I am using the soft device 132.

Kind regards,

Moritz Blumenthal

  • Hi,

    To understand where the data is lost, you will likely need to create an on-air sniffer log (for instance using nRF sniffer).

    All data in BLE is reliable transfer, meaning that data will be re transmitted until success, before any new data is sent. This is handled by the link layer.

    In this case I can only assume the data is "lost" in the upper layers, for instance you do not write anything about the throughput here, it may be that you overrun the buffers somehow. If you rely on much data both ways, it is typically a good idea to set slave latency to 0 or send dummy packets from the peripheral that indirectly ensure to "fetch" data from the central.

    Does it also happen if you use slave latency = 0 and for instance send data with some delay from the peripheral?

     

  • Hi Kenneth,

    thanks for your information. The slave latency is defined as 0 in main.c An echo request is send once a second and some addition data is send each 500 ms.

    I reviewd the uart interface in my application an it looks like the data was lost there. So far it is running without any loss.

Related