pioarduino (p)eople (i)nitiated (o)ptimized (arduino)
July 24, 2026 ยท View on GitHub
Espressif Systems is a fabless semiconductor company renowned for delivering cost-effective wireless communication microcontrollers. Its innovative solutions are widely adopted in Internet of Things (IoT), consumer electronics, and embedded applications around the globe.
General
- Issues with boards (wrong / missing). All issues caused from boards will not be fixed from the maintainer(s). A PR needs to be provided against branch
developto solve. - No support for the Arduino Nora Nano board, issues needs to be solved by the community
IDE Preparation
Prerequisites:
- VSCode: git is required for pioarduino to function properly.
- CLI: Python (v.3.10, v.3.11, 3.12, 3.13 or 3.14) is additionally needed
Installation
VSCode Extension
- Download and install Microsoft Visual Studio Code. pioarduino IDE is on top of it.
- Open the extension manager.
- Search for the
pioarduino ideextension. - Install pioarduino IDE extension.
CLI
curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/pioarduino/pioarduino-core-installer/pioarduino/get-platformio.py
python3 get-platformio.py
source ~/.platformio/penv/bin/activate
Note: The pioarduino platform installer automatically fixes the virtual environment if a conflict with the system Python is detected.
Usage
VSCode
Setup new VSCode pioarduino project.
CLI
mkdir my-project && cd my-project
pio project init --board esp32dev
Documentation
pioarduino Wiki The Wiki is AI generated and insane detailed and accurate.
Features
Filesystem Support
pioarduino provides native support for multiple filesystem options, allowing you to choose the best solution for your project's needs:
- LittleFS (default) - Modern wear-leveling filesystem designed specifically for flash memory. Offers excellent reliability and performance for ESP32 projects.
- SPIFFS - Simple legacy filesystem. While still functional, LittleFS is recommended for new projects due to better wear-leveling and reliability.
- FatFS - Industry-standard FAT filesystem with broad compatibility across platforms and operating systems.
Quick Start:
[env:myenv]
board_build.filesystem = fatfs
Available Commands:
pio run -t buildfs # Build FatFS image
pio run -t uploadfs # Upload FatFS image
pio run -t download_fatfs # Download and extract FatFS from device
See the arduino-fatfs example for a complete working example.
Stable Arduino
currently espressif Arduino 3.3.11 and IDF v5.5.5.
[env:stable]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = ...
...
Development Arduino
espressif Arduino repo branch master and latest compiled Arduino libs
[env:development]
platform = https://github.com/pioarduino/platform-espressif32.git#develop
board = ...
...
ESP32-C2, ESP32-C61 and ESP32-solo1 Arduino support (via pioarduino only feature: Hybrid compile)
Example configuration:
[env:esp32-c2-devkitm-1]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
framework = arduino
board = esp32-c2-devkitm-1
monitor_speed = 115200
[env:esp32-c61-devkitc1-n8r2]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
framework = arduino
board = esp32-c61-devkitc1-n8r2
monitor_speed = 115200
[env:esp32solo1]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
framework = arduino
board = esp32-solo1
monitor_speed = 115200
Looking for sponsor button? There is none. If you want to donate, please spend a litte to a charity organization.