nRF52840 reconnection distance

I conducted a BLE test using two nRF52840 Dongles. Since I used Dongles, I based my code on the usbd example from the sample programs. During testing, the connection between the two Dongles dropped at a distance of approximately 50 meters, but reconnection was only possible at around 10 meters. This result was consistent across multiple tests. Additionally, changing PHY and TX Power did not make any difference.

Why is the reconnection distance significantly shorter than the disconnection distance?

  • Hi,

    First of all, the dongle isn't really designed for BLE performance. The DK isn't designed for that either, but might perform better on tests like this, due to eg. larger ground plane and its antenna size. So do not think of these ranges as a ground truth for nRFs or anything like that.

    Regarding being in connection and not, this happens on different channels. So a difference in RF noise might explain it. Is this potentially an area with a lot of RF noise? Are you seeing this with other samples as well? Could you show me sniffer trace of this?

    Regards,

    Elfving

  • First of all, thank you for your kind and prompt response!

    It seems that the issue is not related to noise, as the same phenomenon occurs in different environments. Additionally, I have tested with various types of antennas and even with a DK board, but the results remain unchanged. I am not sure what the problem is. If you can suggest other potential causes, I will test them.

    For reference, my current testing method involves sending debug messages during connection and disconnection, as well as periodically transmitting data to verify the communication.

    And you have requested a sniffer trace from me. Given the current situation, what kind of insights can I gain from it?

  • kimhh said:
    . Given the current situation, what kind of insights can I gain from it?

    Since you see this happening in multiple scenarios and eg amount of noise, maybe not much. Otherwise it could be interesting to see if there are certain messages that are not recieved or anything, causing it to disconnect.

    Though whether or not you see this with other samples (or anything default, as you say that what you are running is based on usbd sample) might be a better first test.

    Regards,

    Elfving

  • When testing with a different sample (blinky - pca10059 example) using the Dongle, I observed the same issue as in the previous test: the reconnection distance was shorter than the disconnection distance. Additionally, to rule out potential noise issues, I conducted the test in a shielded environment, but the problem persisted.

    Do you have any data on BLE disconnection and reconnection distance testing using a Dongle in any environments? If so, could you provide it?

    I will also try a sniffer trace.

    Best regards,

    kinhh

  • Hi kimhh,

    For what it is worth, I have the same experience.

    Very often I see this in the logs:

    <wrn> [MPSL Work] bt_conn: conn 0x20006b68 failed to establish. RF noise?
    <inf> [sysworkq] ap: Disconnected: BT_HCI_ERR_CONN_FAIL_TO_ESTAB (62)

    Sometimes I instead get an early disconnect during the initial exchange of connection parameters. At which stage does the connection establishment fail for you?

    I have not found the reason for this. But here are some things that hopefully are worth mentioning.

    To find a peripheral it is crucial that the Central can hear the peripheral on at least 1 of the 3 primary advertising channels.

    If Legacy Advertising is used the connection is also established using any of those 3 channels. If Extended Advertising is used, the connection is instead established using one of the 37 data channels.

    Once a connection is up, all communication happens on the 37 data channels. So, as Elfving mentioned, if you have a lot of noise on the 3 primary advertising channels it would explain the results we have observed to some extent. But I do not buy that explanation fully. And I guess you do not either, since you have even had the time to actually test this in a shielded environment.

    When you say that you have changed PHY and TX Power, how did you do that? Have you been able to verify that your advertising messages actually are using the PHY and TX Power you have configured? What kind of advertising are you using? 

    During establishment of a Connection some parameters are exchanged between the two nodes. What I have not figured out is how the retry mechanism looks like during the initialization phase. I suspect that some moment in this phase is very sensitive when establishing connections in environments with packet loss. But it is nothing more than a clever guess from my side. I have not had the time to really dig into this. 

Related