Microsoft leverages PlatformIO for its course "IoT for Beginners"

Guest post

Learn the Internet of things in a 24-lesson curriculum designed for teachers, students and learners of all types who want to explore IoT with VS Code and PlatformIO

Jim Bennett
Jim Bennett
Senior Cloud Advocate at Microsoft

IoT — the Internet of Things — is one of the biggest growth areas in technology, and one that, to me, is very exciting. You start with a device like a microcontroller, sprinkle some sensors, dust with code, mix in some cloud services and poof! You have smart cities, self-driving cars, automated farming, robotic supermarkets, or devices that can clean your toilet after you shout at Alexa for the third time.

PlatformIO lowers the barriers to entry the IoT market as much as possible

In my day job at Microsoft, I often get asked how to get started with IoT. Not just “how do I connect my device to the cloud”, but really get started with understanding devices, sensors, actuators, and writing those all-important first lines of code.

This is why a few of us spent a number of months putting together IoT for beginners, a 24-lesson curriculum designed for teachers, students and learners of all types who want to learn IoT. This curriculum uses project-guided learning, built around the journey of food from farm to table, covering digital agriculture, logistics, manufacturing, retail, and consumer products.

PlatformIO featured in Microsoft course IoT for Beginners

We wanted to make sure we covered a range of hardware choices – Arduino for those interested in microcontrollers, and Raspberry Pis for those interested in single-board computers. When using this hardware, we also wanted to lower the barriers to entry as much as possible. We needed to pick an ecosystem for components to reduce the need to solder and understand electronics, and we needed to ensure the software we recommended worked to support the learner, not be another hurdle to overcome.

PlatformIO is the preferred tool for Microsoft IoT curriculum

It was an easy decision to pick PlatformIO as our development tool of choice for microcontroller development. Although other tools are available, such as Arduino’s own IDE, PlatformIO is our preferred tool for this curriculum for several reasons:

  • Visual Studio Code integration – VS Code is an incredibly powerful developer text editor, with an extension model that supports many different languages and tools. Using PlatformIO meant learners can use the same tool to not only program their microcontrollers, but also to build the cloud services that make up modern IoT applications. One tool for C++ on the device, Python in cloud-based serverless functions, and JavaScript and HTML for data visualization web sites.

  • Integration with the Microsoft C/C++ language tooling – The language tooling for C/C++ in VS Code is incredibly powerful, providing the intellisense, code completion, navigation, and other features that modern developers expect from their tools. All this comes for free when developing Arduino applications in C/C++.

  • Library management – Arduino library management can be confusing, especially for beginners. Knowing which libraries to add to your project, setting up additional library paths, and managing library versions are all complexities that beginners don’t want to handle, they just want the code to work. Being able to manage these from a single project configuration file removes these complexities, and allows developers to just grab some code, compile it and go, rather than have to know what libraries are needed and manually work to install them.

  • All in one tooling – Developing for embedded devices can mean a headache of installing different tools, sometimes breaking your existing tooling for other platforms. PlatformIO takes this headache away by installing everything you need in an isolated way. We knew we could instruct learners to install PlatformIO and pick their board, and it wouldn’t break anything they already have installed, and wouldn’t limit what they could do in the future with different hardware.

  • Multi-platform support – PlatformIO and VS Code can run on Windows, macOS, Linux and even on Raspberry Pi OS, meaning most developers can get started using it.

  • Preparing learners for the future – Although our IoT for beginners course only focuses on Arduino for microcontroller development with the Wio Terminal, we wanted to ensure the skills they learned transfer to other boards and frameworks. By using PlatformIO they would be able to continue their IoT journey using the same tools, and not have to start their learning again outside of their comfort zone.

Grab your microcontroller and some sensors from our friends at Seeed Studio, fire up VS Code, install PlatformIO and get learning.

Without further ado, please meet IoT For Beginners: A Curriculum!

About Microsoft

Microsoft Corporation was founded in 1975 and is a leading global vendor of computer software and hardware that develops, licenses and supports a wide range of products, services, devices, and solutions, with a mission to empower every person and every organization on the planet to achieve more.

About PlatformIO Labs

PlatformIO Labs is the corporate sponsor behind the PlatformIO open-source project. PlatformIO is a next-generation, professional collaborative platform for embedded development that enables customers to save resources and time by vastly reducing the expenses and labor associated with creating and maintaining product software. Its modern architecture is unmatched in the embedded tools market, and the result benefits developers everywhere by simplifying complexity and increasing productivity. PlatformIO Labs is a privately-held company headquartered in Tallinn, Estonia and with an R&D branch in Ukraine. To learn more, follow them on LinkedIn, Twitter @PlatformIO_Org, or visit

Jim Bennett
Jim Bennett

Have questions?

Join the discussion on our forum