cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4

LiSi_1648326
New Contributor II

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
VenkataD_41
Moderator
Moderator

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
VenkataD_41
Moderator
Moderator

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

LiSi_1648326
New Contributor II

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