Problem with disconnects - can I improve this?

Hello, 

I have a device that I want to operate on the lower range of RSSI (but still around -80dBm  and have problems with disconnect. I would like to understand if there is any software change I can change to improve connection reliability. See attached source file for my BLE class.

Much appreciated!

Jens

FILE: 


s10_ble.cpp

  • Hi,

    jber1 said:
    - in the central I have  conn_params->timeout = 1600, do i need to set this in peripheral somehow as well?

    It should not be needed. It is the central that decide the connection parameters (including timeout), but it is possible for the peripheral to request a different set of paramteers, and then it depend on the implementation if the central use it or not. If y ou are not sure what is used, you could add some logging on connection parameter updates, or check with a sniffer.

    jber1 said:
    - A audio headset can stream music from the exact same position (not airpods). and yes they use FEC, but coded phy should do that as well?

    There are other factors that can play a part as well. Which Tx power is used for Audio? If it is say 10 dBm, thaty would increase range. And imporant, what hardware are you using? Is it a DK or a custom board? If it is a custom board, has it been reviewed and possibly tuned by Nordic? If it is not properly tuned, that can significantly affect the range.

  • I use two Raytec DK boards, so I assume that should be fine. I am not sure what TX audio is using since I have no control over that code.

    But regardless, the RSSI measurement is from the board, and my impression was that coded phy should handle RSSI of even -100dBm. I don't understand that part.

  • Hi,

    Yes, if perfectly tuned, the sensitivity is about -100 dBm (+/-, dependin on 125 or 500 kbps mode). But this is under ideal conditions, so if there are interference or non perfect matching you may not get as good results. Regarding the Raytec DK boards, I would assume that they have properly tuned those, but I do not have data on how well they perform, so it could be worth checking with them or comparing with nRF52840 DKs in the same environment if you have.

  • Hi, 

    I finally purchased two NRF52840DK boards, installed the central_hr_coded and peripheral_hr_coded. Went out to a open field and tried it. Unfortunately I do not come even close to the 100dBm (lowest i measured was -89dBm, so little better than the Raytec, but again, this was in an open field, not in a building.

    I have tried using ESP32 to compare using WIFI, and the signal robustness is much better. I assume this is because they can go up to +20dBm in signal strength making a huge difference.

    Any final ideas what we could do to improve things? Would you think an external antenna will make a significant impact, or would that only give a few + on the dBm compared to PCB antenna?

    Thank!

  • Did you measure the sensitivity or the range? How did you measure? As you write, if you are testing other devices with +20 dBm that will have a significant impact on range.

    I do not expect you will get a significant improvement with a different antenna (unless you were to use directional antennas for stationary devices)

Related