PlatformIO Core 5.1 πŸš€

Professional collaborative platform for embedded development

Ivan Kravets
Ivan Kravets
Ph.D., Founder & CEO at PlatformIO Labs
Share:

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!

PlatformIO Core 5.1 πŸš€

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

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.

Build System

SCons 4.1

The PlatformIO Core 5.1 build engine has been upgraded to the latest SCons 4.1 - a next-generation software construction tool:

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.

Package Management

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-run option to show data that will be removed
  • --core-packages option to remove unnecessary core packages
  • --platform-packages option 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.

Debugging

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!

Upgrade

  • PlatformIO IDE: Left Sidebar > PlatformIO (icon) > Quick Access > Upgrade PlatformIO Core
  • Terminal: Please run pio upgrade command in terminal.

Stay tuned

Stay tuned to this blog or follow us on LinkedIn and Twitter @PlatformIO_Org to keep up to date with the latest news, articles and tips!

Ivan Kravets
Ivan Kravets
Share:

Have questions?

Join the discussion on our forum