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. I'm worried about the timing between changing the central's address and sending scan request from central.

    Suppose there's a central scanning for beacons that has the same UUID.

    I want to make the scanner to change its ScanA field for each beacons by checking the major & minor values.

    For instance, if a beacon has 0x0100 and 0x0200 for its major and minor value, the scanner changes the address using sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_NONE, &addr);.

    // Suppose this address value is 99 AA BB CC EE FF in hexa.
    // I know static private address has to fix two MSBs to 11 but let's ignore this.
    

    Frankly, other beacons are advertising simultaneous and their major and minor values are different. In this case I want to change the address to other values. However, I'm worried that the central will reply with the above address before I change it. Can this be controlled?

Reply
    1. I'm worried about the timing between changing the central's address and sending scan request from central.

    Suppose there's a central scanning for beacons that has the same UUID.

    I want to make the scanner to change its ScanA field for each beacons by checking the major & minor values.

    For instance, if a beacon has 0x0100 and 0x0200 for its major and minor value, the scanner changes the address using sd_ble_gap_address_set(BLE_GAP_ADDR_CYCLE_MODE_NONE, &addr);.

    // Suppose this address value is 99 AA BB CC EE FF in hexa.
    // I know static private address has to fix two MSBs to 11 but let's ignore this.
    

    Frankly, other beacons are advertising simultaneous and their major and minor values are different. In this case I want to change the address to other values. However, I'm worried that the central will reply with the above address before I change it. Can this be controlled?

Children
No Data
Related