Azure IoT Device Workbench for Visual Studio Code
Azure IoT Device Workbench extension is now part of Azure IoT Tools extension pack. We highly recommend installing Azure IoT Tools extension pack, which makes it easy to discover and interact with Azure IoT Hub that power your IoT Edge and device applications. This extension pack can help you:
- Develop and connect your Azure IoT Applications to Azure. With this extension, you can interact with an Azure IoT Hub, manage connected devices, and enable distributed tracing for your Azure IoT applications.
- Develop and debug Certifies Azure IoT Devices (including MXChip IoT DevKit, ESP32, Raspberry Pi) to Azure. This extension pack makes it easy to code, build, deploy and debug your IoT applications with popular IoT development boards.
- Develop and deploy artificial intelligence and your custom logic to Azure IoT Edge. This extension pack makes it easy to code, build, deploy, and debug your IoT Edge applications.
Overview
The Azure IoT Device Workbench is a Visual Studio Code extension that provides an integrated environment to code, build, deploy, and debug your IoT device project with multiple Azure services supported. The extension also supports working with IoT Plug and Play by defining device capability model schemas and generating skeleton device code and projects.
Get Started
Develop device using IoT Plug and Play
IoT Plug and Play public preview is a device capability model schema that describes device capabilities. The Azure IoT Device Workbench extension provides an integrated environment to author IoT Plug and Play device capability models (DCM) and interfaces, publish to model repositories, and generate skeleton C code to implement the device application.
Learn how to get started with IoT Plug and Play and use the Device Workbench extension to build an IoT Plug and Play device:
Develop on generic device
Currently the following device platforms and languages are supported in Azure IoT Device Workbench.
Embedded Linux public preview
For Embedded Linux devices, the Device Workbench uses container to simplify the cross-compiling tool chain setup and configuration, which means all cross-compiling work happens in the container.
Languages supported: C/C++
Devices supported: Cortex-A series devices (e.g. Raspberry Pi, NXP i.MX6) that are running embedded Linux such as Debian, Ubuntu or Yocto Linux.
Follow the setup guide to setup the prerequisite including Docker runtime.
Here are a set of tutorials to help you get started:
Arduino
Currently, Device Workbench supports MXChip IoT DevKit and ESP32 DevKits using Arduino. For generic Arduino device, we recommend you use Arduino extension in VS Code.
Languages supported: Arduino C/C++
Devices supported: MXChip IoT DevKit, ESP32.
The Device Workbench relies on Arduino IDE as a dependency to develop on the above devices. If you have installed Device Workbench prior to Arduino IDE, you may need to restart VS Code to make it find the Arduino IDE installation path correctly.
MXChip IoT DevKit
Follow the setup guide to setup the environment including the Arduino extension.
Here are a set of tutorials to help you get started:
ESP32
Follow the setup guide to setup ESP32 device including the Arduino extension.
Here are a set of tutorials to help you get started:
Please take the survey to let us know extra device platforms and languages you want to see support in Device Workbench.
Commands
IoT Plug and Play
Command |
Description |
IoT Plug and Play: Create Capability Model... |
Create new IoT Plug and Play device capability model file. |
IoT Plug and Play: Create Interface... |
Create new IoT Plug and Play interface file. |
IoT Plug and Play: Generate Device Code Stub... |
Generate skeleton device code and project based on given device capability model file. |
IoT Plug and Play: Open Model Repository... |
Open Public or Company Model Repository view to manage device model files. |
IoT Plug and Play: Submit files to Model Repository... |
Submit files to model repository. |
IoT Plug and Play: Sign out Model Repository |
Sign out the Company Model Repository. |
Generic device development
Command |
Description |
Azure IoT Device Workbench: Create Project... |
Create new IoT Device Workbench projects. |
Azure IoT Device Workbench: Open Examples... |
Load existing examples of IoT Device Workbench project. |
Azure IoT Device Workbench: Provision Azure Services... |
Provision Azure services for current project. |
Azure IoT Device Workbench: Deploy to Azure... |
Deploy the code of the Azure services. |
Azure IoT Device Workbench: Compile Device Code |
Compile device code. |
Azure IoT Device Workbench: Upload Device Code |
Compile and upload device code. |
Azure IoT Device Workbench: Configure Device Settings... |
Manage the settings on the device. |
Azure IoT Device Workbench: Set Workbench Path |
Set the default path for Azure IoT Device Workbench. |
Azure IoT Device Workbench: Help |
Get help for Azure IoT Device Workbench. |
Documentation
Privacy Statement
The Microsft Enterprise and Developer Privacy Statement describes the privacy statement of this software.
Contributing
There are a couple of ways you can contribute to this repo:
Ideas, feature requests and bugs: We are open to all ideas and we want to get rid of bugs! Use the Issues section to either report a new issue, provide your ideas or contribute to existing threads.
Documentation: Found a typo or strangely worded sentences? Submit a PR!
Code: Contribute bug fixes, features or design changes:
- Clone the repository locally and open in VS Code.
- Install TSLint for Visual Studio Code.
- Open the terminal (press
Ctrl + `
) and run npm install
.
- To build, press
F1
and type in Tasks: Run Build Task
.
- Debug: press
F5
to start debugging the extension.
- Run
gts check
and gts fix
to follow TypeScript style guide.
Example: Contribute examples for the supported devices.
Create a git repo to host the code of your example project.
Write a tutorial to describe how to run the example.
Submit a new issue and provide the following information:
Item |
Description |
Name |
Name of the example to be displayed in example gallery. |
Description |
A short statement to describe the example. |
Location |
URL of the GitHub repo. |
Image |
URL of the example image (size: 640*370) shown in the gallery, if not provided, the default image will be used. |
Tutorial |
URL of tutorial that describes how to run the example. |
Difficulty |
Difficulty of the example, easy, medium or difficult. |
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information please see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
If you would like to help to build the best IoT experience with Azure IoT Device Workbench, you can reach us directly at Gitter.
Telemetry
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry
setting to false
. Learn more in our FAQ.