Commercial use of firmware created with PlatformIO


I am intending to use PlatformIO to create a binary firmware for the Arduino or STM32 platform. This code will later be uploaded on commercial boards containing Atmel/ST chips (so no regular Arduino.STM32 boards but only the corresponding Atmel/ST chips). I have no reasons, intention (or enough skill) to modify the platform core files or libraries.
Given this, I want to know if I can use PlatformIO to create my commercial binary firmware without having any legal restrictions.

I know this topic was discussed in the past, but the answers I found looks somehow confusing.

For example:

  1. here Platformio's LICENSE, it was said that PlatformIO uses only GNU toolchains (binaries, not source code). So, if I understood well, from the licensing perspective, PlatformIO magically transforms the GPL source code of the platform core and library files (which have some use restrictions) into the permissive Apache 2.0 license (which doesn’t have any commercial use restrictions).

  2. more recently, it was said here Using PlatformIO and Visual Studio Code for the firmware of a commercial product that “The other problem is a framework that you use in a project. However, if you don’t modify the original ESP32 Arduino core - you should not worry about any license. Please note, I’m not a lawyer too.

In the first answer, the conclusion seemed to be like there is no restriction regarding the commercial use of the resulting code. In the second answer, the tone looked to be more hesitating: “you should not worry” but then “Please note, I’m not a lawyer too”.

Can anyone bring a more clear answer to the question: the binary code made and built with PlatformIO has any restrictions for commercial use? If yes, which one?


I think either a mail to or would be good regarding these commercial usage questions. Or @ivankravets can answer.

1 Like

We ship 3rd party software “as it is”, without any modification. We highly recommend contacting the software author for further details.

Now, my personal “technical” thoughts. This is NOT a legal statement. If you check GPL license you will find the “rules” when you are “affected”. So, if you INCLUDE GPL source code in YOUR PROJECT, then you MUST license your code UNDER GPL.

Questions for you:

  1. Do you include GNU toolchain source code within your project?
  2. Do you include the Arduino framework source code in your project?

If yes, you are affected. The GCC toolchain which we use is already compiled binary files. You don’t need to worry about it. In the case of the Arduino framework, we also COMPILE it into the static library and later link it with the object code from your project source code. The same here, you should no be affected.

However, the only you PHYSICALLY copy Arduino or GCC GNU sources to your project, you are under GPL.