“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:
Split values with “, “ (comma + space)
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