OTA upgradeable stack with bonding and privacy support

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

cross mob
manusharian
Level 4
Level 4
25 replies posted 10 replies posted 10 questions asked

Hello everybody,

My last problem, discussed in this thread https://community.cypress.com/thread/32891​, covered the issues that I encounter implementing the privacy feature. The last project attached contain a solution that works for 4.1 and 4.2 BLE phones with some problems on 4.0 and also on cypress dongle with 4.1 BLE.

Now I would like to add the OTA upgradeable stack and application example. I had the example running on older boards that we had manufactured but without privacy so I believed everything was ok but now with privacy I found out that I was overconfident. My problem is that if a bonded device trigger an upgrade the code will go to the stack project ok but there the BLE component has public address and the bonding info is not present and also the phone will need to authenticate again which is not desirable since the user should not do anything only to approve the upgrade.

My questions will be:

1) in order to keep the privacy, after an initial bonding only the bonded phone to be able to connect, do I need to duplicate the privacy code on the stack as well?

2) if I save the bonding with CyBle_StoreBondingData in application is the info available on stack if I retrieve it with CyBle_GapGetBondedDevicesList? (as I read the info should not be available) How can I pass this info from application to stack and back to application if the stack is not upgraded?

Thanks in advance!

0 Likes
1 Solution
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Hello,

My questions will be:

1) in order to keep the privacy, after an initial bonding only the bonded phone to be able to connect, do I need to duplicate the privacy code on the stack as well?

Ans:  Yes, You have to enable the bonding and put the privacy code in Stack Project as well.

2) if I save the bonding with CyBle_StoreBondingData in application is the info available on stack if I retrieve it with CyBle_GapGetBondedDevicesList? (as I read the info should not be available) How can I pass this info from application to stack and back to application if the stack is not upgraded?

Ans: Bonding info ,corresponds to Application project will not be available for Stack Project. You have to enable the bonding flag in both Stack and Application Project.

Regards,

Gyan

View solution in original post

0 Likes
2 Replies
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Hello,

My questions will be:

1) in order to keep the privacy, after an initial bonding only the bonded phone to be able to connect, do I need to duplicate the privacy code on the stack as well?

Ans:  Yes, You have to enable the bonding and put the privacy code in Stack Project as well.

2) if I save the bonding with CyBle_StoreBondingData in application is the info available on stack if I retrieve it with CyBle_GapGetBondedDevicesList? (as I read the info should not be available) How can I pass this info from application to stack and back to application if the stack is not upgraded?

Ans: Bonding info ,corresponds to Application project will not be available for Stack Project. You have to enable the bonding flag in both Stack and Application Project.

Regards,

Gyan

0 Likes

Hello Gyan,

Thank you for information! Meanwhile I have problems with some power supply issues on our custom boards that cause the software to get corrupted and always to get blocked on stack project, but on the dev board it seems to work.

0 Likes