Using RPA with whitelisting and bonding

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
DeCo_1926091
Level 4
Level 4
First like received

1. I have created a peripheral server using a PSoC4 BLE with Bluetooth v. 4.2.

2. I want the device to bond with an iPad so that if the device is power cycled it will reconnect with the iPad without user action.

3. The device has no display or keyboard and has only a single push button which is used to terminate the bond and prepare it to pair and bond with the same or a different iPad.

4. Everything seems to be working well except if, after bonding, everything is left alone for a while it will then be unable to connect with the iPad unless I go through the process of re-pairing and re-bonding.  I presume that this is because it is not handling the Resolvable Private Address correctly when the iPad decides to change it. 

5. Does my code have to do anything to cause it to resolve the address or is it handled automatically by the Link Layer?

6. When un-bonding, my code clears the whitelist and Bonded devices list. Does it also have to clear the RPA list?

7. In the BLE component configuration screens (Profiles, Custom, Server, Generic Access, Central Address Resolution should it's value be set to "Supported"?

Please note:  I have already checked out the BLE_4.2_DataLength_Security_Privacy04.cywrk example and, frankly I can't tell what I need and what I don't since the example combines Data Length Extension, LE Secure connection and Link Layer Privacy all together instead of making three separate examples, which would be a lot more useful.  In addition, it provides a number of options which can apparently be changed by use of a keyboard, etc.  and, finally, it appears to me that the designer didn't use the BLE component configurator in PSoC Creator but, instead made all the settings (and changed them) in code.  Clever, but really confusing. 

I'd be really grateful for some elementary guidance on using RPA with whitelisting and bonding.

Thanks for for your help,

Dennis

0 Likes
1 Solution

hi Dennis,

    Yes, you need to change the filter policy in the firmware after first time connection.

-Gyan

View solution in original post

3 Replies
lock attach
Attachments are accessible only for community members.
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Please refer the attached code example.

-Gyan

0 Likes

Hi Gyan,.

Thanks for your very quick response.  I've loaded the project onto my pioneer board and it seems to do what I think it should.  Now I'm trying to modify it so it will work with my hardware.

My PSoC4 BLE based peripheral has no display or keyboard (only a single push button which I intend to use to initiate pairing/bonding or redo it in case of a change in iPad central.  I also want it to be able to connect to one and only one iPad.  I changed the BLE component configuration to be Scan Request any, connect request whitelist and set security level to Unauthenicated pairing with encryption and I/O capabilities to no input, no display.   Now it doesn't work at all.

Am I trying to do something that is not possible?  Do I, perhaps, have to set it to Scan Request any, Connect request any for bonding and then change it in code to be Scan Request any, Connect request whitelist after bonding?

Thanks for your help,

Dennis

0 Likes

hi Dennis,

    Yes, you need to change the filter policy in the firmware after first time connection.

-Gyan