Release Notes¶
PlatformIO Core 4¶
4.3.4 (2020-05-23)¶
Added PlatformIO CLI Shell Completion for Fish, Zsh, Bash, and PowerShell (issue #3435)
Automatically build
contrib-pysite
package on a target machine when pre-built package is not compatible (issue #3482)Fixed an issue on Windows when installing a library dependency from Git repository (issue #2844, issue #3328)
4.3.3 (2020-04-28)¶
Fixed “UnicodeDecodeError: ‘utf-8’ codec can’t decode byte” when non-Latin chars are used in project path (issue #3481)
4.3.2 (2020-04-28)¶
New Account Management System (preview)
Open source PIO Remote client
Improved PIO Check with more accurate project processing
Echo what is typed when
send_on_enter
device monitor filter is used (issue #3452)Fixed PIO Unit Testing for Zephyr RTOS
Fixed UnicodeDecodeError on Windows when network drive (NAS) is used (issue #3417)
Fixed an issue when saving libraries in new project results in error “No option ‘lib_deps’ in section” (issue #3442)
Fixed an incorrect node path used for pattern matching when processing middleware nodes
Fixed an issue with missing
lib_extra_dirs
option in SRC_LIST for CLion (issue #3460)
4.3.1 (2020-03-20)¶
Fixed a SyntaxError “‘return’ with argument inside generator” for PIO Unified Debugger when Python 2.7 is used
Fixed an issue when
lib_archive = no
was not honored in “platformio.ini”Fixed a TypeError “super(type, obj): obj must be an instance or subtype of type” when device monitor is used with a custom dev-platform filter (issue #3431)
4.3.0 (2020-03-19)¶
Initial support for an official PlatformIO for CLion IDE plugin:
Smart C and C++ editor
Code refactoring
On-the-fly code analysis
“New PlatformIO Project” wizard
Building, Uploading, Testing
Integrated debugger (inline variable view, conditional breakpoints, expressions, watchpoints, peripheral registers, multi-thread support, etc.)
-
Added PlatformIO Device Monitor Filter API (dev-platforms can extend base device monitor with a custom functionality, such as exception decoding) (pull #3383)
Configure project device monitor with monitor_filters option
Capture device monitor output to a file with
log2file
filter (issue #670)Show a timestamp for each new line with
time
filter (issue #981)Send a text to device on ENTER with
send_on_enter
filter (issue #926)Show a hexadecimal representation of the data (code point of each character) with
hexlify
filter
New standalone (1-script) PlatformIO Core Installer
Initial support for Renode simulation framework (issue #3401)
Added support for Arm Mbed “module.json”
dependencies
field (issue #3400)Improved support for Arduino “library.properties”
depends
fieldFixed an issue when quitting from PlatformIO IDE does not shutdown PIO Home server
Fixed an issue “the JSON object must be str, not ‘bytes’” when PIO Home is used with Python 3.5 (issue #3396)
Fixed an issue when Python 2 does not keep encoding when converting “.ino” (issue #3393)
Fixed an issue when
"libArchive": false
in “library.json” does not work (issue #3403)Fixed an issue when not all commands in compilation database “compile_commands.json” use absolute paths (pull #3415)
Fixed an issue when unknown transport is used for PIO Unit Testing engine (issue #3422)
4.2.1 (2020-02-17)¶
Improved VSCode template with special
forceInclude
field for direct includes via-include
flag (issue #3379)Improved support of PIO Home on card-sized PC (Raspberry Pi, etc.) (issue #3313)
Froze “marshmallow” dependency to 2.X for Python 2 (issue #3380)
Fixed “TypeError: unsupported operand type(s)” when system environment variable is used by project configuration parser (issue #3377)
Fixed an issue when Library Dependency Finder (LDF) ignores custom “libLDFMode” and “libCompatMode” options in library.json
Fixed an issue when generating of compilation database “compile_commands.json” does not work with Python 2.7 (issue #3378)
4.2.0 (2020-02-12)¶
-
Project Manager
Project Configuration UI for “platformio.ini”
PIO Check – automated code analysis without hassle:
Added support for PVS-Studio static code analyzer
Initial support for Project Manager CLI:
Show computed project configuration with a new platformio project config command or dump to JSON with
platformio project config --json-output
(issue #3335)Moved
platformio init
command to platformio project init
Generate compilation database “compile_commands.json” (issue #2990)
Control debug flags and optimization level with a new debug_build_flags option
Install a dev-platform with ALL declared packages using a new
--with-all-packages
option for pio platform install command (issue #3345)Added support for “pythonPackages” in platform.json manifest (PlatformIO Package Manager will install dependent Python packages from PyPi registry automatically when dev-platform is installed)
Handle project configuration (monitor, test, and upload options) for PIO Remote commands (issue #2591)
Added support for Arduino’s library.properties
depends
field (issue #2781)Autodetect monitor port for boards with specified HWIDs (issue #3349)
Updated SCons tool to 3.1.2
Updated Unity tool to 2.5.0
Made package ManifestSchema compatible with marshmallow >= 3 (issue #3296)
Warn about broken library manifest when scanning dependencies (issue #3268)
Do not overwrite custom items in VSCode’s “extensions.json” (issue #3374)
Fixed an issue when
env.BoardConfig()
does not work for custom boards in extra scripts of libraries (issue #3264)Fixed an issue with “start-group/end-group” linker flags on Native development platform (issue #3282)
Fixed default PIO Unified Debugger configuration for J-Link probe
Fixed an issue with LDF when header files not found if “libdeps_dir” is within a subdirectory of “lib_extra_dirs” (issue #3311)
Fixed an issue “Import of non-existent variable ‘projenv’’” when development platform does not call “env.BuildProgram()” (issue #3315)
Fixed an issue when invalid CLI command does not return non-zero exit code
Fixed an issue when Project Inspector crashes when flash use > 100% (issue #3368)
Fixed a “UnicodeDecodeError” when listing built-in libraries on macOS with Python 2.7 (issue #3370)
Fixed an issue with improperly handled compiler flags with space symbols in VSCode template (issue #3364)
Fixed an issue when no error is raised if referred parameter (interpolation) is missing in a project configuration file (issue #3279)
4.1.0 (2019-11-07)¶
PIO Check – automated code analysis without hassle:
Potential NULL pointer dereferences
Possible indexing beyond array bounds
Suspicious assignments
Reads of potentially uninitialized objects
Unused variables or functions
Out of scope memory usage.
-
Project Inspection
Static Code Analysis
Firmware File Explorer
Firmware Memory Inspection
Firmware Sections & Symbols Viewer.
Added support for Build Middlewares: configure custom build flags per specific file, skip any build nodes from a framework, replace build file with another on-the-fly, etc.
Extend project environment configuration in “platformio.ini” with other sections using a new extends option (issue #2953)
Generate
.ccls
LSP file for Emacs cross references, hierarchies, completion and semantic highlightingAdded
--no-ansi
flag for PIO Core to disable ANSI control charactersAdded
--shutdown-timeout
option to PIO Home ServerFixed an issue with project generator for CLion IDE when 2 environments were used (issue #2824)
Fixed default PIO Unified Debugger configuration for J-Link probe
Fixed an issue when configuration file options partly ignored when using custom
--project-conf
(issue #3034)Fixed an issue when installing a package using custom Git tag and submodules were not updated correctly (issue #3060)
Fixed an issue with linking process when
$LDSCRIPT
contains a space in pathFixed security issue when extracting items from TAR archive (issue #2995)
Fixed an issue with project generator when
src_build_flags
were not respected (issue #3137)Fixed an issue when booleans in “platformio.ini” are not parsed properly (issue #3022)
Fixed an issue with invalid encoding when generating project for Visual Studio (issue #3183)
Fixed an issue when Project Config Parser does not remove in-line comments when Python 3 is used (issue #3213)
Fixed an issue with a GCC Linter for PlatformIO IDE for Atom (issue #3218)
4.0.3 (2019-08-30)¶
Added support for multi-environment PlatformIO project for CLion IDE (issue #2824)
Generate
.ccls
LSP file for Vim cross references, hierarchies, completion and semantic highlighting (issue #2952)Added support for PLATFORMIO_DISABLE_COLOR system environment variable which disables color ANSI-codes in a terminal output (issue #2956)
Updated SCons tool to 3.1.1
Remove ProjectConfig cache when “platformio.ini” was modified outside
Fixed an issue with PIO Unified Debugger on Windows OS when debug server is piped
Fixed an issue when –upload-port CLI flag does not override declared upload_port option in “platformio.ini” (Project Configuration File)
4.0.2 (2019-08-23)¶
Fixed an issue with a broken LDF when checking for framework compatibility (issue #2940)
4.0.1 (2019-08-22)¶
Print debug tool name for the active debugging session
Do not shutdown PIO Home Server for “upgrade” operations (issue #2784)
Improved computing of project check sum (structure, configuration) and avoid unnecessary rebuilding
Improved printing of tabulated results
Automatically normalize file system paths to UNIX-style for Project Generator (issue #2857)
Ability to set “databaseFilename” for VSCode and C/C++ extension (issue #2825)
Renamed “enable_ssl” setting to strict_ssl
Fixed an issue with incorrect escaping of Windows slashes when using PIO Unified Debugger and “piped” openOCD
Fixed an issue when “debug”, “home”, “run”, and “test” commands were not shown in “platformio –help” CLI
Fixed an issue with PIO Home’s “No JSON object could be decoded” (issue #2823)
Fixed an issue when library.json had priority over project configuration for LDF (issue #2867)
4.0.0 (2019-07-10)¶
Migration Guide from 3.0 to 4.0.
PlatformIO Plus Goes Open Source
Built-in PIO Unified Debugger
Built-in PIO Unit Testing
Project Configuration
New project configuration parser with a strict options typing (API)
Unified workspace storage (workspace_dir ->
.pio
) for PlatformIO Build System, Library Manager, and other internal services (issue #1778)Share common (global) options between project environments using [env] section (issue #1643)
Include external configuration files with extra_configs option (issue #1590)
Custom project
***_dir
options declared in platformio section have higher priority than Environment variablesAdded support for Unix shell-style wildcards for monitor_port option (issue #2541)
Added new monitor_flags option which allows passing extra flags and options to platformio device monitor command (issue #2165)
Added support for PLATFORMIO_DEFAULT_ENVS system environment variable (issue #1967)
Added support for shared_dir where you can place an extra files (extra scripts, LD scripts, etc.) which should be transferred to a PIO Remote machine
Library Management
Switched to workspace
.pio/libdeps
folder for project dependencies instead of.piolibdeps
Save libraries passed to platformio lib install command into the project dependency list (lib_deps) with a new
--save
flag (issue #1028)Install all project dependencies declared via lib_deps option using a simple platformio lib install command (issue #2147)
Use isolated library dependency storage per project build environment (issue #1696)
Look firstly in built-in library storages for a missing dependency instead of PlatformIO Registry (issue #1654)
Override default source and include directories for a library via library.json manifest using
includeDir
andsrcDir
fieldsFixed an issue when library keeps reinstalling for non-latin path (issue #1252)
Fixed an issue when lib_compat_mode = strict does not ignore libraries incompatible with a project framework
Build System
Switched to workspace
.pio/build
folder for build artifacts instead of.pioenvs
Switch between Build Configurations (
release
anddebug
) with a new project configuration option build_typeCustom platform_packages per a build environment with an option to override default (issue #1367)
Print platform package details, such as version, VSC source and commit (issue #2155)
Control a number of parallel build jobs with a new -j, –jobs option
Override default “platformio.ini” (Project Configuration File) with a custom using
-c, --project-conf
option for platformio run, platformio debug, or platformio test commands (issue #1913)Override default development platform upload command with a custom upload_command (issue #2599)
Configure a shared folder for the derived files (objects, firmwares, ELFs) from a build system using build_cache_dir option (issue #2674)
Fixed an issue when
-U
inbuild_flags
does not remove macro previously defined via-D
flag (issue #2508)
Infrastructure
Python 3 support (issue #895)
Significantly speedup back-end for PIO Home. It works super fast now!
Added support for the latest Python “Click” package (CLI) (issue #349)
Added options to override default locations used by PlatformIO Core (core_dir, globallib_dir, platforms_dir, packages_dir, cache_dir) (issue #1615)
Removed line-buffering from platformio run command which was leading to omitting progress bar from upload tools (issue #856)
Fixed numerous issues related to “UnicodeDecodeError” and international locales, or when project path contains non-ASCII chars (issue #143, issue #1342, issue #1959, issue #2100)
Integration
Support custom CMake configuration for CLion IDE using
CMakeListsUser.txt
fileFixed an issue with hardcoded C standard version when generating project for CLion IDE (issue #2527)
Fixed an issue with Project Generator when an include path search order is inconsistent to what passed to the compiler (issue #2509)
Fixed an issue when generating invalid “Eclipse CDT Cross GCC Built-in Compiler Settings” if a custom PLATFORMIO_CORE_DIR is used (issue #806)
Miscellaneous
Deprecated
--only-check
PlatformIO Core CLI option for “update” sub-commands, please use--dry-run
insteadFixed “systemd-udevd” warnings in 99-platformio-udev.rules (issue #2442)
Fixed an issue when package cache (Library Manager) expires too fast (issue #2559)
PlatformIO Core 3¶
3.6.7 (2019-04-23)¶
PIO Unified Debugger: improved debugging in
debug_load_mode = modified
and fixed an issue with useless project rebuildingProject Generator: fixed a VSCode C/C++’s “Cannot find” warning when CPPPATH folder does not exist
Fixed an “IndexError: list index out of range” for Arduino sketch preprocessor (issue #2268)
Fixed an issue when invalid “env_default” in “platformio.ini” (Project Configuration File) results into unhandled errors (issue #2265)
3.6.6 (2019-03-29)¶
Project Generator: fixed a warning “Property !!! WARNING !!! is not allowed” for VSCode (issue #2243)
Fixed an issue when PlatformIO Build System does not pick up “mbed_lib.json” files from libraries (issue #2164)
Fixed an error with conflicting declaration of a prototype (Arduino sketch preprocessor)
Fixed “FileExistsError” when platformio ci command is used in pair with
--keep-build-dir
optionFixed an issue with incorrect order of project “include” and “src” paths in
CPPPATH
(issue #1914)
3.6.5 (2019-03-07)¶
Project Generator: added new targets for CLion IDE “BUILD_VERBOSE” and “MONITOR” (serial port monitor) (issue #359)
Fixed an issue with slow updating of PlatformIO Core packages on Windows
Fixed an issue when platformio ci recompiles project if
--keep-build-dir
option is passed (issue #2109)Fixed an issue when
$PROJECT_HASH
template was not expanded for the other directory***_dir
options in “platformio.ini” (Project Configuration File) (issue #2170)
3.6.4 (2019-01-23)¶
Improved Project Generator for IDEs:
Use full path to PlatformIO CLI when generating a project (issue #1674)
CLion: Improved project portability using “${CMAKE_CURRENT_LIST_DIR}” instead of full path
Eclipse: Provide language standard to a project C/C++ indexer (issue #1010)
Fixed an issue with incorrect detecting of compatibility (LDF) between generic library and Arduino or ARM mbed frameworks
Fixed “Runtime Error: Dictionary size changed during iteration” (issue #2003)
Fixed an error “Could not extract item…” when extracting TAR archive with symbolic items on Windows platform (issue #2015)
3.6.3 (2018-12-12)¶
Ignore
*.asm
and*.ASM
files when building Arduino-based library (compatibility with Arduino builder)Fixed spurious project’s “Problems” for PlatformIO IDE for VSCode when ARM mbed framework is used
Fixed an issue with a broken headers list when generating “.clang_complete” for Emacs (issue #1960)
3.6.2 (2018-11-29)¶
Improved IntelliSense for PlatformIO IDE for VSCode via passing extra compiler information for C/C++ Code Parser (resolves issues with spurious project’s “Problems”)
Fixed an issue with VSCode IntelliSense warning about the missed headers located in include folder
Fixed incorrect wording when initializing/updating project
Fixed an issue with incorrect order for library dependencies
CPPPATH
(issue #1914)Fixed an issue when Library Dependency Finder (LDF) does not handle project src_filter (issue #1905)
Fixed an issue when Library Dependency Finder (LDF) finds spurious dependencies in
chain+
anddeep+
modes (issue #1930)
3.6.1 (2018-10-29)¶
Generate an include and test directories with a README file when initializing a new project
Support in-line comments for multi-line value (
lib_deps
,build_flags
, etc) in “platformio.ini” (Project Configuration File)Added
$PROJECT_HASH
template variable for build_dir. One of the use cases is setting a global storage for project artifacts using PLATFORMIO_BUILD_DIR system environment variable. For example,/tmp/pio-build/$PROJECT_HASH
(Unix) or$[sysenv.TEMP}/pio-build/$PROJECT_HASH
(Windows)Improved a loading speed of PIO Home “Recent News”
Improved PIO Unified Debugger for “mbed” framework and fixed issue with missed local variables
Introduced “Release” and “Debug” Build Configurations
Build project in “Debug Mode” including debugging information with a new
debug
target using platformio run command or targets option inplatformio.ini
. The last option allows avoiding project rebuilding between “Run/Debug” modes. (issue #1833)Process
build_unflags
for the cloned environment when building a static libraryReport on outdated 99-platformio-udev.rules (issue #1823)
Show a valid error when the Internet is off-line while initializing a new project (issue #1784)
Do not re-create “.gitignore” and “.travis.yml” files if they were removed from a project
Fixed an issue when dynamic build flags were not handled correctly (issue #1799)
Fixed an issue when
pio run -t monitor
always uses the firstmonitor_port
even with multiple environments (issue #1841)Fixed an issue with broken includes when generating
.clang_complete
and space is used in a path (issue #1873)Fixed an issue with incorrect handling of a custom package name when using platformio lib install or platformio platform install commands
3.6.0 (2018-08-06)¶
-
Print human-readable memory usage information after a build and before uploading
Print detailed memory usage information with “sections” and “addresses” in verbose mode
Check maximum allowed “program” and “data” sizes before uploading/programming (issue #1412)
-
Documented Project Shared Code
Force building of project source code using test_build_project_src option
Fixed missed
UNIT_TEST
macro for unit test components/libraries
Check package structure after unpacking and raise error when antivirus tool blocks PlatformIO package manager (issue #1462)
Lock interprocess requests to PlatformIO Package Manager for install/uninstall operations (issue #1594)
Fixed an issue with PIO Remote when upload process depends on the source code of a project framework
Fixed an issue when
srcFilter
field in library.json breaks a library build (issue #1735)
3.5.4 (2018-07-03)¶
Improved removing of default build flags using build_unflags option (issue #1712)
Export
LIBS
,LIBPATH
, andLINKFLAGS
data from project dependent libraries to the global build environmentDon’t export
CPPPATH
data of project dependent libraries to framework’s build environment (issue #1665)Handle “architectures” data from “library.properties” manifest in lib_compat_mode = strict
Added workaround for Python SemVer package’s issue #61 with caret range and pre-releases
Replaced conflicted “env” pattern by “sysenv” for “platformio.ini” Dynamic Variables” (issue #1705)
Removed “date&time” when processing project with platformio run command (issue #1343)
Fixed issue with invalid LD script if path contains space
Fixed preprocessor for Arduino sketch when function returns certain type (issue #1683)
Fixed issue when platformio lib uninstall removes initial source code (issue #1023)
3.5.3 (2018-06-01)¶
PlatformIO Home - interact with PlatformIO ecosystem using modern and cross-platform GUI:
“Recent News” block on “Welcome” page
Direct import of development platform’s example
Simplify configuration for PIO Unit Testing: separate main program from a test build process, drop requirement for
#ifdef UNIT_TEST
guardOverride any option from board manifest in “platformio.ini” (Project Configuration File) (issue #1612)
Configure a custom path to SVD file using debug_svd_path option
Custom project description which will be used by PlatformIO Home
Updated Unity tool to 2.4.3
Improved support for Black Magic Probe in “uploader” mode
Renamed “monitor_baud” option to “monitor_speed”
Fixed issue when a custom lib_dir was not handled correctly (issue #1473)
Fixed issue with useless project rebuilding for case insensitive file systems (Windows)
Fixed issue with
build_unflags
option when a macro contains value (e.g.,-DNAME=VALUE
)Fixed issue which did not allow to override runtime build environment using extra POST script
Fixed “RuntimeError: maximum recursion depth exceeded” for library manager (issue #1528)
3.5.2 (2018-03-13)¶
PlatformIO Home - interact with PlatformIO ecosystem using modern and cross-platform GUI:
Multiple themes (Dark & Light)
Ability to specify a name for new project
Control PIO Unified Debugger and its firmware loading mode using debug_load_mode option
Added aliases (off, light, strict) for LDF Compatibility Mode
Search for a library using PIO Library Registry ID
id:X
(e.g.pio lib search id:13
)Show device system information (MCU, Frequency, RAM, Flash, Debugging tools) in a build log
Show all available upload protocols before firmware uploading in a build log
Handle “os.mbed.com” URL as a Mercurial (hg) repository
Improved support for old mbed libraries without manifest
Fixed project generator for Qt Creator IDE (issue #1303, issue #1323)
Mark project source and library directories for CLion IDE (issue #1359, issue #1345, issue #897)
Fixed issue with duplicated “include” records when generating data for IDE (issue #1301)
3.5.1 (2018-01-18)¶
New
test_speed
option to control a communication baudrate/speed between PIO Unit Testing engine and a target device (issue #1273)Show full library version in “Library Dependency Graph” including VCS information (issue #1274)
Configure a custom firmware/program name in build directory (example)
Renamed
envs_dir
option tobuild_dir
in “platformio.ini” (Project Configuration File)Refactored code without “arrow” dependency (resolve issue with “ImportError: No module named backports.functools_lru_cache”)
Improved support of PIO Unified Debugger for Eclipse Oxygen
Improved a work in off-line mode
Fixed project generator for CLion and Qt Creator IDE (issue #1299)
Fixed PIO Unified Debugger for mbed framework
Fixed library updates when a version is declared in VCS format (not SemVer)
3.5.0 (2017-12-28)¶
PlatformIO Home - interact with PlatformIO ecosystem using modern and cross-platform GUI:
Library Manager:
Search for new libraries in PlatformIO Registry
“1-click” library installation, per-project libraries, extra storages
List installed libraries in multiple storages
List built-in libraries (by frameworks)
Updates for installed libraries
Multiple examples, trending libraries, and more.
PlatformIO Projects
PIO Account
Development platforms, frameworks and board explorer
Device Manager: serial, logical, and multicast DNS services
Integration with Jenkins CI
New include folder for project’s header files (issue #1107)
Depend on development platform using VCS URL (Git, Mercurial and Subversion) instead of a name in “platformio.ini” (Project Configuration File). Drop support for
*_stage
dev/platform names (use VCS URL instead).Reinstall/redownload package with a new
-f, --force
option for platformio lib install and platformio platform install commands (issue #778)Handle missed dependencies and provide a solution based on PlatformIO Library Registry (issue #781)
New setting projects_dir that allows to override a default PIO Home Projects location (issue #1161)
Library Dependency Finder (LDF):
Search for dependencies used in PIO Unit Testing (issue #953)
Parse library source file in pair with a header when they have the same name (issue #1175)
Handle library dependencies defined as VCS or SemVer in “platformio.ini” (Project Configuration File) (issue #1155)
Added option to configure library Compatible Mode using library.json
New options for platformio device list command:
--serial
list available serial ports (default)--logical
list logical devices--mdns
discover multicast DNS services (issue #463)
Fixed platforms, packages, and libraries updating behind proxy (issue #1061)
Fixed missing toolchain include paths for project generator (issue #1154)
Fixed “Super-Quick (Mac / Linux)” installation in “get-platformio.py” script (issue #1017)
Fixed “get-platformio.py” script which hangs on Windows 10 (issue #1118)
Other bug fixes and performance improvements
3.4.1 (2017-08-02)¶
Pre/Post extra scripting for advanced control of PIO Build System (issue #891)
New lib_archive option to control library archiving and linking behavior (issue #993)
Add “inc” folder automatically to CPPPATH when “src” is available (works for project and library) (issue #1003)
Use a root of library when filtering source code using library.json and
srcFilter
fieldAdded
monitor_*
options to white-list for “platformio.ini” (Project Configuration File) (issue #982)Do not ask for board ID when initialize project for desktop platform
Handle broken PIO Core state and create new one
Fixed an issue with a custom transport for PIO Unit Testing when multiple tests are present
Fixed an issue when can not upload firmware to SAM-BA based board (Due)
3.4.0 (2017-06-26)¶
-
“1-click” solution, zero configuration
Support for 100+ embedded boards
Multiple architectures and development platforms
Windows, MacOS, Linux (+ARMv6-8)
Built-in into PlatformIO IDE for Atom and PlatformIO IDE for VScode
Integration with Eclipse and Sublime Text
Filter PIO Unit Testing tests using a new
test_filter
option in “platformio.ini” (Project Configuration File) or platformio test –filter command (issue #934)Custom
test_transport
for PIO Unit Testing EngineConfigure Serial Port Monitor in “platformio.ini” (Project Configuration File) (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 “platformio.ini” (Project Configuration File), such as:
build_flags
,build_unflags
, etc. (issue #889)Handle dynamic
SRC_FILTER
environment variable from library.json extra scriptNotify 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 “platformio.ini” (Project Configuration File) 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)
3.3.1 (2017-05-27)¶
Hotfix for recently updated Python Requests package (2.16.0)
3.3.0 (2017-03-27)¶
PlatformIO Library Registry statistics with new pio lib stats command
Recently updated and added libraries
Recent and popular keywords
Featured libraries (today, week, month)
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)
3.2.0 (2016-12-07)¶
PIO Remote™. Your devices are always with you!
Over-The-Air (OTA) Device Manager
OTA Serial Port Monitor
OTA Firmware Updates
Continuous Deployment
Continuous Delivery
Integration with Cloud IDEs
Cloud9
Codeanywhere
Eclipse Che
PIO Account and PLATFORMIO_AUTH_TOKEN environment variable for CI systems (issue #808, issue #467)
Inject system environment variables to configuration settings in “platformio.ini” (Project Configuration File) (issue #792)
Custom boards per project with
boards_dir
option in “platformio.ini” (Project Configuration File) (issue #515)Unix shell-style wildcards for upload_port (issue #839)
Refactored Library Dependency Finder (LDF) C/C++ Preprocessor for conditional syntax (
#ifdef
,#if
,#else
,#elif
,#define
, etc.) (issue #837)Added new LDF Modes:
chain+
anddeep+
and setchain+
as defaultAdded global
lib_extra_dirs
option to[platformio]
section for “platformio.ini” (Project Configuration File) (issue #842)Enabled caching by default for API requests and Library Manager (see enable_cache setting)
Native integration with VIM/Neovim using neomake-platformio plugin
Changed a default exit combination for Device Monitor from
Ctrl+]
toCtrl+C
Improved detecting of ARM mbed media disk for uploading
Improved Project Generator for CLion IDE when source folder contains nested items
Improved handling of library dependencies specified in
library.json
manifest (issue #814)Improved Library Dependency Finder (LDF) for circular dependencies
Show vendor version of a package for platformio platform show command (issue #838)
Fixed unable to include SSH user in
lib_deps
repository url (issue #830)Fixed merging of “.gitignore” files when re-initialize project (issue #848)
Fixed issue with
PATH
auto-configuring for upload toolsFixed
99-platformio-udev.rules
checker for Linux OS
3.1.0 (2016-09-19)¶
New! Dynamic variables/templates for “platformio.ini” (Project Configuration File) (issue #705)
Summary about processed environments (issue #777)
Implemented LocalCache system for API and improved a work in off-line mode
Improved Project Generator when custom
--project-option
is passed to platformio init commandDeprecated
lib_force
option, please use lib_deps insteadReturn valid exit code from
plaformio test
commandFixed Project Generator for CLion IDE using Windows OS (issue #785)
Fixed SSL Server-Name-Indication for Python < 2.7.9 (issue #774)
3.0.1 (2016-09-08)¶
Disabled temporary SSL for PlatformIO services (issue #772)
3.0.0 (2016-09-07)¶
-
Local and Embedded Unit Testing (issue #408, issue #519)
Decentralized Development Platforms
Development platform manifest “platform.json” and open source development platforms
Semantic Versioning for platform commands, development platforms and dependent packages
Custom package repositories
External embedded board configuration files, isolated build scripts (issue #479)
Embedded Board compatibility with more than one development platform (issue #456)
Library Manager 3.0
Project dependencies per build environment using lib_deps option (issue #413)
Semantic Versioning for library commands and dependencies (issue #410)
Multiple library storages: Project’s Local, PlatformIO’s Global or Custom (issue #475)
Install library by name (issue #414)
Depend on a library using VCS URL (GitHub, Git, ARM mbed code registry, Hg, SVN) (issue #498)
Strict search for library dependencies (issue #588)
Allowed
library.json
to specify sources other than PlatformIO’s Repository (issue #461)Search libraries by headers/includes with
platformio lib search --header
option
New Intelligent Library Build System
Library Dependency Finder that interprets C/C++ Preprocessor conditional macros with deep search behavior
Check library compatibility with project environment before building (issue #415)
Control Library Dependency Finder for compatibility using lib_compat_mode option
Custom library storages/directories with lib_extra_dirs option (issue #537)
Handle extra build flags, source filters and build script from library.json (issue #289)
Allowed to disable library archiving (
*.ar
) (issue #719)Show detailed build information about dependent libraries (issue #617)
Support for the 3rd party manifests (Arduino IDE “library.properties” and ARM mbed “module.json”)
Removed
enable_prompts
setting. Now, all PlatformIO CLI is non-blocking!Switched to SSL PlatformIO API
Renamed
platformio serialports
command toplatformio device
Build System: Attach custom Before/Pre and After/Post actions for targets (issue #542)
Allowed passing custom project configuration options to
platformio ci
andplatformio init
commands using-O, --project-option
.Print human-readable information when processing environments without
-v, --verbose
option (issue #721)Improved INO to CPP converter (issue #659, issue #765)
Added
license
field to library.json (issue #522)Warn about unknown options in project configuration file
platformio.ini
(issue #740)Fixed wrong line number for INO file when
#warning
directive is used (issue #742)Stopped supporting Python 2.6
PlatformIO Core 2¶
2.11.2 (2016-08-02)¶
Improved support for Microchip PIC32 development platform and ChipKIT boards (issue #438)
Added support for Pinoccio Scout board (issue #52)
Added support for Teensy USB Features (HID, SERIAL_HID, DISK, DISK_SDFLASH, MIDI, etc.) (issue #722)
Switched to built-in GCC LwIP library for Espressif development platform
Added support for local
--echo
for Serial Port Monitor (issue #733)Updated
udev
rules for the new STM32F407DISCOVERY boards (issue #731)Implemented firmware merging with base firmware for Nordic nRF51 development platform (issue #500, issue #533)
Fixed Project Generator for ESP8266 and ARM mbed based projects (resolves incorrect linter errors)
Fixed broken LD Script for Element14 chipKIT Pi board (issue #725)
Fixed firmware uploading to Atmel SAMD21-XPRO board using ARM mbed framework (issue #732)
2.11.1 (2016-07-12)¶
Added support for Arduino M0, M0 Pro and Tian boards (issue #472)
Added support for Microchip chipKIT Lenny board
Updated Microchip PIC32 Arduino framework to v1.2.1
Documented uploading of EEPROM data (from EEMEM directive)
Added
Rebuild C/C++ Project Index
target to CLion and Eclipse IDEsImproved project generator for CLion IDE
Added
udev
rules for OpenOCD CMSIS-DAP adapters (issue #718)Auto-remove project cache when PlatformIO is upgraded
Keep user changes for
.gitignore
file when re-generate/update project dataIgnore
[platformio]
section from custom project configuration file when platformio ci –project-conf command is usedFixed missed
--boot
flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) (issue #710)Fixed missing trailing
\
for the source files list when generate project for Qt Creator IDE (issue #711)Split source files to
HEADERS
andSOURCES
when generate project for Qt Creator IDE (issue #713)
2.11.0 (2016-06-28)¶
New ESP8266-based boards: Generic ESP8285 Module, Phoenix 1.0 & 2.0, WifInfo
Added support for Arduino M0 Pro board (issue #472)
Added support for Arduino MKR1000 board (issue #620)
Added support for Adafruit Feather M0, SparkFun SAMD21 and SparkFun SAMD21 Mini Breakout boards (issue #520)
Updated Arduino ESP8266 core for Espressif platform to 2.3.0
Better removing unnecessary flags using
build_unflags
option (issue #698)Fixed issue with
platformio init --ide
command for Python 2.6
2.10.3 (2016-06-15)¶
Fixed issue with
platformio init --ide
command
2.10.2 (2016-06-15)¶
Added support for ST Nucleo L031K6 board to ARM mbed framework
Process
build_unflags
option for ARM mbed frameworkUpdated Intel ARC32 Arduino framework to v1.0.6 (issue #695)
Improved a check of program size before uploading to the board
Fixed issue with ARM mbed framework
-u _printf_float
and-u _scanf_float
when parsing$LINKFLAGS
Fixed issue with ARM mbed framework and extra includes for the custom boards, such as Seeeduino Arch Pro
2.10.1 (2016-06-13)¶
Re-submit a package to PyPI
2.10.0 (2016-06-13)¶
Added support for emonPi, the OpenEnergyMonitor system (issue #687)
Added support for SPL framework for STM32F0 boards (issue #683)
Added support for Arduboy DevKit, the game system the size of a credit card
Updated ARM mbed framework package to v121
Check program size before uploading to the board (issue #689)
Improved firmware uploading to Arduino Leonardo based boards (issue #691)
Fixed issue with
-L relative/path
when parsingbuild_flags
(issue #688)
2.9.4 (2016-06-04)¶
Show
udev
warning only for the Linux OS while uploading firmware
2.9.3 (2016-06-03)¶
Added support for Arduboy, the game system the size of a credit card
Updated 99-platformio-udev.rules for Linux OS
Refactored firmware uploading to the embedded boards with SAM-BA bootloader
2.9.2 (2016-06-02)¶
Simplified Continuous Integration with AppVeyor (issue #671)
Automatically add source directory to
CPPPATH
of Build SystemAdded support for Silicon Labs SLSTK3401A (Pearl Gecko) and MultiTech mDot F411 ARM mbed based boards
Added support for MightyCore ATmega8535 board (issue #585)
Added
stlink
as the default uploader for STM32 Discovery boards (issue #665)Use HTTP mirror for Package Manager in a case with SSL errors (issue #645)
Improved firmware uploading to Arduino Leonardo/Due based boards
Fixed bug with
env_default
whenpio run -e
is usedFixed issue with
src_filter
option for Windows OS (issue #652)Fixed configuration data for TI LaunchPads based on msp430fr4133 and msp430fr6989 MCUs (issue #676)
Fixed issue with ARM mbed framework and multiple definition errors on FRDM-KL46Z board (issue #641)
Fixed issue with ARM mbed framework when abstract class breaks compile for LPC1768 (issue #666)
2.9.1 (2016-04-30)¶
Handle prototype pointers while converting
*.ino
to.cpp
(issue #639)
2.9.0 (2016-04-28)¶
Project generator for CodeBlocks IDE (issue #600)
New Lattice iCE40 FPGA development platform with support for Lattice iCEstick FPGA Evaluation Kit and BQ IceZUM Alhambra FPGA (issue #480)
New Intel ARC 32-bit development platform with support for Arduino/Genuino 101 board (issue #535)
New Microchip PIC32 development platform with support for 20+ different PIC32 based boards (issue #438)
New RTOS and build Framework named Simba (issue #412)
New boards for ARM mbed framework: ST Nucleo F410RB, ST Nucleo L073RZ and BBC micro:bit
Added support for Arduino.Org boards: Arduino Leonardo ETH, Arduino Yun Mini, Arduino Industrial 101 and Linino One (issue #472)
Added support for Generic ATTiny boards: ATTiny13, ATTiny24, ATTiny25, ATTiny45 and ATTiny85 (issue #636)
Added support for MightyCore boards: ATmega1284, ATmega644, ATmega324, ATmega164, ATmega32, ATmega16 and ATmega8535 (issue #585)
Added support for TI MSP430 boards: TI LaunchPad w/ msp430fr4133 and TI LaunchPad w/ msp430fr6989
Updated Arduino core for Espressif platform to 2.2.0 (issue #627)
Updated native SDK for ESP8266 to 1.5 (issue #366)
PlatformIO Library Registry in JSON format! Implemented
--json-output
and--page
options for platformio lib search command (issue #604)Allowed to specify default environments env_default which should be processed by default with
platformio run
command (issue #576)Allowed to unflag(remove) base/initial flags using build_unflags option (issue #559)
Allowed multiple VID/PID pairs when detecting serial ports (issue #632)
Automatically add
-DUSB_MANUFACTURER
with vendor’s name (issue #631)Automatically reboot Teensy board after upload when Teensy Loader GUI is used (issue #609)
Refactored source code converter from
*.ino
to*.cpp
(issue #610)Forced
-std=gnu++11
for Atmel SAM development platform (issue #601)Don’t check OS type for ARM mbed-enabled boards and ST STM32 development platform before uploading to disk (issue #596)
Fixed broken compilation for Atmel SAMD based boards except Arduino Due (issue #598)
Fixed firmware uploading using serial port with spaces in the path
Fixed cache system when project’s root directory is used as
src_dir
(issue #635)
2.8.6 (2016-03-22)¶
Launched PlatformIO Community Forums (issue #530)
Added support for ARM mbed-enabled board Seed Arch Max (STM32F407VET6) (issue #572)
Improved DNS lookup for PlatformIO API
Updated Arduino Wiring-based framework to the latest version for Atmel AVR/SAM development platforms
Updated “Teensy Loader CLI” and fixed uploading of large .hex files (issue #568)
Updated the support for Sanguino Boards (issue #586)
Better handling of used boards when re-initialize/update project
Improved support for non-Unicode user profiles for Windows OS
Disabled progress bar for download operations when prompts are disabled
Fixed multiple definition errors for ST STM32 development platform and ARM mbed framework (issue #571)
Fixed invalid board parameters (reset method and baudrate) for a few ESP8266 based boards
Fixed “KeyError: ‘content-length’” in PlatformIO Download Manager (issue #591)
2.8.5 (2016-03-07)¶
Project generator for NetBeans IDE (issue #541)
Created package for Homebrew Mac OS X Package Manager:
brew install platformio
(issue #395)Updated Arduino core for Espressif platform to 2.1.0 (issue #544)
Added support for the ESP8266 ESP-07 board to Espressif (issue #527)
Improved handling of String-based
CPPDEFINES
passed to extrabuild_flags
(issue #526)Generate appropriate project for CLion IDE and CVS (issue #523)
Use
src_dir
directory from Project Configuration File platformio.ini when initializing project otherwise create basesrc
directory (issue #536)Fixed issue with incorrect handling of user’s build flags where the base flags were passed after user’s flags to GCC compiler (issue #528)
Fixed issue with Project Generator when optional build flags were passed using system environment variables: PLATFORMIO_BUILD_FLAGS or PLATFORMIO_BUILD_SRC_FLAGS
Fixed invalid detecting of compiler type (issue #550)
Fixed issue with updating package which was deleted manually by user (issue #555)
Fixed incorrect parsing of GCC
-include
flag (issue #552)
2.8.4 (2016-02-17)¶
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 Espressif development platform
Added
board_f_flash
option to Project Configuration File platformio.ini which allows to specify custom flash chip frequency for Espressif development platform (issue #501)Added
board_flash_mode
option to Project Configuration File platformio.ini which allows to specify custom flash chip mode for Espressif development platformHandle new environment variables PLATFORMIO_UPLOAD_PORT and PLATFORMIO_UPLOAD_FLAGS (issue #518)
Fixed issue with
CPPDEFINES
which contain space and break PlatformIO IDE Linter (IDE issue #34)Fixed unable to link C++ standard library to Espressif platform build (issue #503)
Fixed issue with pointer (
char* myfunc()
) while converting from*.ino
to*.cpp
(issue #506)
2.8.3 (2016-02-02)¶
Better integration of PlatformIO Builder with PlatformIO IDE Linter
Fixed issue with removing temporary file while converting
*.ino
to*.cpp
Fixed missing dependency (mbed framework) for Atmel SAM development platform (issue #487)
2.8.2 (2016-01-29)¶
Corrected RAM size for NXP LPC1768 based boards (issue #484)
Exclude only
test
andtests
folders from build processReverted
-Wl,-whole-archive
hook for ST STM32 and mbed
2.8.1 (2016-01-29)¶
Fixed a bug with Project Initialization in PlatformIO IDE
2.8.0 (2016-01-29)¶
PlatformIO IDE for Atom (issue #470)
Added
pio
command line alias forplatformio
command (issue #447)Added SPL-Framework support for Nucleo F401RE board (issue #453)
Added
upload_resetmethod
option to Project Configuration File platformio.ini which allows to specify custom upload reset method for Espressif development platform (issue #444)Allowed to force output of color ANSI-codes or to disable progress bar even if the output is a
pipe
(not atty
) using Environment variables (issue #465)Set 1Mb SPIFFS for Espressif boards by default (issue #458)
Exclude
test*
folder by default from build processGenerate project for IDEs with information about installed libraries
Fixed builder for mbed framework and ST STM32 platform
2.7.1 (2016-01-06)¶
Initial support for Arduino Zero board (issue #356)
Added support for completions to Atom text editor using
.clang_complete
Generate default targets for supported IDE (CLion, Eclipse IDE, Emacs, Sublime Text, VIM): Build, Clean, Upload, Upload SPIFFS image, Upload using Programmer, Update installed platforms and libraries (issue #427)
Updated Teensy Arduino Framework to 1.27 (issue #434)
Fixed uploading of EEPROM data using
uploadeep
target for Atmel AVR development platformFixed project generator for CLion IDE (issue #422)
Fixed package
shasum
validation on Mac OS X 10.11.2 (issue #429)Fixed CMakeLists.txt
add_executable
has only one source file (issue #421)
2.7.0 (2015-12-30)¶
Happy New Year!
Moved SCons to PlatformIO packages. PlatformIO does not require SCons to be installed in your system. Significantly simplified installation process of PlatformIO.
pip install platformio
rocks!Implemented uploading files to file system of ESP8266 SPIFFS (including OTA) (issue #382)
Added support for the new Adafruit boards Bluefruit Micro and Feather (issue #403)
Added support for RFDuino (issue #319)
Updated Arduino framework for Atmel AVR development platform to 1.6.7
Documented firmware uploading for Atmel AVR development platform using Programmers: AVR ISP, AVRISP mkII, USBtinyISP, USBasp, Parallel Programmer and Arduino as ISP
Fixed issue with current Python interpreter for Python-based tools (issue #417)
2.6.3 (2015-12-21)¶
Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)
Fixed invalid ROM size for ESP8266-based boards (issue #396)
2.6.2 (2015-12-21)¶
Removed
SCons
from requirements list. PlatformIO will try to install it automatically, otherwise users need to install it manuallyFixed
ChunkedEncodingError
when SF connection is broken (issue #356)
2.6.1 (2015-12-18)¶
Added support for the new ESP8266-based boards (SparkFun ESP8266 Thing, NodeMCU 0.9 & 1.0, Olimex MOD-WIFI-ESP8266(-DEV), Adafruit HUZZAH ESP8266, ESPino, SweetPea ESP-210, WeMos D1, WeMos D1 mini) to Espressif development platform
Created public platformio-pkg-ldscripts repository for LD scripts. Moved common configuration for ESP8266 MCU to
esp8266.flash.common.ld
(issue #379)Improved documentation for Espressif development platform: OTA update, custom Flash Size, Upload Speed and CPU frequency
Fixed reset method for Espressif NodeMCU (ESP-12E Module) (issue #380)
Fixed issue with code builder when build path contains spaces (issue #387)
Fixed project generator for Eclipse IDE and “duplicate path entries found in project path” (issue #383)
2.6.0 (2015-12-15)¶
Install only required packages depending on build environment (issue #308)
Added support for Raspberry Pi WiringPi framework (issue #372)
Implemented Over The Air (OTA) upgrades for Espressif development platform. (issue #365)
Updated CMSIS framework and added CMSIS support for Nucleo F401RE board (issue #373)
Added support for Espressif ESP8266 ESP-01-1MB board (ready for OTA)
Handle
upload_flags
option in platformio.ini (issue #368)Improved PlatformIO installation on the Mac OS X El Capitan
2.5.0 (2015-12-08)¶
Improved code builder for parallel builds (up to 4 times faster than before)
Generate .travis.yml CI and .gitignore files for embedded projects by default (issue #354)
Removed prompt with “auto-uploading” from platformio init command and added
--enable-auto-uploading
option (issue #352)Fixed incorrect behaviour of platformio serialports monitor in pair with PySerial 3.0
2.4.1 (2015-12-01)¶
Restored
PLATFORMIO
macros with the current version
2.4.0 (2015-12-01)¶
Added support for the new boards: Atmel ATSAMR21-XPRO, Atmel SAML21-XPRO-B, Atmel SAMD21-XPRO, ST 32F469IDISCOVERY, ST 32L476GDISCOVERY, ST Nucleo F031K6, ST Nucleo F042K6, ST Nucleo F303K8 and ST Nucleo L476RG
Updated Arduino core for Espressif platform to 2.0.0 (issue #345)
Added to FAQ explanation of Can not compile a library that compiles without issue with Arduino IDE (issue #331)
Fixed ESP-12E flash size (pull #333)
Fixed configuration for LowPowerLab MoteinoMEGA board (issue #335)
Fixed “LockFailed: failed to create appstate.json.lock” error for Windows
Fixed relative include path for preprocessor using
build_flags
(issue #271)
2.3.5 (2015-11-18)¶
Added support of libOpenCM3 framework for Nucleo F103RB board (issue #309)
Added support for Espressif ESP8266 ESP-12E board (NodeMCU) (issue #310)
Added support for pySerial 3.0 (issue #307)
Updated Arduino AVR/SAM frameworks to 1.6.6 (issue #321)
Upload firmware using external programmer via platformio run –target program target (issue #311)
Fixed handling of upload port when
board
option is not specified in platformio.ini (issue #313)Fixed firmware uploading for nordicrf51 development platform (issue #316)
Fixed installation on Mac OS X El Capitan (issue #312)
Fixed project generator for CLion IDE under Windows OS with invalid path to executable (issue #326)
Fixed empty list with serial ports on Mac OS X (isge #294)
Fixed compilation error
TWI_Disable not declared
for Arduino Due board (issue #329)
2.3.4 (2015-10-13)¶
Full support of CLion IDE including code auto-completion (issue #132)
PlatformIO command completion in Terminal for
bash
andzsh
Added support for ubIQio Ardhat board (pull #302)
Install SCons automatically and avoid
error: option --single-version-externally-managed not recognized
(issue #279)Use Teensy CLI Loader for upload of .hex files on Mac OS X (issue #306)
Fixed missing framework-mbed package for teensy platform (issue #305)
2.3.3 (2015-10-02)¶
Added support for LightBlue Bean board (pull #292)
Added support for ST Nucleo F446RE board (pull #293)
Fixed broken lock file for “appstate” storage (issue #288)
Fixed ESP8266 compile errors about RAM size when adding 1 library (issue #296)
2.3.2 (2015-09-10)¶
Allowed to use ST-Link uploader for mbed-based projects
Explained how to use
lib
directory from the PlatformIO based project inreadme.txt
which will be automatically generated using platformio init command (issue #273)Found solution for “pip/scons error: option –single-version-externally-managed not recognized” when install PlatformIO using
pip
package manager (issue #279)Fixed firmware uploading to Arduino Leonardo board using Mac OS (issue #287)
Fixed SConsNotInstalled error for Linux Debian-based distributives
2.3.1 (2015-09-06)¶
Fixed critical issue when platformio init –ide command hangs PlatformIO (issue #283)
2.3.0 (2015-09-05)¶
Added native, linux_arm, linux_i686, linux_x86_64, windows_x86 development platforms (issue #263)
Added PlatformIO Demo page to documentation
Simplified installation process of PlatformIO (issue #274)
Significantly improved Project Generator which allows to integrate with the most popular IDE
Added short
-h
help option for PlatformIO and sub-commandsUpdated mbed framework
Updated
tool-teensy
package for Teensy platform (issue #268)Added FAQ answer when Program “platformio” not found in PATH (issue #272)
Generate “readme.txt” for project “lib” directory (issue #273)
Use toolchain’s includes pattern
include*
for Project Generator (issue #277)Added support for Adafruit Gemma board to atmelavr platform (pull #256)
Fixed includes list for Windows OS when generating project for Eclipse IDE (issue #270)
Fixed
AttributeError: 'module' object has no attribute 'packages'
(issue #252)
2.2.2 (2015-07-30)¶
Integration with Atom IDE
Support for off-line/unpublished/private libraries (issue #260)
Disable project auto-clean while building/uploading firmware using platformio run –disable-auto-clean option (issue #255)
Show internal errors from “Miniterm” using platformio serialports monitor command (issue #257)
Fixed platformio serialports monitor –help information with HEX char for hotkeys (issue #253)
Handle “OSError: [Errno 13] Permission denied” for PlatformIO installer script (issue #254)
2.2.1 (2015-07-17)¶
Project generator for CLion IDE (issue #132)
Updated
tool-bossac
package to 1.5 version for atmelsam platform (issue #251)Updated
sdk-esp8266
package for espressif platformFixed incorrect arguments handling for platformio serialports monitor command (issue #248)
2.2.0 (2015-07-01)¶
Allowed to exclude/include source files from build process using src_filter (issue #240)
Launch own extra script before firmware building/uploading processes (issue #239)
Specify own path to the linker script (ld) using build_flags option (issue #233)
Specify library compatibility with the all platforms/frameworks using
*
symbol in library.jsonAdded support for new embedded boards: ST 32L0538DISCOVERY and Delta DFCM-NNN40 to Framework mbed
Updated packages for Framework Arduino (AVR, SAM, Espressif and Teensy cores, Framework mbed, Espressif ESP8266 SDK (issue #246)
Fixed
stk500v2_command(): command failed
(issue #238)Fixed IDE project generator when board is specified (issue #242)
Fixed relative path for includes when generating project for IDE (issue #243)
Fixed ESP8266 native SDK exception (issue #245)
2.1.2 (2015-06-21)¶
Fixed broken link to SCons installer
2.1.1 (2015-06-09)¶
Automatically detect upload port using VID:PID board settings (issue #231)
Improved detection of build changes
Avoided
LibInstallDependencyError
when more than 1 library is found (issue #229)
2.1.0 (2015-06-03)¶
Added Silicon Labs EFM32 siliconlabsefm32 development platform (issue #226)
Integrate PlatformIO with Circle CI and Shippable CI
Described in documentation how to create/register own board for PlatformIO
Disabled “nano.specs” for ARM-based platforms (issue #219)
Fixed “ConnectionError” when PlatformIO SF Storage is off-line
Fixed resolving of C/C++ std libs by Eclipse IDE (issue #220)
Fixed firmware uploading using USB programmer (USBasp) for atmelavr platform (issue #221)
2.0.2 (2015-05-27)¶
Fixed libraries order for “Library Dependency Finder” under Linux OS
2.0.1 (2015-05-27)¶
Handle new environment variable PLATFORMIO_BUILD_FLAGS
Pass to API requests information about Continuous Integration system. This information will be used by PlatformIO-API.
Use
include
directories from toolchain when initialising project for IDE (issue #210)Added support for new WildFire boards from Wicked Device to atmelavr platform
Updated Arduino Framework to 1.6.4 version (issue #212)
Handle Atmel AVR Symbols when initialising project for IDE (issue #216)
Fixed bug with converting
*.ino
to*.cpp
Fixed failing with
platformio init --ide eclipse
without boards (issue #217)
2.0.0 (2015-05-22)¶
Made in Paradise
PlatformIO as Continuous Integration (CI) tool for embedded projects (issue #108)
Initialise PlatformIO project for the specified IDE (issue #151)
PlatformIO CLI 2.0: “platform” related commands have been moved to
platformio platforms
subcommand (issue #158)Created PlatformIO gitter.im room (issue #174)
Global
-f, --force
option which will force to accept any confirmation prompts (issue #152)Run project with platformio run –project-dir option without changing the current working directory (issue #192)
Control verbosity of platformio run command via
-v/--verbose
optionAdd library dependencies for build environment using lib_install option in
platformio.ini
(issue #134)Specify libraries which are compatible with build environment using lib_use option in
platformio.ini
(issue #148)Add more boards to PlatformIO project with platformio init –board command (issue #167)
Choose which library to update (issue #168)
Specify platformio init –env-prefix when initialise/update project (issue #182)
Added new Armstrap boards (issue #204)
Updated SDK for espressif development platform to v1.1 (issue #179)
Disabled automatic updates by default for platforms, packages and libraries (issue #171)
Fixed bug with creating copies of source files (issue #177)
PlatformIO Core 1¶
1.5.0 (2015-05-15)¶
Added support of Framework mbed for Teensy 3.1 (issue #183)
Added GDB as alternative uploader to ststm32 platform (issue #175)
Added examples with preconfigured IDE projects (issue #154)
Fixed firmware uploading under Linux OS for Arduino Leonardo board (issue #178)
Fixed invalid “mbed” firmware for Nucleo F411RE (issue #185)
Fixed parsing of includes for PlatformIO Library Dependency Finder (issue #189)
Fixed handling symbolic links within source code directory (issue #190)
Fixed cancelling any previous definition of name, either built in or provided with a
-D
option (issue #191)
1.4.0 (2015-04-11)¶
Added espressif development platform with ESP01 board
Integrated PlatformIO with AppVeyor Windows based Continuous Integration system (issue #149)
Added support for Teensy LC board to teensy platform
Added support for new Arduino based boards by SparkFun, BQ, LightUp, LowPowerLab, Quirkbot, RedBearLab, TinyCircuits to atmelavr platform
Upgraded Arduino Framework to 1.6.3 version (issue #156)
Upgraded Energia Framework to 0101E0015 version (issue #146)
Upgraded Arduino Framework with Teensy Core to 1.22 version (issue #162, issue #170)
Fixed exceptions with PlatformIO auto-updates when Internet connection isn’t active
1.3.0 (2015-03-27)¶
Moved PlatformIO source code and repositories from Ivan Kravets account to PlatformIO Organisation (issue #138)
Added support for new Arduino based boards by SparkFun, RepRap, Sanguino to atmelavr platform (issue #127, issue #131)
Added integration instructions for Visual Studio and Sublime Text IDEs
Improved handling of multi-file
*.ino/pde
sketches (issue #130)Fixed wrong insertion of function prototypes converting
*.ino/pde
(issue #137, issue #140)
1.2.0 (2015-03-20)¶
Added full support of mbed framework including libraries: RTOS, Ethernet, DSP, FAT, USB.
Added freescalekinetis development platform with Freescale Kinetis Freedom boards
Added nordicnrf51 development platform with supported boards from JKSoft, Nordic, RedBearLab, Switch Science
Added nxplpc development platform with supported boards from CQ Publishing, Embedded Artists, NGX Technologies, NXP, Outrageous Circuits, SeeedStudio, Solder Splash Labs, Switch Science, u-blox
Added support for ST Nucleo boards to ststm32 development platform
Created new Frameworks page in documentation and added to PlatformIO Web Site (issue #115)
Introduced online Embedded Boards Explorer
Automatically append define
-DPLATFORMIO=%version%
to builder (issue #105)Renamed
stm32
development platform to ststm32Renamed
opencm3
framework to libopencm3Fixed uploading for atmelsam development platform
Fixed re-arranging the
*.ino/pde
files when converting to*.cpp
(issue #100)
1.1.0 (2015-03-05)¶
Implemented
PLATFORMIO_*
environment variables (issue #102)Added support for SainSmart boards to atmelsam development platform
Added Project Configuration option named envs_dir
Disabled “prompts” automatically for Continuous Integration systems (issue #103)
Fixed firmware uploading for atmelavr boards which work within
usbtiny
protocolFixed uploading for Digispark board (issue #106)
1.0.1 (2015-02-27)¶
PlatformIO 1.0 - recommended for production
Changed development status from
beta
toProduction/Stable
Added support for ARM-based credit-card sized computers: Raspberry Pi, BeagleBone and CubieBoard
Added atmelsam development platform with supported boards: Arduino Due and Digistump DigiX (issue #71)
Added ststm32 development platform with supported boards: Discovery kit for STM32L151/152, STM32F303xx, STM32F407/417 lines and libOpenCM3 Framework (issue #73)
Added teensy development platform with supported boards: Teensy 2.x & 3.x (issue #72)
Added new Arduino boards to atmelavr platform: Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet, Arduino Robot Control, Arduino Robot Motor and Arduino Yun
Added support for Adafruit boards to atmelavr platform: Adafruit Flora and Adafruit Trinkets (issue #65)
Added support for Digispark boards to atmelavr platform: Digispark USB Development Board and Digispark Pro (issue #47)
Covered code with tests (issue #2)
Added src_dir option to
[platformio]
section of platformio.ini which allows to redefine location to project’s source directory (issue #83)Added
--json-output
option to platformio boards and platformio search commands which allows to return the output in JSON format (issue #42)Allowed to ignore some libs from Library Dependency Finder via lib_ignore option
Improved platformio run command: asynchronous output for build process, timing and detailed information about environment configuration (issue #74)
Output compiled size and static memory usage with platformio run command (issue #59)
Updated framework-arduino AVR & SAM to 1.6 stable version
Fixed an issue with the libraries that are git repositories (issue #49)
Fixed handling of assembly files (issue #58)
Fixed compiling error if space is in user’s folder (issue #56)
Fixed AttributeError: ‘module’ object has no attribute ‘disable_warnings’ when a version of requests package is less then 2.4.0
Fixed bug with invalid process’s “return code” when PlatformIO has internal error (issue #81)
Several bug fixes, increased stability and performance improvements
PlatformIO Core Preview¶
0.10.2 (2015-01-06)¶
Fixed an issue with
--json-output
(issue #42)Fixed an exception during platformio upgrade under Windows OS (issue #45)
0.10.1 (2015-01-02)¶
Added
--json-output
option to platformio list, platformio serialports list and platformio lib list commands which allows to return the output in JSON format (issue #42)Fixed missing auto-uploading by default after platformio init command
0.10.0 (2015-01-01)¶
Happy New Year!
Implemented platformio boards command (issue #11)
Added support of Engduino boards for atmelavr platform (issue #38)
Added
--board
option to platformio init command which allows to initialise project with the specified embedded boards (issue #21)Added example with uploading firmware via USB programmer (USBasp) for atmelavr MCUs (issue #35)
Automatic detection of port on platformio serialports monitor (issue #37)
Allowed auto-installation of platforms when prompts are disabled (issue #43)
Fixed urllib3’s SSL warning under Python <= 2.7.2 (issue #39)
Fixed bug with Arduino USB boards (issue #40)
0.9.2 (2014-12-10)¶
0.9.1 (2014-12-05)¶
Ask user to install platform (when it hasn’t been installed yet) within platformio run and platformio show commands
Improved main documentation
Fixed “OSError: [Errno 2] No such file or directory” within platformio run command when PlatformIO isn’t installed properly
Fixed example for Eclipse IDE with Tiva board (issue #32)
Upgraded Eclipse Project Examples to latest Luna and PlatformIO releases
0.9.0 (2014-12-01)¶
Implemented platformio settings command
Improved platformio init command. Added new option
--project-dir
where you can specify another path to directory where new project will be initialized (issue #31)Added Migration Manager which simplifies process with upgrading to a major release
Added Telemetry Service which should help us make PlatformIO better
Implemented PlatformIO AppState Manager which allow to have multiple
.platformio
states.Refactored Package Manager
Download Manager: fixed SHA1 verification within Cygwin Environment (issue #26)
Fixed bug with code builder and built-in Arduino libraries (issue #28)
0.8.0 (2014-10-19)¶
Avoided trademark issues in library.json with the new fields: frameworks, platforms and dependencies (issue #17)
Switched logic from “Library Name” to “Library Registry ID” for all platformio lib commands (install, uninstall, update and etc.)
Renamed
author
field to authors and allowed to setup multiple authors per library in library.jsonAdded option to specify “maintainer” status in authors field
New filters/options for platformio lib search command:
--framework
and--platform
0.7.1 (2014-10-06)¶
0.7.0 (2014-09-24)¶
Implemented new [platformio] section for Configuration File with home_dir option (issue #14)
Implemented Library Manager (issue #6)
0.6.0 (2014-08-09)¶
Implemented platformio serialports monitor (issue #10)
Fixed an issue
ImportError: No module named platformio.util
(issue #9)Fixed bug with auto-conversation from Arduino *.ino to *.cpp
0.5.0 (2014-08-04)¶
Improved nested lookups for libraries
Disabled default warning flag “-Wall”
Added auto-conversation from *.ino to valid *.cpp for Arduino/Energia frameworks (issue #7)
Added Arduino example with external library (Adafruit CC3000)
Implemented platformio upgrade command and “auto-check” for the latest version (issue #8)
Fixed an issue with “auto-reset” for Raspduino board
Fixed a bug with nested libs building
0.4.0 (2014-07-31)¶
Implemented platformio serialports command
Allowed to put special build flags only for
src
files via src_build_flags environment optionAllowed to override some of settings via system environment variables such as:
PLATFORMIO_SRC_BUILD_FLAGS
andPLATFORMIO_ENVS_DIR
Added
--upload-port
option for platformio run commandImplemented (especially for SmartAnthill) platformio run -t uploadlazy target (no dependencies to framework libs, ELF and etc.)
Allowed to skip default packages via platformio install –skip-default-package option
Added tools for Raspberry Pi platform
Added support for Microduino and Raspduino boards in atmelavr platform
0.3.1 (2014-06-21)¶
Fixed auto-installer for Windows OS (bug with %PATH% custom installation)
0.3.0 (2014-06-21)¶
Allowed to pass multiple “SomePlatform” to install/uninstall commands
Added “IDE Integration” section to README with Eclipse project examples
Created auto installer script for PlatformIO (issue #3)
Added “Super-Quick” way to Installation section (README)
Implemented “build_flags” option for environments (issue #4)
0.2.0 (2014-06-15)¶
Resolved issue #1 “Build referred libraries”
Renamed project’s “libs” directory to “lib”
Added arduino-internal-library example
Changed to beta status
0.1.0 (2014-06-13)¶
Birth! First alpha release