Microsoft Azure IoT DevKit
Microsoft joins the IoT trend with the Microsoft Azure IoT DevKit. This package includes hardware with a board fully loaded with sensors and display; software with Arduino libraries and the Visual Studio Code IDE; and services with Azure.
The board is built around the MXChip EMW3166 SoC, a Cortex-M4 MCU with WiFi radio. A peripheral STM32F103CBT6 acts as a programmer-debugger compatible with ST-Link and OpenOCD. The package is minimal but includes a USB cable and 4 protective rubbers. The form-factor is similar to the BBC micro:bit, and offer the same 25-pin connector. |
Hardware
The board is really nice, with a large selection of sensors and actuators, most of them from STMicroelectronics:
|
As modern boards now do, this one comes with a ST-Link debugger-programmer.
On this part:
|
Configuration was easy thanks to the step-by-step tutorial.
The out-of-the-box demo displays all the measures from the sensors on the orange-and-blue OLED display. |
|
Libraries
Microsoft provides all the libraries for the board, although with a heavy multi-layered structure.
Even though the top-most layer is Arduino-compatible, intermediate layers rely on mbed and Mico. Some libraries, like the MQTT library, are duplicate of existing Arduino libraries and raise conflicts. Microsoft also provides an API for OTA Programming. |
Software
The first option is the Arduino IDE with the boards package.
The second and recommended IDE is Visual Studio Code with the Arduino extension. I'm a big fan of the Visual Studio Code IDE for its rich features and minimal design. Unfortunately, the Arduino extension acts as a mere front-end and calls the Arduino IDE for every command. As a consequence, each time the Arduino IDE is called, and it can be called three times in a row, the splash-screen pops-up and hides the code. [Update] Nothing has changed in February 2019 with Visual Studio Code 1.31.0 with Arduino Extension 0.2.25 and Arduino IDE 1.8.8. This makes the Visual Studio Code IDE impossible to use. |
So I switched to embedXcode and faced no issue, except a conflicting macro definition coming from the header file ip_addr.h.
After commenting a couple of lines, I was able to build, link, upload, run and debug successfully with embedXcode. I reported the issue: it was considered as a bug and swiftly fixed. External debugging with embedXcode works great. |
Services
The core feature of the DevKit is to test the Azure services.
|
Although the trial is said to be free, a credit card is required. In order to confirm the card belongs to a real person, the card is charged then refunded. As Microsoft is based the U.S., bank may levy fees abroad.
This overtly complicated sign-up process for trial period acted as a show-stopper for me. As possible solutions, Microsoft could launch a simplified Azure Light portal for makers, hobbyists and academia with selected features, or include a voucher inside the DevKit box to redeem for a 3-month-long trial of Azure full edition. |
Now, in a very Microsoft way, the APIs include telemetry with a nice warning. [Update] Microsoft has posted two pages: general information at Microsoft Privacy Statement, and a procedure to Disable data collection.
Both the credit card required and the telemetry implementation by default may suggest Microsoft doesn't fully understand the hobbyist and maker community, or the academia. Both are potential strong show-stoppers for would-be users. |
Conclusion
The main goal of this board seems to promote the Azure platform, with enough sensors to populate a database quickly.
If the hardware is impressive and aggressively priced, the firmware and software are heavy. The OOTB demo could take up to 40 seconds to compile, because of the underlying hardware abstraction layers mbed and Mico. The credit card required for just testing Azure, the active telemetry implementation, act as strong show-stoppers for many would-be users from the hobbyist and maker community, as well as the academia. Let's hope Microsoft improves the software and service offering. |
Pros
|
Cons
|
Wrap-Up
|
Links
Posted: 18 November 2017
Updated: 10 April 2018, 04 February 2019, 08 February 2019