PlatformIO in VSCode – how to develop Arduino software like a pro
-
25. August 2025
Many people start with the Arduino IDE – and that's perfectly fine.
It's quick to set up, easy to use, and perfect for your first projects.
But at some point, you reach a point where you think:
“Why is my project becoming so disorganized?”
Why is compiling so slow?
“Can't I work with multiple boards or libraries without creating chaos?”
The answer: Yes – with PlatformIO.
In this article, I will show you, what PlatfromIO is, how it works, and why it's combination with VSCode maybe is the most important step in moving from a hobbyist environment to a professional development workflow.
What exactly is PlatformIO?
PlatformIO is a modern development environment for embedded systems – i.e., microcontrollers such as Arduino, ESP32, STM32, RP2040, etc.
It is:
A build environment
Project and dependency management
A package manager for libraries
Fully integrated into VSCode (or alternatively CLI-based)
In short:
PlatformIO is what professional developers would use – if you want to remain Arduino compatiblebut finally need a clean, scalable workflow.
Why not just stick with the Arduino IDE?
Feature | Arduino-IDE | PlatformIO |
---|---|---|
Multiple boards in parallel | Difficult | Easy |
Project structure | Chaotic | Clean |
Intellisense / Autocompletion | Limited | Fully |
Version control (e.g., Git) | Hard | Easy |
Library-Management | Manual & often messy | Automatic & declarative |
command line | Hardly usable | Fully integrated |
Tests / Debugging | Almost not at all | Integratable (e.g., unit tests, breakpoints) |
So if you want to program Arduino “like a pro,” PlatformIO is the next logical step.
How to switch: Install PlatformIO in VSCode
Step 1: Install VSCode
Available for Windows, macOS, Linux → https://code.visualstudio.com/
Step 2: Install PlatformIO Extension
Open VSCode → Extensions → search for “PlatformIO IDE” → install
After that, a new PlatformIO icon (with the alien head 👽) will appear on the left.
Step 3: Create a new project
Click on “New Project.”
Choose:
Board (e.g., Arduino Uno, ESP32, STM32…)
Framework (e.g., Arduino or bare metal)
storage location
Tip: You can change your board or add new targets at any time – PlatformIO automatically loads the appropriate toolchain setup!
What is different from the Arduino IDE?
1. Project structure
Your projects automatically have:
/src/
→ your actual code/lib/
→ Own libraries/include/
→ Header filesplatformio.ini
→ Central project configuration (comparable to a Makefile)
No more copy-paste chaos – everything is neatly separated.
2. Configuration via platformio.ini
Instead of cryptic settings in the IDE, here you will find a file that contains everything:
[env:uno]
platform = atmelavr
board = uno
framework = arduino
upload_port = COM4
monitor_speed = 9600
This allows you to, for example:
Define multiple boards in the same project
Set libraries and build flags
Set up upload ports and monitors
Enable OTA or debugging
3. Better autocompletion & code quality
PlatformIO takes full advantage of VSCode's IntelliSense feature:
You get:
Clean code completion
Error message already during writing
Direct navigation in functions, headers, and variables
It feels 10 times more professional – especially for larger projects.
4. Build & upload with a click or terminal
You can:
Build, flash, debug with the alien head button in the sidebar
Or work in the console with
pio run
,pio upload
,pio monitor
arbeiten
The CLI tool
pio
is powerful – you can even automate projects or build them using scripts.
Why this switch is really worthwhile
If you only do small Blinky projects, you may not need PlatformIO.
But as soon as you:
use multiple boards
Uses libraries from the Internet
Want to version projects?
build a larger code base
share your projects with others
really want to understand how embedded development works
... PlatformIO is the platform of your choice.
You gain structure, control, efficiency—and learn how professional development environments work along the way.
Conclusion: Better projects require better tools.
If you are seriously developing embedded software – including in the Arduino universe – PlatformIO is your next logical step.
It brings you:
order
efficiency
control
professionalism
And incidentally, it helps you to better understand what you are actually developing.
“Get out of the comfort zone of the Arduino IDE – and into the world of real development tools.”
FAQ – Frequently asked questions
Is PlatformIO suitable for beginners?
Yes – if you're willing to rethink things for a moment. The first few minutes will feel unfamiliar, but after that you'll never miss the Arduino IDE again.
Can I continue to use my existing Arduino projects?
Yes. Simply Insert it into /src
and adjust if necessary (e.g. #include
path). Some libraries require different names, but this is usually specified in the documentation.
Which boards are supported?
Hundreds – from Arduino to ESP32, STM32, Teensy, RP2040, ESP8266, and ATtiny. Commercial boards too.
Do I have to use the command line?
No – but you can. And you should if you want to automate your workflow or understand it more deeply.