NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4037 most downloaded on PyPI
Your Gateway to Embedded Software Development Excellence. Unlock the true potential of embedded software development with PlatformIO's collaborative ecosystem, embracing declarative principles, test-driven methodologies, and modern toolchains for unrivaled success.
Last release 12 days ago
05 Sep 2026
Release timing varies
gaps range from 3 weeks to 11 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
121 releases · first in 2015
New test_speed option to control a communication baudrate/speed between PIO Unit Testing engine and a target device (issue #1273)
test_speed option to control a communication baudrate/speed between PIO Unit Testing engine and a target device (issue #1273)envs_dir option to build_dir in Project Configuration File "platformio.ini"One column per quarter.
PlatformIO Core 3.5.0 introduces many new features and performance improvements. The notable changes are as follows:
PlatformIO Core 3.5.0 introduces many new features and performance improvements. The notable changes are as follows:
*_stage dev/platform names (use VCS URL instead).-f, --force option for platformio lib install and platformio platform install commands (issue #778)--serial list available serial ports (default)--logical list logical devices--mdns discover multicast DNS services (issue #463)See PlatformIO 3.5 Release Notes for details.
Pre/Post extra scripting for advanced control of PIO Build System (issue #891)
srcFilter fieldmonitor_* options to white-list for Project Configuration File "platformio.ini" (issue #982)"1-click" solution, zero configuration
Filter PIO Unit Testing tests using a new test_filter option in Project Configuration File "platformio.ini" or platformio test --filter command (issue #934)
Custom test_transport for PIO Unit Testing Engine
Configure Serial Port Monitor in Project Configuration File "platformio.ini" (issue #787)
New monitor target which allows to launch Serial Monitor automatically after successful "build" or "upload" operations (issue #788)
Project generator for VIM
Multi-line support for the different options in Project Configuration File "platformio.ini", such as: build_flags, build_unflags, etc. (issue #889)
Handle dynamic SRC_FILTER environment variable from library.json extra script
Notify about multiple installations of PIO Core (issue #961)
Improved auto-detecting of mbed-enabled media disks
Automatically update Git-submodules for development platforms and libraries that were installed from repository
Add support for .*cc extension (issue #939)
Handle env_default in Project Configuration File "platformio.ini" when re-initializing a project (issue #950)
Use root directory for PIO Home when path contains non-ascii characters (issue #951, issue #952)
Don't warn about known boards_dir option (pull #949)
Escape non-valid file name characters when installing a new package (library) (issue #985)
Fixed infinite dependency installing when repository consists of multiple libraries (issue #935)
Fixed linter error "unity.h does not exist" for Unit Testing (issue #947)
Fixed issue when Library Dependency Finder (LDF) does not handle custom src_dir (issue #942)
Fixed cloning a package (library) from a private Git repository with custom user name and SSH port (issue #925)
Hotfix for recently updated Python Requests package (2.16.0)
PlatformIO Library Registry statistics with new pio lib stats command
PlatformIO Library Registry statistics with new pio lib stats command
List built-in libraries based on development platforms with a new pio lib builtin command
Show detailed info about a library using pio lib show command (issue #430)
List supported frameworks, SDKs with a new pio platform frameworks command
Visual Studio Code extension for PlatformIO (issue #619)
Added new options --no-reset, --monitor-rts and --monitor-dtr to pio test command (allows to avoid automatic board's auto-reset when gathering test results)
Added support for templated methods in *.ino to *.cpp converter (pull #858)
Package version as "Repository URL" in manifest of development version ("version": "https://github.com/user/repo.git")
Produce less noisy output when -s/--silent options are used for platformio init and platformio run commands (issue #850)
Use C++11 by default for CLion IDE based projects (pull #873)
Escape project path when Glob matching is used
Do not overwrite project configuration variables when system environment variables are set
Handle dependencies when installing non-registry package/library (VCS, archive, local folder) (issue #913)
Fixed package installing with VCS branch for Python 2.7.3 (issue #885)
Changed default LDF Mode from chain+ to chain
chain+ to chainPIO Remote™. Your devices are always with you!
boards_dir option in Project Configuration File "platformio.ini" (issue #515)#ifdef, #if, #else, #elif, #define, etc.) (issue #837)chain+ and deep+ and set chain+ as defaultlib_extra_dirs option to [platformio] section for Project Configuration File "platformio.ini" (issue #842)Ctrl+] to Ctrl+Clibrary.json manifest (issue #814)lib_deps repository url (issue #830)PATH auto-configuring for upload tools99-platformio-udev.rules checker for Linux OSDeprecated lib_force option, please use lib_deps instead
--project-option is passed to platformio init commandlib_force option, please use lib_deps insteadplaformio test commandDisabled temporary SSL for PlatformIO services issue #772
Local and Embedded Unit Testing (issue #408, issue #519)
library.json to specify sources other than PlatformIO's Repository
(issue #461)platformio lib search --header option*.ar)
(issue #719)enable_prompts setting. Now, all PlatformIO CLI is non-blocking!platformio serialports command to platformio deviceplatformio ci
and platformio init commands using -O, --project-option.-v, --verbose option
(issue #721)license field to library.json
(issue #522)platformio.ini
(issue #740)#warning directive is used
(issue #742)Improved support for Microchip PIC32 development platform and ChipKIT boards issue #438
--echo for Serial Port Monitor
issue #733udev rules for the new STM32F407DISCOVERY boards
issue #731Added support for Arduino M0, M0 Pro and Tian boards (issue #472)
Rebuild C/C++ Project Index target to CLion and Eclipse IDEsudev rules for OpenOCD CMSIS-DAP adapters (issue #718).gitignore file when re-generate/update project data[platformio] section from custom project configuration file when platformio ci –project-conf command is used--boot flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) (issue #710)\ for the source files list when generate project for Qt Creator IDE (issue #711)HEADERS and SOURCES when generate project for Qt Creator IDE (issue #713)New ESP8266-based boards: Generic ESP8285 Module, Phoenix 1.0 & 2.0, WifInfo
build_unflags option (issue #698)platformio init --ide command for Python 2.6Fixed issue with platformio init --ide command
platformio init --ide commandAdded support for ST Nucleo L031K6 board to ARM mbed framework
build_unflags option for ARM mbed framework-u _printf_float and
-u _scanf_float when parsing $LINKFLAGSNothing published for this version
Added support for emonPi, the OpenEnergyMonitor system (issue #687)
-L relative/path when parsing build_flags (issue #688)Show udev warning only for the Linux OS while uploading firmware
udev warning only for the Linux OS while uploading firmwareAdded support for Arduboy, the game system the size of a credit card
Simplified Continuous Integration with AppVeyor
CPPPATH of Build Systemstlink as the default uploader for STM32 Discovery boards
(issue #665)env_default when pio run -e is usedsrc_filter option for Windows OS (issue #652)Handle prototype pointers while converting *.ino to .cpp (issue #639)
*.ino to .cpp
(issue #639)Project generator for CodeBlocks IDE (issue #600)
--json-output and --page options for platformio lib search](http://docs.platformio.org/en/latest/userguide/lib/cmd_search.html) command (issue #604)platformio run command (issue #576)-DUSB_MANUFACTURER with vendor’s name (issue #631)*.ino to *.cpp (issue #610)-std=gnu++11 for Atmel SAM development platform (issue #601)src_dir (issue #635)Launched PlatformIO Community Forums (issue #530)
Project generator for NetBeans IDE
brew install platformio (issue #395)CPPDEFINES passed to extra build_flags (issue #526)src_dir directory from Project Configuration File platformio.ini when initializing project otherwise create base src directory (issue #536)-include flag (issue #552)Added support for the new ESP8266-based boards (ESPDuino, ESP-WROOM-02, ESPresso Lite 1.0 & 2.0, SparkFun ESP8266 Thing Dev, ThaiEasyElec ESPino) to E
board_f_flash option to Project Configuration File platformio.ini which allows to specify custom flash chip frequency for Espressif development platform (issue #501)board_flash_mode option to Project Configuration File platformio.ini which allows to specify custom flash chip mode for Espressif development platformCPPDEFINES which contain space and break PlatformIO IDE Linter (IDE issue #34)char* myfunc()) while converting from *.ino to *.cpp (issue #506)Better integration of PlatformIO Builder with PlatformIO IDE Linter
*.ino to *.cppCorrected RAM size for NXP LPC1768 based boards (issue #484)
test and tests folders from build process-Wl,-whole-archive hook for ST STM32 and mbedFixed a bug with Project Initialization in PlatformIO IDE
PlatformIO IDE for Atom (issue #470)
pio command line alias for platformio command (issue #447)upload_resetmethod option to Project Configuration File platformio.ini and allowed to change default upload reset method for Espressif development platform (issue #444)pipe (not a tty) using Environment variables (issue #465)test* folder by default from build processInitial support for Arduino Zero board (issue #356)
.clang_completeuploadeep target for Atmel AVR development platformshasum validation on Mac OS X 10.11.2 (issue #429)add_executable has only one source file (issue #421)Moved SCons to PlatformIO packages. PlatformIO does not require SCons to be installed in your system. Significantly simplified installation process of
Happy New Year!
pip install platformio rocks!Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)
Removed SCons from requirements list. PlatformIO will try to install it automatically, otherwise users need to install it manually
SCons from requirements list. PlatformIO will try to
install it automatically, otherwise users need to install it
manuallyChunkedEncodingError when SF connection is broken (issue
#356)Added support for the new ESP8266-based boards (SparkFun ESP8266 Thing, NodeMCU 0.9 & 1.0, Olimex MOD-WIFI-ESP8266(-DEV), Adafruit HUZZAH ESP8266, ESP
esp8266.flash.common.ld (issue #379)Install only required packages depending on build environment (issue #308)
upload_flags option in [platformio.ini]([issue #368])Improved code builder for parallel builds (up to 4 times faster than before)
--enable-auto-uploading option (issue #352)Restored PLATFORMIO macros with the current version
PLATFORMIO macros with the current versionAdded support for the new boards: Atmel ATSAMR21-XPRO, Atmel SAML21-XPRO-B, Atmel SAMD21-XPRO, ST 32F469IDISCOVERY, ST 32L476GDISCOVERY, ST Nucleo F03
build_flags
(issue #271)Added support of libOpenCM3 framework for Nucleo F103RB board (issue #309)
board option is not specified
in [platformio.ini]([issue #313])TWI_Disable not declared for Arduino Due
board (issue #329)Full support of CLion IDE including code auto-completion ([issue
bash and zsherror: option --single-version-externally-managed not recognized
(issue #279)Added support for LightBlue Bean board (pull #292)
Allowed to use ST-Link uploader for mbed-based projects
lib directory from the PlatformIO based
project in readme.txt which will be automatically generated using
platformio init command (issue #273)pip package manager (issue #279)Fixed critical issue when platformio init –ide command hangs PlatformIO (issue #283)
Added native, linux_arm, linux_i686, linux_x86_64, windows_x86 development platforms (issue #263)
-h help option for PlatformIO and sub-commandstool-teensy package for Teensy platform (issue #268)include* for Project Generator
(issue #277)AttributeError: 'module' object has no attribute 'packages'
(issue #252)Support for off-line/unpublished/private libraries (issue #260)
Project generator for CLion IDE
tool-bossac package to 1.5 version for atmelsam platform (issue
#251)sdk-esp8266 package for espressif platformAllowed to exclude/include source files from build process using src_filter
* symbol in library.jsonstk500v2_command(): command failed (issue #238)Fixed broken link to SCons installer
Automatically detect upload port using VID:PID board settings (issue #231)
LibInstallDependencyError when more then 1 library is
found (issue #229)Added Silicon Labs EFM32 siliconlabsefm32 development platform (issue #226)
Fixed libraries order for "Library Dependency Finder" under Linux OS
Nothing published for this version
PlatformIO as Continuous Integration (CI) tool for embedded projects (issue #108)
platformio platforms subcommand (issue #158)-f, --force option which will force to accept any
confirmation prompts (issue #152)-v/--verbose
optionplatformio.ini (issue #134)platformio.ini (issue #148)Added support of Framework mbed for Teensy 3.1 (issue #183)
-D option (issue #191)Added espressif development platform with ESP01 board
Moved PlatformIO source code and repositories from Ivan Kravets account to PlatformIO Organisation (issue #138)
*.ino/pde sketches (issue
#130)*.ino/pde
(issue #137, issue #140)Added full support of mbed framework including libraries: _RTOS, Ethernet, DSP, FAT, USB_.
-DPLATFORMIO=%version% to builder
(issue #105)stm32 development platform to ststm32opencm3 framework to libopencm3*.ino/pde files when converting to *.cpp
(issue #100)Implemented PLATFORMIO_* environment variables (issue #102)
PLATFORMIO_* environment variables (issue #102)usbtiny protocolNothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →