Improve IoT Development Speed by Switching Arduino IDE to PlatformIO IDE

A visual representation of an n8n workflow automation.

Sun, September 7, 2025

Project compiling feels slow? or no code auto suggestion? bad UI/UX? If you have those problem, maybe you should swtich from Arduino IDE to PlatformIO IDE

Improve IoT Development Speed by Switching Arduino IDE to PlatformIO IDE

Yesterday, my team and I were tasked with creating an embedded system project to solve a real-world problem. We came up with the idea to build a system that can detect early signs of a landslide and warn people in nearby areas to evacuate.

Our system uses ESP32 as the main microcontroller, Firebase for real-time data storage, Telegram to send alert notifications, Next.js for the web dashboard, and Python for backend data logging.

1. Arduino IDE & PlatformIO IDE

According to the official Arduino documentation, the Arduino IDE is a development environment that includes a code editor, a message area, a text console, a toolbar with common function buttons, and a menu bar. It connects to Arduino hardware to upload programs and communicate with them. Although it is designed for Arduino boards, the IDE also supports other board types and manufacturers.

As an alternative, PlatformIO is a professional, cross-platform, multi-architecture development tool for embedded systems engineers and software developers who build applications for embedded products. PlatformIO is integrated into Visual Studio Code, allowing developers to work within a powerful modern code editor while developing embedded system projects. This results in a smoother and more efficient experience, especially for larger projects.

2. The Problem

In the early stages of development, we used the Arduino IDE for building the IoT system. It worked well at first, with no major issues.

However, once we added the Firebase library (mobizt/Firebase ESP32 Client) and the Telegram library (witnessmenow/UniversalTelegramBot) to our ESP32 project, things changed. The compile time in the Arduino IDE shot up to around 4 minutes for every code change.

That means if we make just 10 small adjustments, we spend about 40+ minutes just waiting for compilation! without even knowing if the build will succeed.

On top of that, the Arduino IDE doesn’t utilize all CPU cores for compiling. On my machine, which has 12 cores, it only uses 2. That’s frustrating, right? Next, we will see the problem in more detailed explanation.

3. Measuring Compile Performance

We will use this sample code to measure each IDE compile time and resource usage: Source Code (GitHub Gist)

Platform: Arduino IDE

  • Version: 2.3.4
  • Board: DOIT ESP32 DEVKIT V1

Here's the result:

arduino-usagearduino-time

The final result: Arduino IDE required 4 minutes and 17 seconds to compile, while using only about 20% of the available CPU, indicating poor resource utilization.

Platform: PlatformIO IDE

  • Version: 3.3.4
  • Board: DOIT ESP32 DEVKIT V1

Initializing the project:

platformio-setup

Installing libraries:

platformio-add-library.png

Compile Result:

platformio-result.png

The final result: PlatformIO IDE required 57 seconds to compile, and using 100% of the available CPU, indicating maximum resource utilization and better compile time.

4. Conclusion

FeatureArduino IDEPlatformIO IDEChange
Total Compile Time4 minutes 17 seconds57 seconds3 minutes 20 seconds reduction
CPU Utilization~20%100%+80%

With this result, we drastically improve compile time and maximizing resource usage by switching from Arduino IDE and PlatformIO IDE. Also, here is benefits by switching from Arduino IDE to PlatformIO IDE:

  1. Code Suggestion, we can get code suggestion and even AI completions, just like when working on another projects in Visual Studio Code.
  2. Customizable Theme, it's Visual Studio Code! you can use any theme you want
  3. Easier Configuration, We can have separate configuration for each project and it is fairly easy to add libraries to the project.
  4. Integration With Other Extension, You can still use all other available Visual Studio Code extensions to enhance your development workflow while using PlatformIO.

That’s why I highly recommend switching to PlatformIO. It offers a much better developer experience and makes embedded development faster and more enjoyable.

Cheers! 🥂