PlatformIO ========== .. image:: https://travis-ci.org/ivankravets/platformio.svg?branch=develop :target: https://travis-ci.org/ivankravets/platformio :alt: Build Status .. image:: https://gemnasium.com/ivankravets/platformio.png :target: https://gemnasium.com/ivankravets/platformio :alt: Dependency Status .. image:: https://pypip.in/version/platformio/badge.png?style=flat :target: https://pypi.python.org/pypi/platformio/ :alt: Latest Version .. image:: https://pypip.in/download/platformio/badge.png?style=flat :target: https://pypi.python.org/pypi/platformio/ :alt: Downloads .. image:: https://pypip.in/license/platformio/badge.png?style=flat :target: https://pypi.python.org/pypi/platformio/ :alt: License `Website + Library Search `_ | `Documentation `_ | `Project Examples `_ | `Blog `_ | `Twitter `_ .. image:: https://raw.githubusercontent.com/ivankravets/platformio/develop/docs/_static/platformio-logo.png :target: http://platformio.org `PlatformIO `_ is a cross-platform code builder and the missing library manager. * `Get Started `_ * `Web 2.0 Library Search `_ * `Development Platforms `_ * `Embedded Boards `_ * `Library Manager `_ * `User Guide `_ * `IDE Integration `_ * `Release History `_ You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO* has pre-built different development platforms including: compiler, debugger, uploader (for embedded boards) and many other useful tools. Use whenever. *Run everywhere.* ------------------------------- *PlatformIO* is written in pure *Python* and **doesn't depend** on any additional libraries/tools from an operation system. It allows you to use *PlatformIO* beginning from *PC (Mac, Linux, Win)* and ending with credit-card sized computers (like *Raspberry Pi*). Embedded Development. *Easier Than Ever.* ----------------------------------------- *PlatformIO* is well suited for embedded development and has pre-configured settings for most popular `Embedded Boards `_. * Colourful `command-line output `_ * Built-in `Serial Port Monitor `_ * Configurable `build -flags/-options `_ * Automatic **firmware uploading** * Integration with `development environments (IDE) `_ * Ready for **cloud compilers** * Pre-built tool chains, frameworks for the popular `Hardware Platforms `_ .. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-embedded-development.png :target: http://platformio.org :alt: PlatformIO Embedded Development Process The Missing Library Manager. *It's here!* ----------------------------------------- *PlatformIO Library Manager* is the missing library manager for development platforms which allows you to organize and have up-to-date external libraries. * Friendly `Command-Line Interface `_ * Modern `Web 2.0 Library Search `_ * Open Source `Library Registry API `_ * Library Crawler based on `library.json `_ specification * Library **dependency management** * Automatic library updating .. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-library-manager.png :target: http://platformio.org :alt: PlatformIO Library Manager Architecture Smart Code Builder. *Fast and Reliable.* ---------------------------------------- *PlatformIO Code Builder* is built-on a next-generation software construction tool named `SCons `_. Think of *SCons* as an improved, cross-platform substitute for the classic *Make* utility. * Reliable, automatic *dependency analysis* * Reliable detection of *build changes* * Improved support for *parallel builds* * Ability to share *built files in a cache* * Lookup for external libraries which are installed via `Library Manager `_ .. image:: https://raw.githubusercontent.com/ivankravets/platformio-web/develop/app/images/platformio-scons-builder.png :target: http://platformio.org :alt: PlatformIO Code Builder Architecture Single source code. *Multiple platforms.* ----------------------------------------- *PlatformIO* allows developer to compile the same code with different development platforms using the *Only One Command* `platformio run `_. This happens due to `Project Configuration File (platformio.ini) `_ where you can setup different environments with specific options (platform type, firmware uploading settings, pre-built framework, build flags and many more). It has support for the most popular embedded platforms: * ``atmelavr`` `Atmel AVR `_ (including *Arduino*-based boards, *Microduino, Raspduino, Teensy*) * ``atmelsam`` `Atmel SAM `_ (including *Arduino*-based boards, *Digistump DigiX*) * ``stm32`` `STM32 `_ (including *STM32 Discovery* Kits, CMSIS, SPL, libOpenCM3) * ``teensy`` `Teensy `_ (including *Teensy 2 and 3* USB boards) * ``timsp430`` `TI MSP430 `_ (including *MSP430* LaunchPads) * ``titiva`` `TI TIVA C `_ (including *TIVA C* Series LaunchPads) Licence ------- Copyright (C) 2014-2015 Ivan Kravets Licenced under the MIT Licence.