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

Is it possible to atomically change GAP Address and Advertising?

Hi,

is it possible to atomically change both the GAP address and the advertising message in one step? I want to broadcast two different advertising messages with each of them broadcasting a different GAP address. If this is possible I could maybe accept different Clients while knowing the reason each of them connected, directly as the connection is established.

or do you have any other ideas to find the connection reason without doing some kind of custom handshake?

Marius

Parents
  • I was running multiplexed broadcasts by switching the adv. data and I was also switching GAP address, it works well. GAP Central devices around were seeing the device as virtually two broadcasters and also connection requests were coming correctly. There are indeed limitations in adv. intervals of these two (or more) virtual broadcasters because they use only single GAP Broadcasting role in Nordic SD (so they need to use the same adv. type and also they will be effectively broadcasting with half frequency = double the interval of the "base" adv. interval provisioned in SD). You also need to remember that as soon as one connection is established you would need to restart another Peripheral role if you want to keep second virtual broadcaster in the air. And there I don't know if playing with GAP address during connection doesn't harm the link (I believe that it shouldn't because only Access address is used in LL PDUs) but that should be easy to test.

  • According to the documentation, changing the address is also not possible while scanning. Therefore I would have to disable scanning as well. I don't know why this restriction is in place. Would be nice to know the overhead of stopping and starting advertising each time, instead of only changing the advertising data. When a connected event comes in, I would rather use the own_addr that comes in the connected part of the ble event. I will also have to pay attention that the Softdevice is not in the connecting state, or I must stop connecting and restart it.

Reply
  • According to the documentation, changing the address is also not possible while scanning. Therefore I would have to disable scanning as well. I don't know why this restriction is in place. Would be nice to know the overhead of stopping and starting advertising each time, instead of only changing the advertising data. When a connected event comes in, I would rather use the own_addr that comes in the connected part of the ble event. I will also have to pay attention that the Softdevice is not in the connecting state, or I must stop connecting and restart it.

Children
No Data
Related