Skip to content

pioarduino/platform-espressif32

 
 

pioarduino (p)eople (i)nitiated (o)ptimized (arduino)

Build Status Discord Ask DeepWiki GitHub latest release Downloads latest release

Espressif Systems is a privately held, fabless semiconductor company renowned for delivering cost-effective wireless communication microcontrollers. Their innovative solutions are widely adopted in mobile devices and Internet of Things (IoT) 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 develop to solve.
  • No support for the Arduino Nora Nano board, issues needs to be solved by the community

IDE Preparation

Prerequisites:

  • Python (3.10, 3.11, 3.12, 3.13 or 3.14) and git is required for pioarduino to function properly.

Installation

VSCode 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.

FatFS Integration

FatFS support has been fully integrated as a Python module, providing the same seamless experience as LittleFS. Configuration is straightforward - simply specify your preferred filesystem in your project settings: See FATFS_INTEGRATION.md for detailed documentation.

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.8 and IDF v5.5.4

[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.