Platform options


Type: String | Multiple: No

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 =


New in version 4.0.

Type: String | Multiple: Yes

Configure custom packages per a build environment. You can also override default packages by Development Platforms using the same name. Packages will be installed in packages_dir.


platform = atmelavr
platform_packages =
  ; use GCC AVR 5.0+
  [email protected]>1.50000.0

platform = espressif8266
platform_packages =
  ; use upstream Git version
  framework-arduinoespressif8266 @

platform = ststm32
platform_packages =
  ; latest openOCD from PlatformIO Package Registry

  ; source code of ST-Link
  tool-stlink-source @


Type: String | Multiple: Yes

Frameworks name.