The PlatformIO ecosystem has a decentralized architecture, allowing development for a range of development platforms. A development platform (or just “platform” for short) is usually a particular microcontroller or processor architecture that PlatformIO projects can be compiled to run on. (A few platforms, for example Teensy, use different target architectures for different boards.)
Each of the three supported host systems Mac OS X, Linux and Windows support compiling for all platforms listed below. Some platforms are also supported under ARM Linux hosts such as Raspberry Pi. For each development platform, PlatformIO defines:
The PlatformIO Build System build scripts for the supported frameworks and SDKs
Pre-configured presets for embedded circuit boards
Pre-compiled toolchains and related tools for the architechture(s)
Each project must specify the platform name using the platform option in “platformio.ini” (Project Configuration File). A specific platform version can optionally be specified as well. As embedded boards are equipped with a particular microcontroller, each embedded board specifies what development platform it uses and this can not be changed.
If a new board uses an architecture not in this list, a custom development platform can be created; see Custom Development Platforms.