Microsoft Band Dev Link Round-Up
For the last couple months I've been gathering Microsoft Band Dev links, projects and resources. Today seems like a great day to share them... :)
The designer allows creation of custom tile layouts for Microsoft Band. It does not provide its own type of project, nor does it take dependency on particular version of Microsoft Band SDK. Once installed, a developer can add a new “Microsoft Band Tile Layout” item to a C# project, visually design the layout of as many tiles as needed and consume the generated code to easily deploy the layouts to the Band and send data updates.
When it comes to developing for the Band 2, there are 3 options outlined on the website.
- Use the Band SDK – write code to talk to the Band 2 over bluetooth from a device like a phone or PC (there’s an iOS, Android and Windows SDK).
- Make a ‘Web Tile’ – provide a URL that can be polled for data to display on a tile. The resulting tile can be manually installed to a Band 2 or it can be submitted to the gallery for a user to install themselves via the Health app on the Band 2.
- Work with the back-end data that’s ultimately gathered from a Band 2 and available over a REST API.
I think all of these have their place but it’s probably the SDK that’s of most interest to me and so I opened it up and tried out a few scenarios.
A big note – I’m not doing anything here that hasn’t been done many times before. I’ve watched developer sessions on the Band/Band 2. I’m mainly working through it here and writing it up in order to add to that weight of material but also so that it sticks in my head – I tend to find that if I haven’t written the code myself then I can’t remember how things work.
Following on from my first post on Band 2 development, I noticed that the Band 2 SDK had been updated.
The new capability that interested me is one that’s been added whereby a UWP app can receive tile events from a Band 2 even if the foreground app isn’t running.
To experiment, I took my project from that previous post and I updated the Microsoft.Band NuGet package to be at version 1.3.20217 and then I went off to read the SDK docs to see what had changed.
Section 9.3.2 of those docs say that there’s a new capability whereby a UWP app can expose an App Service which can then be invoked by the Health App in order that tile notifications for that specific app can be routed to its service. It’s an interesting architecture and one of the first places where I’ve been offered a true ‘App Service’ powered extensibility point so that’s nice to see.
My wife leaves for work quite early in the morning and a few times every year has to turn back and take a different route as a result of flooding. Now that she has joined me in the ranks of ‘Band Wearer’ I thought I would look to see if I could set up any kind of flood notification for her so that she wouldn’t get so delayed....
When Pete and I started building our “Band on the Run” project, we used Azure Event Hubs as the ingestion point for all the Microsoft Band telemetry. It’s a highly scalable ingress service that can handle millions of events per second, into which its easy to plug downstream components to process and store that data, so it was the ideal choice for the project.
Since then Azure has introduced a new piece of technology, Azure IoT Hub. It has the same downstream programming model that Azure Event Hubs has, built on consumer groups, etc, but has added device handling capabilities. When we were using Azure Event Hubs we had to create our own Service Bus Shared Access Signatures to enable the telemetry to be posted. Not only does Azure IoT Hub enable reliable and secure bidirectional communications between IoT devices, it handles the per-device security credentials and access control, so it was one less thing for us manage, so we switched over to using it. ...
Hot on the heels of our session at the Wearable technology Show 2016 #wts2016, we decided to sort out the “Microsoft Band on the Run” documentation, and have started with a high level diagram that shows how the various moving bits fit together:
March 2016: Band SDK update for Windows Phone, Windows, iOS and Android
- Adds a 5 Hz subscription to the GSR sensor.
February 2016: Band SDK update for Windows Phone, Windows, iOS and Android
- Provides the current day's values for the Altimeter, Calories, Distance, Pedometer and UV sensors.
- Enables Windows Phone 10 Universal Apps to handle tile events in the background. The supported tile events are TileOpened, TileClosed and TileButtonPressed. This feature removes the limitation that Windows Phone 10 apps need to run in the foreground to handle tile events. See the Band SDK documentation for details.
This post demonstrates how we can collect and display our Microsoft Band 2 health stats as monitoring data in Operations Management Suite (OMS), by querying the Microsoft Health Cloud APIs with PowerShell to retrieve the information, using a PowerShell-based collection rule in OpsMgr 2012 R2.
Today’s hack is an inspired submission for Hackster.io’s Are you an IoT Jedi? Join the Particle Alliance! contest. The idea around the contest is to build something cool in the realm of Internet of Things using any of the amazing devices from Particle.io. Having deep familiarity with Particle development and being an avid fan of the Star Wars Universe, this is an awesome opportunity to build something cool and possibly win some cool prizes in the process!
In this post, I plan to explain the creative process that lead to my idea, the serendipitous findings that ended up making it more interesting than I had originally planned, and of course the steps to reproduce the project on your own!
This project will introduce you to the concepts of toy hacking / modification, sourcing hardware components at reduced cost, Universal Windows App / Microsoft Band development, and proxy of communication between external sensors (Microsoft Band) and Particle devices using Particle.function(). Keep in mind, if you do not have access to a Microsoft band, there is a sub-project within this project that will allow you to create a modified lightsaber with programmable LEDs. The end result will allow us to monitor heart rate visually on a modified Lightsaber using sensor data from a Microsoft Band.