This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF51822 does not work with Windows 8.1

Gentlemen,

I'm trying to develop a Health profile solution that works with Win 8.1

  1. I'm using SDK 6.0 and S110 v 7
  2. Win 8.1

I found the Win 8.1 sample app with heart rate, blood pressure and thermometer.

My nRF51822 works fine with nRFTools on Android, I see all of the characteristics my code made available including battery level, temperature, etc.

On Win 8.1 first issue I had to overcome is pairing. it looks like it is a known bug in S110 v7. There is a need for a special code before the nRF51822 starts advertising.

Now I can pair with Win 8.1 but I'm seeing the following error:

"Getting the device failed with error: 80070057"

Has anyone here implemented health profile to be used with MS sample code for BluetoothLEHealthProfiles ?

On Windows 8.1 I read somewhere that there is a need for a metadata structure. What does it mean? what is this metadata some developers are talking about?

Thanks much for your help.

  • In your Nordic code, you must have set the HRM attribute to require authentication. This is in the security settings for read permissions ".read_perm" I think?. I have yet to enable security in my development, but if you disable this it should work. (I have been able to read unsecured/open attributes with the given code.)

  • Hello Peter, I think my issue above was because when I was trying to set the descriptor to "subscribe to notification" via BluetoothGATTSetDescriptorValue my code was incorrect. I noticed that my device CCCD does not offer 'Notify' but 'Indicate' so the following settings would cause the issue:

    	newValue.ClientCharacteristicConfiguration.IsSubscribeToNotification = TRUE;
    

    but the following settings fixed the issue:

    	newValue.ClientCharacteristicConfiguration.IsSubscribeToIndication = TRUE;
    
  • Hi, I know this is an old thread, but I run in to problem using Nordic trying to connect with Windows 10 laptop using Bluetooth Low Energy. When I'm paring and insert the PIN, communication works fine through my program. At this point, devices are bonded. If I disconnect them and then reconnect so that there is no need to insert the PIN my program gets service, characteristic and descriptor, but when I want to enable Descriptor notifications, function BluetoothGATTSetDescriptorValue returns an error saying "0x80650005: The attribute requires authentication before it can be read or written". I don't know If there is something on the Nordic side or at the Windows Stack side. Have you any ideas about this?

  • I found that I had not set up my Nordic stack to remember bonding information, and the windows side did not report this, it just behaves differently (and correctly) when connecting with a device that it has bonded with. I would check that you are saving bonding information, but I don't know where or what. I have currently disabled bonding on my device because bonding means that the device should remember the state of its CCCDs between connections which was something I was not doing, and so when reconnecting windows would not re-enable the notification CCCD bit because it believed my node should remember this. So my guess is that you need to ensure your Nordic stack is remembering it is already bonded with the Windows host, and that should do something in terms of being able to reuse authentication tokens between connections. Good luck.

Related