FP-CLD-AZURE1 is ST’s first Function Pack for cloud services offering over-the-air (OTA) firmware update capabilities out of the box, thus greatly simplifying one of the most complex aspects of device management. As InfoWorld once put it: “The cloud and the Internet of things are inseparable,” and it’s this symbiosis that continues to shape all markets today, from the deepest niches to the most consumer-oriented enterprises. Yet, cloud computing is still at an early stage of its history, which explains why there are so many competing solutions, making it difficult for engineers and corporations to settle on a particular offering. Hence, to make designers’ lives simpler, we also offer a Function Pack for Watson (FP-CLD-WATSON1) and Amazon Web Services (FP-CLD-AWS1). However, today we want to focus on the first software package we designed for a specific cloud service, the FP-CLD-AZURE1.
Initially launched in March 2016, the Function Pack received many significant updates and features over the next few months, which culminated in an official presentation by Microsoft during its BUILD 2017 conference last May (it starts at 35:25 on the video below). Today, enthusiasts are treated with drivers, a Real-time Operating System, source code, and even pre-compiled binaries, to quickly start developing applications and implementing pre-build features to connect sensors and actuators to the Microsoft Azure cloud using Wi-Fi or Ethernet. STMicroelectronics even ensures that prototyping with this solution doesn’t require a credit card, which opens cloud evaluation to smaller teams in regions that may not always have easy access to this technology.
What’s the hardware setup?
Any attempt at exhaustivity is futile, as the breadth of the FP-CLD-AZURE1 Function Pack is remarkable. Hence, for brevity’s sake, we’ll focus on the pre-compiled binaries and how they represent the best approach to prototyping with this software package. Indeed, they will not only ensure users will be running in minutes, but they are very well documented, thanks to an extensive User Manual. To find the files simply go to “./STM32CubeFunctionPack_AZURE1_V3.1.0 2/Projects/Multi/Applications/Azure_Sns_DM/Binaries/” and choose the folder that fits your setup. ST provides applications for four different baseboards:
- B-L475E-IOT01 Discovery Kit
Furthermore, just as the other Function Packs that got a lot of attention at the last Developers Conference, the features of the FP-CLD-AZURE1 package rely on a few expansion boards that can be really helpful since their components could migrate to a custom board as teams get closer to their final designs. In this particular pack, users can add the following expansions (by order of installation, the first one being physically at the top of the stack):
- X-NUCLEO-IKS01A2 sensor boards
- X-NUCLEO-NFC01A1 NFC board (optional)
- X-NUCLEO-IDW01M1 Wi-Fi board (optional if using the Ethernet port of the NUCLEO-F429ZI)
On a side note, we’d like to remind our readers that ST will publish a patch early next year for the X-NUCLEO-IDW01M1, to fix the vulnerability recently revealed in the WPA2 stack. In the meantime, users should be cautious. Nevertheless, since the binary’s purpose is primarily for early prototyping, and the information transmitted is not sensitive, the risk of a hacker exploiting the vulnerability while using the Wi-Fi module in this situation remains minimal.
How to Use Azure Without Creating an Account?
The FP-CLD-AZURE1 Function Packs includes two binaries. The first one is called “Azure_Sns_DM_BL_Web.bin” and it offers a unique web dashboard to simplify data visualization. All users have to do is drag and drop the binary onto the storage volume that appears when connecting the board to a PC, then visualize the log of the application in their serial terminal. This will first ensure that the Wi-Fi board connects to an access point, with the settings written in the microcontroller’s flash, so developers don’t have to repeat this step if they just disconnect the system from its power source. Secondly, it will automatically register their Ethernet or Wi-Fi’s MAC address with Azure, without needing to previously create an account or enter a credit card number. Since everything is set up automatically, one can directly go to https://stm32ode.azurewebsites.net and enter the Wi-Fi or Ethernet MAC address that appears in the terminal.
After this, users get a graphical interface helping them visualize the data from the sensor board. As a result, in a few minutes, developers not only establish a connection to Microsoft’s services but start to send data to the platform and interact with it. For instance, it’s possible to set real-time alerts to trigger events when a sensor picks up a specific value, and the “Device management” tab has everything in place to deploy an OTA firmware update. Furthermore, since the application’s source code is available in the Function Pack, engineers can start porting it to their software quickly. Finally, even though this is only a development environment, ST and Microsoft offer a maximum of 500 messages per hour per device, which will be much more than enough for the vast majority of prototyping operations.
The other binary, called “Azure_Sns_DM_BL.bin” is very similar but doesn’t offer the web dashboard. As a result, data visualization can go through tools like Device Explorer, a Microsoft application available for free on GitHub that connects to your Azure account. The system doesn’t have the same graphical user interface as with the previous binary, but it’s a robust solution to capture the sensor board’s data, send messages to the host MCU, and deploy an OTA firmware update. The immense advantage of this solution is its ability to help developers see what’s going on behind the scenes, with access to all the strings and keys involved, which will be very helpful during their development processes.
Unlike the previous application, this binary will require the creation of a free account at https://azure.microsoft.com/en-us/free/, Microsoft demanding a credit card number and a phone number to ensure its service isn’t bogged down by bots. This is a prevalent practice in the industry and one that developers are familiar with, especially as they get closer to their final design. However, what we see is that both binaries are complementary. The one offering the web dashboard is an incredible first step since it doesn’t even require a credit card, or an account creation, substantially lowering the barrier to entry. Then, once developers need to start drilling into their interaction with Azure, the other binary gets them closer to a beta application, still with a free account on Azure.
What Will You Create?
We’ve only scratched the surface of what’s possible with the FP-CLD-AZURE1 Function Pack, and we invite you to discover its other features. For instance, it’s possible to use the NFC expansion board to launch a browser, on an Android smartphone, to automatically open the web dashboard. Inversely, it’s also possible to use ST’s NFC mobile app to write the credentials of the Wi-Fi Access Point, and Azure account, on the board’s flash to more securely transfer information. These open the door to the implementation of unique features, so let us know what you plan on doing with this software package in the comments below.
- The NUCLEO-F401RE board uses different binaries (Azure_Sns_Web.bin and Azure_Sns.bin), and it is incompatible with OTA firmware update. ↩