How to change the value of CYBLE_GAP_MAX_BONDED_DEVICE

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

cross mob
shrac_2642471
Level 4
Level 4
5 likes given First like received First like given

Hi Guys,

We guys are having a new requirement on Cypress PSoC 4200 Cypress BLE chip where we want to have maximum number of bonded devices as 1. However, when I look at changing this in the configuration ? I see that this option is grayed out. The Cypress documents says its possible to change it. I still don't understand how (or why) it doesn't let me change this ?

Capture.JPG

My device is a having a security mode of 1 and since it doesn't have a IO capability with Bonding requirement as Bonding.

I want to have the Maximum Bonded devices as 1. Here it shows 4 and grayed out.

Please help.


Regards,
Shrey

0 Likes
1 Solution
Anonymous
Not applicable

Hello shreyas.ravindra_2642471

The CYBLE_GAP_MAX_BONDED_DEVICE is merely a constant defining the maximum number of bonded devices supported for the hardware/firmware.

You have the ability to check the number of bonded devices stored with the API call CyBle_GapGetBondedDevicesByRank(&bondList); You can then choose to dump the oldest bond:

        if(bondList.count > 1) {

            CyBle_GapRemoveOldestDeviceFromBondedList();

        }

View solution in original post

8 Replies
Anonymous
Not applicable

Try changing the IO capability to something else, set the maximum bonding devices, and then change the IO back to "No Input No Output".

Unathenticated bonding means that the device that connects will be unknown veracity, and thus "bonding" is more like "encryption". You might require authentication for the bonding setting to be used/changed/enacted.

0 Likes

Hi e.pratt_1639216

I tried your suggestion, but the grayed part doesn't really come to life

Environment:

PSoC Creator  3.3 CP3 (3.3.0.9604)

Culture: English (United States)

OS Version: Microsoft Windows NT 6.2.9200.0

CLR Version: 4.0.30319.42000

This is the version I am using. Currently I am just evaluating if number of bonding devices could be set to only 1 from 4.

Regards,
Shrey

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

Hello,

    The "Maximum Bonded Device " option in the BLE component version 3.20 or lower one just shows how many maximum number of  bonded device this particular  PSoC BLE chip can support.  You have to store the bonding information for a particular peer device at the application level by using the API CyBle_StoreBondingData(). All the bonding information related APIs can be find out in the BLE component datasheet ( Right Click on BLE component -> Datasheet).

Example project from here - PSoC-4-BLE/100_Projects_in_100_Days/Day015_Bonding at master · cypresssemiconductorco/PSoC-4-BLE · G...

However, we recommend to use the latest version of PSoc Creator for the new designs. You can download the latest PSoC Creator version from here- http://www.cypress.com/products/psoc-creator-integrated-design-environment-ide

-Gyan

Hi Gyan,

Yes, I am doing that already. My question is that Cypress APIs sort of fixes this number to 4. I have a product requirement that the device shouldn't really have more than 1 bonded phone. If there is a new phone that wants to bond with the cypress device, it has to kick off the previous one.

Currently I am not in a position to upgrade to latest PSoC Creator. How do we limit this bonding devices to 1 ?

I see CYBLE_GAP_MAX_BONDED_DEVICE is used in like so many files in Cypress BLE stack.

0 Likes
Anonymous
Not applicable

Hello shreyas.ravindra_2642471

The CYBLE_GAP_MAX_BONDED_DEVICE is merely a constant defining the maximum number of bonded devices supported for the hardware/firmware.

You have the ability to check the number of bonded devices stored with the API call CyBle_GapGetBondedDevicesByRank(&bondList); You can then choose to dump the oldest bond:

        if(bondList.count > 1) {

            CyBle_GapRemoveOldestDeviceFromBondedList();

        }

Hi e.pratt_1639216

That's what I am doing now. I was just curious why you couldn't change it in PSoC Creator, when there is an option available.

Thanks anyway for confirming

0 Likes
Anonymous
Not applicable

shreyas.ravindra_2642471

Ah; The Constant is meant for Cypress' Firmware team to configure based on the hardware selected in the device selector by the PSoC Creator. Thus, it is more a reference for customers (such as ourselves) to use to reference how many BLE bonds the chip/device can support. Chips such as the new PSoC 6 can support more (16 I think), and thus they have a different constant declared.

It is similar to having the constant value 3.1415926538 defined for PI for example. It is a fixed value that all people need to use, and it won't change as far as we are concerned

Thanks so much e.pratt_1639216​.. I think I get the context.