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

[Whitelist for S120] Dropping Beacons or peripherals without bonding

Hi, I'm using

  • IAR EWARM 7.20

  • PCA10001 V 2.0.0 (Changed the MCU to QFAAH00 Revision 3)

(I replaced the MCU to a QFAAH00 (0x0072) with a heat gun)

  • SDK 10.0

  • SoftDevice S120 2.1

  • J-Link Edu

/**********************************************************************/

As the ble_app_hrs_c example shows, it uses whitelist at scan_start function.

The IRK and address count won't increment before bonding with a peripheral.

I was wondering 2 cases.

/**********************************************************************/

Case 1:

Suppose I have a peripheral that uses the following:

"ble_app_hids_keyboard" example from SDK 10.0
SoftDevice S110 8.0
nRF51822 Revision 3 Chip

using a central that uses ble_app_hrs_c, it will store the IRK and the address of the

keyboard peripheral after bonding with each other. (I'm meaning the public address.)

addr

But I want a scenario like this:

The central stores the keyboard peripheral's IRK and public address without bonding together.

I want to see keyboard peripheral's IRK and address (I'm not sure there's a way for this)

and type them at a terminal program to send the data to the central via UART.

In short, I want to send peripherals' IRK and address via UART to the central before bonding.

Is this possible?

Case 2:

In this case, I'm curious whether beacons (iBeacon and EddyStone Beacon) can be filtered.

To be sure, beacons cannot be bonded with centrals and

it has values to distinguish each others (such as Major Minor values and Eddystone-UID's instance).

I'm curious that before using these values, is it possible to filter out beacons using whitelist?

-Best Regards, Mango

Parents
  • Case 1. Use sd_ble_gap_address_get to get the device address. You can use the options API to get the IRK. sd_ble_opt_get -> ble_gap_opt_privacy_t.

    Case 2: Unfortunately it's not possible to blacklist devices, but as long as you know the address or IRK (if applicable) of the device(s) you are scanning for you can use the whitelist to only get event for these devices.

    1. IRK, not address. But this is not useful unless you use a random resolvable address.
      2-1) sd_ble_opt_get. But if you are a central and want to know the IRK of a peripheral you have to connect and bond. 2-2) Yes, you have to bond.
    2. I doubt you will be able to change the device address between receiving the ad packet, before the scan request.
Reply
    1. IRK, not address. But this is not useful unless you use a random resolvable address.
      2-1) sd_ble_opt_get. But if you are a central and want to know the IRK of a peripheral you have to connect and bond. 2-2) Yes, you have to bond.
    2. I doubt you will be able to change the device address between receiving the ad packet, before the scan request.
Children
No Data