Direct bluetooth access to sensors on Microsoft Band - bluetooth

I am looking for a fitness band which provides direct real-time sensor data over Bluetooth to a mobile (Android) app. I want to write a health app that tracks the heart rate continuously. Most of the bands I found, does not provide direct access and the sensor data needs to be synchronized over the web.
While searching I came across the “Microsoft Band”. Their website (http://developer.microsoftband.com/) says it provides data directly over Bluetooth. But I also found out that for an third party Android app to access the sensor data one has to install “Microsoft Health” app beforehand. Hence I am in doubt whether the data for the Microsoft Band also gets synchronized over the web through the Microsoft Health app or not.
Can someone please clarify my doubt, i.e. whether the sensor data can be access directly at real-time or not. I just want to be sure before buying the product.

On Android, in order to stream sensor data from the Band via the Band SDK, you must install the Microsoft Health application. However, the aggregate data collected by the Microsoft Health application and sync'd with the Cloud is completely independent of any data streamed in realtime by a third party application.

Related

Accessing raw SpO2, EDA, ECG, and temperature data

I am a researcher working on measuring physiological data such as SpO2, EDA, ECG, and temperature data. We would like to use Galaxy smartwatch 3 as a monitoring device for the research. However, before buying a lot of devices, i need clear and detailed information about the accessibility of SpO2, EDA, ECG, and temperature raw data. If i need to develop a samsung watch app that read and process through custom algorithms raw data coming from these sensors, is it possible?
I just want clear and detailed information before buying a lot of devices.
Figure out that I can use Tizen studio to create a native/web app to retrieve the data.

Rust STM32: webUSB publishing sensors

For a hobby project using the stm32f1xx-hal, I'm wanting to periodically read a sensor and then push the values such that I can graph them realtime in a webUSB app.
I have found an example in webusb_blinky by mvirkkunen which demonstrates the connectivity portion, but it's not clear to me how I would adapt it to publish sensor values. Should I be overriding control_in?
Any suggestions/help would be appreciated. Thanks!
You could define a control transfer that requested the device respond with the current sensor values but the more natural USB mechanism for publishing sensor updates is with an IN endpoint.
The usbd-serial module is the best example I can find of creating and using endpoints with this framework. A serial port consists of both an IN and OUT endpoint for bidirectional streaming of data. For your application you would only need the IN endpoint since the device only generates data.

HoloLens Geolocation Scenarios

I have a number of required business cases for HoloLens that require the device to understand a general geolocation, such as the current wearer longitude and latitude within 10 meters or so, as well as sending location information to and from an endpoint during various processes. Users WILL have a mobile device with geolocation capabilities that could assist in the process if necessary, and could also be used as a WiFi hotspot.
Is this a reasonable and reliable use case for HoloLens? Can apps be created that use geolocation and maintain connectivity during an experience, either on their own or with real-time communication to and from a mobile device that has these capabilities?
Yes - definitely is a realistic scenario. I've done some integration between a blue-tooth GPS and the Hololens. Let me know the particular device you're looking at and I'll see if I can get it working with the Hololens. //Lance Larsen (Microsoft MVP) - www.lancelarsen.com

Microsoft Band 2 - BLE Protocol (communication without SDK)

I'm developing a custom desktop application that requires more flexibility then what the current SDK for Microsoft Band is offering (only MS Windows OS, no win32 API, Windows 10 UWP applications are too limiting in background tasks, ecc..).
I just need to read raw data from the Microsoft Band 2 (Heart Rate, Galvanic Skin Response, Accelerometer, Gyro).
I'm exploring the solution of directly communicating to the band using its Bluetooth LE (Smart) services.
I'm able to subscribe to services using some tools for BLE analysis, and it seems that we can read the data.
Moreover reading here on stack overflow it seems that someone already managed to decode the raw data. Is some unofficial documentation available?
Image: Raw services screenshot

Microsoft band get data real time without the use of a mobile

I have purchased microsoft band. My scope is to use that device in order to track information such as steps and heart rate real time. I am wandering is there a way to get those data real time without 3rd device directly to a pc, using for example a bluetooth device? Is there a filesystem in order to store data in Band device? How can I store my data when for example I am outside and I dont having a mobile support?
Edit: I downloaded the sample code from the site. Now I am having problems running the project using either the device of the emulator. In both cases I am receiving bootstrapping device failed. Device not found. In case of the emulator I got the following error:
Error 2 Error : DEP6200 : Boostrapping 'Emulator 8.1 U1 qHD 5 inch' failed. Device cannot be found. The configuration data for this product is corrupt. Contact your support personnel.
Personalization.WindowsPhone
How can I pair the device with my app? I have already pair the device with pc using the microsoft sync app.
Edit2: I create a windows runtime app and I followed instruction from the link mentioned. I manage to found the paired device from the code. How can I read heart rate using the paired device?
My code is the following:
IBandInfo[] bandsPaired = await BandClientManager.Instance.GetBandsAsync();
IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(bandsPaired[0]);
if (bandClient.SensorManager.HeartRate.GetCurrentUserConsent() != UserConsent.Granted)
{
await bandClient.SensorManager.HeartRate.RequestUserConsentAsync();
}
What should I do to get the heart rate as a integer value? Is there a way to import the project to unity?
For running and workouts you don't need a mobile. But if your ideia is use the Band indefinitely, for days, and then sync with a storage will not work.
The Microsoft Band is like a aggregate of sensors, not a device that works alone.
You can pair the Band directly to a Bluetooth-enabled (e.g. Windows) PC, then use the Band SDK to connect to the Band and stream real-time data from a Windows application.

Resources