There is a lot of news coming from Microsoft's \\Build conference going on this week. Much of this is around Windows 10, Office 365, HoloLens, and other large investments. In the IoT space, the focus is on the announcement of Windows IoT Core (code named Athens) which is the Windows core applied to embedded devices. Of special interest is IoTCore running on the Raspberry Pi. Although we are not the biggest news item at the show, NETMF does have a significant presence as part of the overall platform solution offerings for the Internet of Things. We decided to specifically showcase some of the new things that we are working on for 4.4. At the QuickStart labs, attendees can get hands on experience with a number of technologies. For the new Windows IoT Core, attendees can program a weather app and send data to Azure with a Raspberry Pi running IoT Core and a weather shield . IoT Core includes extensions to the WinRT (UAP*) namespaces for APIs that were not needed in Windows apps before (GPIO, I2C, PWM, SPI, Analog IO,...) With 4.4, NETMF is adding support for these same WinRT namespaces (and more as time goes on). So in the QuickStart labs, the attendees can also program a new Netduino 3 WiFi board with the same weather shield using the same APIs. Our goal for the labs was to use the exact same instructions for both and the only significant differences turned out to be the result of the NETMF lab using Wifi instead of Ethernet.
In addition to the labs, there is a NETMF demo in Steve Teixeira's IoT keynote on Window's IoT Core. Unfortunately, this demo, which had been solid all week, failed on stage. For some reason, the phone lost the Alljoyn connection. The way the demo did work is that he 'ask's' a Windows phone whether there are any NETMF devices present. When it relies that there are, he asks for the temperature in the room and it tells him the temperature. Finally he tells the NETMF device to send that data to the TV. The temperature shows up on the TV display. There are several interesting technologies in this demo. First, the communication is set up using Alljoyn. In 4.4, NETMF will have an implementation of the AllJoyn Thin Client. Microsoft is a member of the Allseen alliance and Alljoyn will be support in all of the Microsoft platforms. Alljoyn allows for devices to 'advertise' their presence and their 'type' and for other devices to find and consume the services that they offer. With Alljoyn supported on all the Microsoft platforms and a growing number of other devices like the LG TV we used, setting up flexible and dynamic connections between devices is really easy. This same demo that is in Steve's talk is in a booth dedicated to the Alljoyn story at Microsoft.
The other technology that I think is killer is the voice support in Windows 10. Steve made a call to not utilize the Cortana portion of the demo in his talk because there had been so much already shown on Cortana but I think this is something of particular interest in small devices. UI is often a challenge on these devices. You may decide to not have any UI on your device but that misses the opportunity to impact it's functioning externally or to query it. You could elect to put buttons and LEDs on it but that is an inflexible option and not that informative. You could opt to put a touch display on the device. This improves the flexibility of the interface but it is also expensive. Voice is extremely flexible and as easy to change as modifying the Voice Command Definition in XML. There is not any explicit support for voice or Cortana in NETMF yet but with the voice capabilities on a Windows phone and Alljoyn, it is easy to implement this kind of command and control where small devices are integrated with higher end platforms.
During Channel 9 interviews, Pete Brown and Steve Teixeira highlighted the work that GHI is doing to improve the Raspberry Pi connectivity to modules and the new Netduino boards.
What does all this add up to? For a number of years, the Microsoft platform story was fragmented. There was Windows, Mobile, Windows Compact Edition, and NETMF as separate platforms specific to their target devices. These platforms were even in different organizations inside Microsoft further fragmenting the messaging. Now all of these technologies are in the OSG group with the direct intention of creating a powerful IoT platform suite. With UAP (now UWP) and architectural work in Windows core, the current story is Windows Standard, Windows Mobile, Windows IoT Core, and NETMF- three of the platforms are built from the same code. In the NETMF team very focused at this point to making sure that our platform for the processors that can't run one of the full OS options is still highly compatible and well integrated with them. Our two goals going forward are convergence with the rest of Windows development experience and increasing the range of applications that Microsoft has solutions for in the MCU space by increasing our performance and decreasing our memory requirements. We continue to build the team to do all this with a larger investment than the platform has had in years.
Let us know what your thoughts are on all these changes. We're looking forward to an exciting year.
* I am using the UAP acronym because it is probably more familiar to everyone but with \\Build, this has been renamed to the Universal Windows Platform (UWP)