Improve IoT Development Speed by Switching Arduino IDE to PlatformIO IDE

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:
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:
Installing libraries:
Compile Result:
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
Feature | Arduino IDE | PlatformIO IDE | Change |
---|---|---|---|
Total Compile Time | 4 minutes 17 seconds | 57 seconds | 3 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:
- Code Suggestion, we can get code suggestion and even AI completions, just like when working on another projects in Visual Studio Code.
- Customizable Theme, it's Visual Studio Code! you can use any theme you want
- Easier Configuration, We can have separate configuration for each project and it is fairly easy to add libraries to the project.
- 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! 🥂