PSoC 4 Random Disconnects with reason "Instant Passed"

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

cross mob
Anonymous
Not applicable

I'm hoping someone can help me with this CYBLE_HCI_INSTANT_PASSED_ERROR issue.  There isn't a lot of documentation surrounding this for PSoC in general but from what I've pieced together with some other forum posts on various sites it seems like a core issue where a peripheral/central doesn't respond in it's allotted time-frame and may not stay connected as a result of this.  People have suggested updating the version of the stack I'm on (3.30) which I have tried (to 3.50) with absolutely no change.  Some iphone/android devices are able to maintain the connection without fault, some get disconnected almost immediately on every connection.  This happens both using our custom app and using off the shelf ble scanner apps.

This is actually the second PSoC 4 product we've produced this year using the CY8C-4248LQI-BL573 part.  On the first part we never encountered this issue.  I've double checked that all the connection settings between the two products are exactly the same but have had no success.

If anyone has any experience or suggestions I'd appreciate it.

Thanks,

Nick

0 Likes
1 Solution
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

Hello Nick,

Please follow the below steps before programming your project.

1.  Make sure you have kept Bless interrupt high priority (go to .cydwr of project -> Interrupts tab -> make bless interrupt priority to 0 (highest)).

2.  Call CyBle_ProcessEvents in regular intervals. If any custom function is there which will consume more time for execution, please call CyBle_ProcessEvents inside it. May be any of your function for I2C write will be taking more time, if then try call CyBle_ProcessEvents it to see whether the issue fixes.

3.  Do you have any Interrupt routine in your project? If then don't write big code inside ISR. Instead, set a variable inside ISR and check the variable status and call the function in main loop.

4.  If the disconnection happens in custom board, check external crystal / clock settings. Check external crystals parameters meets specifications mentioned in our appnote: http://www.cypress.com/documentation/application-notes/an95089-psoc-4proc-ble-crystal-oscillator-sel....

5.  Please set the ECO capacitor trim value for the EZ-BLE module correctly. Refer our KBA: http://www.cypress.com/knowledge-base-article/eco-capacitance-trim-values-ez-ble-modules-kba218990. It is mandatory to manually set the ECO capacitance trim value in the firmware or clock settings in below cases:

    a.  Creating new project with BLE component V3.1, V3.2 or V3.3.

    b.  Updating the BLE component.

Thanks & Regards,

PSYU.

View solution in original post

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

Hello Nick,

Please attach your project if possible so that we can reproduce the issue and find out the root cause. ( If not complete project please share a simplified project)

Some below points might help to resolve the issue.

-) Are you using Low Power Modes in your design? If yes , are you configuring the WCO sleep clock accuracy in the firmware?  If yes , please go through the page #12 of below document for correct configuration.

      http://www.cypress.com/file/140991/download

-) Did you try with connecting CySmart PC tool with BLE -USB Dongle or CySmart Mobile App? Please with that and let us know your observations.

-) How many boards with CY8C-4248LQI-BL573 do you have? Please check if the issue is only with some boards or with all of the boards.

-Gyan

0 Likes
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

Hello Nick,

Please follow the below steps before programming your project.

1.  Make sure you have kept Bless interrupt high priority (go to .cydwr of project -> Interrupts tab -> make bless interrupt priority to 0 (highest)).

2.  Call CyBle_ProcessEvents in regular intervals. If any custom function is there which will consume more time for execution, please call CyBle_ProcessEvents inside it. May be any of your function for I2C write will be taking more time, if then try call CyBle_ProcessEvents it to see whether the issue fixes.

3.  Do you have any Interrupt routine in your project? If then don't write big code inside ISR. Instead, set a variable inside ISR and check the variable status and call the function in main loop.

4.  If the disconnection happens in custom board, check external crystal / clock settings. Check external crystals parameters meets specifications mentioned in our appnote: http://www.cypress.com/documentation/application-notes/an95089-psoc-4proc-ble-crystal-oscillator-sel....

5.  Please set the ECO capacitor trim value for the EZ-BLE module correctly. Refer our KBA: http://www.cypress.com/knowledge-base-article/eco-capacitance-trim-values-ez-ble-modules-kba218990. It is mandatory to manually set the ECO capacitance trim value in the firmware or clock settings in below cases:

    a.  Creating new project with BLE component V3.1, V3.2 or V3.3.

    b.  Updating the BLE component.

Thanks & Regards,

PSYU.

0 Likes