Restricting BLE connections to the bonded device ONLY

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

cross mob
NeJo_3618906
Level 1
Level 1
First reply posted First question asked Welcome!

Hello,

Is there a way to accomplish the following using the existing library features?:

- Once a BLE peripheral is bonded to a central, it will not accept connections from any other device except the one we're bonded with. The bonded central can connect and disconnect as needed, but all other central devices would not be allowed to connect at any time.

- The bonded central device may support any of the valid BLE addressing schemes (private static/resolvable static etc. we can't control this part)

- I am implementing this on the  MurataType1LD module: (CYW43438) + STM32 (ARM Cortex-M4F) 

 

0 Likes
5 Replies
RoHe_4370821
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

Hello @NeJo_3618906 ,

I'm a relative newcomer to the CYW4343 and I've not attempted this yet, but there appears to be a white list capability for Central and Peripheral. You didn't say which WICED API version you are using, but on WICED 6.4 there is whitelist API within wiced_bt_ble.h
For example,
wiced_bt_ble_update_advertising_white_list
wiced_btm_ble_update_advertisement_filter_policy
wiced_bt_ble_update_scanner_white_list
wiced_bt_ble_update_scanner_filter_policy
wiced_bt_ble_clear_white_list
wiced_bt_ble_get_white_list_size

I'd be interested to hear how you get on with this, as it is something I wish to do in the future.
Perhaps someone with experience of the above could offer you more details.

Good luck!

RH

0 Likes
NeJo_3618906
Level 1
Level 1
First reply posted First question asked Welcome!

Thanks @RoHe_4370821 ,

I did notice the whitelist API functions you mentioned. There is also an API that appears to support directed advertising:

- wiced_bt_start_advertisements(BTM_BLE_ADVERT_DIRECTED_HIGH, <Address type>,<BD ADDRESS>)

However, I can't find any documentation on either of those APIs besides what's in the wiced_bt_ble.h file. For example,  there is nothing that states whether the whitelisting functionality supports LE secure connections where central devices use random addresses that need to be resolved (Most Android and Apple devices use these random & changing addresses today). If so, I assume we would have to whitelist the already resolved static address of the central (and not the random address with which the connection is initiated)...

I am spending a decent amount of time (essentially trial and test) on something that should be basic BLE security functionality...  So, I figured I'd ask here in case I missed some documentation or there is a wise & more experienced soul out there that can make my day.. : ).

I am using WICED 6.2 which appears to support the same whitelist functions, but I would of course justify migration to 6.4 if there are bugs causing this to not work in 6.2. 

I appreciate your help!

 

0 Likes

Hi @NeJo_3618906 ,

Unfortunately, there's barely any official documentation other than the comments in the source code. The official documentation is included with WICED. On my WICED 6.4 installation it is found in the following directory,

WICED-Studio-6.4/43xxx_Wi-Fi/doc/API/index.html

and search under "Components > Bluetooth". But, this is just a Doxygen output of the source code comments.

I was also directed by another developer to the Modus Toolbox manuals, but I'm not sure how relevant their information is to us when working under WICED-Studio. Much of the code examples seem to be valid. Perhaps it will lead you to some answers...

https://github.com/cypresssemiconductorco/CypressAcademy_BT101_Files/tree/master/PDFs

Sorry that I can't be of more help to your specific questions. I would hope someone from Cypress Tech Support would pick this up soon and give you what you need.

Regards,
RH

0 Likes
SheetalJ
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 500 likes received

Hi @NeJo_3618906 ,

Yes we have Directed advertisement feature in order to connect to the previously bonded device. Unfortunately, there is no example available demonstrating thing but I can refer you can existing available for CYW20819. Maybe you can take implementation reference from that. 

https://github.com/cypresssemiconductorco/mtb-example-btsdk-peripheral-privacy

 

0 Likes
RoHe_4370821
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

@NeJo_3618906 ,
Did you manage to get this working?

Regards,
RH

0 Likes