- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 ?
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
Solved! Go to Solution.
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content