Guide · Beginner · ESP32
Tool Review: PlatformIO vs Arduino IDE for ESP32 — Reproducible Comparison
Citation magnet pack: platformio-vs-arduino-magnet.zip — same blink sketch, both toolchains, RESULTS.md for versions and timings. Review standard. Arduino IDE wins the first hour. PlatformIO wins the project that outli…
Review standard applies. This piece is held to versions, comparison/context, failure modes, and a verdict. Read the standard →
Project template
- Goal & materials
- Steps / firmware
- Troubleshooting
- AI assist notes
- Related gear & books
Citation magnet pack:
platformio-vs-arduino-magnet.zip
— same blink sketch, both toolchains, RESULTS.md for versions and timings.
Review standard.
Arduino IDE wins the first hour. PlatformIO wins the project that outlives the weekend. This article is the reproducible comparison — not a vibes take.
Versions & hardware under test
| Item | Record in RESULTS.md |
|---|---|
| Board | ESP32 DevKit class (exact module) |
| Arduino IDE | 2.x exact version |
| esp32 boards package | Boards Manager version string |
| PlatformIO Core | pio --version |
| platform espressif32 | from platformio.ini lock after first good build |
| Host OS | Linux / Windows / macOS + version |
What we compare
| Criterion | Arduino IDE 2.x | PlatformIO |
|---|---|---|
| Time to first blink (cold machine) | Usually faster | Slower first install |
| Library version pins | Weak by default | lib_deps — strong |
| Multi-board envs | Clunky | First-class |
| CI / headless build | Awkward | Natural |
| Classroom zero-friction | Wins | Overkill day one |
| Multi-file firmware months later | Painful | Normal |
Reproduce (one evening)
- Download the pack.
- Upload with Arduino IDE; note minutes and pain points in
RESULTS.md. - Upload with PlatformIO from the same
src/main.cpp. - Deliberately pin a library in PlatformIO; rebuild; note whether the lock holds.
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
; lib_deps =
; bblanchon/ArduinoJson @ ^7.0.0
What broke / confused
- Corporate proxy blocking PlatformIO package downloads.
- Ghost includes from Arduino Library Manager colliding with
lib_deps. - Upgrading
platform = espressif32mid-project without reading release notes. - Assuming “compiled on my laptop” equals matching flash/partition on the target board.
AI assist rules (for this comparison)
- Paste
platformio.ini+ full build log — not screenshots alone. - Demand version conflicts listed before any rewrite.
- Never flash an AI-suggested board config blind.
Export
Download PlatformIO vs IDE pack · Also: platformio-esp32-starter.zip
Review verdict
Prefer PlatformIO for any ESP32 project that will live more than a weekend or leave your bench. Prefer Arduino IDE for first-hour workshops — then migrate and pin libraries. If you only ever use cloud AI without a real build system, you do not have a firmware project; you have a chat log.