Home
%3CLINGO-SUB%20id%3D%22lingo-sub-1063218%22%20slang%3D%22en-US%22%3EDeveloper%20experience%20with%20Azure%20Sphere%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1063218%22%20slang%3D%22en-US%22%3E%3CP%3EMicrosoft%20%3CA%20href%3D%22https%3A%2F%2Fazure.microsoft.com%2Fservices%2Fazure-sphere%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EAzure%20Sphere%3C%2FA%3E%20is%20a%20secured%2C%20high-level%20application%20platform%20for%20internet-connected%20devices.%20And%20it%20is%20%3CA%20href%3D%22https%3A%2F%2Fwww.microsoft.com%2Fsecurity%2Fblog%2F2019%2F10%2F28%2Fiot-innovation-azure-sphere-general-availability-february-2020%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Egoing%20GA%20in%20February%202020%3C%2FA%3E!%3C%2FP%3E%0A%3CP%3EAzure%20Sphere%20is%20designed%20around%20around%20the%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2F7properties%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3E7%20principles%3C%2FA%3E%20of%20highly%20secured%20devices%20and%20when%20learning%20more%20about%20these%20you%20will%20realize%20that%20the%20developer%20has%20a%20big%20role%20to%20play%20in%20securing%20IoT%20devices.%3C%2FP%3E%0A%3CP%3EWhat%20is%20the%20developer%20experience%20like%20when%20working%20with%20Azure%20Sphere%3F%20What's%20new%20or%20different%20that%20you%20need%20to%20learn%20as%20an%20application%20developer%3F%20The%20good%20news%20is%20the%20experience%20is%20identical%20to%20writing%20any%20other%20application%20in%20Visual%20Studio.%3C%2FP%3E%0A%3CP%3EBefore%20we%20take%20a%20look%20at%20what%20the%20developer%20experience%20looks%20like%20for%20Azure%20Sphere%2C%20let%E2%80%99s%20review%20some%20fundamentals.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1058552862%22%20id%3D%22toc-hId-1058552887%22%20id%3D%22toc-hId-1058552887%22%20id%3D%22toc-hId-1058552887%22%3EAzure%20Sphere%20overview%3C%2FH3%3E%0A%3CTABLE%20style%3D%22width%3A%20100%25%3B%20border-collapse%3A%20collapse%3B%20border-style%3A%20hidden%3B%22%20border%3D%221%22%3E%0A%3CTBODY%3E%0A%3CTR%3E%0A%3CTD%20style%3D%22width%3A%2050%25%3B%20border-style%3A%20hidden%3B%22%3E%3CP%3EThink%20of%20Azure%20Sphere%20as%20being%20three%20things%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3ESilicon%20with%20IP%20that%20provides%20a%20hardware%20root%20of%20trust%20and%20other%20security%20elements%3C%2FLI%3E%0A%3CLI%3EOn%20top%20of%20that%20there%20is%20custom%2C%20secure%20Linux%20kernel%3C%2FLI%3E%0A%3CLI%3EAnd%20there%20is%20the%20Azure%20Sphere%20security%20service%20that%20provides%20device%20authentication%20and%20attestation%20as%20well%20as%20operating%20system%20and%20application%20updates%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3C%2FTD%3E%0A%3CTD%20style%3D%22width%3A%2050%25%3B%20text-align%3A%20center%3B%20vertical-align%3A%20middle%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F161452i462A91AE354F84E0%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22Azure%20Sphere%20arch%20diagram.png%22%20title%3D%22Azure%20Sphere%20arch%20diagram.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3C%2FTBODY%3E%0A%3C%2FTABLE%3E%0A%3CP%3EYou%20can%20use%20Azure%20Sphere%20in%20two%20scenarios%3A%3C%2FP%3E%0A%3COL%3E%0A%3CLI%3EAzure%20Sphere%20can%20be%20embedded%20into%20a%20new%20device%20(greenfield)%3C%2FLI%3E%0A%3CLI%3EAn%20Azure%20Sphere%20device%20can%20act%20as%20a%20guardian%20module%20for%20currently%20installed%2C%20legacy%20devices%20(brownfield)%20that%20you%20don%E2%80%99t%20want%20to%20connect%20to%20the%20internet%20for%20security%20reasons%20or%20just%20can't%20because%20of%20limited%20networking%20capabilities%2C%20but%20that%20are%20producing%20interesting%20telemetry%20data%20that%20you%20would%20like%20to%20analyze.%3C%2FLI%3E%0A%3C%2FOL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--748901601%22%20id%3D%22toc-hId--748901576%22%20id%3D%22toc-hId--748901576%22%20id%3D%22toc-hId--748901576%22%3EGetting%20started%3C%2FH3%3E%0A%3CP%3EAzure%20Sphere%20is%20about%20IoT%20hardware%20so%20the%20first%20step%20is%20to%20pick%20y%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3Eour%20hardware.%20One%20choice%20is%20the%20%3CA%20href%3D%22http%3A%2F%2Fwiki.seeedstudio.com%2FAzure_Sphere_MT3620_Development_Kit%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EAzure%20Sphere%20MT3620%20Development%20Kit%3C%2FA%3E%20from%20Seeed.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EVisual%20Studio%202019%20is%20the%20IDE%20you%20will%20need%20to%20get%20started%20along%20with%20the%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure-sphere%2Finstall%2Foverview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EAzure%20Sphere%20SDK%3C%2FA%3E%20onto%20your%20device.%3C%2FP%3E%0A%3CP%3EOne%20thing%20that%20will%20differ%20from%20what%20you%20might%20be%20familiar%20with%20is%20the%20fact%20that%20before%20you%20can%20start%20coding%20anything%20you%20will%20need%20to%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3Ecreate%20a%20tenant%20on%20the%20Azure%20Sphere%20security%20service%3C%2FLI%3E%0A%3CLI%3Eclaim%20your%20device%20into%20this%20tenant%20to%20ensure%20only%20you%20can%20push%20code%20to%20it%20and%20have%20full%20control%20over%20it%3C%2FLI%3E%0A%3CLI%3EEnable%20development%20on%20the%20device%3C%2FLI%3E%0A%3CLI%3ECreate%20the%20app%20manifest%3A%20on%20Azure%20Sphere%2C%20each%20application%20only%20has%20access%20to%20the%20hardware%20resource%20it%20needs%2C%20and%20developers%20need%20to%20create%20an%20app%20manifest%20that%20indicates%20to%20the%20secure%20OS%20which%20HW%20resources%20the%20app%20will%20be%20using%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EOnce%20you%20have%20done%20these%2C%20you%20can%20go%20ahead%20and%20start%20blinking%20the%20LEDs%20-%20as%20we%20all%20know%20blinky%20is%20the%20Hello%20World%20for%20IoT.%20Writing%2C%20deploying%2C%20debugging%20your%20application%20will%20be%20the%20same%20experience%20as%20any%20other%20application%20developed%20in%20Visual%20Studio.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1738611232%22%20id%3D%22toc-hId-1738611257%22%20id%3D%22toc-hId-1738611257%22%20id%3D%22toc-hId-1738611257%22%3ESee%20the%20developer%20experience%20demo%20live%3C%2FH3%3E%0A%3CP%3EWatch%20Mike%20Hall%2C%20Principal%20Software%20Engineering%20lead%20for%20Azure%20Sphere%2C%20step%20through%20both%20a%20blinky%20application%20and%20a%20guardian%20module%20application%20on%20the%20%23IoTShow.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20center%3B%22%3E%3CIFRAME%20src%3D%22https%3A%2F%2Fwww.youtube.com%2Fembed%2FR730FxRErrE%22%20width%3D%22560%22%20height%3D%22315%22%20frameborder%3D%220%22%20allowfullscreen%3D%22allowfullscreen%22%20allow%3D%22accelerometer%3B%20autoplay%3B%20encrypted-media%3B%20gyroscope%3B%20picture-in-picture%22%3E%3C%2FIFRAME%3E%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20center%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3ETo%20get%20started%20yourself%2C%20it's%20%3CA%20href%3D%22https%3A%2F%2Fazure.microsoft.com%2Fservices%2Fazure-sphere%2Fget-started%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ethis%20way%3C%2FA%3E.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20left%3B%22%3EFeel%20free%20to%20share%20your%20impressions%20and%20comments%20below%20with%20your%20fellow%20IoT%20developers!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-1063218%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F161418i3AB841E869A4835E%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22AzureSphere%20dev%20experience.png%22%20title%3D%22AzureSphere%20dev%20experience.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ECurious%20about%20Azure%20Sphere%20and%20wonder%20what%20the%20developer%20experience%20looks%20like%3F%20Here%20is%20a%20short%20article%20that%20will%20help%20you%20get%20started%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1063218%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Eazure%20sphere%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EIoT%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1082825%22%20slang%3D%22en-US%22%3ERe%3A%20Developer%20experience%20with%20Azure%20Sphere%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1082825%22%20slang%3D%22en-US%22%3E%3CP%3ELessons%20learned%20using%20the%20Azure%20Sphere%20Starter%20Kit%20from%20Avnet%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CUL%3E%3CLI%3EUpdate%20to%20the%20latest%20OS%20version%20ASAP.%20I%20faced%20some%20issues%20where%20the%20board%20could%20not%20connect%20to%20the%20service%20before%20I%20upgraded%20to%20OS%20version%2019.10%3C%2FLI%3E%3CLI%3EI%20did%20face%20an%20issue%20where%20%3CA%20href%3D%22https%3A%2F%2Fwww.element14.com%2Fcommunity%2Fgroups%2Fazuresphere%2Fblog%2F2019%2F04%2F24%2Favnets-azure-sphere-starter-kit-out-of-box-demo-part-1-of-3%23comment-245205%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3ELPS22HH%20sensor%20was%20not%20found%3C%2FA%3E.%20However%2C%20after%20contacting%20Avnet%20through%20the%20element14%20community%2C%20they%20promptly%20released%20a%20fix%20on%20Github.%3C%2FLI%3E%3CLI%3ESome%20of%20the%20Azure%20Sphere%20videos%20talk%20about%20configuring%20the%20IoT%20Hub%20settings%20by%20selecting%20the%20project%20in%20Visual%20Studio%2C%20selecting%20Overview%20and%20then%20choosing%20Connected%20Services%2C%20then%20clicking%20on%20IoT%20Hub.%20That%20never%20worked.%20After%20researching%20the%20issue%2C%20I%20found%20out%20that%20this%20method%20has%20been%20deprecated.%20In%20the%20new%20OS%20versions%2C%20the%20IoT%20Hub%20settings%20are%20all%20done%20in%20the%20app_manifest.json%20file.%26nbsp%3B%3C%2FLI%3E%3CLI%3EDetailed%20steps%20for%20connecting%20the%20Avnet%20Starter%20Kit%20to%20Azure%20IoT%20Hub%20can%20be%20found%20on%20my%20blog%20%3CA%20href%3D%22https%3A%2F%2Fghassanhariz7.azurewebsites.net%2Findex.php%2F2019%2F12%2F19%2Fmicrosoft-azure-sphere-connect-your-azure-sphere-device-to-azure-iot-hub-using-visual-studio-2019%2F%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Epost%3C%2FA%3E%20and%20an%20overview%20of%20Azure%20Sphere%20can%20be%20found%20on%20%3CA%20href%3D%22https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Fmicrosoft-azure-sphere-make-sure-your-connected-devices-hariz%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3ELinkedIn%3C%2FA%3E.%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E

