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

BLE question

hello there! i am working on project in which my one nordic BLE(A) want to send command to second nordic BLE(C) which is not in my range. now there is third nordic BLE(B) which is in range between both, so Device A will take help of Device B to communicate Device C.

now i think it is possible like this way Device A transmits mac address of Device C in advertisement packet. Device B sees this advertisement packet and checks that mac address of advertisement packet matches with it. here in advertisement packet mac address is Device C's address.

so device B advertises device A's advertisement packet and sends to device C.

now my main question is can one device advertise other device's adverisement packet??

  • Can't you just put something into the custom data to relay the original advertising data?

    Simply duplicating the packet verbatim is going to cause protocol nightmares...

  • can you explain me?? how to relay the original advertising data?

  • I think this question has the answers in the comments. I.e. Custom Advertising and Mesh.

    1. You can choose to wrap the advertisement of A within the advertisement of B and then un-wrap it at C. You will need to constrain the length of the advertising data so that it can be wrapped and unwrapped.

    2. You have a mesh, that can do the same for you.

    Changing the advertising address so that B, transmits A's packets is possible but not a recommended choice, but it is possible using this example.

  • Hi,

    I've done simple BLE repeater and it works without problems (copy 1-to-1 Adv. and Scan Resp. Data) until these two devices have different Adv. Address (MAC as you call it). Sure there are some places where both can be detected so it might confuse some central devices (this is application dependent - e.g. if you simply try to look for the best RSSI it could work). Not sure if it covers your original desire but at least it covers your "main" question. You can even clone the MAC and broadcast 100% matching packets from both devices, but they will never work under connection (Connect Req. packet would target both of them and they would be talking at the same time which would most probably cause noise and link canceling upon some timeout).

    It's not very obvious from your original question what you want to achieve in terms of application use case so it's hard to suggest final solution. If you want to just "let the distant central know that there is some broadcaster which middleman sees but maybe not the final listener" then you must move this specific information into Manufacturer Specific data AD object inside Adv. or Scan Resp. Data (as suggested above) or you can transport this information by some custom GATT Service/Characteristic over BLE connection (if it exists between device B and C).

    Cheers

Related