Release Notes

PlatformIO Core 6

Unlock the true potential of embedded software development with PlatformIO’s collaborative ecosystem, embracing declarative principles, test-driven methodologies, and modern toolchains for unrivaled success.

6.1.17 (2024-??-??)

  • Added support for tar.xz tarball dependencies (pull #4974)

  • Ensured that dependencies of private libraries are no longer unnecessarily re-installed, optimizing dependency management and reducing redundant operations (issue #4987)

  • Resolved an issue where the compiledb target failed to properly escape compiler executable paths containing spaces (issue #4998)

  • Resolved an issue with incorrect path resolution when linking static libraries via the build_flags option (issue #5004)

  • Resolved an issue where the --project-dir flag did not function correctly with the pio check and pio debug commands (issue #5029)

  • Resolved an issue where the LDF occasionally excluded bundled platform libraries from the dependency graph (pull #4941)

6.1.16 (2024-09-26)

  • Added support for Python 3.13

  • Introduced the PLATFORMIO_SYSTEM_TYPE environment variable, enabling manual override of the detected system type for greater flexibility and control in custom build environments

  • Enhanced internet connection checks by falling back to HTTPS protocol when HTTP (port 80) fails (issue #4980)

  • Upgraded the build engine to the latest version of SCons (4.8.1) to improve build performance, reliability, and compatibility with other tools and systems (release notes)

  • Upgraded the Doctest testing framework to version 2.4.11, the GoogleTest to version 1.15.2, and the Unity to version 2.6.0, incorporating the latest features and improvements for enhanced testing capabilities

  • Corrected an issue where the incorrect public class was imported for the DoctestTestRunner (issue #4949)

6.1.15 (2024-04-25)

  • Resolved an issue where the LDF couldn’t locate a library dependency declared via version control system repository (issue #4885)

  • Resolved an issue related to the inaccurate detection of the Clang compiler (pull #4897)

6.1.14 (2024-03-21)

  • Introduced the --json-output option to the pio test command, enabling users to generate test results in the JSON format

  • Upgraded the build engine to the latest version of SCons (4.7.0) to improve build performance, reliability, and compatibility with other tools and systems (release notes)

  • Broadened version support for the pyelftools dependency, enabling compatibility with lower versions and facilitating integration with a wider range of third-party tools (issue #4834)

  • Addressed an issue where passing a relative path (--project-dir) to the pio project init command resulted in an error (issue #4847)

  • Enhanced Static Code Analysis to accommodate scenarios where custom src_dir or include_dir are located outside the project folder (pull #4874)

  • Corrected the validation of symlink:// package specifications , resolving an issue that caused the package manager to repeatedly reinstall dependencies (pull #4870)

  • Resolved an issue related to the relative package path in the pio pkg publish command

  • Resolved an issue where the LDF selected an incorrect library version (issue #4860)

  • Resolved an issue with the hexlify filter in the device monitor command, ensuring proper representation of characters with Unicode code points higher than 127 (issue #4732)

6.1.13 (2024-01-12)

  • Expanded support for SCons variables declared in the legacy format ${SCONS_VARNAME} (issue #4828)

6.1.12 (2024-01-10)

  • Added support for Python 3.12

  • Introduced the capability to launch the debug server in a separate process (issue #4722)

  • Introduced a warning during the verification of MCU maximum RAM usage, signaling when the allocated RAM surpasses 100% (issue #4791)

  • Drastically enhanced the speed of project building when operating in verbose mode (issue #4783)

  • Upgraded the build engine to the latest version of SCons (4.6.0) to improve build performance, reliability, and compatibility with other tools and systems (release notes)

  • Enhanced the handling of built-in variables in “platformio.ini” configuration file during Interpolation of Values (issue #4695)

  • Enhanced PIP dependency declarations for improved reliability and extended support to include Python 3.6 (issue #4819)

  • Implemented automatic installation of missing dependencies when utilizing a SOCKS proxy (issue #4822)

  • Implemented a fail-safe mechanism to terminate a debugging session if an unknown CLI option is passed (issue #4699)

  • Rectified an issue where ${platformio.name} erroneously represented None as the default project name (issue #4717)

  • Resolved an issue where the COMPILATIONDB_INCLUDE_TOOLCHAIN setting was not correctly applying to private libraries (issue #4762)

  • Resolved an issue where get_systype() inaccurately returned the architecture when executed within a Docker container on a 64-bit kernel with a 32-bit userspace (issue #4777)

  • Resolved an issue with incorrect handling of the check_src_filters option when used in multiple environments (issue #4788)

  • Resolved an issue where running pio project metadata resulted in duplicated “include” entries (issue #4723)

  • Resolved an issue where native debugging failed on the host machine (issue #4745)

  • Resolved an issue where custom debug configurations were being inadvertently overwritten in VSCode’s launch.json (issue #4810)

6.1.11 (2023-08-31)

  • Resolved a possible issue that may cause generated projects for PlatformIO IDE for VSCode to fail to launch a debug session because of a missing “objdump” binary when GDB is not part of the toolchain package

  • Resolved a regression issue that resulted in the malfunction of the Memory Inspection feature within PIO Home

6.1.10 (2023-08-11)

  • Resolved an issue that caused generated projects for PlatformIO IDE for VSCode to break when the -iprefix compiler flag was used

  • Resolved an issue encountered while utilizing the pio pkg exec command on the Windows platform to execute Python scripts from a package

  • Implemented a crucial improvement to the pio run command, guaranteeing that the monitor target is not executed if any of the preceding targets, such as upload, encounter failures

  • Cppcheck v2.11 with new checks, CLI commands and various analysis improvements

  • Resolved a critical issue that arose on macOS ARM platforms due to the Python “requests” module, leading to a “ModuleNotFoundError: No module named ‘chardet’” (issue #4702)

6.1.9 (2023-07-06)

6.1.8 (2023-07-05)

  • Added a new --lint option to the pio project config command, enabling users to efficiently perform linting on the “platformio.ini” configuration file

  • Enhanced the parsing of the “platformio.ini” configuration file to provide comprehensive diagnostic information

  • Expanded the functionality of the library.json manifest by allowing the use of the underscore symbol in the keywords field

  • Optimized project integration templates to address the issue of long paths on Windows (issue #4652)

  • Refactored Unit Testing engine to resolve compiler warnings with “-Wpedantic” option (pull #4671)

  • Eliminated erroneous warning regarding the use of obsolete PlatformIO Core when downgrading to the stable version (issue #4664)

  • Updated the pio project metadata command to return C/C++ flags as parsed Unix shell arguments when dumping project build metadata

  • Resolved a critical issue related to the usage of the -include flag within the build_flags option, specifically when employing dynamic variables (issue #4682)

  • Removed PlatformIO IDE for Atom from the documentation as Atom has been deprecated

6.1.7 (2023-05-08)

  • Introduced a new --sample-code option to the pio project init command, which allows users to include sample code in the newly created project

  • Added validation for project working environment names to ensure that they only contain lowercase letters a-z, numbers 0-9, and special characters _ (underscore) and - (hyphen)

  • Added the ability to show a detailed library dependency tree only in verbose mode, which can help you understand the relationship between libraries and troubleshoot issues more effectively (issue #4517)

  • Added the ability to run only the device monitor when using the pio run -t monitor command, saving you time and resources by skipping the build process

  • Implemented a new feature to store device monitor logs in the project’s logs folder, making it easier to access and review device monitor logs for your projects (issue #4596)

  • Improved support for projects located on Windows network drives, including Network Shared Folder, Dropbox, OneDrive, Google Drive, and other similar services (issue #3417)

  • Improved source file filtering functionality for the Static Code Analysis feature, making it easier to analyze only the code you need to

  • Upgraded the build engine to the latest version of SCons (4.5.2) to improve build performance, reliability, and compatibility with other tools and systems (release notes)

  • Implemented a fix for shell injection vulnerabilities when converting INO files to CPP, ensuring your code is safe and secure (issue #4532)

  • Restored the project generator for the NetBeans IDE, providing you with more flexibility and options for your development workflow

  • Resolved installation issues with PIO Remote on Raspberry Pi and other small form-factor PCs (issue #4425, issue #4493, issue #4607)

  • Resolved an issue where the build_cache_dir setting was not being recognized consistently across multiple environments (issue #4574)

  • Resolved an issue where organization details could not be updated using the pio org update command

  • Resolved an issue where the incorrect debugging environment was generated for VSCode in “Auto” mode (issue #4597)

  • Resolved an issue where native tests would fail if a custom program name was specified (issue #4546)

  • Resolved an issue where the PlatformIO Debugging solution was not escaping the tool installation process into MI2 correctly (issue #4565)

  • Resolved an issue where multiple targets were not executed sequentially (issue #4604)

  • Resolved an issue where upgrading PlatformIO Core fails on Windows with Python 3.11 (issue #4540)

6.1.6 (2023-01-23)

  • Added support for Python 3.11

  • Added a new name configuration option to customize a project name (pull #4498)

  • Made assets (templates, 99-platformio-udev.rules) part of Python’s module (issue #4458)

  • Updated Clang-Tidy check tool to v15.0.5 with new diagnostics and bugfixes

  • Removed dependency on the “zeroconf” package and install it only when a user lists mDNS devices (issue with zeroconf’s LGPL license)

  • Show the real error message instead of “Can not remove temporary directory” when “platformio.ini” configuration file is broken (issue #4480)

  • Fixed an issue with an incorrect test summary when a testcase name includes a colon (issue #4508)

  • Fixed an issue when extends did not override options in the right order (issue #4462)

  • Fixed an issue when pio pkg list and pio pkg uninstall commands fail if there are circular dependencies in the library.json manifests (issue #4475)

6.1.5 (2022-11-01)

6.1.4 (2022-08-12)

  • Added support for accepting the original FileNode environment in a “callback” function when using Build Middlewares (pull #4380)

  • Improved device port finder when using dual channel UART converter (issue #4367)

  • Improved project dependency resolving when using the pio project init --ide command

  • Upgraded build engine to the SCons 4.4.0 (release notes)

  • Keep custom “unwantedRecommendations” when generating projects for VSCode (issue #4383)

  • Do not resolve project dependencies for the cleanall target (issue #4344)

  • Warn about calling “env.BuildSources” in a POST-type script (issue #4385)

  • Fixed an issue when escaping macros/defines for IDE integration (issue #4360)

  • Fixed an issue when the “cleanall” target removes dependencies from all working environments (issue #4386)

6.1.3 (2022-07-18)

  • Fixed a regression bug when opening device monitor without any filters (issue #4363)

6.1.2 (2022-07-18)

6.1.1 (2022-07-11)

  • Added new monitor_encoding project configuration option to configure Device Monitor (issue #4350)

  • Allowed specifying project environments for pio ci command (issue #4347)

  • Show “TimeoutError” only in the verbose mode when can not find a serial port

  • Fixed an issue when a serial port was not automatically detected if the board has predefined HWIDs

  • Fixed an issue with endless scanning of project dependencies (issue #4349)

  • Fixed an issue with LDF when incompatible libraries were used for the working project environment with the missed framework (pull #4346)

6.1.0 (2022-07-06)

  • Device Manager

  • Unit Testing

    • Updated “Getting Started” documentation for GoogleTest testing and mocking framework

    • Export Unit Testing flags only to the project build environment (projenv, files in “src” folder)

    • Merged the “building” stage with “uploading” for the embedded target (issue #4307)

    • Do not resolve dependencies from the project “src” folder when the test_build_src option is not enabled

    • Do not immediately terminate a testing program when results are received

    • Fixed an issue when a custom pio test --project-config was not handled properly (issue #4299)

    • Fixed an issue when testing results were wrong in the verbose mode (issue #4336)

  • Build System

  • Package Management

    • Fixed an issue when library dependencies were installed for the incompatible project environment (issue #4338)

  • Miscellaneous

6.0.2 (2022-06-01)

6.0.1 (2022-05-17)

6.0.0 (2022-05-16)

Please check the Migration guide from 5.x to 6.0.

PlatformIO Core 5

See PlatformIO Core 5.0 history.

PlatformIO Core 4

See PlatformIO Core 4.0 history.

PlatformIO Core 3

See PlatformIO Core 3.0 history.

PlatformIO Core 2

See PlatformIO Core 2.0 history.

PlatformIO Core 1

See PlatformIO Core 1.0 history.

PlatformIO Core Preview

See PlatformIO Core Preview history.