General options


Development Platforms name.

PlatformIO allows one to use specific version of platform using Semantic Versioning (X.Y.Z=MAJOR.MINOR.PATCH) or VCS (Git, Mercurial and Subversion).

Version specifications can take any of the following forms:

  • 1.2.3: an exact version number. Use only this exact version
  • ^1.2.3: any compatible version (exact version for 1.x.x versions)
  • ~1.2.3: any version with the same major and minor versions, and an equal or greater patch version
  • >1.2.3: any version greater than 1.2.3. >=, <, and <= are also possible
  • >0.1.0,!=0.2.0,<0.3.0: any version greater than 0.1.0, not equal to 0.2.0 and less than 0.3.0

Other forms are the same as for the platformio platform install command.


platform = atmelavr

platform = [email protected]

platform = [email protected]^1.2.3

platform = [email protected]~1.2.3

platform =

platform =

platform =


Frameworks name.

The multiple frameworks are allowed, split them with comma+space “, “.


PlatformIO has pre-configured settings for the most popular boards:

  • build configuration
  • upload configuration
  • debugging configuration
  • connectivity information, etc.

You can find a valid board ID in Boards catalog, Boards Explorer or platformio boards command.


A list with targets which will be processed by platformio run command by default. You can enter more than one target, please split them with comma+space “, “.

The list with available targets is located in platformio run --target.


  1. Build a project using Release Configuration, upload firmware, and start Serial Monitor automatically:

    targets = upload, monitor
  2. Build a project using Debug Configuration.

Tip! You can use these targets like an option to platformio run --target command. For example:

# clean project
platformio run -t clean

# dump current build environment
platformio run --target envdump

When no targets are defined, PlatformIO will build only sources by default.