PlatformIO 3.0: The biggest update for the years!

Dear PlatformIO User!

We have been silent for a while, not because we haven’t been working around the clock, but we’ve had to address some important architectural changes to whole PlatformIO ecosystem. We’ve been working hard to ensure that migration from PlatformIO 2.0 to PlatformIO 3.0 passes without significant issues.

What is new

See PlatformIO 3.0 Release Notes for details.

P.S: We created for you Migration guide from PlatformIO 2.x to PlatformIO 3.0.

Upgrade to PlatformIO 3.0

  • PlatformIO IDE: Please click on Menu: PlatformIO > Upgrade PlatformIO.
  • PlatformIO CLI: Please run platformio upgrade command.

PlatformIO Story

PlatformIO has been introduced for embedded community 2 years ago as a hobby project. It supported 3 development platforms, 2 frameworks, and a few embedded boards. We added new functionality, new platforms, boards with each new release. In February 2016, we met with a problem (success?) related to a big interest for PlatformIO (see URGENT: The further fate of PlatformIO Project… Part II). In that time, we worked on PlatformIO in free time and didn’t have a full-time team.


We have found a small full-time team and tried finding ways how to support it. We contacted with multiple vendors and companies related to embedded to help us keeping PlatformIO open source, free and alive. This period (6 months, Feb-Aug) was complicated for us. We didn’t find a comfortable way how to keep PlatformIO FREE and INDEPENDENT. These 2 words don’t work in pair. Then, we decided to open a donation wallet and asked our community to support this project. We have a small banner in PlatformIO IDE and link on the main site. As a result, donation form also does not work today.


Thousands companies and developers use PlatformIO every day. Someone uses it for hobby-project, someone teaches with PlatformIO how to make first steps into embedded world, and others create awesome things using PlatformIO and make business on it. The big our mistake is that we have done a lot of features and services totally for free because we love the open source and believe in its power. We understand that our main mission is to reduce input threshold to the Embedded World with creating high-level instruments and services.

Now, we understand that the only single way out of the situation is to create own professional solutions for the business based on PlatformIO. It will allow us to keep active development of PlatformIO Open Source and propose for embedded world new professional standards and awesome instruments for IoT development.

PlatformIO Plus

We are proud to present our first independent and business project with professional solutions. Today, PlatformIO Plus is a core sponsor of PlatformIO Open Source Project.

Please support us and make an own investment into free and open source PlatformIO ecosystem!

PlatformIO Plus Team


Nice! Congratulations, and thank you for this

1 Like

Congratulations, the only way to success is to do what you think is right regardless of anything else…
Now, I did not find overview of the migrating process. Your document called “Migration from v2 to v3” describes many technical differences but not overview of actual steps involved.
So now, for example after I made upgrade as I understand from your doc, my PlatrformIO.ini file does not match new version… and so other components of project directory.
What’s needed - overview of the actual steps to make project folder v3.0 compatible.

Your PlatformIO 2.0 projects are automatically compatible with PlatformIO 3.0. We didn’t change project manifest format or CLI. All should work without additional steps.

That makes it easy . I upgraded both CLI to v3.0 and IDE to v1.5
On “build” - when success - it ends by saying “AVR memory usage” and no usage shown. It does not even say “success” as before.
When “build” ends with error - “build” window does not scroll to the end neither automatically nor manually - unresponsive. So I don;t see the end of “build” messages, hence do not know what the error is. Tried to change location of window to “bottom” in Setup but instead it changed to a full IDE screen covering my files windows and still does not scroll to the last build message! This is critical as I don;t see what the error message is!

Looks like status panel covers/overlaps the bottom of the “build” panel. Probably build panel shows complete log without scrolling but as bottom covered by status bar - it hides the error message.
Also I checked editor - “Goto Declaration” does not “go” as it did before, instead a strange window pops up waiting for some input - not clear what it is…

@Vlad what is your OS?

---------------Windows 7 ----------------

I’ve just tested in VM Win7 and it works cool! Do you use a special theme?

I use Atom Dark theme for UI. Is it “special” ? I am not sure if I changed it or it came with bundle… Which theme would be “standard”?
I am sure now that bottom strip of the status bar covers bottom of the build window. I couldn’t find how to toggle/hide status bar… Incidentally if build scrolling stops at error message line - this is exactly line covered by a status bar :slight_smile:

Could you provide screenshot?

Look at the screen capture - see the bottom bar? Also notice how build log screen takes over whole area of tabs where my files were displayed. I configured in setup “build” window to be at the “bottom”… but it took over all tabs. If I change location to “right” - it is correctly shown on the right from other tabs (hence files still displayed in their areas)… hey, were is the “attach file” button?

The output should be scrollable. Did you manually maximized this build window?

P.S: I like new PlatformIO 3.0 Build System and Library Dependency Graph! :blush: Very smart system :slight_smile:

Indeed, I was about to say the same about Lib Dependency graph but I was lost trying to find how to upload file :slight_smile: Very useful I love it ! - next step should be graphical presentation of the same graph!
I did not maximize it . It took over that space after clicking “build” (instead of pre-set “bottom”. But if I set it to be located at the “right” - it splits window and takes over right area… There are NO “maximize/minimize” buttons on that window…

It does scroll if output log has more lines than fits window vertically, but scrolls no more than to allow last line to fit window… and that is under status bar :slight_smile:

Next step is PIO Remote :tm: :wink:

Change a height of window (drag to botom). See red arrow below

Ivan, bolshoje spasibo
I did not think about it because usually if window shares the space (hence resizable), it never starts by taking all of the space…
But it works and also, after it been resized - it shows all that which I did not see before (for ex. “success” message)

About PIO remote - I personally don;t see any value for my work - I develop embedded code for MCU which controls a lot of sensors and whole work must be done next to the equipment. This remote feature is only good for non-embedded, especially distributed applications, working in a team as I did many projects in the past…
But a good graphical Library manager which shows all the library dependencies and also their locations, also allowing to upgrade, remove or add library from it’s graphic interface - this is important step for the best in the world coding IDE (regardless remote or local)

GUI for Library Manager in PlatformIO IDE is in our TODO list. If community supports us with PlatformIO Plus, we will implement it.

As for the PIO Remote. It could be very interesting if your company has boards farm. You will be able to test projects on multiple boards remotely. We will explain better all features of PIO Remote.

P.S: Did you try pio test? See interesting example

Is there any describing page about pio test?

Sure! Redirecting...