Reading Heart Rate Sensor off Microsoft Band using Windows IoT Core on Raspberry Pi 2 - microsoft-band

When attempting to read Heart Rate Sensor from a Microsoft Band paired with a Raspberry Pi2 running latest Windows IoT Core (10586). I get an exception when calling:
“bandClient.SensorManager.HeartRate.RequestUserConsentAsync()”
It would seem that the IoT Core does not contain the necessary libraries to create the popup dialog that is seen on other devices when executing this method.
Are there plans to extend the Band SDK to support Windows IoT Core in this scenario?
Are there any proposed workarounds?
Thank you,
Paul

Windows 10 IoT is currently not supported by the Microsoft Band SDK. In particular, the user consent prompts run on the device that the band is paired with and in this case the required APIs for user prompts are not supported in the Windows 10 IoT Core APIs.
If you require this in a future release of the SDK please open a request at the Microsoft Health User Voice page https://microsofthealth.uservoice.com

Related

Can Client Blazor WebAssembly application access local serial port on client?

How should I access a serial port on a client PC from a webpage in a production environment?
Ideally coded in C# and client Blazor, but any suggestions very welcome.
Any example applications on the web?
Web Serial API and Javascript option works in Chrome if you enable the experimental option: "Experimental Web Platform features" : Enables experimental Web Platform features that are in development. – Mac, Windows, Linux, Chrome OS, Android. #enable-experimental-web-platform-features
https://bugs.chromium.org/p/chromium/issues/detail?id=884928
Being experimental precludes use in a production environment till it is formally released (experimental licence must be renewed every 6 weeks, expires in September 2020 and the functionality can be removed by Google at any time.)
So far the only solution I can think of is to create an ASP.NET Core Service application that must be installed on the client and the webpage application must connect to this local API to use the local serial port.
Any technical issues that would prevent this service approach from working? Other approaches I should consider.
The web application will be designed to interface with a central/upper arm blood pressure monitor that outputs large XML (or JSON) results after each measurement. The measurements will be saved into a "cloud" service for research and patient monitoring.
Thank you in advance for suggestions and comments.

ChromeOS / Chromebook exception when connecting to BLE devices (getCharacteristic)

In a small team we're developing an application that is deployed to both Android (Tablets) and ChromeOS devices. For this, we have a couple build targets such as Pixel C's, Galaxy Tabs, an Asus C302 Chromebook and a Pixelbook.
The App we're developing interfaces over BLE with a Windows 10 system that runs an application that accepts incoming BLE connections. What we perform in our App:
We perform a scan to find a device with a specific name
We connect to this device: using the Android Native BluetoothDevice class: mBluetoothDevice.connectGatt();
We request the services: using the Android Native BluetoothGatt class: mBluetoothGatt.discoverServices();
When our App is deployed to Android targets, it successfully connects to the W10 app and retrieves its services (onServicesDiscovered).
However, when the same builds of the App are ran on ChromeOS, the following exception is thrown for retrieving services:
08-17 10:46:52.750 3827-3846/com.(our namespace) D/TheApp: BleGattHandler | onServicesDiscovered() called with: gatt = [android.bluetooth.BluetoothGatt#baff2ee], status = [0]
08-17 10:46:52.751 3827-3846/com.(our namespace) W/BluetoothGatt: Unhandled exception in callback
java.lang.NullPointerException: Attempt to invoke virtual method 'android.bluetooth.BluetoothGattCharacteristic android.bluetooth.BluetoothGattService.getCharacteristic(java.util.UUID)' on a null object reference
at com.(our namespace).communication.bluetooth.lowenergy.BleGattHandler.onServicesDiscovered(BleGattHandler.java:90)
at android.bluetooth.BluetoothGatt$1.onSearchComplete(BluetoothGatt.java:237)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:103)
at android.os.Binder.execTransact(Binder.java:565)
Our conclusion is that for some reason, ChromeOS fails to retrieve the services of a BLE device. We're at a loss here and hope to hear if anyone of you knows the cause or possible resolution (we're also open to professional help)
What ChromeOS version are we using
Our most recent test (today) was on the Pixelbook with:
ChromeOS 68.0.3440.87 (from beta channel)
ChromeOS 69.0.3497.21 (from dev channel)
What we have found up till now
This ChromeOS issue, yet it is reported Fixed:
https://bugs.chromium.org/p/chromium/issues/detail?id=722987
Android app which interacts with BLE devices not working on Chromebook
Why are we not using 'normal' Bluetooth (classic)?
We're currently using a C# W10 App to connect to using the App. However, this application serves as a Stub for now and will in the near future be replaced by a low-power embedded solution (wearable product) we are developing that requires operation over BLE. We're therefore bound to use BLE.

Could not find Biometric system that could send data directly to web server

I need a biometric (RFID or FINGER PRINT or face recognition) system which could consume web api directly - being independent of third party. I got some CAMS biometric unit and ZKTECO K20 pro model these could send data to server but we must go through their data server and need to expose the API. I want biometric system that could send activity data to my server.
This is required to develop a system to control attendance of branches from cooperate office. Here I need some suggestion of biometric system. I got
You can install a biometric device with its default software on your computer. The software stores the attendance data in your local database. You can develop a software to read the data from the local database and update your server on a schedule.
Online SDK is restricted from the manufacturers as it may lead to the security issues. As it is online based, anyone can access the anyone's biometric device if the online SDK has been exposed. So it is kept as confidential by the manufacturers CAMS and ZKTeco.
You can make your CAMS devices to communicate with your server directly, Below is the text snippet taken from their API documentation link: http://camsunit.com/application/biometric-web-api.html
Want to receive data without coming through CAMS Dataserver?
Yes. We provide the windows lite version protocol engine which should be
installed at your windows server. Once its installed, You web api
endpoints will start getting triggered whenever attendance is
registered at the device

Any good resources on implementing Firmware OTA over BLE?

I'd love to get a good overview of strategies applied to execute firmware updates over-the-air (FOTA / OTA via BLE) via Bluetooth Low Energy 4.1 and beyond.
The assumption being that the Client is an Android and / or iOS device.
Any hints and help are greatly appreciated.
Do you have a specific module/chip in mind for the peripheral device? Some vendors already provide a FOTA (Firmware Over the Air) service that is supported by their SDK or APIs on the embedded device.
Otherwise, if the vendor does not support it or you would like to implement your own, then you could follow the guidelines and model your system after theirs.
Here are some links that may help you:
mbed FOTA service
Cypress FOTA upgrade guidelines
ST FOTA upgrade
Make sure your firmware file and update process are secure

Connecting without Microsoft Health App

I've been tinkering with the microsoft band for a while and i'm trying to connect it to a raspberry pi 3 running android TV(couldn't find any Android phone images), now i've got most normal apps running on the rasp , the microsoft health app crashes when i start it.
Funny thing is though, the costum app i've made to track all the sensors stil gets data from the band when paired, but the band itself just:
says "pairing succes! return to the microsoft health app to continue" So there has to be a way to bypass the app right?
So i'm trying to find a way to get the band linked to this device without the Health App. Or a way to get that app running on my Android image.
I got a logcat of the crash, but i'm not sure if that would be really usefull. Since i can't edit the microsoft health app itself ...right?
Reset the band.
Pair the band to an android phone using health app.
Unpair band from Android phone.
Turn off Bluetooth on band.
Turn on Bluetooth on rpi.
Do a regular (not using health app) pairing the band and the rpi.

Resources