BLE lost packets in high througput app
Hello!
I am having trouble with lost BLE packets in my system:
- TX: STM32WB15CC
- RX: nRF52840
I have tried so many different things to patch this, but I continue struggleling. For my app, I get a 247B frame ready to be sent every 3ms, so I need a high througput for BLE. However, theoretically I should be possible to get around 10m or more without losses, whereas I get roughly to 4m.
There seem to be two main problems:
- The first one takes place in the link and the environment. As packets do not reach their destination succesfully, I suspect there has to be interferences or some kind of distorion that gets the packets lost in the air.
- The second one is around the BLE queues in the transmitter. I believe there could be overflow in the buffers or some timeout running out when failing to retransmit the packets that are lost in the link.
However, as I do not have such a great experience, I do not know how to analyse what is exactly happening with the queues and how much memory are they able to store without losses. Futhermore, I know there is a queue implemented in my main system that is able to store 22 BLE packets in case there is a need of retransmission. But, is this the only buffer that works in the STM32? I am aware of another queue related to the secondary cortex, but I do not know how does it work. Could someone help me with it?
At the same time, this system was provided to me by another developer, so I do not quite control everything about it, as I already demonstrated.
This is the whole summary of the project, but there are lots of details that I would be so happy to share if they were helpful for solving the packet losses problems.
Thank you in advance,
Álvaro Arnáiz.