How to enabled an Unpaired, Unbonded BLE Connection

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

cross mob
JaAn_4808491
Level 1
Level 1
5 sign-ins First solution authored First reply posted

Hi,

I have a simple console service that works when paired, but I can't for the life of me figure out how to get it to function while unpaired. I saw this thread about refusing pairing:

https://broadcomwiced-v8.hosted.jivesoftware.com/thread/3826

The solution works in that the master no longer attempts to pair, or at least no longer prompts the user to pair, but it doesn't work in that I get various errors and cannot maintain a connection. Disabling the callback added via the solution makes the code work again, but the user is prompted to pair. 

The service is a simple console service, basically like the Nordic UART Service. For now I'm even using the NUS UUIDs to test with generic console apps. I have it working when paired (no bonding), but it will not work when using the linked solution to disable pairing. I've set the various flags - pairing_params has LESMP_AUTH_FLAG_NO_BONDING, encr_required is set to 0, and I am not sending any security requests because as mentioned in this thread sending a security request should result in bonding.

I've verified that it's not the console phone app that I'm using that's trying to pair. When using a similar service set up on a Raspberry Pi no pairing is requested. 

This is for WICED Smart Bluetooth using the BCM920737

0 Likes
1 Solution
JaAn_4808491
Level 1
Level 1
5 sign-ins First solution authored First reply posted

The solution was that the permissions on the characteristics in the GATT database follow a strictest-permission method, so if there is an AUTH permission (for read or write) and permissions that don't require and you try to read or write the characteristic pairing will be required. Removing AUTH permissions fixes that.

View solution in original post

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

Hi @JaAn_4808491 ,

Would you please let us know which chipset and programming platform are you using? Also, the demo example you are working on?

 

0 Likes

Hi, I just added it to the original post for posterity but it's for WICED Smart Bluetooth using the BCM920737. The demo example is puart_control

I think I found my particular issue I was using the WRITABLE characteristic and both the unauthed READ and READ_AUTH permissions on the characteristic. For some reason I thought having both was required to enable bonding as needed. The unpaired connection now seems to work, but I need to do a bit more testing before I verify it as the solution.

0 Likes
JaAn_4808491
Level 1
Level 1
5 sign-ins First solution authored First reply posted

The solution was that the permissions on the characteristics in the GATT database follow a strictest-permission method, so if there is an AUTH permission (for read or write) and permissions that don't require and you try to read or write the characteristic pairing will be required. Removing AUTH permissions fixes that.

0 Likes