Release Notes 19.10

The Azure Sphere 19.10 preview release includes an updated Azure Sphere SDK that supports several important features:

  • A new user authentication model, which provides role-based access control (RBAC)
  • A new device model, which simplifies device management and application deployment
  • Application development on the Windows command-line

To update to the latest OS

Concurrent with the 19.10 SDK release, we are also releasing a quality update of the Azure Sphere OS. If your devices are currently running the 19.09 OS release and are connected to the internet, they should receive the OS update from the cloud. However, if you have an older Seeed MT3620 Development Kit, you might need to update manually, as described in Update the OS on an early dev kit.

To update to the latest SDK

If you already use Azure Sphere, you'll need to perform a one-time migration to the new model. If you're part of a team or organization that uses Azure Sphere, we strongly recommend that you plan your migration carefully to avoid unnecessary disruption or lack of access to your users. Migration to the new user authentication and cloud management models is a single procedure; you can't do one and not the other.

How to verify installation

You can verify the installed OS version by issuing the following command in an Azure Sphere Developer Command Prompt:

azsphere device show-os-version

To check which version of the SDK is installed, use the following command:

azsphere show-version

New features and changes in the 19.10 SDK release

The 19.10 release includes substantial investments in the Azure Sphere OS support for the MT3620 hardware and in tooling support for additional application development scenarios. The following sections describe new and changed features.

User authentication model

The new authentication model provides the ability to assign roles to the users in your Azure Sphere tenant, along with easier user sign-up. Changing over to this environment (and the new device management models) requires a one-time migration of your tenant and users.

Device management model

The new device management model provides simpler application deployment.

azsphere command-line interface

The Azure Sphere command-line interface (CLI) incorporates numerous changes to support RBAC and the new cloud management environment.

Azure Sphere SDK Preview for Windows

This release includes the Azure Sphere SDK Preview for Windows in addition to the Azure Sphere SDK Preview for Visual Studio.

Support for CMake

The 19.10 release extends Azure Sphere support for CMake as a build platform. The Azure Sphere templates in Visual Studio, along with all the Azure Sphere samples on GitHub, are now built with CMake.

Samples

All the Azure Sphere samples are now built with CMake instead of Visual Studio .vcxproj files. The CMake build platform is supported across a variety of operating systems and development environments.

This release provides new sample applications:

In addition, the HTTPS_Curl_Easy sample now shows how to use mutual authentication.

Compatibility with the previous release

Known issues in 19.10

This section lists known issues in the current release.

Number of Wi-Fi networks reported

Azure Sphere currently supports a maximum of 37 Wi-Fi networks. Attempts to store more than 37 networks may result in undefined behavior.

CMake path lengths

If the length of your starting directory path is long, CMake returns an error when you open the folder. To avoid this problem, use short paths when developing with CMake.

Inaccurate clock on real-time cores

The GPT0 and GPT1 timers that are built into the real-time cores should use a 32 KHz clock source, but currently they do not run at the correct frequency. Consequently, applications that use these timers will get inaccurate timeouts. For example, a request for a 1-second delay could actually delay for 1.5 seconds. GPT3 has higher resolution, but if your scenario requires more than one timer, you may need to use GPT0 or GPT1. You can work around this problem by implementing a timer queue and running all the timers from GPT3.

Determine where an RTApp runs

By default, the RTApp is deployed to the first available real-time core on the device. To find out which core the application is running on, use the azsphere device app start command to start the application. The azsphere device app show-status command does not currently display this information.

You cannot choose which of the two real-time cores an RTApp runs on.

CMake startup item

When you're developing RTApps using CMake, the Select Startup Item menu may reset, resulting in an error when you try to start the application. This tends to occur when you regenerate the CMake cache. Before starting the application, ensure that the menu specifies GDB Debugger (RTCore):

startup item menu

Installation of both Visual Studio 2017 and Visual Studio 2019 Preview

If you have installed the 18.11 Azure Sphere SDK Preview for Visual Studio with both Visual Studio 2017 and Visual Studio 2019 Preview, the Azure Sphere SDK Preview for Visual Studio installer may fail to install or uninstall on either or both versions with the message "unexpected error". To recover from this problem:

  1. Start Visual Studio 2019 Preview and go to Extensions > Extensions and Updates. Search for "Azure Sphere" and uninstall the Visual Studio Extension for Azure Sphere Preview.
  2. Close Visual Studio 2019.
  3. Run the Azure Sphere SDK Preview for Visual Studio installer again.

Wi-Fi commands return device error 13.1

The azsphere device wifi show-status command may return error: device error 13.1 if the most recent azsphere device wifi add command supplied an incorrect --key value. If this occurs, use the azsphere device wifi forget command to delete the incorrect Wi-Fi network configuration and then add the network again with the correct key.

Non-ASCII characters in paths

The Azure Sphere tools do not support non-ASCII characters in paths.

Build errors with C++

The Visual Studio Integrated Development Environment (IDE) does not generate an error if you add a C++ source file to an Azure Sphere project. However, C++ development is not supported with Azure Sphere, and the resulting project will not build correctly.