PlatformIO is an open source ecosystem for IoT development that includes cross-platform code builder and library manager.
PlatformIO is written in Python and is independent from the platform it is running on. As a result it can run on different operating systems and even on the smallest computers (Raspberry Pi, BeagleBone, CubieBoard). For every major OS (Mac OS X, Linux (+ARM) and Windows) PlatformIO has pre-built development platform with compiler, debugger, uploader, frameworks and other useful tools. Since Python is the only requirement, projects can be easily shared between team members and moved between computers regardless of operating system.
Embedded development
Another important feature of this ecosystem is that it provides a rather long list of supported boards and MCUs - approximately 200 Embedded Boards. Although PlatformIO is a console application, it offers colourful command-line output and can be used with IDE Integration or text editor (e.g. Arduino, VIM, Eclipse, Sublime Text, Energia, Atom, Qt Creator, Visual Studio, CLion, etc.). PlatformIO also ensures cloud compiling and continuous integration with Travis CI, Drone, AppVeyor, Shippable, Circle CI; automatic firmware uploading; built-in Serial Port Monitor and configurable build -flags/-options.
The Missing Library Manager
PlatformIO comes with the missing library manager for development platforms. It helps in organization of the external libraries and their search via modern Web 2.0 platform (list by authors, categories, keywords, compatible platforms and frameworks). Among the main library management features are: user-friendly command-line interface, automatic library updating, library dependency management, open source library registry API and library crawler based on library.json specification.
Smart and reliable Code Builder
SCons was chosen as a basis for PlatformIO Code Builder. SCons is a next-generation software construction tool and basically an improved, cross-platform substitute for the traditional Make utility. As a result, Code Builder provides automatic dependency analysis, reliable detection of build changes, ability to share built files in a cache, improved support for parallel builds, and lookup for external libraries (installed via Library Manager). User can compile the same code with different development platforms using only one command.
Project work cycle
PlatformIO offers all necessary instruments to significantly simplify support for the platforms, Embedded Boards, and MCUs. User can fully focus on the code development after selecting preferable editor and OS to run development process on. The work cycle of the project developed using PlatformIO generally contains the following steps:
- In the Project Configuration File (platformio.ini) user chooses board(s) and sets up environments with specific options.
- Based on the configurations PlatformIO downloads required toolchains and installs them automatically.
- User can write code, while PlatformIO will take care of compiling, preparing and uploading it to all chosen platforms.
PlatformIO is a code builder and the missing library manager with continuous and IDE integration, ready for cloud compiling, Arduino and MBED compatible. For more information visit PlatformIO website.