Release Notes

PlatformIO Core 4

4.3.4 (2020-05-23)

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

  • 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)

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)

  • PlatformIO Home 3.1:

  • PIO Check – automated code analysis without hassle:

    • Added support for PVS-Studio static code analyzer

  • Initial support for Project Manager CLI:

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

  • 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)

4.0.3 (2019-08-30)

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 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 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)

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 option

  • Fixed an issue with incorrect order of project “include” and “src” paths in CPPPATH (issue #1914)

3.6.5 (2019-03-07)

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+ and deep+ 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 in platformio.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 first monitor_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)

  • 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:

  • 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)

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 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)

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 to build_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):

  • 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 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)

3.4.0 (2017-06-26)

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.1 (2016-12-07)

  • Changed default LDF Mode from chain+ to chain

3.2.0 (2016-12-07)

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 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)

3.0.1 (2016-09-08)

  • Disabled temporary SSL for PlatformIO services (issue #772)

3.0.0 (2016-09-07)

  • PlatformIO Plus

  • 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 to platformio device

  • Build System: Attach custom Before/Pre and After/Post actions for targets (issue #542)

  • Allowed passing custom project configuration options to platformio ci and platformio 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 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 and SOURCES 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 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

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 parsing build_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 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 when pio 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)

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)

2.8.4 (2016-02-17)

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 and tests folders from build process

  • Reverted -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)

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 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)

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)

  • 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)

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 manually

  • Fixed 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)

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)

2.3.4 (2015-10-13)

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 in readme.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)

2.3.0 (2015-09-05)

2.2.2 (2015-07-30)

2.2.1 (2015-07-17)

2.2.0 (2015-07-01)

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)

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 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)

1.3.0 (2015-03-27)

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 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)

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 protocol

  • Fixed uploading for Digispark board (issue #106)

1.0.1 (2015-02-27)

PlatformIO 1.0 - recommended for production

  • Changed development status from beta to Production/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

PlatformIO Core Preview

0.10.2 (2015-01-06)

0.10.1 (2015-01-02)

0.10.0 (2015-01-01)

Happy New Year!

0.9.2 (2014-12-10)

  • 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)

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)

0.7.1 (2014-10-06)

  • 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)

0.7.0 (2014-09-24)

0.6.0 (2014-08-09)

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)

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)

0.1.0 (2014-06-13)

  • Birth! First alpha release