diff --git a/MXChip/AZ3166/readme.md b/MXChip/AZ3166/readme.md
index 045f3d40..18b709d1 100644
--- a/MXChip/AZ3166/readme.md
+++ b/MXChip/AZ3166/readme.md
@@ -146,18 +146,18 @@ In your console or in File Explorer, run the script *rebuild.bat* at the followi
> *getting-started\MXChip\AZ3166\tools\rebuild.bat*
-After the build completes, confirm that the binary files were created in the following path:
+After the build completes, confirm that the binary file was created in the following path:
> *getting-started\MXChip\AZ3166\build\app\mxchip_azure_iot.bin*
### Flash the image
-1. On the MXCHIP DevKit, locate the **Reset** button, and the micro USB port. You use these components in the following steps. Both are highlighted in the following picture:
+1. On the MXCHIP DevKit, locate the **Reset** button, and the Micro USB port. You use these components in the following steps. Both are highlighted in the following picture:

-1. Connect the micro USB cable to the micro USB port on the MXCHIP DevKit, and then connect it to your computer.
-1. In File Explorer, find the binary files that you created in the previous section.
+1. Connect the Micro USB cable to the Micro USB port on the MXCHIP DevKit, and then connect it to your computer.
+1. In File Explorer, find the binary file that you created in the previous section.
1. Copy the binary file *mxchip_azure_iot.bin*.
@@ -180,7 +180,7 @@ You can use the **Termite** utility to monitor communication and confirm that yo