Microsoft Azure Sphere is a secured, high-level application platform for internet-connected devices. And it is going GA in February 2020!

Azure Sphere is designed around around the 7 principles of highly secured devices and when learning more about these you will realize that the developer has a big role to play in securing IoT devices.

What is the developer experience like when working with Azure Sphere? What's new or different that you need to learn as an application developer? The good news is the experience is identical to writing any other application in Visual Studio.

Before we take a look at what the developer experience looks like for Azure Sphere, let’s review some fundamentals.

 

Azure Sphere overview

Think of Azure Sphere as being three things:

  1. Silicon with IP that provides a hardware root of trust and other security elements
  2. On top of that there is custom, secure Linux kernel
  3. And there is the Azure Sphere security service that provides device authentication and attestation as well as operating system and application updates
Azure Sphere arch diagram.png

You can use Azure Sphere in two scenarios:

  1. Azure Sphere can be embedded into a new device (greenfield)
  2. An Azure Sphere device can act as a guardian module for currently installed, legacy devices (brownfield) that you don’t want to connect to the internet for security reasons or just can't because of limited networking capabilities, but that are producing interesting telemetry data that you would like to analyze.

 

Getting started

Azure Sphere is about IoT hardware so the first step is to pick your hardware. One choice is the Azure Sphere MT3620 Development Kit from Seeed.

