# Development Platforms

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.

## Embedded

- Aceinna IMU
- Atmel AVR
- Atmel megaAVR
- Atmel SAM
- Espressif 32
- Espressif 8266
- Freescale Kinetis
- GigaDevice GD32V
- Infineon XMC
- Intel ARC32
- Intel MCS-51 (8051)
- Kendryte K210
- Lattice iCE40
- Maxim 32
- Microchip PIC32
- Nordic nRF51
- Nordic nRF52
- Nuclei
- NXP i.MX RT
- NXP LPC
- RISC-V GAP
- Shakti
- SiFive
- Silicon Labs EFM32
- ST STM32
- ST STM8
- Teensy
- TI MSP430
- TI TIVA
- WIZNet W7500

## Desktop

- Native
- Linux ARM
- Linux i686
- Linux x86_64
- Windows x86