1. Select OK.
-1. Press the **Reset** button on the device. The button is labeled on the device and located near the micro USB connector.
+1. Press the **Reset** button on the device. The button is labeled on the device and located near the Micro USB connector.
1. In the **Termite** console, check the following checkpoint values to confirm that the device is initialized and connected to Azure IoT.
```output
diff --git a/NXP/MIMXRT1050-EVKB/app/azure_config.h b/NXP/MIMXRT1050-EVKB/app/azure_config.h
index 45fba7c8..c06956c6 100644
--- a/NXP/MIMXRT1050-EVKB/app/azure_config.h
+++ b/NXP/MIMXRT1050-EVKB/app/azure_config.h
@@ -5,16 +5,24 @@
#define _AZURE_CONFIG_H
// ----------------------------------------------------------------------------
-// Azure IoT Hub Connection Transport
-// Define to use the legacy MQTT connection, else Azure RTOS SDK for Azure IoT
+// Azure IoT Dynamic Provisioning Service
+// Define this to use the DPS service, otherwise direct IoT Hub
// ----------------------------------------------------------------------------
-//#define ENABLE_LEGACY_MQTT
+#define ENABLE_DPS
// ----------------------------------------------------------------------------
-// Azure IoT Dynamic Provisioning Service
-// Define this to use the DPS service, otherwise direct IoT Hub
+// Azure IoT DPS connection config
+// IOT_DPS_ID_SCOPE: The DPS ID Scope
+// IOT_DPS_REGISTRATION_ID: The DPS device Registration Id
+// ----------------------------------------------------------------------------
+#define IOT_DPS_ID_SCOPE ""
+#define IOT_DPS_REGISTRATION_ID ""
+
+// ----------------------------------------------------------------------------
+// Azure IoT Hub Connection Transport
+// Define to use the legacy MQTT connection, else Azure RTOS SDK for Azure IoT
// ----------------------------------------------------------------------------
-//#define ENABLE_DPS
+//#define ENABLE_LEGACY_MQTT
// ----------------------------------------------------------------------------
// Azure IoT DPS Self-Signed X509Certificate
@@ -27,16 +35,8 @@
// IOT_HUB_HOSTNAME: The Azure IoT Hub hostname
// IOT_HUB_DEVICE_ID: The Azure IoT Hub device id
// ----------------------------------------------------------------------------
-#define IOT_HUB_HOSTNAME ""
-#define IOT_HUB_DEVICE_ID ""
-
-// ----------------------------------------------------------------------------
-// Azure IoT DPS connection config
-// IOT_DPS_ID_SCOPE: The DPS ID Scope
-// IOT_DPS_REGISTRATION_ID: The DPS device Registration Id
-// ----------------------------------------------------------------------------
-#define IOT_DPS_ID_SCOPE ""
-#define IOT_DPS_REGISTRATION_ID ""
+//#define IOT_HUB_HOSTNAME ""
+//#define IOT_HUB_DEVICE_ID ""
// ----------------------------------------------------------------------------
// Azure IoT device SAS key
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-about.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-about.png
new file mode 100644
index 00000000..06fa4048
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-about.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-telemetry.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-telemetry.png
new file mode 100644
index 00000000..c791300c
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-telemetry.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-template-migrate.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-template-migrate.png
new file mode 100644
index 00000000..55cdab72
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-template-migrate.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-view-status.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-view-status.png
new file mode 100644
index 00000000..82bcda5e
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-device-view-status.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-central-invoke-method.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-invoke-method.png
new file mode 100644
index 00000000..2209432d
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/azure-iot-central-invoke-method.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-create-connection.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-create-connection.png
deleted file mode 100644
index fe7b8fd7..00000000
Binary files a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-create-connection.png and /dev/null differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-identity.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-identity.png
deleted file mode 100644
index 2673120d..00000000
Binary files a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-identity.png and /dev/null differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-telemetry.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-telemetry.png
deleted file mode 100644
index aa246428..00000000
Binary files a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-device-telemetry.png and /dev/null differ
diff --git a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-invoke-method.png b/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-invoke-method.png
deleted file mode 100644
index 29026b79..00000000
Binary files a/NXP/MIMXRT1050-EVKB/media/azure-iot-explorer-invoke-method.png and /dev/null differ
diff --git a/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-custom.png b/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-custom.png
new file mode 100644
index 00000000..9617ab8b
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-custom.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-device.png b/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-device.png
new file mode 100644
index 00000000..a05d2764
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/iotcentralcreate-device.png differ
diff --git a/NXP/MIMXRT1050-EVKB/media/iotcentraldevice-connection-info.png b/NXP/MIMXRT1050-EVKB/media/iotcentraldevice-connection-info.png
new file mode 100644
index 00000000..80e88b2c
Binary files /dev/null and b/NXP/MIMXRT1050-EVKB/media/iotcentraldevice-connection-info.png differ
diff --git a/NXP/MIMXRT1050-EVKB/readme.md b/NXP/MIMXRT1050-EVKB/readme.md
index 12c08bb0..c72b7aa8 100644
--- a/NXP/MIMXRT1050-EVKB/readme.md
+++ b/NXP/MIMXRT1050-EVKB/readme.md
@@ -21,13 +21,11 @@ You will complete the following tasks:
* Install a set of embedded development tools for programming the NXP EVK in C
* Build an image and flash it onto the NXP EVK
-* Use Azure CLI to create and manage an Azure IoT hub that the NXP EVK will securely connect to
-* Use Azure IoT Explorer to view properties, view device telemetry, and call direct commands
+* Use Azure IoT Central to create cloud components, view properties, view device telemetry, and call direct commands.
## Prerequisites
* A PC running Microsoft Windows 10
-* If you don't have an Azure subscription, [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
* [Git](https://git-scm.com/downloads) for cloning the repository
* Hardware
@@ -55,12 +53,9 @@ git clone --recursive https://github.com/azure-rtos/getting-started.git
The cloned repo contains a setup script that installs and configures the required tools. If you installed these tools in another tutorial in the getting started guide, you don't need to do it again.
> Note: The setup script installs the following tools:
-
-> * [GCC](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm): Compile
> * [CMake](https://cmake.org): Build
+> * [ARM GCC](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm): Compile
> * [Termite](https://www.compuphase.com/software_termite.htm): Monitor serial port output for connected devices
-> * [Azure CLI](https://docs.microsoft.com/cli/azure/): Manage Azure resources
-> * [Azure IoT Explorer](https://github.com/Azure/azure-iot-explorer/releases): Cross-platform utility to monitor and manage Azure IoT resources
To install the tools:
@@ -68,8 +63,6 @@ To install the tools:
> *getting-started\tools\get-toolchain.bat*
- After the installation completes, the Azure IoT Explorer opens automatically. Keep the IoT Explorer open, you'll use it in later steps.
-
1. After the installation, open a new console window to recognize the configuration changes made by the setup script. Use this console to complete the remaining programming tasks in the tutorial. You can use Windows CMD, PowerShell, or Git Bash for Windows.
1. Run the following code to confirm that CMake version 3.14 or later is installed.
@@ -77,59 +70,53 @@ To install the tools:
cmake --version
```
-### Create an IoT hub
-
-You can use Azure CLI to create an IoT hub that handles events and messaging for your device.
-
-To create an IoT hub:
+## Create the cloud components
-1. From your console window, run the [az group create](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-create) command to create a resource group. The following command creates a resource group named *MyResourceGroup* in the *centralus* region.
+### Create the IoT Central Application
- > Note: You can optionally set an alternate `location`. To see available locations, run [az account list-locations](https://docs.microsoft.com/cli/azure/account?view=azure-cli-latest#az-account-list-locations). For this tutorial we recommend using `centralus` as in the example CLI command. The IoT Plug and Play feature that you use later in the tutorial, is currently only available in three regions, including `centralus`.
+There are several ways to connect devices to Azure IoT. In this section, you learn how to connect a device by using Azure IoT Central. IoT Central is an IoT application platform that reduces the cost and complexity of creating and managing IoT solutions.
- ```shell
- az group create --name MyResourceGroup --location centralus
- ```
+To create a new application:
+1. From [Azure IoT Central portal](https://apps.azureiotcentral.com/), select **My apps** on the side navigation menu.
+1. Select **+ New application**.
+1. Select **Custom apps**.
+1. Add Application Name and a URL.
+1. Choose the **Free** Pricing plan to activate a 7-day trial.
-1. Run the [az iot hub create](https://docs.microsoft.com/cli/azure/iot/hub?view=azure-cli-latest#az-iot-hub-create) command to create an IoT hub. It might take a few minutes to create an IoT hub.
+ 
- *YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub. An IoT hub name must be globally unique in Azure. This placeholder is used in the rest of this tutorial to represent your unique IoT hub name.
+1. Select **Create**.
+1. After IoT Central provisions the application, it redirects you automatically to the new application dashboard.
- ```shell
- az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
- ```
+ > Note: If you have an existing IoT Central application, you can use it to complete the steps in this article rather than create a new application.
-1. After the IoT hub is created, view the JSON output in the console, and copy the `hostName` value to use in a later step. The `hostName` value looks like the following example:
+### Create a new device
- `{Your IoT hub name}.azure-devices.net`
+In this section, you use the IoT Central application dashboard to create a new device. You will use the connection information for the newly created device to securely connect your physical device in a later section.
-### Register a device
+To create a device:
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Select **+ New** to bring up the **Create a new device** window.
+1. Leave Device template as **Unassigned**.
+1. Fill in the desired Device name and Device ID.
-In this section, you create a new device instance and register it with the IoT hub you created. You will use the connection information for the newly registered device to securely connect your physical device in a later section.
+ 
-To register a device:
+1. Select the **Create** button.
+1. The newly created device will appear in the **All devices** list. Select on the device name to show details.
+1. Select **Connect** in the top right menu bar to display the connection information used to configure the device in the next section.
-1. In your console, run the [az iot hub device-identity create](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub/device-identity?view=azure-cli-latest#ext_azure_iot_az_iot_hub_device_identity_create) command. This creates the simulated device identity.
+ 
- *YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
+1. Note the connection values for the following connection string parameters displayed in **Connect** dialog. You'll add these values to a configuration file in the next step:
- *MyNXPDevice*. You can use this name directly for the device in CLI commands in this tutorial. Optionally, use a different name.
-
- ```shell
- az iot hub device-identity create --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. After the device is created, view the JSON output in the console, and copy the `deviceId` and `primaryKey` values to use in a later step.
+> * `ID scope`
+> * `Device ID`
+> * `Primary key`
## Prepare the device
-Confirm that you have the copied the following values from the JSON output from the previous sections:
-
-> * `hostName`
-> * `deviceId`
-> * `primaryKey`
-
-To connect the NXP EVK to Azure, you'll modify a configuration file for the Azure IoT settings, rebuild the image, and flash the image to the device.
+To connect the NXP EVK to Azure, you'll modify a configuration file for Wi-Fi and Azure IoT settings, rebuild the image, and flash the image to the device.
### Add configuration
@@ -141,9 +128,9 @@ To connect the NXP EVK to Azure, you'll modify a configuration file for the Azur
|Constant name|Value|
|-------------|-----|
- |`IOT_HUB_HOSTNAME` |{*Your Iot hub hostName value*}|
- |`IOT_HUB_DEVICE_ID` |{*Your deviceID value*}|
- |`IOT_DEVICE_SAS_KEY` |{*Your primaryKey value*}|
+ |`IOT_DPS_ID_SCOPE` |{*Your ID scope value*}|
+ |`IOT_DPS_REGISTRATION_ID` |{*Your Device ID value*}|
+ |`IOT_DEVICE_SAS_KEY` |{*Your Primary key value*}|
1. Save and close the file.
@@ -153,7 +140,7 @@ In your console or in File Explorer, run the script *rebuild.bat* at the followi
> *getting-started\NXP\MIMXRT1050-EVKB\tools\rebuild.bat*
-After the build completes, confirm that a binary file was created in the following path:
+After the build completes, confirm that the binary file was created in the following path:
> *getting-started\NXP\MIMXRT1050-EVKB\build\app\mimxrt1050_azure_iot.bin*
@@ -164,12 +151,13 @@ After the build completes, confirm that a binary file was created in the followi

1. Connect the Micro USB cable to the Micro USB port on the NXP EVK, and then connect it to your computer. After the device powers up, a solid green LED shows the power status.
-1. In File Explorer, find the NXP EVK device connected to your computer.
-1. Copy the image file *mimxrt1050_azure_iot.bin* that you created in the previous section, and paste it into the root folder of the NXP EVK. The flashing process starts automatically.
-
- > Note: During the flashing process, a red LED blinks rapidly on the NXP EVK. The process completes in a few seconds without further notification.
-
1. Use the Ethernet cable to connect the NXP EVK to an Ethernet port.
+1. In File Explorer, find the binary file that you created in the previous section.
+1. Copy the binary file *mimxrt1050_azure_iot.bin*
+1. In File Explorer, find the NXP EVK device connected to your computer. The device appears as a drive on your system with the drive label **RT1050-EVK**.
+1. Paste the binary file into the root folder of the NXP EVK. Flashing starts automatically and completes in a few seconds.
+
+ > Note: During the flashing process, a red LED blinks rapidly on the NXP EVK.
### Confirm device connection details
@@ -183,9 +171,8 @@ You can use the **Termite** utility to monitor communication and confirm that yo
* **Port**: The port that your NXP EVK is connected to. If there are multiple port options in the dropdown, you can find the correct port to use. Open Windows **Device Manager**, and view **Ports** to identify which port to use.

-
1. Select OK.
-1. Press the **Reset** button on the device.
+1. Press the **Reset** button on the device. The button is located near the Micro USB connector.
1. In the **Termite** console, check the following checkpoint values to confirm that the device is initialized and connected to Azure IoT.
```output
@@ -225,129 +212,51 @@ You can use the **Termite** utility to monitor communication and confirm that yo
Keep Termite open to monitor device output in the following steps.
-## View device properties
-
-> **Note**: From this point in the tutorial, you can continue these steps, or you can optionally follow the same steps using the IoT Plug and Play preview. IoT Plug and Play provides a standard device model that lets a compatible device advertise its capabilities to an application. This approach simplifies the process of adding, configuring, and interacting with devices. To try IoT Plug and Play with your device, see [Using IoT Plug and Play with Azure RTOS](../../docs/plugandplay.md).
-
-You can use the Azure IoT Explorer to view and manage the properties of your devices. In the following steps, you'll add a connection to your IoT hub in IoT Explorer. With the connection, you can view properties for devices associated with the IoT hub. Optionally, you can perform the same task using Azure CLI.
-
-To add a connection to your IoT hub:
-
-1. In your console window, run the [az iot hub show-connection-string](https://docs.microsoft.com/cli/azure/iot/hub?view=azure-cli-latest#az_iot_hub_show_connection_string) command to get the connection string for your IoT hub.
-
- ```shell
- az iot hub show-connection-string --name {YourIoTHubName}
- ```
-
-1. Copy the connection string without the surrounding quotation characters.
-1. In Azure IoT Explorer, select **IoT hubs > Add connection**.
-1. Paste the connection string into the **Connection string** box.
-1. Select **Save**.
-
- 
-
-If the connection succeeds, the Azure IoT Explorer switches to a **Devices** view and lists your device.
-
-To view device properties using Azure IoT Explorer:
-
-1. Select the link for your device identity. IoT Explorer displays details for the device.
+## Verify the device status
- 
+To view the device status in IoT Central portal:
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Check the **Device status** of the device is updated to **Provisioned**.
+1. Check the **Device template** of the device has updated to **Getting Stared Guide**.
-1. Inspect the properties for your device in the **Device identity** panel.
-1. Optionally, select the **Device twin** panel and inspect additional device properties.
+ 
-To use Azure CLI to view device properties:
+> Note: If the **Device template** of the device remains as **Unassigned**, select the device and select **Migrate** to the "Getting Started Guide" template in order to see the graphic visual data representation.
-1. Run the [az iot hub device-identity show](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub/device-identity?view=azure-cli-latest#ext_azure_iot_az_iot_hub_device_identity_show) command.
-
- ```shell
- az iot hub device-identity show --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. Inspect the properties for your device in the console output.
+
## View telemetry
-With Azure IoT Explorer, you can view the flow of telemetry from your device to the cloud. Optionally, you can perform the same task using Azure CLI.
+With IoT Central, you can view the flow of telemetry from your device to the cloud.
-To view telemetry in Azure IoT Explorer:
+To view telemetry in IoT Central portal:
-1. In IoT Explorer select **Telemetry**. Confirm that **Use built-in event hub** is set to *Yes*.
-1. Select **Start**.
-1. View the telemetry as the device sends messages to the cloud.
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Select the device from the device list.
+1. View the telemetry as the device sends messages to the cloud in the **Overview** tab.
- 
+ 
- Note: You can also monitor telemetry from the device by using the Termite terminal.
-
-1. Select **Stop** to end receiving events.
-
-To use Azure CLI to view device telemetry:
-
-1. In your CLI console, run the [az iot hub monitor-events](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub?view=azure-cli-latest#ext_azure_iot_az_iot_hub_monitor_events) command. Use the names that you created previously in Azure IoT for your device and IoT hub.
-
- ```shell
- az iot hub monitor-events --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. View the JSON output in the console.
-
- ```json
- {
- "event": {
- "origin": "MyNXPDevice",
- "payload": "{\"temperature\": 25}"
- }
- }
- ```
-
-1. Select CTRL+C to end monitoring.
+> Note: You can also monitor telemetry from the device by using the Termite terminal.
## Call a direct method on the device
-You can also use Azure IoT Explorer to call a direct method that you have implemented on your device. Direct methods have a name, and can optionally have a JSON payload, configurable connection, and method timeout. In this section, you call a method that enables you to turn an LED on or off. Optionally, you can perform the same task using Azure CLI.
-
-To call a method in Azure IoT Explorer:
+You can also use IoT Central to call a direct method that you have implemented on your device. Direct methods have a name, and can optionally have a JSON payload, configurable connection, and method timeout. In this section, you call a method that enables you to turn an LED on or off.
-1. Select **Direct method**.
-1. In the **Direct method** panel add the following values for the method name and payload. The payload value *true* indicates to turn the LED on.
- * **Method name**: `setLedState`
- * **Payload**: `true`
-1. Select **Invoke method**. Azure IoT Explorer should confirm a successful response. There will be *no change* to the devkit as there isn't an available LED to toggle.
+To call a method in IoT Central portal:
- 
-1. Change **Payload** to *false*, and again select **Invoke method**.
-1. You can view the output in Termite to monitor the status of the methods.
+1. Select **Command** tab from the device page.
+1. Select **State** and select **Run**. There will be no change to the devkit as there isn't an available LED to toggle.
-To use Azure CLI to call a method:
+ 
+1. Unselect **State** and select **Run**. You can view the output in Termite to monitor the status of the methods.
-1. Run the [az iot hub invoke-device-method](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub?view=azure-cli-latest#ext_azure_iot_az_iot_hub_invoke_device_method) command, and specify the method name and payload. For this method, setting `method-payload` to `true` turns the LED on, and setting it to `false` turns it off.
+## View device information
-
-
- az iot hub invoke-device-method --device-id MyNXPDevice --method-name setLedState --method-payload true --hub-name {YourIoTHubName}
-
+You can view the device information from IoT Central.
- The CLI console shows the status of your method call on the device, where `200` indicates success.
-
- ```json
- {
- "payload": {},
- "status": 200
- }
- ```
-
-1. Check your device to confirm the LED state.
-
-1. View the Termite terminal to confirm the output messages:
-
- ```output
- Received direct method call: setLedState
- Payload: true
- LED is turned ON
- Device twin property sent: {"ledState":true}
- ```
+Select **About** tab from the device page.
+
## Debugging
@@ -355,28 +264,20 @@ For debugging the application, see [Debugging with Visual Studio Code](../../doc
## Clean up resources
-If you no longer need the Azure resources created in this tutorial, you can use the Azure CLI to delete the resource group and all the resources you created for this tutorial. Optionally, you can use Azure IoT Explorer to delete individual resources including devices and IoT hubs.
-
-If you continue to another tutorial in this Getting Started guide, you can keep the resources you've already created and reuse them.
+If you no longer need the Azure resources created in this tutorial, you can delete them from the IoT Central portal. Optionally, if you continue to another tutorial in this Getting Started guide, you can keep the resources you've already created and reuse them.
-> **Important**: Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you do not accidentally delete the wrong resource group or resources.
+To keep the Azure IoT Central sample application but remove only specific devices:
+1. Select the **Devices** tab for your application.
+1. Select the device from the device list.
+1. Select **Delete**.
-To delete a resource group by name:
-1. Run the [az group delete](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-delete) command. This removes the resource group, the IoT Hub, and the device registration you created.
-
- ```shell
- az group delete --name MyResourceGroup
- ```
-
-1. Run the [az group list](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-list) command to confirm the resource group is deleted.
-
- ```shell
- az group list
- ```
+To remove the entire Azure IoT Central sample application and all its devices and resources:
+1. Select **Administration** > **Your application**.
+1. Select **Delete**.
## Next Steps
-In this tutorial you built a custom image that contains Azure RTOS sample code, and then flashed the image to the NXP EVK device. You also used the Azure CLI to create Azure resources, connect the NXP EVK securely to Azure, view telemetry, and send messages.
+In this tutorial you built a custom image that contains Azure RTOS sample code, and then flashed the image to the NXP EVK device. You also used the IoT Central portal to create Azure resources, connect the NXP EVK securely to Azure, view telemetry, and send messages.
* For device developers, the suggested next step is to see the other tutorials in the series [Getting started with Azure RTOS](https://go.microsoft.com/fwlink/p/?linkid=2129824).
* If you have issues getting your device to initialize or connect after following the steps in this guide, see [Troubleshooting](../../docs/troubleshooting.md).
diff --git a/NXP/MIMXRT1060-EVK/app/azure_config.h b/NXP/MIMXRT1060-EVK/app/azure_config.h
index 45fba7c8..c06956c6 100644
--- a/NXP/MIMXRT1060-EVK/app/azure_config.h
+++ b/NXP/MIMXRT1060-EVK/app/azure_config.h
@@ -5,16 +5,24 @@
#define _AZURE_CONFIG_H
// ----------------------------------------------------------------------------
-// Azure IoT Hub Connection Transport
-// Define to use the legacy MQTT connection, else Azure RTOS SDK for Azure IoT
+// Azure IoT Dynamic Provisioning Service
+// Define this to use the DPS service, otherwise direct IoT Hub
// ----------------------------------------------------------------------------
-//#define ENABLE_LEGACY_MQTT
+#define ENABLE_DPS
// ----------------------------------------------------------------------------
-// Azure IoT Dynamic Provisioning Service
-// Define this to use the DPS service, otherwise direct IoT Hub
+// Azure IoT DPS connection config
+// IOT_DPS_ID_SCOPE: The DPS ID Scope
+// IOT_DPS_REGISTRATION_ID: The DPS device Registration Id
+// ----------------------------------------------------------------------------
+#define IOT_DPS_ID_SCOPE ""
+#define IOT_DPS_REGISTRATION_ID ""
+
+// ----------------------------------------------------------------------------
+// Azure IoT Hub Connection Transport
+// Define to use the legacy MQTT connection, else Azure RTOS SDK for Azure IoT
// ----------------------------------------------------------------------------
-//#define ENABLE_DPS
+//#define ENABLE_LEGACY_MQTT
// ----------------------------------------------------------------------------
// Azure IoT DPS Self-Signed X509Certificate
@@ -27,16 +35,8 @@
// IOT_HUB_HOSTNAME: The Azure IoT Hub hostname
// IOT_HUB_DEVICE_ID: The Azure IoT Hub device id
// ----------------------------------------------------------------------------
-#define IOT_HUB_HOSTNAME ""
-#define IOT_HUB_DEVICE_ID ""
-
-// ----------------------------------------------------------------------------
-// Azure IoT DPS connection config
-// IOT_DPS_ID_SCOPE: The DPS ID Scope
-// IOT_DPS_REGISTRATION_ID: The DPS device Registration Id
-// ----------------------------------------------------------------------------
-#define IOT_DPS_ID_SCOPE ""
-#define IOT_DPS_REGISTRATION_ID ""
+//#define IOT_HUB_HOSTNAME ""
+//#define IOT_HUB_DEVICE_ID ""
// ----------------------------------------------------------------------------
// Azure IoT device SAS key
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-about.png b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-about.png
new file mode 100644
index 00000000..ed5cf180
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-about.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-telemetry.png b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-telemetry.png
new file mode 100644
index 00000000..c791300c
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-telemetry.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-template-migrate.png b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-template-migrate.png
new file mode 100644
index 00000000..55cdab72
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-template-migrate.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-view-status.png b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-view-status.png
new file mode 100644
index 00000000..82bcda5e
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/azure-iot-central-device-view-status.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-central-invoke-method.png b/NXP/MIMXRT1060-EVK/media/azure-iot-central-invoke-method.png
new file mode 100644
index 00000000..2209432d
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/azure-iot-central-invoke-method.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-create-connection.png b/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-create-connection.png
deleted file mode 100644
index fe7b8fd7..00000000
Binary files a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-create-connection.png and /dev/null differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-identity.png b/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-identity.png
deleted file mode 100644
index 2673120d..00000000
Binary files a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-identity.png and /dev/null differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-telemetry.png b/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-telemetry.png
deleted file mode 100644
index aa246428..00000000
Binary files a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-device-telemetry.png and /dev/null differ
diff --git a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-invoke-method.png b/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-invoke-method.png
deleted file mode 100644
index 29026b79..00000000
Binary files a/NXP/MIMXRT1060-EVK/media/azure-iot-explorer-invoke-method.png and /dev/null differ
diff --git a/NXP/MIMXRT1060-EVK/media/iotcentralcreate-custom.png b/NXP/MIMXRT1060-EVK/media/iotcentralcreate-custom.png
new file mode 100644
index 00000000..9617ab8b
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/iotcentralcreate-custom.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/iotcentralcreate-device.png b/NXP/MIMXRT1060-EVK/media/iotcentralcreate-device.png
new file mode 100644
index 00000000..a05d2764
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/iotcentralcreate-device.png differ
diff --git a/NXP/MIMXRT1060-EVK/media/iotcentraldevice-connection-info.png b/NXP/MIMXRT1060-EVK/media/iotcentraldevice-connection-info.png
new file mode 100644
index 00000000..80e88b2c
Binary files /dev/null and b/NXP/MIMXRT1060-EVK/media/iotcentraldevice-connection-info.png differ
diff --git a/NXP/MIMXRT1060-EVK/readme.md b/NXP/MIMXRT1060-EVK/readme.md
index 04d55bb9..fb91346a 100644
--- a/NXP/MIMXRT1060-EVK/readme.md
+++ b/NXP/MIMXRT1060-EVK/readme.md
@@ -21,13 +21,11 @@ You will complete the following tasks:
* Install a set of embedded development tools for programming the NXP EVK in C
* Build an image and flash it onto the NXP EVK
-* Use Azure CLI to create and manage an Azure IoT hub that the NXP EVK will securely connect to
-* Use Azure IoT Explorer to view properties, view device telemetry, and call direct commands
+* Use Azure IoT Central to create cloud components, view properties, view device telemetry, and call direct commands.
## Prerequisites
* A PC running Microsoft Windows 10
-* If you don't have an Azure subscription, [create one for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
* [Git](https://git-scm.com/downloads) for cloning the repository
* Hardware
@@ -55,12 +53,9 @@ git clone --recursive https://github.com/azure-rtos/getting-started.git
The cloned repo contains a setup script that installs and configures the required tools. If you installed these tools in another tutorial in the getting started guide, you don't need to do it again.
> Note: The setup script installs the following tools:
-
-> * [GCC](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm): Compile
> * [CMake](https://cmake.org): Build
+> * [ARM GCC](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm): Compile
> * [Termite](https://www.compuphase.com/software_termite.htm): Monitor serial port output for connected devices
-> * [Azure CLI](https://docs.microsoft.com/cli/azure/): Manage Azure resources
-> * [Azure IoT Explorer](https://github.com/Azure/azure-iot-explorer/releases): Cross-platform utility to monitor and manage Azure IoT resources
To install the tools:
@@ -68,8 +63,6 @@ To install the tools:
> *getting-started\tools\get-toolchain.bat*
- After the installation completes, the Azure IoT Explorer opens automatically. Keep the IoT Explorer open, you'll use it in later steps.
-
1. After the installation, open a new console window to recognize the configuration changes made by the setup script. Use this console to complete the remaining programming tasks in the tutorial. You can use Windows CMD, PowerShell, or Git Bash for Windows.
1. Run the following code to confirm that CMake version 3.14 or later is installed.
@@ -77,59 +70,53 @@ To install the tools:
cmake --version
```
-### Create an IoT hub
-
-You can use Azure CLI to create an IoT hub that handles events and messaging for your device.
-
-To create an IoT hub:
+## Create the cloud components
-1. From your console window, run the [az group create](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-create) command to create a resource group. The following command creates a resource group named *MyResourceGroup* in the *centralus* region.
+### Create the IoT Central Application
- > Note: You can optionally set an alternate `location`. To see available locations, run [az account list-locations](https://docs.microsoft.com/cli/azure/account?view=azure-cli-latest#az-account-list-locations). For this tutorial we recommend using `centralus` as in the example CLI command. The IoT Plug and Play feature that you use later in the tutorial, is currently only available in three regions, including `centralus`.
+There are several ways to connect devices to Azure IoT. In this section, you learn how to connect a device by using Azure IoT Central. IoT Central is an IoT application platform that reduces the cost and complexity of creating and managing IoT solutions.
- ```shell
- az group create --name MyResourceGroup --location centralus
- ```
+To create a new application:
+1. From [Azure IoT Central portal](https://apps.azureiotcentral.com/), select **My apps** on the side navigation menu.
+1. Select **+ New application**.
+1. Select **Custom apps**.
+1. Add Application Name and a URL.
+1. Choose the **Free** Pricing plan to activate a 7-day trial.
-1. Run the [az iot hub create](https://docs.microsoft.com/cli/azure/iot/hub?view=azure-cli-latest#az-iot-hub-create) command to create an IoT hub. It might take a few minutes to create an IoT hub.
+ 
- *YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub. An IoT hub name must be globally unique in Azure. This placeholder is used in the rest of this tutorial to represent your unique IoT hub name.
+1. Select **Create**.
+1. After IoT Central provisions the application, it redirects you automatically to the new application dashboard.
- ```shell
- az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
- ```
+ > Note: If you have an existing IoT Central application, you can use it to complete the steps in this article rather than create a new application.
-1. After the IoT hub is created, view the JSON output in the console, and copy the `hostName` value to use in a later step. The `hostName` value looks like the following example:
+### Create a new device
- `{Your IoT hub name}.azure-devices.net`
+In this section, you use the IoT Central application dashboard to create a new device. You will use the connection information for the newly created device to securely connect your physical device in a later section.
-### Register a device
+To create a device:
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Select **+ New** to bring up the **Create a new device** window.
+1. Leave Device template as **Unassigned**.
+1. Fill in the desired Device name and Device ID.
-In this section, you create a new device instance and register it with the IoT hub you created. You will use the connection information for the newly registered device to securely connect your physical device in a later section.
+ 
-To register a device:
+1. Select the **Create** button.
+1. The newly created device will appear in the **All devices** list. Select on the device name to show details.
+1. Select **Connect** in the top right menu bar to display the connection information used to configure the device in the next section.
-1. In your console, run the [az iot hub device-identity create](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub/device-identity?view=azure-cli-latest#ext_azure_iot_az_iot_hub_device_identity_create) command. This creates the simulated device identity.
+ 
- *YourIotHubName*. Replace this placeholder below with the name you chose for your IoT hub.
+1. Note the connection values for the following connection string parameters displayed in **Connect** dialog. You'll add these values to a configuration file in the next step:
- *MyNXPDevice*. You can use this name directly for the device in CLI commands in this tutorial. Optionally, use a different name.
-
- ```shell
- az iot hub device-identity create --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. After the device is created, view the JSON output in the console, and copy the `deviceId` and `primaryKey` values to use in a later step.
+> * `ID scope`
+> * `Device ID`
+> * `Primary key`
## Prepare the device
-Confirm that you have the copied the following values from the JSON output from the previous sections:
-
-> * `hostName`
-> * `deviceId`
-> * `primaryKey`
-
-To connect the MXCHIP DevKit to Azure, you'll modify a configuration file for Wi-Fi and Azure IoT settings, rebuild the image, and flash the image to the device.
+To connect the NXP EVK to Azure, you'll modify a configuration file for Wi-Fi and Azure IoT settings, rebuild the image, and flash the image to the device.
### Add configuration
@@ -141,9 +128,9 @@ To connect the MXCHIP DevKit to Azure, you'll modify a configuration file for Wi
|Constant name|Value|
|-------------|-----|
- |`IOT_HUB_HOSTNAME` |{*Your Iot hub hostName value*}|
- |`IOT_HUB_DEVICE_ID` |{*Your deviceID value*}|
- |`IOT_DEVICE_SAS_KEY` |{*Your primaryKey value*}|
+ |`IOT_DPS_ID_SCOPE` |{*Your ID scope value*}|
+ |`IOT_DPS_REGISTRATION_ID` |{*Your Device ID value*}|
+ |`IOT_DEVICE_SAS_KEY` |{*Your Primary key value*}|
1. Save and close the file.
@@ -153,22 +140,24 @@ In your console or in File Explorer, run the script *rebuild.bat* at the followi
> *getting-started\NXP\MIMXRT1060-EVK\tools\rebuild.bat*
-After the build completes, confirm that a binary file was created in the following path:
+After the build completes, confirm that the binary file was created in the following path:
> *getting-started\NXP\MIMXRT1060-EVK\build\app\mimxrt1060_azure_iot.bin*
### Flash the image
-1. On the NXP EVK, locate the **Reset** button, the micro USB port, and the ethernet port. You use these components in the following steps.
+1. On the NXP EVK, locate the **Reset** button, the Micro USB port, and the Ethernet port. You use these components in the following steps.

-1. Connect the Micro USB cable to the micro USB port on the NXP EVK, and then connect it to your computer. After the device powers up, a solid green LED shows the power status.
-1. In File Explorer, find the NXP EVK device connected to your computer.
-1. Copy the image file *mimxrt1060_azure_iot.bin* that you created in the previous section, and paste it into the root folder of the NXP EVK. The flashing process starts automatically.
-
- > Note: During the flashing process, a red LED blinks rapidly on the NXP EVK. The process completes in a few seconds without further notification.
+1. Connect the Micro USB cable to the Micro USB port on the NXP EVK, and then connect it to your computer. After the device powers up, a solid green LED shows the power status.
1. Use the Ethernet cable to connect the NXP EVK to an Ethernet port.
+1. In File Explorer, find the binary file that you created in the previous section.
+1. Copy the binary file *mimxrt1060_azure_iot.bin*
+1. In File Explorer, find the NXP EVK device connected to your computer. The device appears as a drive on your system with the drive label **RT1050-EVK**.
+1. Paste the binary file into the root folder of the NXP EVK. Flashing starts automatically and completes in a few seconds.
+
+ > Note: During the flashing process, a red LED blinks rapidly on the NXP EVK.
### Confirm device connection details
@@ -182,9 +171,8 @@ You can use the **Termite** utility to monitor communication and confirm that yo
* **Port**: The port that your NXP EVK is connected to. If there are multiple port options in the dropdown, you can find the correct port to use. Open Windows **Device Manager**, and view **Ports** to identify which port to use.

-
1. Select OK.
-1. Press the **Reset** button on the device.
+1. Press the **Reset** button on the device. The button is located near the Micro USB connector.
1. In the **Termite** console, check the following checkpoint values to confirm that the device is initialized and connected to Azure IoT.
```output
@@ -220,134 +208,55 @@ You can use the **Termite** utility to monitor communication and confirm that yo
SUCCESS: Azure IoT Hub client initialized
Starting Main loop
-
```
Keep Termite open to monitor device output in the following steps.
-## View device properties
-
-> **Note**: From this point in the tutorial, you can continue these steps, or you can optionally follow the same steps using the IoT Plug and Play preview. IoT Plug and Play provides a standard device model that lets a compatible device advertise its capabilities to an application. This approach simplifies the process of adding, configuring, and interacting with devices. To try IoT Plug and Play with your device, see [Using IoT Plug and Play with Azure RTOS](../../docs/plugandplay.md).
-
-You can use the Azure IoT Explorer to view and manage the properties of your devices. In the following steps, you'll add a connection to your IoT hub in IoT Explorer. With the connection, you can view properties for devices associated with the IoT hub. Optionally, you can perform the same task using Azure CLI.
-
-To add a connection to your IoT hub:
-
-1. In your console window, run the [az iot hub show-connection-string](https://docs.microsoft.com/cli/azure/iot/hub?view=azure-cli-latest#az_iot_hub_show_connection_string) command to get the connection string for your IoT hub.
-
- ```shell
- az iot hub show-connection-string --name {YourIoTHubName}
- ```
-
-1. Copy the connection string without the surrounding quotation characters.
-1. In Azure IoT Explorer, select **IoT hubs > Add connection**.
-1. Paste the connection string into the **Connection string** box.
-1. Select **Save**.
-
- 
-
-If the connection succeeds, the Azure IoT Explorer switches to a **Devices** view and lists your device.
-
-To view device properties using Azure IoT Explorer:
-
-1. Select the link for your device identity. IoT Explorer displays details for the device.
+## Verify the device status
- 
+To view the device status in IoT Central portal:
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Check the **Device status** of the device is updated to **Provisioned**.
+1. Check the **Device template** of the device has updated to **Getting Stared Guide**.
-1. Inspect the properties for your device in the **Device identity** panel.
-1. Optionally, select the **Device twin** panel and inspect additional device properties.
+ 
-To use Azure CLI to view device properties:
+> Note: If the **Device template** of the device remains as **Unassigned**, select the device and select **Migrate** to the "Getting Started Guide" template in order to see the graphic visual data representation.
-1. Run the [az iot hub device-identity show](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub/device-identity?view=azure-cli-latest#ext_azure_iot_az_iot_hub_device_identity_show) command.
-
- ```shell
- az iot hub device-identity show --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. Inspect the properties for your device in the console output.
+
## View telemetry
-With Azure IoT Explorer, you can view the flow of telemetry from your device to the cloud. Optionally, you can perform the same task using Azure CLI.
+With IoT Central, you can view the flow of telemetry from your device to the cloud.
-To view telemetry in Azure IoT Explorer:
+To view telemetry in IoT Central portal:
-1. In IoT Explorer select **Telemetry**. Confirm that **Use built-in event hub** is set to *Yes*.
-1. Select **Start**.
-1. View the telemetry as the device sends messages to the cloud.
+1. From the application dashboard, select **Devices** on the side navigation menu.
+1. Select the device from the device list.
+1. View the telemetry as the device sends messages to the cloud in the **Overview** tab.
- 
+ 
- Note: You can also monitor telemetry from the device by using the Termite terminal.
-
-1. Select **Stop** to end receiving events.
-
-To use Azure CLI to view device telemetry:
-
-1. In your CLI console, run the [az iot hub monitor-events](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub?view=azure-cli-latest#ext_azure_iot_az_iot_hub_monitor_events) command. Use the names that you created previously in Azure IoT for your device and IoT hub.
-
- ```shell
- az iot hub monitor-events --device-id MyNXPDevice --hub-name {YourIoTHubName}
- ```
-
-1. View the JSON output in the console.
-
- ```json
- {
- "event": {
- "origin": "MyNXPDevice",
- "payload": "{\"temperature\": 25}"
- }
- }
- ```
-
-1. Select CTRL+C to end monitoring.
+> Note: You can also monitor telemetry from the device by using the Termite terminal.
## Call a direct method on the device
-You can also use Azure IoT Explorer to call a direct method that you have implemented on your device. Direct methods have a name, and can optionally have a JSON payload, configurable connection, and method timeout. In this section, you call a method that enables you to turn an LED on or off. Optionally, you can perform the same task using Azure CLI.
-
-To call a method in Azure IoT Explorer:
+You can also use IoT Central to call a direct method that you have implemented on your device. Direct methods have a name, and can optionally have a JSON payload, configurable connection, and method timeout. In this section, you call a method that enables you to turn an LED on or off.
-1. Select **Direct method**.
-1. In the **Direct method** panel add the following values for the method name and payload. The payload value *true* indicates to turn the LED on.
- * **Method name**: `setLedState`
- * **Payload**: `true`
-1. Select **Invoke method**. Azure IoT Explorer should confirm a successful response. There will be *no change* to the devkit as there isn't an available LED to toggle.
+To call a method in IoT Central portal:
- 
-1. Change **Payload** to *false*, and again select **Invoke method**.
-1. You can view the output in Termite to monitor the status of the methods.
+1. Select **Command** tab from the device page.
+1. Select **State** and select **Run**. There will be no change to the devkit as there isn't an available LED to toggle.
-To use Azure CLI to call a method:
+ 
+1. Unselect **State** and select **Run**. You can view the output in Termite to monitor the status of the methods.
-1. Run the [az iot hub invoke-device-method](https://docs.microsoft.com/cli/azure/ext/azure-iot/iot/hub?view=azure-cli-latest#ext_azure_iot_az_iot_hub_invoke_device_method) command, and specify the method name and payload. For this method, setting `method-payload` to `true` turns the LED on, and setting it to `false` turns it off.
+## View device information
-
-
- az iot hub invoke-device-method --device-id MyNXPDevice --method-name setLedState --method-payload true --hub-name {YourIoTHubName}
-
+You can view the device information from IoT Central.
- The CLI console shows the status of your method call on the device, where `200` indicates success.
-
- ```json
- {
- "payload": {},
- "status": 200
- }
- ```
-
-1. Check your device to confirm the LED state.
-
-1. View the Termite terminal to confirm the output messages:
-
- ```output
- Received direct method call: setLedState
- Payload: true
- LED is turned ON
- Device twin property sent: {"ledState":true}
- ```
+Select **About** tab from the device page.
+
## Debugging
@@ -355,28 +264,20 @@ For debugging the application, see [Debugging with Visual Studio Code](../../doc
## Clean up resources
-If you no longer need the Azure resources created in this tutorial, you can use the Azure CLI to delete the resource group and all the resources you created for this tutorial. Optionally, you can use Azure IoT Explorer to delete individual resources including devices and IoT hubs.
-
-If you continue to another tutorial in this Getting Started guide, you can keep the resources you've already created and reuse them.
+If you no longer need the Azure resources created in this tutorial, you can delete them from the IoT Central portal. Optionally, if you continue to another tutorial in this Getting Started guide, you can keep the resources you've already created and reuse them.
-> **Important**: Deleting a resource group is irreversible. The resource group and all the resources contained in it are permanently deleted. Make sure that you do not accidentally delete the wrong resource group or resources.
+To keep the Azure IoT Central sample application but remove only specific devices:
+1. Select the **Devices** tab for your application.
+1. Select the device from the device list.
+1. Select **Delete**.
-To delete a resource group by name:
-1. Run the [az group delete](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-delete) command. This removes the resource group, the IoT Hub, and the device registration you created.
-
- ```shell
- az group delete --name MyResourceGroup
- ```
-
-1. Run the [az group list](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az-group-list) command to confirm the resource group is deleted.
-
- ```shell
- az group list
- ```
+To remove the entire Azure IoT Central sample application and all its devices and resources:
+1. Select **Administration** > **Your application**.
+1. Select **Delete**.
## Next Steps
-In this tutorial you built a custom image that contains Azure RTOS sample code, and then flashed the image to the NXP EVK device. You also used the Azure CLI to create Azure resources, connect the NXP EVK securely to Azure, view telemetry, and send messages.
+In this tutorial you built a custom image that contains Azure RTOS sample code, and then flashed the image to the NXP EVK device. You also used the IoT Central portal to create Azure resources, connect the NXP EVK securely to Azure, view telemetry, and send messages.
* For device developers, the suggested next step is to see the other tutorials in the series [Getting started with Azure RTOS](https://go.microsoft.com/fwlink/p/?linkid=2129824).
* If you have issues getting your device to initialize or connect after following the steps in this guide, see [Troubleshooting](../../docs/troubleshooting.md).
diff --git a/STMicroelectronics/STM32L4_L4+/readme.md b/STMicroelectronics/STM32L4_L4+/readme.md
index 5d0b87e9..be53b04b 100644
--- a/STMicroelectronics/STM32L4_L4+/readme.md
+++ b/STMicroelectronics/STM32L4_L4+/readme.md
@@ -156,11 +156,11 @@ After the build completes, confirm that two binary files were created. There's a
### Flash the image
-1. On the STM DevKit MCU, locate the **Reset** button, the micro USB port which is labeled **USB STLink**, and the board part number. You will refer to these items in the next steps. All of them are highlighted in the following picture:
+1. On the STM DevKit MCU, locate the **Reset** button, the Micro USB port which is labeled **USB STLink**, and the board part number. You will refer to these items in the next steps. All of them are highlighted in the following picture:

-1. Connect the micro USB cable to the **USB STLINK** port on the STM DevKit, and then connect it to your computer.
+1. Connect the Micro USB cable to the **USB STLINK** port on the STM DevKit, and then connect it to your computer.
> Note: For detailed setup information about the STM DevKit, see the instructions on the packaging, or see [B-L475E-IOT01A Resources](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html#resource) / [B-L4S5I-IOT01A Resources](https://www.st.com/en/evaluation-tools/b-l4s5i-iot01a.html#resource).
1. In File Explorer, find the binary files that you created in the previous section.
diff --git a/tools/get-toolchain.ps1 b/tools/get-toolchain.ps1
index b3ccb496..4ea47725 100644
--- a/tools/get-toolchain.ps1
+++ b/tools/get-toolchain.ps1
@@ -10,81 +10,50 @@ $gccarm_file = 'gcc-arm-none-eabi-10-2020-q4-major-win32.exe'
$gccarm_name = 'GCC-ARM 10-2020-q4-major'
$gccarm_hash = '9754D95905288AFC787837C3B211A3E502A9EDE8A5F544CFD369C30FEA509CA5'
-$cmake_path = 'https://github.com/Kitware/CMake/releases/download/v3.19.2'
-$cmake_file = 'cmake-3.19.2-win32-x86.msi'
-$cmake_name = 'CMake v3.19.2'
-$cmake_hash = '7ABFEA6278B7BF3F6EB1D3B13F9DF79FD675D274AC88A680831B81DF26C92611'
+$cmake_path = 'https://github.com/Kitware/CMake/releases/download/v3.19.4'
+$cmake_file = 'cmake-3.19.4-win32-x86.msi'
+$cmake_name = 'CMake v3.19.4'
+$cmake_hash = '2DCE32E37C161441A899735C3398EA21AFF2745E2F3DB516CEB0085817A657ED'
$termite_path = 'https://www.compuphase.com/software'
$termite_file = 'termite-3.4.exe'
$termite_name = 'Termite v3.4'
$termite_hash = 'CA440B6C7F6EAA812BA5F8BF42AED86E02022CA50A1C72585168C9B671D0FE19'
-$azure_cli_path = 'https://azurecliprod.blob.core.windows.net/msi'
-$azure_cli_file = 'azure-cli-2.17.1.msi'
-$azure_cli_name = 'Azure CLI v2.17.1'
-$azure_cli_hash = '414B5DC8030A6E1755650CA4966417735E42D1FCC89FE9D2E41C5720BC88AEA3'
-
-$iot_explorer_path = 'https://github.com/Azure/azure-iot-explorer/releases/download/v0.13.2'
-$iot_explorer_file = 'Azure.IoT.Explorer.preview.0.13.2.msi'
-$iot_explorer_name = 'Azure IoT Explorer v0.13.2'
-$iot_explorer_hash = '6B3931F96EFA7622DB8E123E91FFA395584C75E6AC28D08A37492AE30E212F6F'
-
echo "`nDownloading packages..."
$wc = New-Object System.Net.WebClient
$wc.Headers['User-Agent'] = "Mozilla/4.0"
-echo "(1/5) $gccarm_name"
+echo "(1/3) $gccarm_name"
if ( -not (Test-Path "$env:TEMP\$gccarm_file") -Or ((Get-FileHash "$env:TEMP\$gccarm_file").Hash -ne $gccarm_hash))
{
$wc.DownloadFile("$gccarm_path\$gccarm_file", "$env:TEMP\$gccarm_file")
}
-echo "(2/5) $cmake_name"
+echo "(2/3) $cmake_name"
if ( -not (Test-Path "$env:TEMP\$cmake_file") -Or ((Get-FileHash "$env:TEMP\$cmake_file").Hash -ne $cmake_hash))
{
$wc.DownloadFile("$cmake_path\$cmake_file", "$env:TEMP\$cmake_file")
}
-echo "(3/5) $termite_name"
+echo "(3/3) $termite_name"
if ( -not (Test-Path "$env:TEMP\$termite_file") -Or ((Get-FileHash "$env:TEMP\$termite_file").Hash -ne $termite_hash))
{
$wc.DownloadFile("$termite_path\$termite_file", "$env:TEMP\$termite_file")
}
-echo "(4/5) $azure_cli_name"
-if ( -not (Test-Path "$env:TEMP\$azure_cli_file") -Or ((Get-FileHash "$env:TEMP\$azure_cli_file").Hash -ne $azure_cli_hash))
-{
- $wc.DownloadFile("$azure_cli_path\$azure_cli_file", "$env:TEMP\$azure_cli_file")
-}
-
-echo "(5/5) $iot_explorer_name"
-if ( -not (Test-Path "$env:TEMP\$iot_explorer_file") -Or ((Get-FileHash "$env:TEMP\$iot_explorer_file").Hash -ne $iot_explorer_hash))
-{
- $wc.DownloadFile("$iot_explorer_path\$iot_explorer_file", "$env:TEMP\$iot_explorer_file")
-}
-
-
echo "`nInstalling packages..."
-echo "(1/5) $gccarm_name"
+echo "(1/3) $gccarm_name"
Start-Process -FilePath "$env:TEMP\$gccarm_file" -ArgumentList "/S /P /R" -Wait
-echo "(2/5) $cmake_name"
+echo "(2/3) $cmake_name"
Start-Process -FilePath "$env:TEMP\$cmake_file" -ArgumentList "ADD_CMAKE_TO_PATH=System /passive" -Wait
-echo "(3/5) $termite_name"
+echo "(3/3) $termite_name"
Start-Process -FilePath "$env:TEMP\$termite_file" -ArgumentList "/S" -Wait
-echo "(4/5) $azure_cli_name"
-Start-Process -FilePath "$env:TEMP\$azure_cli_file" -ArgumentList "/passive" -Wait
-$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
-Start-Process -FilePath "az" -ArgumentList "extension add --name azure-iot" -Wait
-
-echo "(5/5) $iot_explorer_name"
-Start-Process -FilePath "$env:TEMP\$iot_explorer_file" -ArgumentList "/passive" -Wait
-
echo "`nInstallation complete!"
echo "`nPress any key to continue..."