I took over a project using a Cypress Pioneer baseboard to run a series of sensors and communicate their output via BLE to a smartphone.
Most everything is already working, that is the good news.
Sensors work, grab data.
Pioneer advertises, connects to the phone.
Pioneer can send data to the phone, which displays it on its screen.
What's missing is pairing.
While the Pioneer connects, it does not pair and bond with the phone.
I've examined my code and setup, and compared it to other sample projects which do pair/bond, but so far no joy.
In my code, I log the events coming from the BLE component.
The events look like this along with my interpretation:
CYBLE_EVT_STACK_ON => // BLE component was started
CYBLE_EVT_GAPP_ADVERTISEMENT_START_STOP => // GAPP Advertisement started/stopped (started in this case)
CYBLE_EVT_GATT_CONNECT_IND => // GATT Connection indicated
CYBLE_EVT_GAP_DEVICE_CONNECTED => // GAP Device Connection indicated
CYBLE_EVT_GAP_AUTH_FAILED => // GAP Authorization Failed
CYBLE_EVT_GAP_AUTH_REQ => // GAP Authorization Request
CYBLE_EVT_GATT_DISCONNECT_IND => // GATT Disconnected
CYBLE_EVT_GAP_DEVICE_DISCONNECTED => // GAP Device Disconnected
CYBLE_EVT_GAPP_ADVERTISEMENT_START_STOP => // GAPP Advertisement started/stopped (stopped in this case)
NOTE: I suspect my Auth Request goes first, its just that the logger doesn't fire until the request is complete, i.e., it failed. So they show up in reverse order...
I've attached screenshots of the BLE component setup from PSoC Creator. I'm guessing that I have not configured this properly, but I don't know what I'm missing. Note that it doesn't have Bonding Management which I believe it needs. This is the project 'as is'...
Any help on this would be sorely appreciated.