General options

platform

Development Platforms name.

PlatformIO allows 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:

  • 0.1.2: an exact version number. Use only this exact version

  • ^0.1.2: any compatible version (exact version for 0.x.x versions

  • ~0.1.2: any version with the same major and minor versions, and an equal or greater patch version

  • >0.1.2: any version greater than 0.1.2. >=, <, 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.

Examples:

[env:the_latest_version]
platform = atmelavr

[env:specific_major_version]
platform = atmelavr@^0.1.2

[env:specific_major_and_minor_version]
platform = atmelavr@~0.1.2

[env:development_verion_by_git]
platform = https://github.com/platformio/platform-ststm32.git

[env:custom_git_branch]
platform = https://github.com/platformio/platform-espressif8266.git#feature/stage

[env:specific_git_commit]
platform = https://github.com/platformio/platform-espressif8266.git#921855a9c530082efddb5d48b44c3f4be0e2dfa2

framework

Frameworks name.

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

board

PlatformIO has pre-configured settings for the most popular boards. You don’t need to specify board_mcu, board_f_cpu, upload_protocol or upload_speed options. Just define a board type and PlatformIO will pre-fill options described above with appropriate values.

You can find the board type in Boards section of each Development Platforms or using PlatformIO Embedded Boards Explorer.

targets

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.

Example: build a project, upload firmware and start Serial Monitor automatically.

[env:upload_and_monitor]
targets = upload, monitor

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.