Visual Studio 2019 is the IDE you will need to get started along with the Azure Sphere SDK onto your device.

One thing that will differ from what you might be familiar with is the fact that before you can start coding anything you will need to

  • create a tenant on the Azure Sphere security service
  • claim your device into this tenant to ensure only you can push code to it and have full control over it
  • Enable development on the device
  • Create the app manifest: on Azure Sphere, each application only has access to the hardware resource it needs, and developers need to create an app manifest that indicates to the secure OS which HW resources the app will be using

Once you have done these, you can go ahead and start blinking the LEDs - as we all know blinky is the Hello World for IoT. Writing, deploying, debugging your application will be the same experience as any other application developed in Visual Studio.

 

See the developer experience demo live

Watch Mike Hall, Principal Software Engineering lead for Azure Sphere, step through both a blinky application and a guardian module application on the #IoTShow.

 

To get started yourself, it's this way.

Feel free to share your impressions and comments below with your fellow IoT developers!

1 Comment
Established Member

Lessons learned using the Azure Sphere Starter Kit from Avnet:

 

  • Update to the latest OS version ASAP. I faced some issues where the board could not connect to the service before I upgraded to OS version 19.10
  • I did face an issue where LPS22HH sensor was not found. However, after contacting Avnet through the element14 community, they promptly released a fix on Github.
  • Some of the Azure Sphere videos talk about configuring the IoT Hub settings by selecting the project in Visual Studio, selecting Overview and then choosing Connected Services, then clicking on IoT Hub. That never worked. After researching the issue, I found out that this method has been deprecated. In the new OS versions, the IoT Hub settings are all done in the app_manifest.json file. 
  • Detailed steps for connecting the Avnet Starter Kit to Azure IoT Hub can be found on my blog post and an overview of Azure Sphere can be found on LinkedIn.