Asks passkey after bonding

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

cross mob
lock attach
Attachments are accessible only for community members.
LiSi_1648326
Level 1
Level 1
First like received First like given

Hello,

I am using simple Cypress example, Day015_Bonding with updated BLE component 3.66, PSoC Creator 4.3, on Pioneer board with CY8C4248LQI-BL583 and CySmart 1.3 with dongle CY5677 (CYBL11573-56LQXI, latest hex file).

I use default settings of the dongle, and example project settings has not changed (except target device).

When I press connect, it asks to pair, I enter passkey, it pairs, and it says that it has bonded. Then I disconnect, connect, it asks to pair, when I say yes - it asks to enter the passkey again.

My understanding is that if the two are bonded, there shouldn't be any more passkey entries. But this is not happening.

I remember a few years ago on older cypress dongles bonding was working, maybe something has changed and I am not up to date?

Please see attached device and cysmart log.

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

On PSoC BLE device side, you have to store the bonding data in the flash once both the devices get paired. For that you have to use the API Storebondinddata() API once you get the event PENDING_FLASH_WRITE.

// STORING BONDED INFORMATION TO FLASH

        apiresult = CyBle_StoreBondingData(0u);

        if ( apiresult == CYBLE_ERROR_OK)

        {

            printf("Bonding data stored\r\n");

        }

        else

        {

            printf ("Bonding data storing pending\r\n");

        }      

Please refer the attached reference project. On CySmart side, you will get a pop-up asking whether to store the bonding information or not. You have to click on Yes.

Please note that you have to set the correct settings in the security settings of the CySmart. You have to click on Configure Master settings on CySmart GUI to get the security settings page. Ensure that the settin for Bonding is Bondable.

security_settings.PNG

Thanks

Ganesh

View solution in original post

2 Replies
lock attach
Attachments are accessible only for community members.
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hello,

On PSoC BLE device side, you have to store the bonding data in the flash once both the devices get paired. For that you have to use the API Storebondinddata() API once you get the event PENDING_FLASH_WRITE.

// STORING BONDED INFORMATION TO FLASH

        apiresult = CyBle_StoreBondingData(0u);

        if ( apiresult == CYBLE_ERROR_OK)

        {

            printf("Bonding data stored\r\n");

        }

        else

        {

            printf ("Bonding data storing pending\r\n");

        }      

Please refer the attached reference project. On CySmart side, you will get a pop-up asking whether to store the bonding information or not. You have to click on Yes.

Please note that you have to set the correct settings in the security settings of the CySmart. You have to click on Configure Master settings on CySmart GUI to get the security settings page. Ensure that the settin for Bonding is Bondable.

security_settings.PNG

Thanks

Ganesh

Thank you very much!

My problem was that I was using default settings of Dongle Security Level - Secure Connection, instead of Authenticated with Encryption.

0 Likes