No services on Android during pairing

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

cross mob
lock attach
Attachments are accessible only for community members.
HeGi_2497906
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

We have a serious issue and cannot resolve it, please see if you can help.

On Android, when pairing, we get no services, once the pairing is accomplished via multiple reconnect events and it connects, it will work fine afterward.  We are prevented from going to production because of this concern.

When we pair, with a fixed pairing code, we get an error of no services, and sometimes the BLE stack gets stuck and thinks it is connected, but the app, ours or CYSMART gets a no services response.

1. We have the crystal trim code in our BLE start event

2. We have regenerated all UUIDs in 128 bit mode

Our bundle is attached, please help out as soon as you are able, this is an urgent matter.

0 Likes
1 Solution

OK, we figured it out over the weekend, to pair correctly using this radio, you set the passkey, and ensure the settings are correct in the BLE profile, the most important one being AUTHORIZATION REQUIRED.

In your app you try to read any characteristic with AUTHORIZATION REQUIRED generates the pairing request in APPLE or ANDROID.  In Android you get a pairing and a disconnect, and when you reconnect it works., APPLE works first time.

That was an ordeal for us, and there appears to be nothing obvious in the BLE datasheet pointing this out, or in any of the examples.  This was all we found, after learning that the BLE stack on the phone was expecting a pair request, based on a failed access, and the CYBLE_EVT_GATTC_ERROR_RSP is what is triggering the pair request.

An Error Response event is sent by the server (CYBLE_EVT_GATTC_ERROR_RSP) in response to the Read

Multiple Request if insufficient authentication, insufficient authorization, insufficient encryption key size is used by the client, or if a read operation is not permitted on any of the Characteristic values. The Error Code parameter is set as specified in the Attribute Protocol.

View solution in original post

0 Likes
27 Replies