Windows Phone 8.1 wired problem with BCM20736S

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

cross mob
Anonymous
Not applicable

Hello,

I try to communicate with a Windows Phone 8.1 (Nokia Lumia 530 Dual Sim) to a device which has built in the BCM20736S chip.

The device offers two custom services. One of them has a characteristic that defines the following characteristic properties:  Read, Write, Notify.

After pairing with and connecting to the device via the Windows Phone Bluetooth system settings, my App works as expected.

The problem starts appearing after closing my App disconnect from the device (it is still paird) and then reconnect to it via the Windows Phone Bluetooth system settings.

When I now configure the characteristic to get notified about incoming data, I get the following exception: 
The attribute requires authentication before it can be read or written. (Exception from HRESULT: 0x80650005).

The code throwing the exception is:

await _characteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);

When I remove (unpair) the device via the Windows Phone Bluetooth system settings and pair it once again, the app works as expected again.

Has someone an idea how to solve that issue?

Can someone confirm that the BCM20736S chip is compatible with Windows Phone 8.1?

The same App works in all that situations reliable with a Windows Phone 10 (Microsoft Lumia 950) device.

0 Likes
3 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

I spoke with the developers and they believe that Windows mobile should leverage the same BT stack as Windows on your desktop.

They believe the problem may be linked to the fact that your 20736 app is not saving/restoring link keys.

0 Likes

How can link keys be saved/restored in 20736 App? Our implementation is compareable to Hello Sensor with no encryption used.

0 Likes

According to the developers, the saving of the keys should be happening automatically.  There is no way to create unencrypted connection with Windows.

They feel it would help if you could enable SMP traces

void hello_sensor_create(void)

{

BLEPROFILE_DB_PDU db_pdu;

extern UINT32 blecm_configFlag ;

blecm_configFlag |= BLECM_DBGUART_LOG | BLECM_DBGUART_LOG_L2CAP | BLECM_DBGUART_LOG_SMP;

As this may give them a clue.

0 Likes