PlatformIO Core 5.1 🚀
Professional collaborative platform for embedded development
We are happy to announce the next release of PlatformIO Core with the boosted performance for PlatformIO Home, support for SCons 4.1, and the improved package management system!
Table of Contents
What is New
In this section, we are going to highlight the most important changes and features introduced in PlatformIO Core 5.1. Please visit PlatformIO 5.1.0 Release Notes for more detailed information.
PlatformIO Home is a powerful, modern, and interactive user interface (UI) for PlatformIO collaborative platform. It’s powered by PlatformIO Labs’ Modern UI Toolkit and contains the following key instruments:
- Project Management
- Library Management
- Development Platforms, frameworks, and boards Management
- Device Management (serial, logical, and multicast DNS services)
- Static Code Analysis
- Firmware File Explorer
- Firmware Memory Inspection
- Firmware Sections & Symbols Viewer.
PlatformIO Core 5.1 brings significantly boosted performance to PlatformIO Home by migrating the codebase to the pure Python 3 Asynchronous I/O stack. This approach solves previous issues caused by the Twisted engine that depends on operating system libraries and 3rd-party Python packages.
The PlatformIO Core 5.1 build engine has been upgraded to the latest SCons 4.1 - a next-generation software construction tool:
- Configuration files are Python scripts – use the power of a real programming language to solve build problems
- Built-in reliable and automatic dependency analysis
- Improved support for parallel builds
- Ability to share built files in a cache to speed up multiple builds.
Command-line character limitation
Operating systems have their own default command-line character limitations. Windows OS is limited to 8192 characters where most Unix OSes to 131072. These limitations lead to build issues caused by development frameworks that pass multiple “include” flags or dependent libraries per one command.
PlatformIO Core 5.1 was switched to the SCons TempFileMunge that automatically handles long commands and moves flags to a temporary file.
Starting with PlatformIO Core 5.1, the package management system does not cleanup unnecessary packages automatically. We had a lot of discussion around this case, and the best solution was to allow users to personally maintain PlatformIO System.
Hence, PlatformIO Core 5.1 introduces updated pio system prune command with new options:
--dry-runoption to show data that will be removed
--core-packagesoption to remove unnecessary core packages
--platform-packagesoption to remove unnecessary development platform packages
Please note that PlatformIO Core 5.1 will monitor PlatformIO installation and inform you about unnecessary data when their size on disk crosses a value set in check_prune_system_threshold setting. A default value is set to 1024Mb (1Gb).
To list unnecessary data without pruning, please use the following command –
pio system prune --dry-run.
The initial debug adapter speed is an important setting that greatly affects the overall debugging experience. This new option will help users to more easily tune that value directly from their project configuration file regardless of what debug server is used. Here are some typical examples:
[env:custom_debug_speed_examples] ... ; fixed speed in kHz debug_speed = 500 ; automatic speed (only J-Link) debug_speed = auto ; adaptive clocking instead of fixed JTAG speed (only J-Link) debug_speed = adaptive
Please note that not all dev-platforms support this feature at the moment, but we’ll gradually implement this functionality in all eligible platforms. Stay tuned!
- PlatformIO IDE: Left Sidebar > PlatformIO (icon) > Quick Access > Upgrade PlatformIO Core
- Terminal: Please run
pio upgradecommand in terminal.