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

There are more than one "peripheral" and more than one central. How can we eliminate the signal confusion?

First I register the address of the central device to the peripheral device. When I work with a single peripheral device and a single central device, I can send commands from the central device to the peripheral device. But when I have more than one peripheral device in the vicinity, I can not send commands to the peripheral device registered from the central device. I think the signals are mixed up. Because, as I said at first, I can send peripheral commands to the central device when the peripheral devices are turned off and there is only one peripheral device. I used connectable undirected advertising. Because;

  • Peripheral device should be scannable and connectable
  • I send commands both by phone and by keyfob.

That's why advertising packet type should not be directed advertising as I know. When I scan by phone, I can see and select peripheral devices. But with KeyFob I do not have such a chance.If KeyFob is used, I think that KeyFob's head is mixed because I can not make a selection if there are more than one peripheral.

I read this link: devzone.nordicsemi.com/.../

So, do you have any suggestions to scan and connect to the peripheral which I want with KeyFob?


I share sniffer pictures for information.

image description

Parents
  • FormerMember
    0 FormerMember

    If there are multiple devices with the same address, I would think that there could be some problems, which device is the correct receiver of a given packet..? Instead of filtering devices based on address, I would recommend to filer on for example device name or UUID.

  • If there is a lot of advertisers around, all advertising extremely fast, they might end up transmitting exactly at the same time as a connect request is being sent to another device. That will corrupt the request, and manifest itself as a BLE_GAP_EVT_CONNECTED on the central, no change in the peripheral, followed by a BLE_GAP_EVT_DISCONNECTED with reason 0x3E (Connection failed to be established) on the central. If this is what you see, you can choose to retry connections or try to reduce/seclude the noise. This can be done by limiting the advertisements to certain channels for your devices (e.g. pick one randomly at startup), or by increasing the advertising interval slightly.

Reply
  • If there is a lot of advertisers around, all advertising extremely fast, they might end up transmitting exactly at the same time as a connect request is being sent to another device. That will corrupt the request, and manifest itself as a BLE_GAP_EVT_CONNECTED on the central, no change in the peripheral, followed by a BLE_GAP_EVT_DISCONNECTED with reason 0x3E (Connection failed to be established) on the central. If this is what you see, you can choose to retry connections or try to reduce/seclude the noise. This can be done by limiting the advertisements to certain channels for your devices (e.g. pick one randomly at startup), or by increasing the advertising interval slightly.

Children
No Data
Related