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

ble directed connection

hi everybody,

I'm working in a project, I need to establish a connection between a beacon & the mobile phone, I want to prevent any other masters of connection to my beacon, I used directed advertisment & it works proper, unfortatunely tha the mobile when the bluetooth is turned off, I couldn't connect to the beacon again, what is the solution? ?

Note that I wouldn't be able to use pairing with passkey due to some confidentional specification what will I do to solve this problem? ?

Parents
  • FormerMember
    0 FormerMember

    When using directed advertising, the advertising packet includes the address of the only initiator that can connect to the advertiser. (Bluetooth Core Specification v.4.2, Vol. 6, Part B, chapter 4.4.2.4)

    Which mobile of do you use? An iPhone? If you are using an iPhone, directed advertising will not work because it changes address every 15 minute. Instead, you should use a whitelist containing the acceptable devices. The nRF51/52 can then recognize the iPhone based on its IRK.

    Security issue when only using directed advertising: If another device change its address to the initiator address in the advertising packet, that device will be able to connect to the advertising device as well. Using a whitelist in addition to the directed advertising will solve that problem.

  • Yes, the example showing whitelist with static address. You will notice that whitelist.pp_irks = NULL; whitelist.irk_count =0;. If you want to make a whitelist for resolvable random address (on iOS device or maybe also Huawei) you need to get the IRK. To get the IRK you need to bond to the device. The IRK will be exchanged after bonded. This is handled by the device manager automatically.

    You mentioned you were having problem with doing DFU with device manager and bonding, which SDK version you tested with ? Have you tried the ble_app_hrs_with_dfu example ?

Reply
  • Yes, the example showing whitelist with static address. You will notice that whitelist.pp_irks = NULL; whitelist.irk_count =0;. If you want to make a whitelist for resolvable random address (on iOS device or maybe also Huawei) you need to get the IRK. To get the IRK you need to bond to the device. The IRK will be exchanged after bonded. This is handled by the device manager automatically.

    You mentioned you were having problem with doing DFU with device manager and bonding, which SDK version you tested with ? Have you tried the ble_app_hrs_with_dfu example ?

Children
No Data
Related