“platformio.ini” (Project Configuration File)

platformio.ini is a configuration file that lets you set up your development environment, share your code and configurations with others, and leverage a declarative approach to development. You can use platformio.ini to configure multiple platforms and architectures without having to worry about different toolchains or build systems for each one.

Each PlatformIO project has its own platformio.ini that is located in the root directory of the project. This is an INI-style file. platformio.ini has sections (each denoted by a [header]) and key/value pairs within the sections. Lines beginning with ; are ignored and may be used to provide comments.

Multiple value options can be specified in two ways:

  1. Split values with “, “ (comma + space)

  2. Multi-line format, where each new line starts with at least two spaces.

Here are the allowed sections and their allowed contents:

Example

For more examples, see official project examples and community projects.

[platformio] default_envs = nodemcuv2 ; custom common options [common] build_flags =  -D VERSION=1.2.3  -D DEBUG=1 lib_deps_builtin =  SPI  Wire lib_deps_external =  bblanchon/ArduinoJson @ ~5.6,!=5.4  https://github.com/gioblu/PJON.git#v2.0  IRremoteESP8266=https://github.com/markszabo/IRremoteESP8266/archive/master.zip [env:nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2 ; Build options build_flags =  ${common.build_flags}  -DSSID_NAME=HELLO  -DSSID_PASWORD=WORLD ; Library options lib_deps =  ${common.lib_deps_builtin}  ${common.lib_deps_external}  https://github.com/me-no-dev/ESPAsyncTCP.git  knolleary/PubSubClient@^2.8  paulstoffregen/OneWire ; Serial Monitor options monitor_speed = 115200 monitor_flags =  --encoding  hexlify ; Unit Testing options test_ignore = test_desktop [env:bluepill_f103c8] platform = ststm32 framework = arduino board = bluepill_f103c8 ; Library options lib_deps = ${common.lib_deps_external} ; Debug options debug_tool = custom debug_server =  ${platformio.packages_dir}/tool-jlink/JLinkGDBServer  -singlerun  -if  SWD  -select  USB  -port  2331  -device  STM32F103C8 ; Unit Testing options test_ignore = test_desktop