- Added support for "globstar/**" (recursive) pattern for the different commands and configuration options (platformio ci, src_filter, check_patterns, library.json > srcFilter). Python 3.5+ is required.
- 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)
- Fixed "UnicodeDecodeError: 'utf-8' codec can't decode byte" when non-Latin chars are used in project path (issue #3481)
- 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)
- 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)
- 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.)
- Device Monitor 2.0
- 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
field - Fixed 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)
- 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)
- PlatformIO Home 3.1:
- 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
- Show computed project configuration with a new platformio project config command or dump to JSON with
- 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)
- 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.
- PlatformIO Home 3.0:
- 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 highlighting - Added
--no-ansi
flag for PIO Core to disable ANSI control characters - Added
--shutdown-timeout
option to PIO Home Server - Fixed 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 path - Fixed 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)
- 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)
- Fixed an issue with a broken LDF when checking for framework compatibility (issue #2940)
- 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)
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 variables - Added 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
fields - Fixed 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
- Switched to workspace
- 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_type - Custom 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)
- Switched to workspace
- 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
file - Fixed 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)
- Support custom CMake configuration for CLion IDE using
- Miscellaneous
- Deprecated
--only-check
PlatformIO Core CLI option for "update" sub-commands, please use--dry-run
instead - Fixed "systemd-udevd" warnings in 99-platformio-udev.rules (issue #2442)
- Fixed an issue when package cache (Library Manager) expires too fast (issue #2559)
- Deprecated
- PIO Unified Debugger: improved debugging in
debug_load_mode = modified
and fixed an issue with useless project rebuilding - Project 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)
- 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
option - Fixed an issue with incorrect order of project "include" and "src" paths in
CPPPATH
(issue #1914)
- 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)
- 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)
- 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)
- 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)
- 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 library - Report 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
- Program Memory Usage
- 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)
- PIO Unit Testing:
- 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)
- 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 environment - Don'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)
- 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
guard - Override 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)
- 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)
- 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)
- 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
- Library Manager:
- 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
- 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
field - Added
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)
- PIO Unified Debugger
- "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 Engine - Configure 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 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 "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)
- Hotfix for recently updated Python Requests package (2.16.0)
- 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)
- Changed default LDF Mode
from
chain+
tochain
- 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 default - Added 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 tools - Fixed
99-platformio-udev.rules
checker for Linux OS
- 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 command - Deprecated
lib_force
option, please use lib_deps instead - Return valid exit code from
plaformio test
command - Fixed Project Generator for CLion IDE using Windows OS (issue #785)
- Fixed SSL Server-Name-Indication for Python < 2.7.9 (issue #774)
- Disabled temporary SSL for PlatformIO services (issue #772)
- PlatformIO Plus
- 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
- 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)
- 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 IDEs - Improved 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 data - Ignore
[platformio]
section from custom project configuration file when platformio ci --project-conf command is used - Fixed 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)
- 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
- Fixed issue with
platformio init --ide
command
- Added support for ST Nucleo L031K6 board to ARM mbed framework
- Process
build_unflags
option for ARM mbed framework - Updated 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
- Re-submit a package to PyPI
- 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)
- Show
udev
warning only for the Linux OS while uploading firmware
- 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
- Simplified Continuous Integration with AppVeyor (issue #671)
- Automatically add source directory to
CPPPATH
of Build System - Added 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 used - Fixed 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)
- Handle prototype pointers while converting
*.ino
to.cpp
(issue #639)
- 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)
- 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)
- 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)
- 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 platform - Handle 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)
- 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)
- Corrected RAM size for NXP LPC1768 based boards (issue #484)
- Exclude only
test
andtests
folders from build process - Reverted
-Wl,-whole-archive
hook for ST STM32 and mbed
- Fixed a bug with Project Initialization in PlatformIO IDE
- 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 process - Generate project for IDEs with information about installed libraries
- Fixed builder for mbed framework and ST STM32 platform
- 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 platform - Fixed 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)
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)
- Project generator for Emacs text editor (pull #404)
- 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)
- Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA)
- Fixed invalid ROM size for ESP8266-based boards (issue #396)
- Removed
SCons
from requirements list. PlatformIO will try to install it automatically, otherwise users need to install it manually - Fixed
ChunkedEncodingError
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, 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)
- 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
- 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
- Restored
PLATFORMIO
macros with the current version
- 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)
- 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)
- 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)
- 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)
- 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
- 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)
- 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-commands - Updated 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)
- 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)
- 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 platform - Fixed incorrect arguments handling for platformio serialports monitor command (issue #248)
- 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.json - Added 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)
- Fixed broken link to SCons installer
- 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)
- 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)
- Fixed libraries order for "Library Dependency Finder" under Linux OS
- 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)
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
option - Add 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)
- 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)
- 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
- 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)
- 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 ststm32 - Renamed
opencm3
framework to libopencm3 - Fixed uploading for atmelsam development platform
- Fixed re-arranging the
*.ino/pde
files when converting to*.cpp
(issue #100)
- 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
protocol - Fixed uploading for Digispark board (issue #106)
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)
- Refactored Library Dependency Finder (issues #48, #50, #55)
- 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
- Fixed an issue with
--json-output
(issue #42) - Fixed an exception during platformio upgrade under Windows OS (issue #45)
- 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
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)
- Replaced "dark blue" by "cyan" colour for the texts (issue #33)
- Added new setting
enable_prompts
and allowed to disable all PlatformIO prompts (useful for cloud compilers) (issue #34) - Fixed compilation bug on Windows with installed MSVC (issue #18)
- 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
- 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)
- 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.json - Added option to specify "maintainer" status in authors field
- New filters/options for platformio lib search
command:
--framework
and--platform
- Fixed bug with order for includes in conversation from INO/PDE to CPP
- Automatic detection of port on upload (issue #15)
- Fixed lib update crashing when no libs are installed (issue #19)
- Implemented new [platformio] section for Configuration File with home_dir option (issue #14)
- Implemented Library Manager (issue #6)
- 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
- 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
- Implemented platformio serialports command
- Allowed to put special build flags only for
src
files via src_build_flags environment option - Allowed 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 command - Implemented (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
- Fixed auto-installer for Windows OS (bug with %PATH% custom installation)
- 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)
- Resolved issue #1 "Build referred libraries"
- Renamed project's "libs" directory to "lib"
- Added arduino-internal-library example
- Changed to beta status
- Birth! First alpha release