Unable to Receive Advertisements from Multiple Beacons

Setup: 

1 NRF21540dk (Receiver)
Multiple custom nRF52840-based Beacons
nRF Connect SDK V2.3.0 + VSCode 
Latest Version of Windows 11 

Problem: 

I'm working on a project which has multiple Beacons that send out (non-connectable) Bluetooth advertisements (both extended and legacy) containing various types of data. There is a receiver, which scans for the advertisements, and then does operations with the data from these advertisements. The program does not use any scanning filters – the first 4 bytes of the advertisement data are used to identify messages from our Beacons. Valid advertisements from our Beacons are handled by the Receiver on a first-come first-served basis (I.e. we are not using work queues or threads), and advertisements that do not come from one of our devices are ignored. Ideally, the Receiver should be able to see and handle the advertisements from all of the Beacons, which brings me to the issue. 

The main problem is that when scanning for advertisements, the Receiver tends to only "see" advertisements from one of the Beacons, and rarely "sees" advertisements from the others. For example, If I were to print every advertisement from the Beacons that the Receiver "sees" when scanning along with the corresponding Beacon's MAC address, advertisements from one MAC address (Beacon) would make up at least 95% of the ones printed. 

It's almost like the Receiver "latches on" to that one Beacon, or that one Beacon "dominates" all the others. I don't think it's an issue of signal strength or anything of that nature, as tx power is constant for all devices, and the "dominant" Beacon can be 10+ ft away from the receiver, while the other "ignored" Beacons are right next to it.

What could potentially be the cause(s) of this? Are there any things that can be done to remedy this? Is there anything I should try, or are there any best practices to make sure to follow? Thanks.

Parents
  • I took a look at the RSSI values for my Beacon's advertisements. The "dominant" Beacon's advertisements had RSSI values around -40 to -30 dB on average, whereas another Beacon that I tested had values around -80 to -70 dB, on average. This would at least partially explain my issue. Regardless, I'd still appreciate some help.

  • Hi TheoM,

    It is a very strange observation. We don't usually see this.

    I would like to ask for some details:

    • Are all of the beacons identical? In details:
      • Are they running the same application?
      • Are they configured to advertise at the same intervals?
    • Without processing of the 4-byte advertising data, and just printing out any advertisement packet you receive, do you observe the same problem?
    • If you turn off the "dominant" beacon, does the issue disappear, or does it happen with another beacon instead?

    By the way, it is not related to this issue in particular, but please know that there is a problem with the nRF21540 FEM where TX Power is lowered when in a connection. This issue affects NCS v2.3.0. Therefore, please consider using later version of NCS for your application with the nRF21540.

    Hieu

  • In the initial scenario, we had 2 beacons. One was on our custom board using a custom build config based on a bl654-dvk, which we were having the issues with. The other "dominant" beacon was running on a 21540dk dev board. Our receiver was another 21540-dk. Otherwise, in terms of software the Beacons were identical in every way (i.e. same application, same advertising intervals, etc.)

    The issue persisted even without processing the 4-byte part of the message, and we had trouble receiving messages from the problematic Beacon, even when the "dominant" Beacon was turned off. 

    That led me to believe that it's an issue with the TX power, as the (admittedly somewhat useless) RSSI values for the packets indicated a very strong signal from the "dominant" 21540dk, and a weak signal from the custom board based Beacons. This could possibly be caused by somehow incorrectly setting up the bl654-dk configuration, but we're not sure. 

Reply
  • In the initial scenario, we had 2 beacons. One was on our custom board using a custom build config based on a bl654-dvk, which we were having the issues with. The other "dominant" beacon was running on a 21540dk dev board. Our receiver was another 21540-dk. Otherwise, in terms of software the Beacons were identical in every way (i.e. same application, same advertising intervals, etc.)

    The issue persisted even without processing the 4-byte part of the message, and we had trouble receiving messages from the problematic Beacon, even when the "dominant" Beacon was turned off. 

    That led me to believe that it's an issue with the TX power, as the (admittedly somewhat useless) RSSI values for the packets indicated a very strong signal from the "dominant" 21540dk, and a weak signal from the custom board based Beacons. This could possibly be caused by somehow incorrectly setting up the bl654-dk configuration, but we're not sure. 

Children
Related