Other Parts Discussed in Thread: CC2540, CC2640
We have developed a project based on the "Multi-Role" example out of the SDK v1.50. This software is developed for our custom CC2640R2 based BLE device configurable as either central or peripheral.
Two such devices are taken, one working as Central and another as peripheral. When these devices connect to each other, they are required to pair which always fails.
The activities we observe in peripheral while pairing are:
1. GAPBOND_PAIRING_STATE_STARTED
2. GAP_PASSKEY_NEEDED_EVENT
3. GAPBOND_PAIRING_STATE_COMPLETE without success. (PAIRING_FAILED with reason 8)
The activities we observe in central while pairing is:
1. directly goes to GAPBOND_PAIRING_STATE_COMPLETE without success. (PAIRING_FAILED with reason 8)
Our peripheral device is configured like this:
pairMode = GAPBOND_PAIRING_MODE_INITIATE
mitm = TRUE
ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY
bonding = FALSE
Our central device is configured like this:
pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ
mitm = TRUE
ioCap = GAPBOND_IO_CAP_KEYBOARD_ONLY
bonding = FALSE
Ideally the chain of events in the central should have been :
1. GAPBOND_PAIRING_STATE_STARTED
2. GAP_PASSKEY_NEEDED_EVENT
3. and then decide whether success or failure
We have tested the peripheral to work as expected with nRF app (BLE central mode) and also with BTool.
So, as the pairing functionality (in terms of software) is same for central and peripheral, the issue should not be there.
Why is the passkey needed event not generated at the central end?
What does the failure with reason '8' signify?