Skip to content

Latest commit



2028 lines (1745 loc) · 129 KB


File metadata and controls

2028 lines (1745 loc) · 129 KB

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

  • Project Generator: added new targets for CLion IDE "BUILD_VERBOSE" and "MONITOR" (serial port monitor) (issue #359)
  • Fixed an issue with slow updating of PlatformIO Core packages on Windows
  • Fixed an issue when platformio ci recompiles project if --keep-build-dir option is passed (issue #2109)
  • Fixed an issue when $PROJECT_HASH template was not expanded for the other directory ***_dir options in "platformio.ini" (Project Configuration File) (issue #2170)

3.6.4 (2019-01-23)

  • Improved Project Generator for IDEs:
    • Use full path to PlatformIO CLI when generating a project (issue #1674)
    • CLion: Improved project portability using "${CMAKE_CURRENT_LIST_DIR}" instead of full path
    • Eclipse: Provide language standard to a project C/C++ indexer (issue #1010)
  • Fixed an issue with incorrect detecting of compatibility (LDF) between generic library and Arduino or ARM mbed frameworks
  • Fixed "Runtime Error: Dictionary size changed during iteration" (issue #2003)
  • Fixed an error "Could not extract item..." when extracting TAR archive with symbolic items on Windows platform (issue #2015)

3.6.3 (2018-12-12)

  • Ignore *.asm and *.ASM files when building Arduino-based library (compatibility with Arduino builder)
  • Fixed spurious project's "Problems" for PlatformIO IDE for VSCode when ARM mbed framework is used
  • Fixed an issue with a broken headers list when generating ".clang_complete" for Emacs (issue #1960)

3.6.2 (2018-11-29)

  • Improved IntelliSense for PlatformIO IDE for VSCode via passing extra compiler information for C/C++ Code Parser (resolves issues with spurious project's "Problems")
  • Fixed an issue with VSCode IntelliSense warning about the missed headers located in include folder
  • Fixed incorrect wording when initializing/updating project
  • Fixed an issue with incorrect order for library dependencies CPPPATH (issue #1914)
  • Fixed an issue when Library Dependency Finder (LDF) does not handle project src_filter (issue #1905)
  • Fixed an issue when Library Dependency Finder (LDF) finds spurious dependencies in chain+ 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 "" 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 "" script (issue #1017)
  • Fixed "" 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": "")
  • 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 "" 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