Programming Arduino with Visual Studio Code 2Microsoft Visual Studio Code is a cross-platform, Node.js-based IDE (Integrated Development Environment). It’s been maturing into a really amazing development tool. It’s not really the tool itself as it’s all the amazing plugins or extensions that are being developed for it that are enable some really amazing functionality and development scenarios. One of these awesome extensions is the “Arduino for Visual Studio Code” extension. This extension adds the ability to program Arduino and Arduino-compatible devices using Visual Studio Code as an alternative to the Arduino IDE.

Arduino for Visual Studio Code Extension

Programming Arduino with Visual Studio Code 3

If you search the Visual Studio Code Marketplace you will find the Arduino extension where you can easily install it into Visual Studio Code. The Arduino extension has a number of really amazing features. Here’s a short list of it’s rich feature set:

  • Intellisense and syntax highlighting for Arduino sketches
  • Verify and upload your sketches in Visual Studio Code
  • Built-in board and library manager
  • Built-in example list
  • Built-in serial monitor
  • Snippets for sketches
  • Automatic Arduino project scaffolding
  • Command Palette (F1) integration of frequently used commands (e.g. Verify, Upload…)
  • Integrated Arduino Debugging

The Arduino extension does have a prerequisite of having the Arduino IDE installed in order to use it. So, consequentially, you’ll still need to have the Arduino IDE installed, but hopefully you won’t even have to use it.

It’s Open Source!

You may or may not be aware that Visual Studio Code itself is Open Source on Github and licensed under the MIT License. In this tradition of Open Sourcing Visual Studio Code and many other new development tooling SDKs and things, Microsoft has also release the Arduino for Visual Studio Code project as Open Source on Github as well.

If you wish, you can view the source code for the Arduino for Visual Studio Code Extension here:

In general, not many people contribute to Open Source, but I do. And, I really encourage you to contribute to Open Source software as well! If you find a bug, report it. If you figure out a bug fix, submit a Pull Request. If you don’t have the skills to contribute code to this Open Source project, then you can contribute to another, or even just help contribute with QA Testing and Documentation as people need to do that too. There’s always room to contribute to Open Source software, and you shouldn’t forget that it’s built largely by volunteers just like yourself.

Happy coding!

Posted by Chris Pietschmann

Chris is a Microsoft MVP and has nearly 20 years of experience building enterprise systems both in the cloud and on-premises. He is also a Microsoft Certified Azure Solutions Architect and developer, a Microsoft Certified Trainer (MCT), and Cloud Advocate. He has a passion for technology and sharing what he learns with others to help enable them to learn faster and be more productive.


  1. […] Programming Arduino with Visual Studio Code (Chris Pietschmann) […]


  2. Hi Chris, does it also support all the esp8266 and esp32 modules?


    1. Chris Pietschmann September 20, 2017 at 8:31 am

      I’m not sure on the full ESP8266 and ESP32 support. You’ll have to look at the documentation for more information.


  3. Thank you Chris. This is great extension !


  4. What is the added price, when you compare it to PlatformIO?


  5. I wonder if the Microsoft Arduino extension is any different or better, curious.


  6. What is with Arduino extension in Visual Studio 2017?


  7. Are their any step by step instructions for setting this up and using it. i have searched and cant find anything, the github instructions are a little sparse and the getting started link takes you to something that seems unrelated.


    1. Chris Pietschmann January 28, 2018 at 6:06 pm

      Hmm… that’s an interesting article idea, we’ll see if I can write something up… 🙂


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.