Why I'm using PlatformIO instead Arduino IDE

Mostly I developing for the ESP32 board. I love the ESP32 because it has a big community (many helpful libraries and documentations) and have integrated Bluetooth and WiFi. But the programming is horrible with the Arduino Editor because some nice features I missed:

  • package management (It’s not very easy to describe which libraries in which versions I have used at development for people who try to compile my projects from Github)
  • modern code editor features like syntax highlighting, code auto completion (why the Arduino IDE can’t remember that I decleared some variables in the top??) and direct navigating to methods via mouse-click
  • integrated support for version control

So I switched to the PlatformIO IDE quite quickly. It is easy to integrate as a plugin into VS Code and meets all my requirements.

Besides the ESP also many other boards are supported among others also the Arduino boards.

There are templates for new projects.

Each project is defined via a project file (“platformio.ini”). This defines which board is used and which external libraries are included. These are then automatically downloaded from PlatformIO and can be updated via GUI or CLI.

If someone loads your project from Git, PlatformIO will make sure that the required libraries are loaded.

Another advantage: You can also use VS Code for other programming tasks (e.g. if you want to program in NodeJS or Python). There is an almost unlimited number of great plugins (I will make more blog posts about this).