PlatformIO Documentation

Release 3.3.1

PlatformIO

May 27, 2017

Contents

1 Embedded Development. Easier Than Ever. 3

2 Smart Build System. Fast and Reliable. 5

3 The Missing Library Manager. It’s here! 7

4 Contents 9
4.1 What is PlatformIO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Demo & Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 PlatformIO IDE for Atom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 PlatformIO Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Project Configuration File platformio.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.6 Environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.7 Development Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.8 Embedded Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
4.9 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.10 Custom Platform & Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
4.11 PIO Remote™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
4.12 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
4.13 Library Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
4.14 Library Dependency Finder (LDF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
4.15 library.json . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
4.16 Creating Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
4.17 Cloud & Standalone IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
4.18 Continuous Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
4.19 Articles about us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
4.20 Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
4.21 Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
4.22 Migrating from 2.x to 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

Bibliography 427

i

ii

PlatformIO Documentation, Release 3.3.1

Cross-platform build system and library manager. Continuous and IDE integration. Arduino, ESP8266 and
ARM mbed compatible.
• PlatformIO IDE - The next-generation integrated development environment for IoT. C/C++ Intelligent Code
Completion and Smart Code Linter for the super-fast coding. Multi-projects workflow with Multiple Panes.
Themes Support with dark and light colors. Built-in Terminal with PlatformIO Core and support for the power-
ful Serial Port Monitor. All advanced instruments without leaving your favorite development environment.
• Development Platforms - Embedded and Desktop development platforms with pre-built toolchains, debuggers,
uploaders and frameworks which work under popular host OS: Mac, Windows, Linux (+ARM)
• Embedded Boards - Rapid Embedded Programming, IDE and Continuous Integration in a few steps with
PlatformIO thanks to built-in project generator for the most popular embedded boards and IDE
• Library Manager - Hundreds Popular Libraries are organized into single Web 2.0 platform: list by categories,
keywords, authors, compatible platforms and frameworks; learn via examples; be up-to-date with the latest
version
Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32, TI
MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.
• Home Page
• PlatformIO Plus and professional solutions
• PlatformIO IDE for Atom
• Library Search and Registry | Embedded Boards Explorer
• Project Examples
• Source Code | Issues
• Blog | Twitter | Facebook | Hackaday | Forums

Contents 1

PlatformIO Documentation, Release 3.3.1

2 Contents

CHAPTER 1

Embedded Development. Easier Than Ever.

• Colourful command-line output
• IDE Integration with Atom, CLion, Eclipse, Emacs, Qt Creator, Sublime Text, Vim, Visual Studio
• Cloud compiling and Continuous Integration with AppVeyor, Circle CI, Drone, Shippable, Travis CI
• Built-in Serial Port Monitor and configurable build -flags/-options
• Pre-built toolchains, Frameworks for the Development Platforms

3

PlatformIO Documentation, Release 3.3.1

4 Chapter 1. Embedded Development. Easier Than Ever.

automatic dependency analysis and 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 5 . CHAPTER 2 Smart Build System. • Reliable. Fast and Reliable.

Release 3. Smart Build System.1 6 Chapter 2. Fast and Reliable. .PlatformIO Documentation.3.

and Linux (+ARM). CHAPTER 3 The Missing Library Manager. It’s here! • Friendly Command-Line Interface • Modern Web 2. For further details. Mac OS X.0 Library Search • Library dependency management • Automatic library updating • It runs on Windows. please refer to What is PlatformIO? How does it work? 7 .

It’s here! . Release 3.3. The Missing Library Manager.PlatformIO Documentation.1 8 Chapter 3.

Recently they’ve released a version with built in IDE based on Atom text editor”. For instance Arduino rely on Arduino IDE. So most of popular boards are covered. They’ve done hard work in organizing and managing hundreds of libraries that can be included in to your project. It’s been successfully used with other IDE’s like Eclipse or Visual Studio. They took care of toolchains. frameworks that work on most popular platforms like Windows. debuggers. You probably thought that single unified development tool could be great. . This is cross platform code builder and library manager with platforms like Arduino or MBED support. It supports more than 200 development boards along with more than 15 development platforms and 10 frameworks. Well this is what PlatformIO open source ecosystem is for. CHAPTER 4 Contents What is PlatformIO? Contents • What is PlatformIO? – Press about PlatformIO – Awards – Problematic – Overview – User SHOULD have a choice – How does it work? Press about PlatformIO “Different microcontrollers normally have different developing tools . Also lots of examples allow you to start developing quickly. Sometimes it may be hard to keep up with different microcontrollers and tools.[Embedds]. 9 . Few more advanced users set up different graphical interfaces like Eclipse for better project management. Mac and Linux. PlatformIO initially was developed with Command line philosophy.

in which it is running. is a list of supported boards and MCUs. from development perspective at least. Qt Creator. In fact. the only requirement is Python. • Focus on the code development. PlatformIO downloads required toolchains and installs them automatically.ini • Based on this list of boards. But more importantly. CLion. • Sharing embedded projects between team members. • Choose which editor to use for writing the code. Eclipse. Visual Studio. significantly simplifying support for the Development Platforms and MCUs. Problematic • The main problem which repulses people from embedded world is a complicated process to setup development software for a specific MCU/board: toolchains. NetBeans. as well as that PlatformIO allows for the easy sharing of projects between team members. prepared and uploaded to all the boards of interest. so PlatformIO can run on different operating systems. proprietary vendor’s IDE (which sometimes isn’t free) and what is more.1 Awards PlatformIO was nominated for the year’s best Software and Tools in the 2015/16 IoT Awards. regardless of operating system they prefer to work with. etc. Contents . How does it work? Without going too deep into PlatformIO implementation details. User SHOULD have a choice • Decide which operation system they want to run development process on. etc. to get a computer with OS where that software is supported. work cycle of the project developed using PlatformIO is as follows: • Users choose board(s) interested in Project Configuration File platformio. PlatformIO can be run not only on commonly used desktops/laptops but also on the servers without X Window System. Release 3. spending time on learning new development environments.3. 10 Chapter 4. regardless of operating system they prefer to work with. it can be used in combination with one’s favorite Cloud & Standalone IDE or text editor such as PlatformIO IDE for Atom. To keep things short: PlatformIO supports approximately 200 Embedded Boards and all major Development Platforms. • Finding proper libraries and code samples showing how to use popular sensors. VIM. which exists pretty much everywhere. • Multiple hardware platforms (MCUs. actuators. Overview PlatformIO is independent from the platform. and. etc. • Users develop code and PlatformIO makes sure that it is compiled. Alright.PlatformIO Documentation. IDEs. Beyond that. It can be pretty simple editor or powerful favorite Cloud & Standalone IDE. boards) require different toolchains. Sublime Text. respectively. Emacs. You can even use one OS at home and another at work. What this means is that PlatformIO projects can be easily moved from one computer to another. While PlatformIO itself is a console application.

“Blink Project” Used in demo 1. Source code of Wiring Blink Example 2. platformio run command 3. PlatformIO Documentation. Platform Manager Used in demo 1. platformio platform list command 3.3. platformio platform search avr command 4.1 Demo & Projects Contents • Demo & Projects – Project Examples – “Blink Project” * Used in demo – Platform Manager * Used in demo – Library Manager * Used in demo – Over-the-Air update for ESP8266 * Used in demo Project Examples Pre-configured demo projects are located in PlatformIO GitHub repository https://github. platformio platform show teensy command 4. Platform Manager 2. platformio run -t upload command.2.com/platformio/ platformio-examples. Demo & Projects 11 . Release 3.

3. Contents .PlatformIO Documentation. platformio lib install 124 –version “1. platformio run command 12 Chapter 4. platformio lib update command. Release 3. platformio lib show 124 command 9.40” command 8. platformio lib search radiohead command 7. platformio platform update command. Over-the-Air update for ESP8266 Used in demo 1. platformio lib search -f mbed command 5. platformio lib install 54 command 4. platformio lib search 1-wire command 3.1 5. platformio lib search -k rf command 6. Library Manager 2. Library Manager Used in demo 1.

platformio run -t upload command. 4.3.1 2. approachable. PlatformIO IDE for Atom PlatformIO IDE is the next-generation integrated development environment for IoT: • Cross-platform build system without external dependencies to the OS software: – 350+ embedded boards – 20+ development platforms – 10+ frameworks • C/C++ Intelligent Code Completion • C/C++ Smart Code Linter for rapid professional development • Library Manager for the hundreds popular libraries • Multi-projects workflow with multiple panes • Themes support with dark and light colors • Serial Port Monitor • Built-in Terminal with PlatformIO Core and CLI tool (pio. platformio) PlatformIO IDE is based on GitHub’s Atom source code editor that’s modern. a tool you can customize to do anything but also use productively without ever touching a config file. PlatformIO IDE for Atom 13 . PlatformIO Documentation. Release 3.3. yet hackable to the core.

Atom package (auto-installer) * 2.3. Clang for Intelligent Code Completion – Quick Start * Launch * Setting Up the Project * Process Project – User Guide 14 Chapter 4. Contents . Release 3.PlatformIO Documentation.1 Contents • PlatformIO IDE for Atom – Installation * 1.

Note: Please note that you do not need to install PlatformIO Core if you are going to use PlatformIO IDE for Atom. If you have already Atom installed. PlatformIO IDE for Atom 15 . Release 3. platformio) globally to your system via Menu: PlatformIO > Install Shell Commands. Also. It’s built on top of GitHub’s Atom “hackable” text editor. PlatformIO Documentation. Atom package (auto-installer) • Download and install official GitHub’s Atom text editor.1 * Menu item PlatformIO * PlatformIO Toolbar * Building / Uploading / Targets * Intelligent Code Completion * Smart Code Linter * Install Shell Commands – Known issues * Smart Code Linter is disabled for Arduino files · Convert Arduino file to C++ manually · Force Arduino file as C++ * Arch Linux: PlatformIO IDE Terminal issue – Frequently Asked Questions * Keep build panel visible * Automatically save on build * Jump to Declaration * Code Formatting – Uninstall Atom with PlatformIO IDE * Windows * macOS * Linux – Articles / Manuals Installation PlatformIO IDE is the next-generation integrated development environment for IoT. PlatformIO IDE allows to install PlatformIO Core Shell Commands (pio. Menu: File > Settings > Install 4.3. please install PlatformIO IDE for Atom package. PlatformIO IDE is built on top of it • Open Atom Package Manager and Install platformio-ide package (auto installer) – Mac OS X. PlatformIO Core is built into PlatformIO IDE and you will be able to use it within PlatformIO IDE Terminal. Menu: Atom > Preferences > Install – Windows.3. 1.

PlatformIO Documentation, Release 3.3.1

– Linux, Menu: Edit > Preferences > Install

2. Clang for Intelligent Code Completion

PlatformIO IDE uses Clang for the Intelligent Code Completion. To check that clang is available in your system,
please open Terminal and run clang --version. If clang is not installed, then install it and restart Atom:
• Mac OS X: Install the latest Xcode along with the latest Command Line Tools (they are installed automatically
when you run clang in Terminal for the first time, or manually by running xcode-select --install
• Windows: Download the latest Clang for Windows. Please select “Add LLVM to the system PATH” option on
the installation step.

16 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

Warning: If you see Failed to find MSBuild toolsets directory error in the installation
console, please ignore it and press any key to close this window. PlatformIO IDE uses only Clang completion
engine that should work after it without any problems.

• Linux: Using package managers: apt-get install clang or yum install clang.
• Other Systems: Download the latest Clang for the other systems.

Warning: If some libraries are not visible in PlatformIO IDE for Atom and Code Completion or Code Lint-
ing does not work properly, please perform Menu: PlatformIO > Rebuild C/C++ Project Index
(Autocomplete, Linter)

Quick Start

This tutorial introduces you to the basics of PlatformIO IDE workflow and shows you a creation process of a simple
“Blink” example. After finishing you will have a general understanding of how to work with projects in the IDE.

Launch

After installation, you launch PlatformIO IDE by opening Atom. Once Atom is open, PlatformIO IDE auto installer
will continue to install dependent packages and PlatformIO Core. Please be patient and let the installation complete.
In the final result PlatformIO IDE will ask you to reload Atom window to apply installed components. Please click on
Reload Now. After it PlatformIO IDE is ready for using. Happy coding!

4.3. PlatformIO IDE for Atom 17

PlatformIO Documentation, Release 3.3.1

Setting Up the Project

1. To create a new project choose Menu: PlatformIO > Initialize new Project or update
existing or press the corresponding icon in the PlatformIO toolbar as shown in the image below:

2. In the “New Project Menu” choose desired boards (more than one board is allowed) and select a project directory.
Then press “Initialize” button:

18 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

3. If everything is fine, you should see the success message and project tree in the left panel:

4.3. PlatformIO IDE for Atom 19

PlatformIO Documentation, Release 3.3.1

4. Now, let’s create the first project source file: right-click on the folder src and choose New File:

20 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

4.3. PlatformIO IDE for Atom 21

PlatformIO Documentation, Release 3.3.1

Enter filename main.cpp:
Copy the next source code to the just created file main.cpp:

/**
* Blink
*
* Turns on an LED on for one second,
* then off for one second, repeatedly.
*/
#include "Arduino.h"

#ifndef LED_BUILTIN
#define LED_BUILTIN 13
#endif

void setup()
{
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
// turn the LED on (HIGH is the voltage level)
digitalWrite(LED_BUILTIN, HIGH);

// wait for a second
delay(1000);

22 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

// turn the LED off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW);

// wait for a second
delay(1000);
}

Process Project

PlatformIO IDE proposes different ways to process project (build, clean, upload firmware, run other targets) using:
• PlatformIO Toolbar
• Menu item PlatformIO
• Building / Uploading / Targets and hotkeys

5. Run Build and you should see green “success” result in the building panel:

4.3. PlatformIO IDE for Atom 23

PlatformIO Documentation. left corner): 24 Chapter 4.1 To upload firmware to the board run Upload. 6..3. What is more. Release 3. you can run specific target or process project environment using Menu: PlatformIO > Run other target.. Contents . or call targets list from the status bar (bottom.

3. PlatformIO IDE for Atom 25 .3. PlatformIO Documentation.1 4. Release 3.

Release 3.3. To run built-in terminal interface choose Menu: PlatformIO > Terminal or press the corresponding icon in the PlatformIO toolbar: 26 Chapter 4.1 And select desired target: 7. Contents .PlatformIO Documentation.

PlatformIO Documentation. PlatformIO IDE for Atom 27 . Release 3.3.1 It provides you fast access to all set of powerful PlatformIO Core CLI commands: 4.3.

1 8.3.PlatformIO Documentation. Contents . Release 3. To run built-in “Serial Monitor” choose Menu: PlatformIO > Serial Monitor or press the corre- sponding icon in the PlatformIO toolbar: 28 Chapter 4.

1 4.3. Release 3.3. PlatformIO IDE for Atom 29 . PlatformIO Documentation.

1 It has several settings to adjust your connection: 30 Chapter 4. Release 3. Contents .PlatformIO Documentation.3.

3. PlatformIO Documentation.1 And allows you to communicate with your board in an easy way: User Guide Menu item PlatformIO platformio-ide package adds to Atom new menu item named Menu: PlatformIO (after Menu: Help item). 4. Release 3. PlatformIO IDE for Atom 31 .3.

32 Chapter 4. Contents . Release 3.PlatformIO Documentation.1 PlatformIO Toolbar PlatformIO IDE Toolbar contains the quick access button to the popular commands. Each button contains hint (delay mouse on it).3.

• cmd-alt-h / ctrl-alt-h / shift-f4 goes to the first build error. To install it or check if it is already installed. 4. • || • Terminal • Library Manager • Serial Monitor • || • Settings • PlatformIO Documentation Building / Uploading / Targets • cmd-alt-b / ctrl-alt-b / f9 builds project without auto-uploading...3. please follow to step 2. • cmd-alt-t / ctrl-alt-t / f7 run other targets (Upload using Programmer. More options Menu: PlatformIO > Settings > Build. • cmd-alt-g / ctrl-alt-g / f4 cycles through causes of build error. Intelligent Code Completion PlatformIO IDE uses clang for the Intelligent Code Completion.. Release 3. Clang for Intelligent Code Completion from Installation guide. • cmd-alt-u / ctrl-alt-u builds and uploads (if no errors). • cmd-alt-v / ctrl-alt-v / f8 toggles the build panel.3.. Upload SPIFFS image.. • Find in Project. • escape terminates build / closes the build window. PlatformIO IDE for Atom 33 . Update platforms and libraries).. • cmd-alt-c / ctrl-alt-c cleans compiled objects. • Add/Open Project Folder.1 • PlatformIO: Build • PlatformIO: Upload • PlatformIO: Clean • || • Initialize new PlatformIO Project or update existing. PlatformIO Documentation.

pde) because they are not valid C/C++ based source files: 1.platformio/ packages/toolchain-atmelavr/bin/avr-g++" not found..PlatformIO Documentation. Function declarations are omitted.json.. The configuration data are located in . Linter). terminal and etc. Contents . You need Menu: PlatformIO > Rebuild C/C++ Project Index (Autocomplete.gcc-flags. Smart Code Linter PlatformIO IDE uses PlatformIO’s pre-built GCC toolchains for Smart Code Linter and rapid professional devel- opment. Missing includes such as #include <Arduino.. Install Shell Commands To install platformio and pio shell commands please use Menu: PlatformIO > Install Shell Commands. Linter) Error: If you have an error like linter-gcc: Executable not found and "***/. Release 3.1 Warning: The libraries which are added/installed after initializing process will not be reflected in code linter.3. Warning: If some libraries are not visible in PlatformIO IDE for Atom and Code Completion or Code Lint- ing does not work properly.ino and . Known issues Smart Code Linter is disabled for Arduino files Smart Code Linter is disabled by default for Arduino files (*.. please perform Menu: PlatformIO > Rebuild C/C++ Project Index (Autocomplete.ino file: 34 Chapter 4. This file will be automatically created and preconfigured when you initialize project using Menu: PlatformIO > Initialize new PlatformIO Project or update existing.h> 2. we have the next Demo. please Menu: PlatformIO > Initialize new PlatformIO Project or update existing.. There are two solutions: • Convert Arduino file to C++ manually • Force Arduino file as C++ Convert Arduino file to C++ manually For example.. It will allow you to call PlatformIO from other process.

3.. PlatformIO Documentation.."..1 void setup () { someFunction(13). Perform all steps from Convert Arduino file to C++ manually (without renaming to . "gccDefaultCFlags": ".3.cpp: #include <Arduino. "gccSuppressWarnings": false } 2. such as setup and loop) before it will be called.. The final Demo..gcc-flags. Declare each custom function (excluding built-in. Release 3.. } void someFunction(int num) { } Let’s convert it to Demo. "gccDefaultCppFlags": "-x c++ -fsyntax-only . } void someFunction(int num) { } Force Arduino file as C++ To force Smart Code Linter to use Arduino files as C++ please 1. } void loop() { delay(1000).h> void someFunction(int num). Warning: Please do not modify other flags here.h> at the top of the source file 2.ini instead.cpp).". Please use build_flags for Project Configuration File platformio. They will be removed on a next “Project Rebuild C/C++ Index” stage.".. Open . "gccIncludePaths": ". void setup () { someFunction(13).".. Add #include <Arduino.json file from the Initialized/Imported project and add -x c++ flag at the beginning of the value of gccDefaultCppFlags field: { "execPath": ". "gccErrorLimit": 15.cpp: 1. 4. PlatformIO IDE for Atom 35 . } void loop() { delay(1000).

Key-bindings (toggle panel): • cmd+alt+v . press F3 and you will be taken directly to the declaration for that function. etc. Remove C:\Users\<user name>\AppData\Local\atom folder (application itself) 4.1 Arch Linux: PlatformIO IDE Terminal issue Please read this article Installing PlatformIO on Arch Linux.. Uninstall Atom with PlatformIO IDE Here’s how to uninstall the PlatformIO IDE for multiple OS.PlatformIO Documentation.atom folder (settings.) 3. etc. please follow to Menu: PlatformIO > Settings > Build and check Automatically save on build.) macOS Run these commands in system Terminal 36 Chapter 4. Remove C:\Users\<user name>\. Remove C:\Users\<user name>\AppData\Roaming\Atom folder (cache. Contents . Frequently Asked Questions Keep build panel visible PlatformIO IDE hides build panel on success by default.3. you can keep it visible all time. Nevertheless.Windows/Linux Automatically save on build If you want automatically save all edited files when triggering a build. Release 3. Jump to Declaration Click on a function/include. Windows 1. packages. Please follow to Menu: PlatformIO > Settings > Build and set Panel Visibility to Keep Visible. Uninstall Atom using “Start > Control Panel > Programs and Features > Uninstall” 2.Mac OS X • ctrl+alt+v . Code Formatting You need to install atom-beautify package and C/C++ Uncrustify Code Beautifier..

Patrick Mineault .atom. the Arduino IDE for programmers • Mar 05. 2016 . 2016 . 2016 .Hackaday: Atomic Arduino (and Other) Development • Apr 16.github.Alex Bloggt .Dr. 2016 .Installing PlatformIO on Arch Linux • Jul 26.Ricardo Vega .Pedro Minatel .Primal Cortex .Sathittham Sangthong .config/Atom-Shell rm -rf /usr/local/share/atom/ Articles / Manuals • Dec 13.github. Thai) • May 30.Getting Started with PlatformIO and ESP8266 NodeMcu • Mar 12.1 rm -rf ~/.atom rm -rf ~/. 2016 .net . Spanish) • Feb 28.Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom. 2016 . 2016 .PlatformIO IDE Arduino ESP8266 (Get started with Plat- formIO IDE for Arduino board and ESP8266.Al Williams .atom rm -rf ~/Library/Caches/Atom Linux Run these commands in system Terminal rm /usr/local/bin/atom rm /usr/local/bin/apm rm -rf ~/atom rm -rf ~/.Multi-Arduino projects with PlatformIO • Nov 10.3. German) • Apr 02.atom rm /usr/local/bin/atom rm /usr/local/bin/apm rm -rf /Applications/Atom. 2016 .atom. 2016 .ShipIt rm -rf ~/Library/Application\ Support/Atom rm -rf ~/Library/Saved\ Application\ State/com. PlatformIO IDE for Atom 37 .PlatformIO ausprobiert (Tried PlatformIO.PlatformIO vorgestellt (Introduction to PlatformIO IDE.Aleks .savedState rm -rf ~/Library/Caches/com.An alternative to the Arduino IDE.[PlatformIO] PlatformIO Arduino IDE (Let’s play together with PlatformIO IDE [alternative to Arduino IDE].PiGreek . 2016 .Peter Marks . German) 4.PlatformIO – otevřený ekosystém pro vývoj IoT (PlatformIO – an open source ecosystem for IoT development. PlatformIO Documentation. 2016 .github.Ron Moerman .Embedded Systems Laboratory .Diego Pinto .app rm ~/Library/Preferences/com. Portuguese) • Apr 23. 2016 . 2016 . Release 3.PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO .github.Brandon Cannaday .Programa tu Arduino desde Atom (Program your Arduino from Atom.IoT Development with PlatformIO • May 01.3.atom.Matjaz Trcek . 2016 . 2016 . 2016 .Top 5 Arduino integrated development environments • Apr 06.brichacek. Thai) • Apr 11. Portuguese) • Mar 30.PlatformIO the new Arduino IDE ?! • Aug 18. Czech) • Mar 04.PlatformIO.plist rm ~/Library/Application\ Support/com.

Contents . PlatformIO Core is written in Python 2. macOS. Release 3. FreeBSD and ARM-based credit- card sized computers (Raspberry Pi.NutDIY . Samsung ARTIK.1 • Feb 25. Installation Note: Please note that you do not need to install PlatformIO Core if you are going to use PlatformIO IDE for Atom.PlatformIO Blink On Nodemcu Dev Kit V1. FreeBSD and ARM-based credit- card sized computers (Raspberry Pi. etc. PlatformIO Core PlatformIO Core is a heart of whole PlatformIO ecosystem and consists of • Multi-platform Build System • Development platform and package managers • Library Manager • Library Dependency Finder (LDF) • Serial Port Monitor • Integration components (Cloud & Standalone IDE and Continuous Integration). Note: Please note that you do not need to install PlatformIO Core if you are going to use PlatformIO IDE for Atom. In other words. PlatformIO Core is built into PlatformIO IDE and you will be able to use it within PlatformIO IDE Terminal.PlatformIO Documentation. CubieBoard.7 and works on Windows. platformio) globally to your system via Menu: PlatformIO > Install Shell Commands. such as PlatformIO IDE for Atom. Also. PlatformIO IDE allows to install PlatformIO Core Shell Commands (pio. Linux. Also. PlatformIO IDE allows to install PlatformIO Core Shell Commands (pio. PlatformIO Core provides a rich and documented Command Line Interface (CLI). PlatformIO Core is written in Python 2. etc.). Linux.7 and works on Windows. CubieBoard. PlatformIO Core is built into PlatformIO IDE and you will be able to use it within PlatformIO IDE Terminal.0 (Thai) See a full list with Articles about us. platformio) globally to your system via Menu: PlatformIO > Install Shell Commands.3. macOS. Samsung ARTIK. BeagleBone. BeagleBone. The other PlatformIO-based soft- ware and IDEs are based on PlatformIO Core CLI. they wrap PlatformIO Core with own GUI. 2016 . Contents • Installation – System requirements – Installation Methods * Python Package Manager * Installer Script 38 Chapter 4.).

macOS.exe application.7 is required. Release 3. FreeBSD. for Windows OS – cmd. For macOS and Linux OS .3. Terminal Application All commands below should be executed in Command-line application (Termi- nal). DON’T FORGET to select Add python.exe to Path feature on the “Customize” stage.1 · Super-Quick (Mac / Linux) · Local Download (Mac / Linux / Windows) * macOS Homebrew * Full Guide * Development Version – Troubleshooting System requirements Operating System Windows. other- wise Python Package Manager pip command will not be available. PlatformIO Core 39 . PlatformIO Documentation. Attention: Windows Users: Please Download the latest Python 2. Linux ARMv6+ Python Interpreter Python 2. Linux. Access to Serial Ports (USB/UART) Windows Users: Please check that you have correctly installed USB driver from board manufacturer Linux Users: 4. PlatformIO does not support Python 3.7 and install it.4.Terminal application.

PlatformIO Documentation.rules (an instruction is located in the file). Contents . please read this article Enable serial port on Raspberry Pi.py)" 40 Chapter 4.3. • Raspberry Pi users.com/platformio/platformio/ ˓→master/scripts/get-platformio. Installation Methods Please choose ONE of the following methods: • Python Package Manager • Installer Script – Super-Quick (Mac / Linux) – Local Download (Mac / Linux / Windows) • macOS Homebrew • Full Guide • Development Version Python Package Manager The latest stable version of PlatformIO may be installed or upgraded via Python Package Manager (pip) as follows: pip install -U platformio If pip command is not available run easy_install pip or use Installer Script which will install pip and platformio automatically. • Install “udev” rules file 99-platformio-udev. Note that you may run into permissions issues running these commands. You have a few options here: • Run with sudo to install PlatformIO and dependencies globally • Specify the pip install –user option to install local to your user • Run the command in a virtualenv local to a specific project working set.1 • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”.githubusercontent. Installer Script Super-Quick (Mac / Linux) To install or upgrade PlatformIO paste that at a Terminal prompt (MAY require administrator access sudo): python -c "$(curl -fsSL https://raw. doing this issuing a sudo usermod -a -G dialout yourusername. Release 3.

py On Windows OS it may look like: # change directory to folder where is located downloaded "get-platformio.4.) get-platformio.py/script # run it python get-platformio.7 is supported): python --version Windows Users only: • Download Python 2. For upgrading platformio to the latest version: pip install -U platformio 4. Check a python version (only Python 2. Install a platformio and related packages: pip install -U platformio If your computer does not recognize pip command. PlatformIO Core 41 . • Add to PATH system variable . Release 3.py" cd /path/to/dir/where/is/located/get-platformio. 2..C:\Python27\Scripts.py macOS Homebrew The latest stable version of PlatformIO may be installed or upgraded via macOS Homebrew Packages Manager (brew) as follows: brew install platformio Full Guide 1.exe get-platformio.exe) application..1 Local Download (Mac / Linux / Windows) To install or upgrade PlatformIO. PlatformIO Documentation. Then run the following (MAY require administrator access sudo): # change directory to folder where is located downloaded "get-platformio. try to install it first using these instructions.py" cd C:\path\to\dir\where\is\located\get-platformio. download (save as. Please read this article How to set the path and environment variables in Windows.py script. and reopen Command Prompt (cmd.3.C:\Python27.py\script # run it C:\Python27\python.7 and install it.

1 Development Version Warning: If you use PlatformIO IDE for Atom. To revert to the latest stable version pip uninstall platformio pip install -U platformio Troubleshooting Note: Linux OS: Don’t forget to install “udev” rules file 99-platformio-udev. It means that you will be able to import pre- generated PlatformIO project using favorite IDE and extend it with the professional instruments for IoT development. Quick Start This tutorial introduces you to the basics of PlatformIO Core Command Line Interface (CLI) workflow and shows you a creation process of a simple cross-platform “Blink” Project.0 (32-bit ESP8266) Arduino Wiring-based Framework Teensy Teensy 3. platformio init can be used for Cloud & Standalone IDE.zip If you want to be up-to-date with the latest develop version of PlatformIO. Release 3. please enable development version via Menu PlatformIO: Settings > PlatformIO IDE > Use development version of PlatformIO. Setting Up the Project PlatformIO Core provides special platformio init command for configuring your projects. What is more. Install the latest PlatformIO from the develop branch: # uninstall existing version pip uninstall platformio # install the latest development version of PlatformIO pip install -U https://github.com/platformio/platformio-core/archive/develop.PlatformIO Documentation. It allows to initialize new empty project or update existing with the new data. Windows OS: Please check that you have correctly installed USB driver from board manufacturer For further details. After finishing you will have a general understanding of how to work with the multiple development platforms and embedded boards. frequently questions. please refer to Frequently Asked Questions. This tutorial is based on the next popular embedded boards and development platforms using Arduino Wiring-based Framework: Platform Board Framework Atmel AVR Arduino Uno (8-bit ATmega328P) Arduino Wiring-based Framework Espressif NodeMCU 1. Contents . then you need to re-install PlatformIO each time if you see the new commits in PlatformIO GitHub repository (branch: develop). known issues.1 (32-bit ARM MK20DX256) Arduino Wiring-based Framework 42 Chapter 4.3.rules (an instruction is located in the file).

process/build project from the current directory `platformio run --target upload` or `platformio run -t upload` . You can specify another project directory via `platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.0 teensy30 mk20dx128 48Mhz 128kB 16kB Teensy 3.upload firmware ˓→to embedded board `platformio run --target clean` . |-> PLEASE EDIT ME <-| src . Release 3.0 (ESP-12E Module) is nodemcuv2. PlatformIO Core 43 . Just tell PlatformIO the Board ID and you will receive full working project with pre-installed instruments for the professional development.1 Board Identifier platformio init command requires to specify board identifier (ID/TYPE). writing build scripts or configuring uploading process. 1. It helps you to forget about installing toolchains.1 / 3.0 According to the table above the ID/TYPE for Teensy 3. the ID for Arduino UNO is uno and for NodeMCU 1.0 teensy31 mk20dx256 72Mhz 256kB 64kB Teensy 3.3. using platformio boards let’s try to find Teensy boards: > platformio boards teensy Platform: teensy --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- teensy20 atmega32u4 16Mhz 31kB 2. It can be found using Embedded Boards Explorer or platformio boards command. Also. Initialize Project PlatformIO ecosystem contains big database with pre-configured settings for the most popular embedded boards.clean project (remove compiled files) Congrats! You have just created the first PlatformIO based Project with the next structure: 4.Put here project specific (private) libraries Do you want to continue? [y/N]: y Project has been successfully initialized! Useful commands: `platformio run` . PlatformIO Documentation.ini . The next files/directories will be created in *** platformio. Then open system Terminal and change directory to it: # create new direcotry > mkdir path_to_the_new_directory # go to it > cd path_to_the_new_directory 2.4. Create empty folder where you are going to initialize new PlatformIO project.Project Configuration File. For example.1 is teensy31.Put your source files here lib .5kB Teensy 2. Initialize project for the boards mentioned above (you can specify more than one board at time): > platformio init --board uno --board nodemcuv2 --board teensy31 The current working directory *** will be used for the new project.2 teensylc mkl26z64 48Mhz 62kB 8kB Teensy LC teensy20pp at90usb1286 16Mhz 127kB 8kB Teensy++ 2.

extra scripting .PlatformIO Documentation.h. *. . etc. . More details are located in lib/readme. * then off for one second. *. extra library storages .cpp file and place it to src folder of our newly created project. txt file. The contents of src/main. Upload options: custom port. we need to create main. Release 3.S. } 44 Chapter 4. Build options: build flags.ini • src directory where you should place source code (*.cpp. Please visit documentation for the other options and examples .h" #ifndef LED_BUILTIN #define LED_BUILTIN 13 #endif void setup() { // initialize LED digital pin as an output. http://docs.platformio. The result of just generated platformio.ino. speed and extra flags .html [env:uno] platform = atmelavr framework = arduino board = uno [env:nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2 [env:teensy31] platform = teensy framework = arduino board = teensy31 Now.c. repeatedly.org/en/stable/projectconf. *.3. *. source filter. Note: If you need to add new board to the existing project please use platformio init again. • Miscellaneous files for VCS and Continuous Integration support.cpp: /** * Blink * * Turns on an LED on for one second. OUTPUT).1 • Project Configuration File platformio. Library options: dependencies. */ #include "Arduino.) • lib directory can be used for the project specific (private) libraries.ini: . Contents . pinMode(LED_BUILTIN. PlatformIO Project Configuration File .

cpp Process Project PlatformIO Core provides special platformio run command to process project.ini .1 void loop() { // turn the LED on (HIGH is the voltage level) digitalWrite(LED_BUILTIN. LOW). // wait for a second delay(1000).ini • platformio run --target upload. // wait for a second delay(1000). Process only uno environment • platformio run -e uno -t upload. Release 3. If you call it without any arguments. PlatformIO Documentation. Finally. PlatformIO Build System will process all project environments (which were created per each board specified above). Build project only for uno and upload firmware. Build project and upload firmware to the all devices specified in Project Configuration File platformio.src .txt .platformio. Here are a few useful commands: • platformio run. } The final Project structure: project_dir . Process (build) all environments specified in Project Configuration File platformio.ini • platformio run --target clean.lib | .readme.3. Clean project (delete compiled objects) • platformio run -e uno. HIGH). Please follow to platformio run --target documentation for the other targets.4.main. PlatformIO Core 45 . // turn the LED off by making the voltage LOW digitalWrite(LED_BUILTIN. demo which demonstrates building project and uploading firmware to Arduino Uno: Further Reading • Project examples • User Guide for PlatformIO Core commands User Guide 4.

-h Show help for the available options and commands $ platformio --help $ platformio COMMAND --help Commands PIO Account Having PIO Account allows you to use extra professional features from PlatformIO Plus: • PIO Remote™ • Cloud IDE • Unit Testing A registration is FREE.PlatformIO Documentation. --version Show the version of PlatformIO --help. -f Force to accept any confirmation prompts and disable progress bars. Release 3. Contents .3. To print all available commands and options use: platformio account --help platformio account COMMAND --help 46 Chapter 4.1 Contents • User Guide – Usage – Options – Commands Usage pio [OPTIONS] COMMAND platformio [OPTIONS] COMMAND # "pio" is the alias of "platformio" command Options --force.

-u User name (E-Mail). platformio account login Contents • platformio account login – Usage – Description * Options Usage platformio account login [OPTIONS] pio account login [OPTIONS] 4.1 platformio account forgot Contents • platformio account forgot – Usage – Description * Options Usage platformio account forgot [OPTIONS] pio account forgot [OPTIONS] Description Allows you to reset password for PIO Account using E-Mail that was specified for registration. PlatformIO Core 47 .3. Release 3. Options --username. PlatformIO Documentation.4. You can omit this option and enter E-Mail in Forgot Wizard later.

-p You can omit this option and enter securely password in Login Wizard later.3.PlatformIO Documentation. Release 3. --password. If you are not able to provide authentication credentials manually you can use PLATFORMIO_AUTH_TOKEN . This is very useful for Continuous Integration systems and PIO Remote™ opera- tions . platformio account password Contents • platformio account password – Usage – Description 48 Chapter 4.1 Description Log in to PIO Account. -u User name (E-Mail). platformio account logout Contents • platformio account logout – Usage – Description Usage platformio account logout pio account logout Description Log out of PIO Account. Options --username. You can omit this option and enter E-Mail in Login Wizard later. Contents .

PlatformIO Core 49 . You can omit this option and enter E-Mail in Register Wizard later. Release 3. PlatformIO Documentation. platformio account register Contents • platformio account register – Usage – Description * Options Usage platformio account register [OPTIONS] pio account register [OPTIONS] Description Log in to PIO Account. Options --username.1 Usage platformio account password pio account password Description Change password for PIO Account.3. -u User name (E-Mail). platformio account show Contents • platformio account show – Usage – Description 4.4.

Release 3. Contents . 50 Chapter 4.PlatformIO Documentation. PIO Remote™ operations where you are not able manually authorize. It is very useful for Continuous Integration systems. PlatformIO handles Personal Authentication Token from environment variable PLATFORMIO_AUTH_TOKEN .1 * Options Usage platformio account show pio account show Description Show detailed information about PIO Account: • Active groups and expiration • Group permissions Options --json-output Return the output in JSON format platformio account token Contents • platformio account token – Usage – Description * Options Usage platformio account token pio account token Description Get or regenerate Personal Authentication Token.3.

3.4. Show all available pre-configured embedded boards $ platformio boards Platform: atmelavr --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- btatmega168 atmega168 16Mhz 14Kb 1Kb Arduino BT ATmega168 btatmega328 atmega328p 16Mhz 28Kb 2Kb Arduino BT ATmega328 4. platformio boards Contents • platformio boards – Usage – Description * Options – Examples Usage platformio boards [OPTIONS] [FILTER] pio boards [OPTIONS] [FILTER] Description List pre-configured Embedded Boards Options --installed List boards only from the installed platforms --json-output Return the output in JSON format Examples 1. Release 3. PlatformIO Documentation.1 Options --regenerate If this option is specified a new authentication token will be generated. PlatformIO Core 51 .

... 3.. Filter Arduino-based boards $ platformio boards arduino Platform: atmelavr --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- btatmega168 atmega168 16Mhz 14Kb 1Kb Arduino BT ATmega168 btatmega328 atmega328p 16Mhz 28Kb 2Kb Arduino BT ATmega328 diecimilaatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Duemilanove or ˓→Diecimila ATmega168 diecimilaatmega328 atmega328p 16Mhz 30Kb 2Kb Arduino Duemilanove or ˓→Diecimila ATmega328 esplora atmega32u4 16Mhz 28Kb 2Kb Arduino Esplora ethernet atmega328p 16Mhz 31Kb 2Kb Arduino Ethernet . Release 3.3. Contents .. Filter mbed-enabled boards $ platformio boards mbed Platform: freescalekinetis --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- frdm_k20d50m mk20dx128vlh5 48Mhz 128Kb 16Kb Freescale Kinetis FRDM- ˓→K20D50M frdm_k22f mk22fn512vlh12 120Mhz 512Kb 128Kb Freescale Kinetis FRDM- ˓→K22F . Platform: nxplpc --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- blueboard_lpc11u24 lpc11u24 48Mhz 32Kb 8Kb BlueBoard-LPC11U24 dipcortexm0 lpc11u24 50Mhz 32Kb 8Kb DipCortex M0 lpc11u35 lpc11u35 48Mhz 64Kb 10Kb EA LPC11U35 QuickStart ˓→Board .PlatformIO Documentation.. 52 Chapter 4.. 2. Platform: nordicnrf51 --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- wallBotBLE nrf51822 16Mhz 128Kb 16Kb JKSoft Wallbot BLE nrf51_dk nrf51822 32Mhz 256Kb 32Kb Nordic nRF51-DK ....1 diecimilaatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Duemilanove or ˓→Diecimila ATmega168 diecimilaatmega328 atmega328p 16Mhz 30Kb 2Kb Arduino Duemilanove or ˓→Diecimila ATmega328 esplora atmega32u4 16Mhz 28Kb 2Kb Arduino Esplora ethernet atmega328p 16Mhz 31Kb 2Kb Arduino Ethernet .

Release 3.3V. 4. Filter boards which are based on ATmega168 MCU $ platformio boards atmega168 Platform: atmelavr --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- btatmega168 atmega168 16Mhz 14Kb 1Kb Arduino BT ATmega168 diecimilaatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Duemilanove or ˓→Diecimila ATmega168 miniatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Mini ATmega168 atmegangatmega168 atmega168 16Mhz 14Kb 1Kb Arduino NG or older ˓→ATmega168 nanoatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Nano ATmega168 pro8MHzatmega168 atmega168 8Mhz 14Kb 1Kb Arduino Pro or Pro Mini ˓→ATmega168 (3.3V) 5. PlatformIO Documentation. 16 MHz) lilypadatmega168 atmega168 8Mhz 14Kb 1Kb LilyPad Arduino ATmega168 168pa16m atmega168p 16Mhz 15Kb 1Kb Microduino Core ˓→(Atmega168PA@16M. PlatformIO Core 53 ...1 Platform: ststm32 --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- disco_f401vc stm32f401vct6 84Mhz 256Kb 64Kb 32F401CDISCOVERY nucleo_f030r8 stm32f030r8t6 48Mhz 64Kb 8Kb ST Nucleo F030R8 . Show boards by Platform timsp430 $ platformio boards timsp430 Platform: timsp430 --------------------------------------------------------------------------- Type MCU Frequency Flash RAM Name --------------------------------------------------------------------------- lpmsp430fr5739 msp430fr5739 16Mhz 15Kb 1Kb FraunchPad w/ ˓→msp430fr5739 lpmsp430f5529 msp430f5529 16Mhz 128Kb 1Kb LaunchPad w/ msp430f5529 ˓→(16MHz) lpmsp430f5529_25 msp430f5529 25Mhz 128Kb 1Kb LaunchPad w/ msp430f5529 ˓→(25MHz) lpmsp430fr5969 msp430fr5969 8Mhz 64Kb 1Kb LaunchPad w/ msp430fr5969 lpmsp430g2231 msp430g2231 1Mhz 2Kb 128B LaunchPad w/ msp430g2231 ˓→(1MHz) lpmsp430g2452 msp430g2452 16Mhz 8Kb 256B LaunchPad w/ msp430g2452 ˓→(16MHz) lpmsp430g2553 msp430g2553 16Mhz 16Kb 512B LaunchPad w/ msp430g2553 ˓→(16MHz) 4.3.4.3.5V) 168pa8m atmega168p 8Mhz 15Kb 1Kb Microduino Core ˓→(Atmega168PA@8M. 8 MHz) pro16MHzatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Pro or Pro Mini ˓→ATmega168 (5V.

If platformio ci --lib is a path to file (not to directory). In this case. It allows to build different examples without creating own project per them. you need to pass additional option --project-option="targets=upload". See platformio ci --project-option for details. What is more. then PlatformIO will create temporary directory within <BUILD_DIR>/lib and copy the rest files into it. Contents .3.PlatformIO Documentation. In a nutshell. Also. you can specify custom upload port using --project-option="upload_port=<port>" option. you can omit SRC argument and set path (multiple paths are allowed denoting with :) to PLATFORMIO_CI_SRC Environment variable For more details as for integration with the popular Continuous Integration Systems please follow to Continuous Integration page. Release 3. file or Glob Pattern. platformio ci command accepts multiple SRC arguments. platformio ci --lib and platformio ci --exclude options which can be a path to directory. --lib Source code which will be copied to <BUILD_DIR>/lib directly. Also. Options -l. using SRC and platformio ci --lib contents PlatformIO initializes via platformio init new project in platformio ci --build-dir with the build environments (using platformio ci --board or platformio ci --project-conf) and processes them via platformio run command.1 platformio ci Contents • platformio ci – Usage – Description – Options – Examples Usage platformio ci [OPTIONS] [SRC] pio ci [OPTIONS] [SRC] Description platformio ci command is conceived of as “hot key” for building project with arbitrary source code structure. Note: platformio ci command is useful for library developers. is possible to upload firmware to the target device. --exclude 54 Chapter 4.

h files from foo folder platformio ci --exclude=src/examples --exclude=src/foo/*. By default it’s temporary directory within your opera- tion system. -O. The path must be relative to PlatformIO project within platformio ci --build-dir. --verbose Shows detailed information when processing environments. automatically install dependent libraries platformio ci --project-option="lib_deps=ArduinoJSON" or ignore specific library platformio ci --project-option="lib_ignore=SomeLib". please use platformio ci --keep-build-dir.4. Examples For the others examples please follow to Continuous Integration page. --keep-build-dir Don’t remove platformio ci --build-dir after build process.ini.3. Note: This directory will be removed at the end of build process. --project-conf Buid project using pre-configured Project Configuration File platformio. -P. For example. For example. If you want to keep it. For more details please look into platformio init --board. --project-option Pass additional options from Project Configuration File platformio.1 Exclude directories and/-or files from platformio ci --build-dir. exclude from project src directory: • examples folder • *. PlatformIO Core 55 .ini to platformio init command. --board Build project with automatically pre-generated environments based on board settings. This option can be set globally using force_verbose setting or by environment variable PLATFORMIO_SETTING_FORCE_VERBOSE. -v. PlatformIO Documentation. --build-dir Path to directory where PlatformIO will initialise new project.h [SRC] -b. platformio device Contents • platformio device 4. Use multiple --project-option options to pass multiple options to platformio init command. Release 3.

Windows OS 56 Chapter 4. Unix OS $ platformio device list /dev/cu.SLAB_USBtoUART ---------- Hardware ID: USB VID:PID=10c4:ea60 SNR=0001 Description: CP2102 USB to UART Bridge Controller /dev/cu.1 – platformio device list * Usage * Description * Options * Examples – platformio device monitor * Usage * Description * Options * Examples platformio device list Usage platformio device list [OPTIONS] pio device list [OPTIONS] Description List available Serial Ports Options --json-output Return the output in JSON format Examples 1. Contents .PlatformIO Documentation.uart-1CFF4676258F4543 ---------- Hardware ID: USB VID:PID=451:f432 SNR=1CFF4676258F4543 Description: Texas Instruments MSP-FET430UIF 2. Release 3.3.

one of [N. Mark). Space. --port Port. O. To control monitor please use these “hot keys”: • Ctrl+C Quit • Ctrl+T Menu • Ctrl+T followed by Ctrl+H Help Options -p.1 $ platformio device list COM4 ---------- Hardware ID: USB VID:PID=0451:F432 Description: MSP430 Application UART (COM4) COM3 ---------- Hardware ID: USB VID:PID=10C4:EA60 SNR=0001 Description: Silicon Labs CP210x USB to UART Bridge (COM3) platformio device monitor Usage platformio device monitor [OPTIONS] Description This is a console application that provides a small terminal application. It is based on Miniterm and itself does not implement any terminal features such as VT102 compatibility. For example on GNU/Linux running from an xterm it will support the escape sequences of the xterm. PlatformIO Documentation. S. default Off --xonxoff Enable software flow control. --baud Set baud rate. default 9600 --parity Set parity (None. a number or a device name -b.sys is loaded it supports some escapes. default Off --rts 4. Release 3. M]. Odd. default N --rtscts Enable RTS/CTS flow control. On Windows the typical console window is dumb and does not support any escapes. However it inherits these features from the terminal it is run. E.4. When ANSI.3. Even. PlatformIO Core 57 .

PlatformIO Documentation. -f. default CRLF NEW: Available in Miniterm/PySerial 3. default Off --encoding Set the encoding for the serial port (e. default=N --rtscts Enable RTS/CTS flow control. default 1 --echo Enable local echo. default=9600 --parity [N|E|O|S|M] Set parity. For example. Contents . Latin1. --baud INTEGER Set baud rate.g. default=Off --xonxoff Enable software flow control. CR+LF • printable Show decimal code for all non-ASCII characters and replace most control codes --eol End of line mode (CR.0 --raw Do not apply any encodings/transformations --exit-char ASCII code of special character that is used to exit the application. default 20 (DEC) ---quiet Diagnostics: suppress non-error messages. --port TEXT Port. hexlify.3. incl. LF or CRLF). a number or a device name -b. --filter Add text transformation. Available filters: • colorize Apply different colors for received and echo • debug Print what is sent and received • default Remove typical terminal control codes from input • direct Do-nothing: forward all data unchanged • nocontrol Remove all control codes. default 3 (DEC. --menu-char ASCII code of special character that is used to control miniterm (menu). UTF-8). to use Ctrl+] run platformio device monitor --exit-char 29.1 Set initial RTS line state (0 or 1). default=Off 58 Chapter 4. Ctrl+C). default UTF-8. default Off Examples 1. default 1 --dtr Set initial DTR line state (0 or 1). Show available options for monitor $ platformio device monitor --help Usage: platformio device monitor [OPTIONS] Options: -p. Release 3.

Even. Communicate with serial device and print help inside terminal $ platformio device monitor --. default=0 --dtr [0|1] Set initial DTR line state. Ctrl+U Upload file (prompt will be shown) --. Ctrl+R RTS Ctrl+E local echo --. PlatformIO Documentation./dev/cu. 7 8 set data bits --.1 --- --. --help Show this message and exit.Ctrl+T Menu escape key.Port settings (Ctrl+T followed by the following): --. p change port --.Bluetooth-Incoming-Port n/a --.SLAB_USBtoUART: 9600. 1. default: UTF-8 -f. --filter TEXT Add text transformation --eol [CR|LF|CRLF] End of line mode.Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Hello PlatformIO! --- --.8. Space. followed by: --.Ctrl+] Exit program --.Miniterm on /dev/cu. 2.Available ports: --. default=Off -h. Ctrl+L line feed Ctrl+A Cycle repr mode --- --.g. 2. UTF-8). Ctrl+] Send the exit character itself to remote --. Release 3. 1 2 3 set stop bits (1.Menu keys: --. default=29 (DEC) --menu-char INTEGER ASCII code of special character that is used to control miniterm (menu).exit --- platformio init 4.Bluetooth-Modem n/a --.5) --. Ctrl+D DTR Ctrl+B BREAK --.4./dev/cu. x X disable/enable software flow control --. default=Off --encoding TEXT Set the encoding for the serial port (e. PlatformIO Core 59 .Toggles: --. hexlify. b change baud rate --. n e o s m change parity (None. default=CRLF --raw Do not apply any encodings/transformations --exit-char INTEGER ASCII code of special character that is used to exit the application.SLAB_USBtoUART CP2102 USB to UART Bridge Controller --.obd2ecu-SPPDev n/a Enter port name:/dev/cu. default=0 --echo Enable local echo.N. r R disable/enable hardware flow control --.1 --rts [0|1] Set initial RTS line state./dev/cu.3. Latin1./dev/cu. Odd. default=20 (DEC) --quiet Diagnostics: suppress non-error messages.SLAB_USBtoUART --. Ctrl+T Send the menu character itself to remote --. Mark) --. Ctrl+I Show info --.

ini and pre-fill these data: • platform • framework • board The full list with pre-configured boards is available here Development Platforms. etc. --project-option 60 Chapter 4. *. A list with supported IDE is available within platformio init --help command. txt file. Contents .3.ino. then PlatformIO will automatically generate environment for Project Configuration File platformio.cpp.c.PlatformIO Documentation.) • lib directory can be used for the project specific (private) libraries. -O. More details are located in lib/readme. *. • Miscellaneous files for VCS and Continuous Integration support. please take a look at Cloud & Standalone IDE page. Also. --board If you specify board ID (you can pass multiple --board options). --project-dir A path to the directory where PlatformIO will initialize new project.S.h. *. Options -d. -b. *. Release 3.ini • src directory where you should place source code (*. --ide Initialize PlatformIO project for the specified IDE which can be imported later via “Import Project” functionality.1 Contents • platformio init – Usage – Description – Options – Examples Usage platformio init [OPTIONS] pio init [OPTIONS] Description Initialize new PlatformIO based project or update existing with new data. This command will create: • Project Configuration File platformio.

.Put your source files here lib .clean project (remove compiled files) 2. . You can specify another project directory via `platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.Project Configuration File... Initialize project for Teensy 3. Release 3.Project Configuration File. platformio init --project-option="lib_deps=ArduinoJSON". PlatformIO Documentation.1 Initialize project with additional options from Project Configuration File platformio.ini. You can specify another project directory via `platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.upload firmware to ˓→embedded board `platformio run --target clean` . the default environment name for teensy_31 board will be [env:teensy_31]. -s. |-> PLEASE EDIT ME <-| . --silent Suppress progress reporting Examples 1.3.1 board with custom Framework mbed > platformio init --board teensy31 --project-option "framework=mbed" The current working directory *** will be used for the new project.ini .ini .process/build project from the current directory `platformio run --target upload` or `platformio run -t upload` . 3.. You can specify another project directory via `platformio init -d %PATH_TO_THE_PROJECT_DIR%` command... PlatformIO Core 61 . Multiple options are allowed. For example. --env-prefix An environment prefix which will be used with pair in board type. The next files/directories will be created in *** platformio. 4. Initialize project for Arduino Uno > platformio init --board uno The current working directory *** will be used for the new project. For example. |-> PLEASE EDIT ME <-| src .4. 4. Initialize new project in a current working directory > platformio init The current working directory *** will be used for the new project. .Put here project specific (private) libraries Project has been successfully initialized! Useful commands: `platformio run` . Initialize new project in a specified directory > platformio init -d %PATH_TO_DIR% The next files/directories will be created in *** platformio.

Manage global PlatformIO’s library storage ( “home_dir/lib”) where Library Dependency Finder (LDF) will look for dependencies by default. --storage-dir New in version 3. Contents .ini. Manage custom library storage. Release 3. Demo Commands platformio lib builtin Contents • platformio lib builtin – Usage – Description – Options – Examples 62 Chapter 4.0.3.1 Library Manager Usage platformio lib [OPTIONS] COMMAND # To print all available commands and options use platformio lib --help platformio lib COMMAND --help Options -g.0. It can be used later for the lib_extra_dirs option from Project Configuration File platformio. -d. --global New in version 3.PlatformIO Documentation.

arduino. Yún Shield and TRE only. For example. Release 3.arduino. SDKs. storage Compatible frameworks: arduino Compatible platforms: atmelavr Authors: Arduino. Version: 2. PlatformIO Documentation..1 Usage platformio lib builtin [OPTIONS] pio lib builtin [OPTIONS] Description List built-in libraries based on installed Development Platforms and their frameworks. PlatformIO Core 63 . etc.1 Homepage: http://www.0 Homepage: http://www. For ˓→Arduino/Genuino Yún.cc/en/Reference/EEPROM Keywords: data. Version: 1. Options --storage List libraries from specified storages.3.4.6.cc/en/Reference/YunBridgeLibrary Keywords: communication Compatible frameworks: arduino Compatible platforms: * Authors: Arduino EEPROM ====== Enables reading and writing to the permanent board storage.. framework-arduinosam ******************** 4. framework-arduinoavr. Christopher Andrews . --json-output Return the output in JSON format Examples > platformio lib builtin framework-arduinoavr ******************** Bridge ====== Enables the communication between the Linux processor and the microcontroller.

framework-arduinoespressif8266 ****************************** ArduinoOTA ========== Enables Over The Air upgrades. Version: 1.cc/en/Reference/SPI Keywords: signal. via wifi and espota.3. Release 3. framework-arduinoespressif32 **************************** SPI === Enables the communication with devices that use the Serial Peripheral Interface (SPI) ˓→Bus. Version: 1. Version: 1.py UDP request/TCP download.0 Homepage: http://arduino. output Compatible frameworks: arduino Compatible platforms: atmelsam Authors: Arduino . framework-arduinointel 64 Chapter 4.PlatformIO Documentation.1 Audio ===== Allows playing audio files from an SD card. For Arduino DUE only. For all Arduino boards.1. output Compatible frameworks: arduino Compatible platforms: Authors: Hristo Gochkov ...0 Keywords: communication Compatible frameworks: arduino Compatible platforms: espressif8266 Authors: Ivan Grokhotkov and Miguel Angel Ajo DNSServer ========= A simple DNS server for ESP8266. input. Contents .0 Homepage: http://arduino.. input...cc/en/Reference/Audio Keywords: signal.. BUT Arduino DUE. Version: 1.0 Keywords: communication Compatible frameworks: arduino Compatible platforms: espressif8266 Authors: Kristijan Novoselić .

control Compatible frameworks: arduino Compatible platforms: * Authors: Firmata Developers framework-arduinoteensy *********************** Adafruit CC3000 Library ======================= Library code for Adafruit's CC3000 WiFi breakouts. PlatformIO Documentation. storage Compatible frameworks: arduino Compatible platforms: intel_arc32 Authors: Intel .cc/en/Reference/EEPROM Keywords: data.1 ********************** Adafruit NeoPixel ================= Arduino library for controlling single-wire-based LED pixels and strip.arduino.com/firmata/arduino Keywords: device.0. Version: 2.com/adafruit/Adafruit_NeoPixel Keywords: display Compatible frameworks: arduino Compatible platforms: * Authors: Adafruit CurieBLE ======== Library to manage the Bluetooth Low Energy module with Curie Core boards.4.4 Homepage: https://github. 4.3.3 Homepage: https://github.4.0 Homepage: http://www. For ˓→all Arduino boards. Release 3. PlatformIO Core 65 . Version: 1. framework-arduinomicrochippic32 ******************************* Firmata ======= Enables the communication with computer apps using a standard serial protocol.0 Keywords: communication Compatible frameworks: arduino Compatible platforms: intel_arc32 Authors: Emutex CurieEEPROM =========== Enables reading and writing to OTP flash area of Curie Version: 1.. Version: 1..

.. framework-energiamsp430 *********************** AIR430BoostEuropeETSI ===================== Library for the CC110L Sub-1GHz radio BoosterPack for use in Europe Version: 1. Release 3.1 Version: 1.3.0.com/adafruit/Adafruit_CC3000_Library Keywords: communication Compatible frameworks: arduino Compatible platforms: * Authors: Adafruit .nu/reference/libraries/ Keywords: communication Compatible frameworks: arduino Compatible platforms: Authors: Energia . Contents .0 Homepage: http://energia. http..1 Homepage: https://github. rest. web Compatible frameworks: arduino Compatible platforms: atmelavr platformio lib install Contents • platformio lib install – Usage – Description – Storage Options – Options – Version control * Git * Mercurial * Subversion 66 Chapter 4..PlatformIO Documentation.0. framework-energiativa ********************* aJson ===== An Arduino library to enable JSON processing with Arduino Keywords: json.

ini") platformio lib install [OPTIONS] [LIBRARY..... Use only this exact version 4..] forms platformio lib [STORAGE_OPTIONS] install (with no args.<minor>. The version supports Semantic Versioning ( <major>. Library id or name from PlatformIO Library Registry 2.4. PlatformIO Core 67 ....1. Release 3.. project dependencies) platformio lib [STORAGE_OPTIONS] install <id> platformio lib [STORAGE_OPTIONS] install id=<id> platformio lib [STORAGE_OPTIONS] install <id>@<version> platformio lib [STORAGE_OPTIONS] install <id>@<version range> platformio lib [STORAGE_OPTIONS] install <name> platformio lib [STORAGE_OPTIONS] install <name>@<version> platformio lib [STORAGE_OPTIONS] install <name>@<version range> platformio lib [STORAGE_OPTIONS] install <zip or tarball url> platformio lib [STORAGE_OPTIONS] install file://<zip or tarball file> platformio lib [STORAGE_OPTIONS] install file://<folder> platformio lib [STORAGE_OPTIONS] install <repository> platformio lib [STORAGE_OPTIONS] install <name>=<repository> (name it should have ˓→locally) platformio lib [STORAGE_OPTIONS] install <repository#tag> ("tag" can be commit.. ˓→branch or tag) Warning: If some libraries are not visible in PlatformIO IDE for Atom and Code Completion or Code Lint- ing does not work properly.an exact version number. please perform Menu: PlatformIO > Rebuild C/C++ Project Index (Autocomplete.] # install project dependent library # (run it from a project root where is located "platformio. Linter) Description Install a library.] # install to global storage platformio lib --global install [OPTIONS] [LIBRARY.. repository or archive. Custom folder. and any libraries that it depends on using: 1.] # install to custom storage platformio lib --storage-dir /path/to/dir install [OPTIONS] [LIBRARY.3.<patch>) and can take any of the following forms: • 0.. PlatformIO Documentation.2 .] platformio lib -g install [OPTIONS] [LIBRARY.] # [LIBRARY..] platformio lib -d /path/to/dir install [OPTIONS] [LIBRARY..1 – Examples Usage platformio lib [STORAGE_OPTIONS] install [OPTIONS] [LIBRARY...] pio lib [STORAGE_OPTIONS] install [OPTIONS] [LIBRARY.

and <= are also possible • >0.1. a commit hash or a tag name is possible like so: • https://github. and detects the type of VCS using url prefixes: “git+”.PlatformIO Documentation.2 .0.any version greater than 0.com/user/library. >=.1 • ^0.any version greater than 0.org/my-library • git+ssh://git.server.com/user/library.3.x versions • ~0.x.1.server. --silent Suppress progress reporting --interactive Allow to make a choice for all prompts Version control PlatformIO supports installing from Git. Here are the supported forms: • user/library (short version for GitHub repository) • https://github.0.gz Storage Options See base options for Library Manager.2.3.git • git+git://git.library. directory or archive should contain .3.1. Mercurial and Subversion.0.0 and less than 0.json manifest (see library.2 . hg or svn. and an equal or greater patch version • >0.any compatible version (exact version for 0.git#master • git+git://git.<0.zip • file:///local/path/to/the/platform. Note: PlatformIO requires a working VCS command on your path: git.json). Also. git+https and git+ssh.2.any version with the same major and minor versions.1.0 PlatformIO supports installing from local directory or archive.2. Release 3. Need to use file:// prefix before local path.0 .tar. Options -s. “hg+”. Contents .!=0.org/my-library • git+https://git.1. not equal to 0.2 .org/my-library#master 68 Chapter 4.server.org/my-library Passing branch names.1. or “svn+”. Git The supported schemes are: git. • file:///local/path/to/the/platform/dir • file:///local/path/to/the/platform.server. <.

server. Looking for IRRemote library in registry Found: http://platformio. hg+https and hg+ssh. like so: • svn+svn://svn. PlatformIO Core 69 .server.0 • git+ssh://git.server. PlatformIO Documentation. svn+https and svn+ssh.org/my-library • svn+ssh://svn.0 • hg+ssh://hg.server.server.org/my-library#7846d8ad52f983f2f2887bdc0f073fe9755a806d Mercurial The supported schemes are: hg+http.org/my-library • svn+https://svn.1 is already installed 4.2.. Here are the supported forms: • https://developer.server.1 has been successfully installed! # repeat command with name > platformio lib -g install IRRemote Library Storage: /storage/dir/.org/my-library#master • hg+https://hg..org/my-library Passing branch names.server.org/my-library#v1. svn+http.org/my-library • hg+ssh://hg.org/lib/show/4/IRremote LibraryManager: Installing id=4 IRremote @ 2..server.org/my-library • hg+https://hg. Install the latest version of library to a global storage using ID or NAME > platformio lib -g install 4 Library Storage: /storage/dir/..server.org/my-library#v1.org/my-library#13 Examples 1. svn+svn. a commit hash or a tag name is possible like so: • hg+hg://hg. Here are the supported forms: • svn+svn://svn.org/users/user/code/library/ (install ARM mbed library) • hg+hg://hg.mbed.3.2.org/my-library#4cfe2fa00668 Subversion The supported schemes are: svn.4. LibraryManager: Installing id=4 Downloading [####################################] 100% Unpacking [####################################] 100% IRremote @ 2.org/my-library You can also give specific revisions to an SVN URL.server.1 • git+https://git.server.server. Release 3.

6. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.org/lib/show/64/ArduinoJson LibraryManager: Installing id=64 @ 5. requesting all changes adding changesets adding manifests adding file changes added 9 changesets with 18 changes to 6 files updating to branch default 2 files updated.com/adafruit/DHT-sensor-library/archive/ ˓→master..7 Downloading [####################################] 100% Unpacking [####################################] 100% ArduinoJson @ 5.6. Install from archive using URL > platformio lib -g install https://github.org/users/simon/code/TextLCD/ Library Storage: /storage/dir/. Contents .7 Library Storage: /storage/dir/. Install specified version of a library to a global storage > platformio lib -g install ArduinoJson@5. 0 files merged. Release 3.7 has been successfully installed! 3.PlatformIO Documentation.org/lib/show/54/DallasTemperature LibraryManager: Installing id=54 Downloading [####################################] 100% Unpacking [####################################] 100% DallasTemperature @ 3..mbed. see the source for copying conditions.1 2.6.. Looking for ArduinoJson library in registry Found: http://platformio.org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software.4) (see https://mercurial-scm. 0 files unresolved TextLCD @ 308d188a2d3a has been successfully installed! 5. Install ARM mbed library to the global storage > platformio lib -g install https://developer.8.3. Install library with dependencies to custom storage > platformio lib --storage-dir /my/storage/dir install DallasTemperature Library Storage: /my/storage/dir Looking for DallasTemperature library in registry Found: http://platformio.. 0 files removed. LibraryManager: Installing TextLCD Mercurial Distributed SCM (version 3. There is NO warranty.zip Library Storage: /storage/dir/...7.7 has been successfully installed! Installing dependencies Looking for OneWire library in registry Found: http://platformio.org/lib/show/1/OneWire LibraryManager: Installing id=1 Downloading [####################################] 100% Unpacking [####################################] 100% OneWire @ 8fd2ebfec7 has been successfully installed! 4. LibraryManager: Installing master 70 Chapter 4.

4.3 has been successfully installed! platformio lib list Contents • platformio lib list – Usage – Description – Storage Options – Options – Examples Usage platformio lib [STORAGE_OPTIONS] list [OPTIONS] pio lib [STORAGE_OPTIONS] list [OPTIONS] # list project dependent libraries # (run it from a project root where is located "platformio.ini") platformio lib list [OPTIONS] # list libraries from global storage platformio lib --global list [OPTIONS] platformio lib -g list [OPTIONS] # list libraries from custom storage platformio lib --storage-dir /path/to/dir list [OPTIONS] platformio lib -d /path/to/dir list [OPTIONS] Description List installed libraries Storage Options See base options for Library Manager. PlatformIO Documentation.3.1 Downloading [####################################] 100% Unpacking [####################################] 100% DHT sensor library @ 1. Release 3. Options --json-output Return the output in JSON format 4. PlatformIO Core 71 .2.

timsp430 Authors: Benoit Blanchon ArduinoJson =========== #ID: 64 An elegant and efficient JSON library for embedded systems Version: 5. Energia. teensy. timsp430 Authors: Benoit Blanchon Blynk ===== #ID: 415 Build a smartphone app for your project in minutes. espressif8266. espressif8266. Due. Release 3.3. espressif8266. . ˓→nordicnrf51. LinkIt ONE .7. http. Adafruit Unified Sensor ======================= #ID: 31 Required for all Adafruit Unified Sensor based libraries. microchippic32. Microduino.. ˓→nordicnrf51. teensy. atmelsam. Mega. GSM. timsp430 Authors: Benoit Blanchon ArduinoJson =========== #ID: 64 An elegant and efficient JSON library for embedded systems Version: 5. Zero.8. atmelsam. json.1 Examples > platformio lib -g list Library Storage: /storage/dir/.. Nano. espressif8266. Blynk allows creating IoT ˓→solutions easily. Yun. rest Compatible frameworks: arduino Compatible platforms: atmelavr. intel_arc32. microchippic32. ˓→nordicnrf51.0 Keywords: web. teensy. USB. rest Compatible frameworks: arduino Compatible platforms: atmelavr. 72 Chapter 4. microchippic32. intel_arc32. rest Compatible frameworks: arduino Compatible platforms: atmelavr. Particle. Ethernet. Version: 1. teensy. ˓→nordicnrf51. intel_arc32. Serial.2 Keywords: web..0. intel_arc32.2 Keywords: sensors Compatible frameworks: arduino Compatible platforms: atmelavr. Bluetooth.7 Keywords: web. BLE. ESP32. json.PlatformIO Documentation.. Raspberry Pi. microchippic32. It supports WiFi. atmelsam. ˓→Works with many boards like ESP8266. DFRobot. http. http. atmelsam. timsp430 Authors: Adafruit ArduinoJson =========== #ID: 64 An elegant and efficient JSON library for embedded systems Version: 5. Contents ˓→BBC micro:bit. Arduino UNO. Intel Edison/Galileo/Joule. RedBearLab. ˓→MKR100. ARM mbed.6. json.

ethernet.4. serial. automation Compatible frameworks: arduino Compatible platforms: espressif8266 Authors: Marvin Roger JustWifi ======== #ID: 1282 Wifi Manager for ESP8266 that supports multiple wifi networks and scan for strongest ˓→signal Version: 1. ˓→usb. hd44780 Compatible frameworks: arduino Compatible platforms: atmelavr Authors: F Malpartida 4. gsm Compatible frameworks: energia. data. gprs.1 Version: 0.4. ble. teensy.3. atmelsam. espressif8266.3 Homepage: http://blynk. nordicnrf51.3. iot. a lightweight MQTT convention for the IoT Version: 1. PlatformIO Core 73 . esp8266. wifi.1 License: GPL-3.0 Keywords: manager. ˓→nordicnrf51.cc Keywords: control. espressif8266. sensors. teensy. intel_arc32. wiringpi. web. smartphone. iot. compatible with the original ˓→LiquidCrystal library Version: 1. ˓→wifi. microchippic32. timsp430 Authors: Thomas O Fredericks Homie ===== #ID: 555 ESP8266 framework for Homie. http. Release 3. esp8266. mobile. linux_arm. scan Compatible frameworks: arduino Compatible platforms: espressif8266 Authors: Xose Perez LiquidCrystal ============= #ID: 136 LiquidCrystal Library is faster and extensable. ouput. titiva Authors: Volodymyr Shymanskyy Bounce2 ======= #ID: 1106 Debouncing library for Arduino or Wiring Version: 2. protocol. arduino Compatible platforms: atmelavr.1. signal.5. communication. device. timsp430.1 Keywords: input. bluetooth. 3g. app. bounce Compatible frameworks: arduino Compatible platforms: atmelavr. m2m. intel_arc32.4 Keywords: lcd. mqtt.0 Keywords: home. cloud. ˓→microchippic32. PlatformIO Documentation. atmelsam.

0 of MAX3421E-based USB Host Shield Library Version: 1. atmelsam. adk. LC7981.arduino. xbox. ˓→nordicnrf51. SPI. Release 3. SSD1606.org/users/simon/code/TextLCD/ Version: 308d188a2d3a Keywords: uncategorized Time ==== #ID: 44 Time keeping library Version: 1. Paul Stoffregen Timezone ======== #ID: 76 Arduino library to facilitate time zone conversions and automatic daylight saving ˓→(summer) time adjustments Version: 510ae2f6b6 Keywords: zone. ps3. rtc. UC1611.1 TextLCD ======= hg+https://developer. ˓→SSD1325. teensy. UC1701. SSD1322. minute Compatible frameworks: arduino Compatible platforms: Authors: Michael Margolis. PCF8812. day. Version: 2. OLED and eInk Library. Parallel. ps4 Compatible frameworks: spl.cc/Code/Time Keywords: week. RA8835.0 Keywords: usb. microchippic32.3. time Compatible frameworks: arduino Compatible platforms: atmelavr Authors: Jack Christensen U8g2 ==== #ID: 942 Monochrome LCD. second. SSD1327. ftdi. pl2303. NT7534.4 Homepage: https://github. ˓→bluetooth. UC1610. T6963. wii. time. espressif8266. spp. Display controller: SSD1305. LD7032. hid. mass storage. intel_arc32.mbed. date.PlatformIO Documentation. arduino 74 Chapter 4. UC1604. KS0108. ˓→UC1608. year.11. SSD1306. ST7565. SH1106. hour. ST7920. month. acm.1 License: GPL-2.2. ST7567. Contents . PCD8544. host. timsp430 Authors: oliver USB-Host-Shield-20 ================== #ID: 59 Revision 2.com/olikraus/u8g2 Keywords: display Compatible frameworks: arduino Compatible platforms: atmelavr.5 Homepage: http://playground. ˓→Interfaces: I2C. buzz.

PlatformIO Library Registry supports the next library manifests: • PlatformIO library. PlatformIO Core 75 . ststm32 Authors: Oleg Mazurov.json. ˓→json platformio lib search Contents • platformio lib search 4. Kristian Lauszus.properties platformio lib register https://raw.json platformio lib register https://raw.4.com/adafruit/DHT-sensor-library/ ˓→master/library.json • Arduino library. teensy. Release 3. Alexei Glushchenko.properties • ARM mbed yotta module.1 Compatible platforms: atmelavr. Andrew Kroll platformio lib register Contents • platformio lib register – Usage – Description – Examples Usage platformio lib register [MANIFEST_URL] pio lib register [MANIFEST_URL] Description Register new library in PlatformIO Library Registry. atmelsam. nordicnrf51. Examples platformio lib register https://raw.githubusercontent.githubusercontent. PlatformIO Documentation.githubusercontent.com/bblanchon/ArduinoJson/ ˓→master/library.3.com/ARMmbed/ble/master/module.

(no By default (when neither + nor .operator. --author Filter libraries by specified author -k. Contents . . A leading or trailing minus sign indicates that this word must not be present in any of the libraries that are returned. Release 3. causing the word’s contribution to the library’s relevance to be negative. The > operator increases the contribution and the < operator decreases it.3. but is not excluded altogether. ( ) Parentheses group words into subexpressions. ~ A leading tilde acts as a negation operator. the word is optional.is specified). it is appended to the word to be affected.json fields in the boolean mode. --keyword Filter libraries by specified keyword -f. * The asterisk serves as the truncation (or wildcard) operator. " A phrase that is enclosed within double quote (") characters matches only libraries that contain the phrase literally. as it was typed. Unlike the other operators. Options -n. For more detail information please go to MySQL Boolean Full-Text Searches. --framework 76 Chapter 4. A library containing such a word is rated lower than others. > < These two operators are used to change a word’s contribution to the relevance value that is assigned to a library. This is useful for marking “noise” words. The boolean search capability supports the following operators: Operator Description + A leading or trailing plus sign indicates that this word must be present in library fields (see above) that is returned. Words match if they begin with the word preceding the * operator. as it would be with the . --name Filter libraries by specified name (strict search) -a.PlatformIO Documentation.1 – Usage – Description – Options – Examples Usage platformio lib search [OPTIONS] [QUERY] pio lib search [OPTIONS] [QUERY] Description Search for library in PlatformIO Library Registry by library. Parenthesized groups can be nested. but the libraries that contain it operator) are rated higher.

temperature. mqtt. Microchip ˓→PIC32. DHT22. Atmel SAM. Release 3. dht. Teensy.1 Filter libraries by specified framework -p.4.h" --json-output Return the output in JSON format --page Manually paginate through search results. It ˓→supports the latest MQTT 3. http. platformio lib search --header "OneWire. sensor. --platform Filter libraries by specified keyword -i.. rest Compatible frameworks: Arduino Compatible platforms: Atmel AVR.1. Nordic nRF51. This library allows you to send and receive MQTT messages. iot.3.1. m2m Compatible frameworks: Arduino Compatible platforms: Atmel AVR. Nordic nRF51. MQTT is a lightweight messaging protocol ideal ˓→for small devices. Atmel SAM. --header Filter libraries by header file (include) For example. json.1 protocol and can be configured to use the older MQTT ˓→3. PlatformIO Documentation. This option is useful in pair with --json-output. Microchip ˓→PIC32. Intel ARC32. Examples 1. Keywords: ethernet. TI MSP430 Authors: Benoit Blanchon DHT sensor library ================== #ID: 19 Arduino library for DHT11.. TI MSP430 4. Teensy. humidity Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Adafruit Industries PubSubClient ============ #ID: 89 A client library for MQTT messaging. List all libraries > platformio lib search Found N libraries: ArduinoJson =========== #ID: 64 An elegant and efficient JSON library for embedded systems Keywords: web. Espressif 8266. PlatformIO Core 77 . etc Temp & Humidity Sensors Keywords: unified. Espressif 8266. Intel ARC32.

http. temperature. websocket. ds1820. Ken Butcher. Guillermo Lovato. ibutton. Jim Studt. Also supports DS18S20 and DS18B20.3.. 3. 2.. Search for 1-Wire libraries > platformio lib search "1-wire" Found N libraries: DS1820 ====== #ID: 196 Dallas / Maxim DS1820 1-Wire library. Derek Yerger. Nordic nRF51. Josh Larios. NXP LPC.1 Authors: Nick O'Leary .. 1-wire. Teensy Authors: Michael Hagberg OneWire ======= #ID: 1 Control 1-Wire protocol (DS18S20. ds18b20 Compatible frameworks: mbed Compatible platforms: Freescale Kinetis. Release 3. Robin ˓→James. Jason Dangel. ˓→Bertrik Sikken.. webserver Compatible frameworks: Arduino Compatible platforms: Espressif 8266 Authors: Hristo Gochkov Show next libraries? [y/N]: . For communication with multiple DS1820 on a ˓→single 1-Wire bus. 1-wire. Keywords: ds18s20. DS18B20. DS2408 and etc) Keywords: onewire. Mark Tillotson.. ESPAsyncWebServer ================= #ID: 306 Asynchronous HTTP and WebSocket Server Library for ESP8266 and ESP32 Keywords: async. bus. sensor Compatible frameworks: Arduino Compatible platforms: Authors: Paul Stoffregen.. Scott Roberts Show next libraries? [y/N]: . ST STM32. Search for Arduino-based “I2C” libraries > platformio lib search "i2c" --framework="arduino" Found N libraries: I2Cdevlib-AK8975 ================ #ID: 10 78 Chapter 4.PlatformIO Documentation. Tom Pollard. Glenn Trewitt. Contents .

gyroscope Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Adafruit Industries Show next libraries? [y/N]: . webserver Compatible frameworks: Arduino Compatible platforms: Espressif 8266 Authors: Hristo Gochkov 4.. > platformio lib search --keyword="web" --keyword="http" Found N libraries: ArduinoJson =========== #ID: 64 An elegant and efficient JSON library for embedded systems Keywords: web. websocket. json. rest Compatible frameworks: Arduino Compatible platforms: Atmel AVR.3. i2c. http. accelerometer. Atmel SAM.1 AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology Keywords: i2c. sensor. Nordic nRF51. sensor. compass Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Jeff Rowberg I2Cdevlib-Core ============== #ID: 11 The I2C Device Library (I2Cdevlib) is a collection of uniform and well-documented ˓→classes to provide simple and intuitive interfaces to I2C devices. Search for libraries by “web” and “http” keywords. Espressif 8266. Keywords: i2cdevlib. i2c Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Jeff Rowberg Adafruit 9DOF Library ===================== #ID: 14 Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303) Keywords: magnetometer. Release 3.. PlatformIO Documentation.4. TI MSP430 Authors: Benoit Blanchon ESPAsyncWebServer ================= #ID: 306 Asynchronous HTTP and WebSocket Server Library for ESP8266 and ESP32 Keywords: async. Intel ARC32. 4. Microchip ˓→PIC32. spi. Teensy. i2cdevlib. unified. http. PlatformIO Core 79 . compass.

80 Chapter 4. DHT22. Blynk allows creating IoT ˓→solutions easily. server. 3g. TI MSP430. 5. gprs.. etc Temp & Humidity Sensors Keywords: unified. Due. Atmel SAM. http. dht. Serial. sensor. Linux ARM. app. Teensy. communication. serial.. iot. Yun. sensor.PlatformIO Documentation. ˓→usb. Nordic nRF51. ˓→Microchip PIC32. ˓→Works with many boards like ESP8266. sensors. WiringPi Compatible platforms: Atmel AVR. humidity Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Adafruit Industries Adafruit DHT Unified ==================== #ID: 18 Unified sensor library for DHT (DHT11. humidity Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Adafruit Industries Show next libraries? [y/N]: . device. wi-fi Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Jonas Ekstrand Blynk ===== #ID: 415 Build a smartphone app for your project in minutes. Ethernet. BLE. mobile. Release 3. smartphone. http. Mega. ble. temperature. wifi. m2m. web. TI Tiva Authors: Volodymyr Shymanskyy Show next libraries? [y/N]: . Search for libraries by “Adafruit Industries” author > platformio lib search --author="Adafruit Industries" Found N libraries: DHT sensor library ================== #ID: 19 Arduino library for DHT11. data. Keywords: control. esp8266.. Nano. dht. ethernet. client. Arduino UNO. Intel ARC32... gsm Compatible frameworks: Arduino.1 ESP8266wifi =========== #ID: 1101 ESP8266 Arduino library with built in reconnect functionality Keywords: web. DHT22 and etc) temperature and humidity sensors Keywords: unified.. temperature. USB.3.. GSM. Espressif 8266. cloud. ˓→wifi. Contents . ˓→MKR100. Zero. It supports WiFi. protocol. Bluetooth. Energia. ESP32. bluetooth.

spi. Keywords: wireless. The search query that is described below can be interpreted like energia nRF24 OR energia HttpClient > platformio lib search "+(nRF24 HttpClient)" --framework="energia" Found N libraries: nRF24 ===== #ID: 43 The nRF24L01 is a low-cost 2. 1-wire. client. NXP LPC. For communication with multiple DS1820 on a ˓→single 1-Wire bus. ethernet Compatible frameworks: Energia Compatible platforms: TI MSP430. PlatformIO Documentation.3. ST STM32. DS18S20 and etc. ds18b20 Compatible frameworks: mbed Compatible platforms: Freescale Kinetis. i2c. It supports a number of ˓→channel frequencies in the 2.1 6. full binary-coded decimal ˓→(BCD) clock/calendar plus 56 bytes of NV SRAM Keywords: i2cdevlib. radio Compatible frameworks: Energia Compatible platforms: TI MSP430 Authors: Eric HttpClient ========== #ID: 46 HttpClient is a library to make it easier to interact with web servers Keywords: web. ds1820. clock.4. rf. 7.4GHz ISM transceiver module. rtc. Search for libraries which are compatible with Dallas temperature sensors like DS18B20. PlatformIO Core 81 . Keywords: ds18s20. TI Tiva Authors: Zack Lalanne 4. Search for Energia-based *nRF24* or *HttpClient* libraries. http. Teensy Authors: Michael Hagberg I2Cdevlib-DS1307 ================ #ID: 99 The DS1307 serial real-time clock (RTC) is a low-power. Release 3.. > platformio lib search "DS*" Found N libraries: DS1820 ====== #ID: 196 Dallas / Maxim DS1820 1-Wire library. time Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Jeff Rowberg Show next libraries? [y/N]: . Also supports DS18S20 and DS18B20.4GHz band and a range of data rates.. Nordic nRF51.

gyroscope Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Adafruit Industries Show next libraries? [y/N]: . Espressif 8266. Intel ARC32. SparkFun Electronics I2Cdevlib-AK8975 ================ #ID: 10 AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology Keywords: i2c. i2cdevlib. Atmel SAM. > platformio lib search "sensor -temperature" Found N libraries: SparkFun VL6180 Sensor ====================== #ID: 407 The VL6180 combines an IR emitter. Energia Compatible platforms: Atmel AVR. TI MSP430.PlatformIO Documentation. Espressif 8266. spi. sensor. Si4460/4461/ ˓→4463/4464..3. Contents . i2c. Nordic nRF51.. compass Compatible frameworks: Arduino Compatible platforms: Atmel AVR Authors: Jeff Rowberg Adafruit 9DOF Library ===================== #ID: 14 Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303) Keywords: magnetometer. sensor. Microchip ˓→PIC32. Atmel SAM.1 RadioHead ========= #ID: 124 The RadioHead Packet Radio library which provides a complete object-oriented library ˓→for sending and receiving packetized messages via RF22/24/26/27/69.. a range sensor. Teensy. Intel ARC32. 82 Chapter 4. Microchip ˓→PIC32. Search for the all sensor libraries excluding temperature. Teensy. RFM95/96/97/98 and etc. TI Tiva Authors: Mike McCauley Show next libraries? [y/N]: . Keywords: sensors Compatible frameworks: Arduino Compatible platforms: Atmel AVR.. radio Compatible frameworks: Arduino. and an ambient light sensor ˓→together for you to easily use and communicate with via an I2C interface. SX1276/77/78. unified. 8. Nordic nRF51. Release 3. compass. TI MSP430 Authors: Casey Kuhns@SparkFun. nRF24/nRF905. rf. accelerometer. Keywords: wireless.

1 platformio lib show Contents • platformio lib show – Usage – Description – Options – Examples Usage platformio lib show [LIBRARY] pio lib show [LIBRARY] Description Show detailed info about a library using PlatformIO Library Registry.3. It ˓→supports the latest MQTT 3. MQTT is a lightweight messaging protocol ideal ˓→for small devices. The possible values for [LIBRARY]: • Library ID from Registry (preferred) • Library Name Options --json-output Return the output in JSON format Examples > platformio lib show OneWire PubSubClient ============ #ID: 89 A client library for MQTT messaging.com/knolleary/pubsubclient. released 10 months ago Manifest: https://raw.githubusercontent. Release 3. This library allows you to send and receive MQTT messages. ˓→json Homepage: http://pubsubclient.git 4.knolleary.1..1.6.4.net Repository: https://github.1 protocol and can be configured to use the older MQTT ˓→3. PlatformIO Documentation.com/ivankravets/pubsubclient/patch-2/library.. PlatformIO Core 83 . Version: 2.

PlatformIO Documentation.org/libraries/examples/0/89/mqtt_basic.platformio.ino http://dl.ino Versions -------- 2.3. Release 3. Contents . released 10 months ago Unique Downloads ---------------- Today: 25 Week: 120 Month: 462 platformio lib stats Contents 84 Chapter 4.org/libraries/examples/0/89/mqtt_esp8266.ino http://dl.org/libraries/examples/0/89/mqtt_auth.org/libraries/examples/0/89/mqtt_publish_in_callback.platformio.platformio.com/knolleary Keywords -------- ethernet mqtt iot m2m Compatible frameworks --------------------- Arduino Compatible platforms -------------------- Atmel AVR Atmel SAM Espressif 8266 Intel ARC32 Microchip PIC32 Nordic nRF51 Teensy TI MSP430 Headers ------- PubSubClient.ino http://dl.platformio.ino http://dl.platformio.1 Authors ------- Nick O'Leary https://github.6.org/libraries/examples/0/89/mqtt_reconnect_nonblocking.ino http://dl.h Examples -------- http://dl.platformio.org/libraries/examples/0/89/mqtt_stream.

org/lib/show/1382/ ˓→GroveEncoder RF24G 12 hours ago http://platformio.4.3.1 • platformio lib stats – Usage – Description – Options – Examples Usage platformio lib stats pio lib stats Description Show PlatformIO Library Registry statistics: • Recently updated • Recently added • Recent keywords • Popular keywords • Featured: Today • Featured: Week • Featured: Month This information is the same that is shown on this page: • http://platformio. PlatformIO Core 85 . PlatformIO Documentation.org/lib/show/1380/ ˓→Sim800L%20Library%20Revised 4. Release 3.org/lib/show/1381/ ˓→RF24G Sim800L Library Revised 12 hours ago http://platformio.org/lib Options --json-output Return the output in JSON format Examples RECENTLY UPDATED **************** Name Date Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ GroveEncoder 12 hours ago http://platformio.

org/lib/search?query=keyword%3Alcd sensors http://platformio.org/lib/search?query=keyword%3Aframing 3g http://platformio.org/lib/show/1381/ ˓→RF24G Sim800L Library Revised 12 hours ago http://platformio.org/lib/search?query=keyword%3Aoled tft http://platformio.org/lib/search?query=keyword%3Acobs packet http://platformio.org/lib/show/1378/ ˓→ArduboyPlaytune RECENT KEYWORDS *************** Name Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ cobs http://platformio.org/lib/search?query=keyword%3Aglcd displaycore http://platformio.PlatformIO Documentation.org/lib/search?query=keyword%3Asensors graphics http://platformio.org/lib/search?query=keyword%3Atdd POPULAR KEYWORDS **************** Name Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ display http://platformio.org/lib/search?query=keyword%3Adisplay lcd http://platformio.org/lib/search?query=keyword%3Aother i2c http://platformio.org/lib/search?query=keyword%3Apacket framing http://platformio.org/lib/search?query=keyword%3Afont other http://platformio.org/lib/search?query=keyword%3A3g tdd http://platformio.org/lib/search?query=keyword%3Ai2c input http://platformio.org/lib/show/1379/ ˓→DS3231 ArduboyPlaytune 4 days ago http://platformio. Contents .1 ArduinoSTL 12 hours ago http://platformio.org/lib/search?query=keyword%3Asignal sensor http://platformio.org/lib/search?query=keyword%3Adevice glcd http://platformio.org/lib/show/750/ ˓→ArduinoSTL hd44780 13 hours ago http://platformio.org/lib/search?query=keyword%3Agraphics communication http://platformio.org/lib/show/1382/ ˓→GroveEncoder RF24G 12 hours ago http://platformio. Release 3.org/lib/search?query=keyword%3Acontrol device http://platformio.org/lib/search?query=keyword%3Adisplaycore font http://platformio.org/lib/show/738/ ˓→hd44780 RECENTLY ADDED ************** Name Date Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ GroveEncoder 12 hours ago http://platformio.org/lib/search?query=keyword%3Asensor 86 Chapter 4.3.org/lib/search?query=keyword%3Ainput signal http://platformio.org/lib/show/1380/ ˓→Sim800L%20Library%20Revised DS3231 a day ago http://platformio.org/lib/search?query=keyword%3Atft control http://platformio.org/lib/search?query=keyword ˓→%3Acommunication oled http://platformio.

org/lib/search?query=keyword%3Aserial temperature http://platformio.org/lib/show/408/Embedis Blynk http://platformio.org/lib/search?query=keyword%3Aspi data http://platformio.org/lib/search?query=keyword%3Awifi rf http://platformio.org/lib/search?query=keyword%3Aprotocol server http://platformio.org/lib/search?query=keyword%3Aethernet mbed http://platformio. PlatformIO Documentation.org/lib/show/89/PubSubClient Adafruit Unified Sensor http://platformio.org/lib/search?query=keyword%3Ahumidity time http://platformio.org/lib/search?query=keyword%3Awi-fi ethernet http://platformio.org/lib/search?query=keyword%3Awireless protocol http://platformio.org/lib/show/31/Adafruit%20Unified%20Sensor DHT sensor library http://platformio.org/lib/search?query=keyword%3Aopenag led http://platformio.org/lib/search?query=keyword%3Aprocessing storage http://platformio.org/lib/search?query=keyword%3Aclient driver http://platformio.1 output http://platformio.org/lib/show/18/Adafruit%20DHT%20Unified RTClib http://platformio.org/lib/show/83/RTClib FEATURED: WEEK ************** Name Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ 4.org/lib/search?query=keyword%3Aserver wi-fi http://platformio. Release 3.org/lib/search?query=keyword%3Aesp8266 humidity http://platformio.org/lib/search?query=keyword%3Atimer client http://platformio.3.org/lib/show/419/SimpleTimer Adafruit DHT Unified http://platformio.org/lib/search?query=keyword%3Aradio web http://platformio.org/lib/search?query=keyword%3Atemperature http http://platformio. PlatformIO Core 87 .org/lib/search?query=keyword ˓→%3Aaccelerometer wireless http://platformio.org/lib/search?query=keyword%3Atiming serial http://platformio.org/lib/search?query=keyword%3Ambed- ˓→official FEATURED: TODAY *************** Name Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ PubSubClient http://platformio.4.org/lib/search?query=keyword%3Aiot json http://platformio.org/lib/search?query=keyword%3Ajson timer http://platformio.org/lib/search?query=keyword%3Aoutput spi http://platformio.org/lib/search?query=keyword%3Ai2cdevlib processing http://platformio.org/lib/search?query=keyword%3Aled esp8266 http://platformio.org/lib/search?query=keyword%3Adata timing http://platformio.org/lib/search?query=keyword%3Abutton mbed-official http://platformio.org/lib/show/727/NtpClientLib Embedis http://platformio.org/lib/show/415/Blynk SimpleTimer http://platformio.org/lib/search?query=keyword%3Ambed openag http://platformio.org/lib/search?query=keyword%3Atime iot http://platformio.org/lib/search?query=keyword%3Adriver button http://platformio.org/lib/search?query=keyword%3Arf i2cdevlib http://platformio.org/lib/show/19/DHT%20sensor%20library ESPAsyncUDP http://platformio.org/lib/search?query=keyword%3Ahttp wifi http://platformio.org/lib/search?query=keyword%3Astorage radio http://platformio.org/lib/show/359/ESPAsyncUDP NtpClientLib http://platformio.org/lib/search?query=keyword%3Aweb accelerometer http://platformio.

] pio lib [STORAGE_OPTIONS] uninstall [LIBRARY.org/lib/show/89/PubSubClient Timer http://platformio.org/lib/show/64/ArduinoJson DHT sensor library http://platformio.3.org/lib/show/19/DHT%20sensor%20library Adafruit Unified Sensor http://platformio.org/lib/show/305/ESPAsyncTCP Time http://platformio..org/lib/show/1/OneWire ESPAsyncTCP http://platformio.org/lib/show/19/DHT%20sensor%20library Adafruit Unified Sensor http://platformio.] # uninstall library from global storage platformio lib --global uninstall [LIBRARY.org/lib/show/31/Adafruit%20Unified%20Sensor PubSubClient http://platformio.ini") platformio lib uninstall [LIBRARY. Contents .org/lib/show/13/Adafruit%20GFX%20Library I2Cdevlib-Core http://platformio.org/lib/show/11/I2Cdevlib-Core TimeAlarms http://platformio.org/lib/show/54/DallasTemperature ESPAsyncWebServer http://platformio..1 DHT sensor library http://platformio..org/lib/show/75/Timer esp8266_mdns http://platformio..org/lib/show/44/Time DallasTemperature http://platformio.org/lib/show/306/ESPAsyncWebServer Adafruit GFX Library http://platformio.PlatformIO Documentation.org/lib/show/68/TimeAlarms PubSubClient http://platformio.] 88 Chapter 4.org/lib/show/89/PubSubClient OneWire http://platformio. Release 3.org/lib/show/1091/esp8266_mdns FEATURED: MONTH *************** Name Url -------------------------------------------------------------------------------------- ˓→------------------------------------------------------------------------------------ ˓→------------------------------------ ArduinoJson http://platformio.....org/lib/show/306/ESPAsyncWebServer WifiManager http://platformio.org/lib/show/415/Blynk ESPAsyncWebServer http://platformio.] # uninstall project dependent library # (run it from a project root where is located "platformio.org/lib/show/567/WifiManager platformio lib uninstall Contents • platformio lib uninstall – Usage – Description – Storage Options – Examples Usage platformio lib [STORAGE_OPTIONS] uninstall [LIBRARY.org/lib/show/31/Adafruit%20Unified%20Sensor Blynk http://platformio.

an exact version number. >=.0 Storage Options See base options for Library Manager.] # uninstall library from custom storage platformio lib --storage-dir /path/to/dir uninstall [LIBRARY.<minor>.] platformio lib -d /path/to/dir uninstall [LIBRARY.2 . Release 3.2 ... Uninstalling AsyncMqttClient @ 0.3.3.] # [LIBRARY.0 and less than 0. PlatformIO Core 89 .2.1.x versions • ~0..<patch>) and can take any of the following forms: • 0.!=0.. PlatformIO Documentation...2 .1 platformio lib -g uninstall [LIBRARY. Use only this exact version • ^0.. Examples > platformio lib -g uninstall AsyncMqttClient Library Storage: /storage/dir/.1. and <= are also possible • >0.0 .0: [OK] platformio lib update Contents • platformio lib update – Usage – Description 4.0. not equal to 0.1.1.1.] forms platformio lib [STORAGE_OPTIONS] uninstall <id> platformio lib [STORAGE_OPTIONS] uninstall <id>@<version> platformio lib [STORAGE_OPTIONS] uninstall <id>@<version range> platformio lib [STORAGE_OPTIONS] uninstall <name> platformio lib [STORAGE_OPTIONS] uninstall <name>@<version> platformio lib [STORAGE_OPTIONS] uninstall <name>@<version range> Description Uninstall specified library The version supports Semantic Versioning ( <major>.0...<0.2..4. and an equal or greater patch version • >0.2.0.x.any version with the same major and minor versions. <.1.any compatible version (exact version for 0.any version greater than 0.any version greater than 0.3.1.2.2 .

.. Use only this exact version • ^0.ini") platformio lib update [OPTIONS] # update project dependent library platformio lib [STORAGE_OPTIONS] update [OPTIONS] [LIBRARY.1..1.any version with the same major and minor versions. 90 Chapter 4.0 ..2 .1.2 .] # update library in custom storage platformio lib --storage-dir /path/to/dir update [OPTIONS] [LIBRARY.<patch>) and can take any of the following forms: • 0.2. >=.] # update library in global storage platformio lib --global update [OPTIONS] [LIBRARY.3.] platformio lib -d /path/to/dir update [OPTIONS] [LIBRARY..PlatformIO Documentation. Contents .0 Storage Options See base options for Library Manager.x versions • ~0.x.<minor>.1.] forms platformio lib [STORAGE_OPTIONS] update <id> platformio lib [STORAGE_OPTIONS] update <id>@<version> platformio lib [STORAGE_OPTIONS] update <id>@<version range> platformio lib [STORAGE_OPTIONS] update <name> platformio lib [STORAGE_OPTIONS] update <name>@<version> platformio lib [STORAGE_OPTIONS] update <name>@<version range> Description Check or update installed libraries.<0.3. <.any compatible version (exact version for 0..any version greater than 0.2.2 ...0. The version supports Semantic Versioning ( <major>.0.an exact version number.1 – Storage Options – Options – Examples Usage platformio lib [STORAGE_OPTIONS] update [OPTIONS] pio lib [STORAGE_OPTIONS] update [OPTIONS] # update all project libraries # (run it from a project root where is located "platformio.any version greater than 0..1..0.2.1.2 .] # [LIBRARY.3.] platformio lib -g update [OPTIONS] [LIBRARY. Release 3...1.!=0.0 and less than 0. and an equal or greater patch version • >0. not equal to 0. and <= are also possible • >0.

3: [Up-to-date] Updating EngduinoMagnetometer @ 3.6. Update specified libraries in global storage > platformio lib -g update Json 4 Library Storage: /storage/dir/.4 Downloading [####################################] 100% Unpacking [####################################] 100% Json @ 5.1: [Up-to-date] Updating Json @ 5. PlatformIO Documentation.7.2..org/users/simon/code/TextLCD/ searching for changes no changes found 2.org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software..4) (see https://mercurial-scm.2. Updating Json @ 5.6.0: [Up-to-date] Updating IRremote @ 2.4 (Apple Git-66) Already up-to-date.2. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.4. There is NO warranty.1: [Up-to-date] Platform Manager To print all available commands and options use: platformio platform --help platformio platform COMMAND --help 4.6.mbed.. PlatformIO Core 91 . Release 3.3.1. --only-check Do not update. see the source for copying conditions.1 Options -c.4: [Up-to-date] Updating IRremote @ 2. Updating TextLCD @ 308d188a2d3a: [Checking] Mercurial Distributed SCM (version 3.8. Update all installed libraries in global storage > platformio lib -g update Library Storage: /storage/dir/..4.4 has been successfully installed! Updating PJON @ 1fb26fd: [Checking] git version 2. Updating ESP8266_SSD1306 @ 3. only check for new version --json-output Return the output in JSON format Examples 1.0: [Out-of-date] LibraryManager: Installing id=64 @ 5. pulling from https://developer.

Home: http://platformio. interactive objects. MQTT. Contents .3. Options --json-output Return the output in JSON format Examples Print all supported frameworks.PlatformIO Documentation. These APIs cover hardware buses such as ˓→GPIO. etc. UART.1 platformio platform frameworks Contents • platformio platform frameworks – Usage – Description * Options – Examples Usage platformio platform frameworks QUERY [OPTIONS] pio platform frameworks QUERY [OPTIONS] Description List supported Frameworks (SDKs. etc).org/frameworks/arduino artik-sdk ~ ARTIK SDK ===================== ARTIK SDK is a C/C++ SDK targeting Samsung ARTIK platforms. I2C. Release 3. and others. > platformio platform frameworks arduino ~ Arduino ================= Arduino Wiring-based Framework allows writing cross-platform software to control ˓→devices attached to a wide range of Arduino boards to create all kinds of creative ˓→coding. SDKs. It exposes a set of APIs ˓→to ease up development of applications. Home: http://platformio. connectivity links like Wi-Fi. Bluetooth. SPI. Zigbee.org/frameworks/artik-sdk 92 Chapter 4. and network ˓→protocols such as HTTP. Websockets. spaces or physical experiences.

including ST STM32. yet powerful enough to build complex ˓→projects. Release 3. ˓→and middleware. reducing the learning curve for new ˓→microcontroller developers and cutting the time-to-market for devices.3. real-time operating systems. It simplifies software re-use. Home: http://platformio. a cookbook ˓→of hundreds of reusable peripheral and module libraries have been built on top of ˓→the SDK by the mbed Developer Community. Home: http://platformio. Official development framework for ESP32.org/frameworks/energia espidf ~ ESP-IDF ================ Espressif IoT Development Framework. Energy Micro EFM32 and ˓→others. 13xx. Atmel SAM3. PlatformIO Core 93 . Ti Tiva and ˓→Stellaris.org/frameworks/cmsis energia ~ Energia ================= Energia Wiring-based framework enables pretty much anyone to start easily creating ˓→microcontroller-based projects and applications. allowing you to code down to ˓→the metal if needed. Its easy-to-use libraries and ˓→functions provide developers of all experience levels to start blinking LEDs. PlatformIO Documentation. It is built on the low-level ARM CMSIS APIs. In addition to RTOS.org/frameworks/pumbaa simba ~ Simba ============= Simba is an RTOS and build framework. 4. Home: http://platformio.4. It aims to make embedded programming easy and ˓→portable. The CMSIS enables consistent and simple software ˓→interfaces to the processor for interface peripherals.org/frameworks/espidf libopencm3 ~ libOpenCM3 ======================= The libOpenCM3 framework aims to create a free/libre/open-source firmware library for ˓→various ARM Cortex-M0(+)/M3/M4 microcontrollers. Home: http://platformio. USB and Networking libraries. The implementation is a port of MicroPython.org/frameworks/mbed pumbaa ~ Pumbaa =============== Pumbaa is Python on top of Simba. Home: http://platformio. ˓→designed for embedded devices with limited amount of RAM and code memory.1 cmsis ~ CMSIS ============= The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor- ˓→independent hardware abstraction layer for the Cortex-M processor series and ˓→specifies debugger interfaces. 15xx. 17xx parts. Home: http://platformio.org/frameworks/libopencm3 mbed ~ mbed =========== The mbed framework The mbed SDK has been designed to provide enough hardware ˓→abstraction to be intuitive and concise. NXP LPC 11xx. ˓→buzzing buzzers and sensing sensors more quickly than ever before.

Home: http://platformio.. Home: http://platformio.3.1 Home: http://platformio.] forms platformio platform install <name> platformio platform install <name>@<version> platformio platform install <name>@<version range> platformio platform install <zip or tarball url> platformio platform install file://<zip or tarball file> platformio platform install file://<folder> platformio platform install <repository> 94 Chapter 4.....org/frameworks/wiringpi platformio platform install Contents • platformio platform install – Usage – Description – Options – Version control * Git * Mercurial * Subversion – Examples Usage platformio platform install [OPTIONS] [PLATFORM.] # [PLATFORM.org/frameworks/spl wiringpi ~ WiringPi =================== WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry ˓→Pi. It's designed to be familiar to people who have used the Arduino "wiring" ˓→system.. in particular) having to deal directly with the registers.] pio platform install [OPTIONS] [PLATFORM. Contents . Release 3.org/frameworks/simba spl ~ SPL ========= The ST Standard Peripheral Library provides a set of functions for handling the ˓→peripherals on the STM32 Cortex-M3 family.PlatformIO Documentation. The idea is to save the user (the new ˓→user.

PlatformIO supports installing from local directory or archive. “hg+”.!=0.1.<minor>.x versions • ~0. and detects the type of VCS using url prefixes: “git+”. hg or svn. <.an exact version number.1.0 . >=.0 Also. Note: PlatformIO requires a working VCS command on your path: git. Use only this exact version • ^0.2.1 platformio platform install <name=repository> (name it should have locally) platformio platform install <repository#tag> ("tag" can be commit.json manifest.4.3.any compatible version (exact version for 0. Here are the supported forms: • platformio/platform-NAME (short version for GitHub repository) 4. git+https and git+ssh.1.2 .2 .0. Git The supported schemes are: git. and <= are also possible • >0.zip • file:///local/path/to/the/platform.1.any version greater than 0. Need to use file:// prefix before local path.gz Options --with-package Install specified package (or alias) --without-package Do not install specified package (or alias) --skip-default Skip default packages Version control PlatformIO supports installing from Git.any version greater than 0. directory or archive should contain platform.0.<patch>) and can take any of the following forms: • 0.3. Release 3. The version supports Semantic Versioning ( <major>.any version with the same major and minor versions. PlatformIO Documentation.1.1. Also. PlatformIO Core 95 .0 and less than 0.tar. branch or tag) Description Install Development Platforms and dependent packages.x.2. • file:///local/path/to/the/platform/dir • file:///local/path/to/the/platform. or “svn+”. not equal to 0.2.0.1. Mercurial and Subversion.2 .3.<0. and an equal or greater patch version • >0.2 .

org/my-platform • git+https://git. svn+http. Release 3.0.org/my-platform • hg+https://hg.server.server.server.server.0 has been successfully installed! 96 Chapter 4.0 • hg+ssh://hg. Install Platform atmelavr with default packages > platformio platform install atmelavr PlatformManager: Installing atmelavr Downloading.org/my-platform#v1. Here are the supported forms: • hg+hg://hg.org/my-platform • git+ssh://git.server.server. svn+https and svn+ssh.3.org/my-platform#v1. a commit hash or a tag name is possible like so: • hg+hg://hg.org/my-platform • hg+ssh://hg.1 • https://github.org/my-platform Passing branch names.server.org/my-platform#7846d8ad52f983f2f2887bdc0f073fe9755a806d Mercurial The supported schemes are: hg+http.0 • git+ssh://git.git#master • git+git://git.server.com/platformio/platform-name. hg+https and hg+ssh. Unpacking [####################################] 100% atmelavr @ 0.server. svn+svn.server.server.PlatformIO Documentation.org/my-platform#13 Examples 1.org/my-platform Passing branch names... Contents .git • git+git://git. like so: • svn+svn://svn.org/my-platform • svn+ssh://svn.server.org/my-platform#master • hg+https://hg.org/my-platform • svn+https://svn.server.org/my-platform You can also give specific revisions to an SVN URL.server.server. a commit hash or a tag name is possible like so: • https://github.org/my-platform#4cfe2fa00668 Subversion The supported schemes are: svn.com/platformio/platform-NAME.server. Here are the supported forms: • svn+svn://svn.org/my-platform#master • git+https://git.

0 has been successfully installed! PackageManager: Installing tool-scons @ >=2. Install Platform atmelavr with uploader utility only and skip default packages > platformio platform install atmelavr --skip-default-package --with-package=uploader PlatformManager: Installing atmelavr Downloading [####################################] 100% Unpacking [####################################] 100% atmelavr @ 0.7.. Submodule 'examples/arduino-external-libs/lib/OneWire' (https://github.4.git) registered for path 'examples/arduino-external-libs/lib/ ˓→OneWire' Cloning into 'examples/arduino-external-libs/lib/OneWire'. remote: Total 91 (delta 0).4 (Apple Git-66) Cloning into '/Volumes/MEDIA/tmp/pio3_test_projects/arduino-digihead-master/home_dir/ ˓→platforms/installing-U3ucN0-package'. 3. reused 0 (delta 0).<2.3.6.0 has been successfully installed! PackageManager: Installing tool-micronucleus @ ~1. 2. Submodule path 'examples/arduino-external-libs/lib/OneWire': checked out ˓→'57c18c6de80c13429275f70875c7c341f1719201' atmelavr @ 0.0 Downloading [####################################] 100% Unpacking [####################################] 100% tool-avrdude @ 1.git PlatformManager: Installing platform-atmelavr git version 2.60001.0 has been successfully installed! PackageManager: Installing tool-avrdude @ ~1. remote: Counting objects: 176.0 Downloading [####################################] 100% Unpacking [####################################] 100% tool-scons @ 2. Install the latest development Platform atmelavr from Git repository > platformio platform install https://github.40801. done.1 has been successfully installed! The platform 'atmelavr' has been successfully installed! The rest of packages will be installed automatically depending on your build ˓→environment.com/platformio/platform-atmelavr.<2. pack-reused 0 Receiving objects: 100% (176/176)..0 has been successfully installed! The platform 'atmelavr' has been successfully installed! The rest of packages will be installed automatically depending on your build ˓→environment. Checking connectivity. done.0.0 4.200... pack-reused 91 Unpacking objects: 100% (91/91). remote: Counting objects: 91.. PlatformIO Core 97 . Resolving deltas: 100% (114/114).com/ ˓→PaulStoffregen/OneWire.60001.4.0. done.86 KiB | 0 bytes/s.0 Downloading [####################################] 100% Unpacking [####################################] 100% toolchain-atmelavr @ 1. remote: Compressing objects: 100% (55/55).. done.. Release 3..6. done.0.40801.1 has been successfully installed! PackageManager: Installing toolchain-atmelavr @ ~1. done.0. Checking connectivity. done.3. reused 164 (delta 109).1 PackageManager: Installing tool-scons @ >=2.200. done. remote: Total 176 (delta 114). PlatformIO Documentation.0 Downloading [####################################] 100% Unpacking [####################################] 100% tool-micronucleus @ 1. 38.3.

0 Downloading [####################################] 100% Unpacking [####################################] 100% toolchain-atmelavr @ 1. power ˓→efficiency and design flexibility.4. Release 3.40801.0 has been successfully installed! The platform 'https://github. platformio platform list Contents • platformio platform list – Usage – Description * Options – Examples Usage platformio platform list [OPTIONS] pio platform list [OPTIONS] Description List installed Development Platforms Options --json-output Return the output in JSON format Examples > platformio platform list atmelavr ~ Atmel AVR ==================== Atmel AVR 8.1 has been successfully installed! PackageManager: Installing toolchain-atmelavr @ ~1.40801.PlatformIO Documentation.and 32-bit MCUs deliver a unique combination of performance. Optimized to speed time to market-and easily ˓→adapt to new ones-they are based on the industrys most code-efficient architecture ˓→for C and assembly programming. Contents . 98 Chapter 4.git' has been ˓→successfully installed! The rest of packages will be installed automatically depending on your build ˓→environment.1 Downloading [####################################] 100% Unpacking [####################################] 100% tool-scons @ 2.com/platformio/platform-atmelavr.3.

platformio platform search Contents • platformio platform search – Usage – Description * Options – Examples Usage platformio platform search QUERY [OPTIONS] pio platform search QUERY [OPTIONS] Description Search for development Development Platforms 4.. PlatformIO Documentation. sdk-esp8266. Home: http://platformio.1 Home: http://platformio.0 atmelsam ~ Atmel SAM ==================== Atmel | SMART offers Flash. framework-arduinoespressif8266.4.based ARM products based on the ARM Cortex-M0+.0. PlatformIO Core 99 . toolchain- ˓→gccarmnoneeabi. Home: http://platformio. tool-esptool.. framework-simba Version: 0.org/platforms/atmelavr Packages: toolchain-atmelavr. Cortex-M3 ˓→and Cortex-M4 architectures. tool-bossac Version: 0.org/platforms/atmelsam Packages: framework-arduinosam.0 espressif8266 ~ Espressif 8266 ============================== Espressif Systems is a privately held fabless semiconductor company.3. framework-simba. Release 3. ˓→toolchain-xtensa Version: 0. framework-mbed. They provide ˓→wireless communications and Wi-Fi chips which are widely used in mobile devices and ˓→the Internet of Things applications.org/platforms/espressif8266 Packages: framework-simba. ranging from 8KB to 2MB of Flash including a rich ˓→peripheral and feature mix.0.0.0 .

and 32-bit MCUs deliver a unique combination of performance.PlatformIO Documentation.and software- ˓→compatible ARM Cortex-M0+.based ARM products based on the ARM Cortex-M0+.3. They provide ˓→wireless communications and Wi-Fi chips which are widely used in mobile devices and ˓→the Internet of Things applications. framework-arduinosam. framework-simba.org/platforms/atmelavr Packages: toolchain-atmelavr. Home: http://platformio. tool- ˓→openocd. framework-arduinoespressif8266. power ˓→efficiency and design flexibility. Home: http://platformio. tool-avrdude. scalability and feature integration. tool-bossac espressif32 ~ Espressif 32 ========================== Espressif Systems is a privately held fabless semiconductor company. framework-simba.org/platforms/atmelsam Packages: toolchain-gccarmnoneeabi. ˓→tool-micronucleus atmelsam ~ Atmel SAM ==================== Atmel | SMART offers Flash. Print all available development platforms > platformio platform search atmelavr ~ Atmel AVR ==================== Atmel AVR 8. ˓→framework-pumbaa. Home: http://platformio. tool-esptoolpy espressif8266 ~ Espressif 8266 ============================== Espressif Systems is a privately held fabless semiconductor company. tool-esptool. Kinetis MCUs ˓→offer exceptional low-power performance. ranging from 8KB to 2MB of Flash including a rich ˓→peripheral and feature mix. Cortex-M3 ˓→and Cortex-M4 architectures. Release 3. framework-arduinoavr. framework-mbed.org/platforms/espressif32 Packages: toolchain-xtensa32. Contents . tool-mkspiffs.1 Options --json-output Return the output in JSON format Examples 1. framework-espidf. Cortex-M4 and Cortex-M7-based MCU series. framework-arduinoespressif32. They provide ˓→wireless communications and Wi-Fi chips which are widely used in mobile devices and ˓→the Internet of Things applications. Home: http://platformio. 100 Chapter 4. framework-simba. framework-simba.org/platforms/espressif8266 Packages: toolchain-xtensa. sdk-esp8266 freescalekinetis ~ Freescale Kinetis ==================================== Freescale Kinetis Microcontrollers is family of multiple hardware. Optimized to speed time to market-and easily ˓→adapt to new ones-they are based on the industrys most code-efficient architecture ˓→for C and assembly programming. tool-avrdude. tool- ˓→espotapy.

industry-leading analog integration. tool- ˓→openocd. Home: http://platformio. framework-simba. Cortex-M3 ˓→and Cortex-M4 architectures.. Home: http://platformio. Cortex-M4 and Cortex-M7-based MCU series.3. framework-libopencm3. framework- ˓→arduinomsp430 titiva ~ TI TIVA ================ Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core ˓→with scalable memory and package options.org/platforms/freescalekinetis Packages: framework-mbed. nRF51 Series devices ˓→support a range of protocol stacks including Bluetooth Smart (previously called ˓→Bluetooth low energy). PlatformIO Documentation. ANT and proprietary 2. and extensive ˓→software solutions. scalability and feature integration. framework-mbed. framework- ˓→arduinonordicnrf51 4. unparalleled connectivity peripherals. ˓→mixed-signal processors designed for ultra-low power. Search for TI development platforms > platformio platform search texas timsp430 ~ TI MSP430 ==================== MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit. Release 3. ˓→framework-energiativa > platformio platform search framework-mbed atmelsam ~ Atmel SAM ==================== Atmel | SMART offers Flash.and software- ˓→compatible ARM Cortex-M0+. tool-lm4flash. tool-rfdloader. Kinetis MCUs ˓→offer exceptional low-power performance.org/platforms/nordicnrf51 Packages: framework-mbed. Home: http://platformio. ldscripts. Home: http://platformio.org/platforms/titiva Packages: ldscripts. framework-arduinosam.based ARM products based on the ARM Cortex-M0+. multi-protocol.. tool-bossac freescalekinetis ~ Freescale Kinetis ==================================== Freescale Kinetis Microcontrollers is family of multiple hardware. toolchain-gccarmnoneeabi. framework-energiamsp430. RISC-based. 2.4GHz protocols such as Gazell. Home: http://platformio.1 .org/platforms/atmelsam Packages: toolchain-gccarmnoneeabi. ranging from 8KB to 2MB of Flash including a rich ˓→peripheral and feature mix. tool-mspdebug. PlatformIO Core 101 . ˓→advanced application functions.org/platforms/timsp430 Packages: toolchain-timsp430. system-on- ˓→chip (SoC) devices for ultra-low power wireless applications.4. toolchain-gccarmnoneeabi. These MCUs offer the lowest ˓→power consumption and the perfect mix of integrated peripherals for thousands of ˓→applications. toolchain-gccarmnoneeabi nordicnrf51 ~ Nordic nRF51 ========================== The Nordic nRF51 Series is a family of highly flexible.

while maintaining full integration and ease ˓→of development. digital signal processing. ldscripts . making it ideal for battery operated applications ˓→and other systems requiring high performance and low-energy consumption. platformio platform show Contents • platformio platform show – Usage 102 Chapter 4. The LPC chips are grouped into related series that are based around ˓→the same 32-bit ARM processor core. toolchain-gccarmnoneeabi. ˓→static RAM memory. real-time capabilities. framework-spl. Internally. Release 3. such as the Cortex-M4F. low-voltage operation. tool-stlink.org/platforms/siliconlabsefm32 Packages: framework-mbed. Home: http://platformio. the Gecko family features ˓→innovative low energy techniques. Home: http://platformio. ˓→framework-cmsis. ˓→or Cortex-M0. debugging interface. and various peripherals. Home: http://platformio.org/platforms/teensy Packages: framework-arduinoteensy. It offers a 32-bit product range that ˓→combines very high performance. tool-teensy.org/platforms/nxplpc Packages: framework-mbed.3. in a very small ˓→footprint. flash memory. No special programmer is needed. Based on the powerful ARM Cortex-M core. Cortex-M0+. only a standard USB cable and a ˓→PC or Macintosh with a USB port. Contents . All programming is done ˓→via the USB port. toolchain-atmelavr. 32 kB of RAM and CPU speeds up to ˓→48 MHz. capable of implementing many types of projects. ˓→and low-power. toolchain-gccarmnoneeabi ststm32 ~ ST STM32 ================== The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed ˓→to offer new degrees of freedom to MCU users. toolchain-gccarmnoneeabi. short wake-up time from energy saving modes and a ˓→wide selection of peripherals. Home: http://platformio.. each microcontroller consists of the processor core.PlatformIO Documentation.org/platforms/ststm32 Packages: framework-libopencm3. framework- ˓→mbed. Cortex-M3. framework-mbed.. toolchain-gccarmnoneeabi siliconlabsefm32 ~ Silicon Labs EFM32 ===================================== Silicon Labs EFM32 Gecko 32-bit microcontroller (MCU) family includes devices that ˓→offer flash memory configurations up to 256 kB.1 nxplpc ~ NXP LPC ================ The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP ˓→Semiconductors. ldscripts teensy ~ Teensy =============== Teensy is a complete USB-based microcontroller development system.

arduino Package toolchain-atmelavr -------------------------- Type: toolchain Requirements: ~1.and 32-bit MCUs deliver a unique combination of performance.0 (4.1 (1.2.2) Package framework-arduinoavr ---------------------------- Type: framework Requirements: ~1.6.0 Installed: Yes Description: avr-gcc Url: http://www. 1.1 Home: http://platformio.0 Installed: Yes 4. PlatformIO Documentation.40902.9.4. Release 3. Version: 1.com/products/microcontrollers/avr/32-bitavruc3.10612.1 Installed: Yes Url: https://www.6) Package framework-simba ----------------------- Type: framework Requirements: >=7.1 – Description – Examples Usage platformio platform show PLATFORM pio platform show PLATFORM Description Show details about Development Platforms Examples > platformio platform show atmelavr atmelavr ~ Atmel AVR ==================== Atmel AVR 8.arduino. Optimized to speed time to market-and easily ˓→adapt to new ones-they are based on the industrys most code-efficient architecture ˓→for C and assembly programming. power ˓→efficiency and design flexibility.40902.10612.3.org/platforms/atmelavr License: Apache-2.12) Description: Arduino Wiring-based Framework (AVR Core.0 Frameworks: simba.atmel.cc/en/Main/Software Version: 1. PlatformIO Core 103 .aspx?tab=tools Version: 1.0.

40801.] # uninstall specific platform version using Semantic Versioning platformio platform uninstall PLATFORM@X.1: [OK] Uninstalling package toolchain-atmelavr @ 1.200.0: [OK] The platform 'atmelavr' has been successfully uninstalled! 104 Chapter 4.60300.0 (6..0. Release 3.0: [OK] Uninstalling package tool-scons @ 2.0 Installed: No (optional) platformio platform uninstall Contents • platformio platform uninstall – Usage – Description – Examples Usage platformio platform uninstall [PLATFORM.4.Z Description Uninstall specified Development Platforms Examples > platformio platform uninstall atmelavr Uninstalling platform atmelavr @ 0.0 Installed: Yes Description: AVRDUDE Url: http://www.3.com/eerimoq/simba Version: 11.60300.Y.0 Description: Simba Embedded Programming Platform Package tool-avrdude -------------------- Type: uploader Requirements: ~1.0.3..1 Url: https://github..org/avrdude/ Version: 1.] pio platform uninstall [PLATFORM..PlatformIO Documentation.nongnu.0) Package tool-micronucleus ------------------------- Type: uploader Requirements: ~1. Contents .

.1: [Up-to-date] Updating tool-avrdude @ 1.1 platformio platform update Contents • platformio platform update – Usage – Description – Options – Examples Usage platformio platform update [OPTIONS] [PLATFORM.4. PlatformIO Documentation.Z Description Check or update installed Development Platforms Options -p. --only-check Do not update. only check for a new version --json-output Return the output in JSON format Examples > platformio platform update Platform atmelavr -------- Updating atmelavr @ 0..1: [Up-to-date] 4. --only-packages Update only the platform related packages. board configs and etc.] # update specific platform version using Semantic Versioning platformio platform update PLATFORM@X.Y. Release 3..0: [Up-to-date] Updating framework-arduinoavr @ 1. PlatformIO Core 105 . Do not update development platform build scripts.] pio platform update [OPTIONS] [PLATFORM..3.10608. -c.60001.0.

0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating sdk-esp8266 @ 1. For detailed information please follow to PIO Remote™ page.4.40801..0: [Up-to-date] Updating tool-scons @ 2.4. Release 3. Wired devices should be connected physically to host machine where PIO Remote™ Agent is started. services.0: [Up-to-date] Updating tool-esptool @ 1.0: [Up-to-date] Updating tool-scons @ 2.40801. PIO Remote™ supports wired and wireless devices. No matter where are you now! Run a small and cross-platform PIO Remote™ Agent on a remote machine and you are able to list active devices (wireless + wired).0: [Up-to-date] Updating tool-teensy @ 1.1: [Up-to-date] Platform espressif8266 -------- Updating espressif @ 0. PIO Remote™ CLI PIO Remote™ allows you to work remotely with devices from Anywhere In The World. VPN.102.0.0: [Up-to-date] Platform teensy -------- Updating teensy @ 0.121. Using PIO Remote™ you can share your devices with friends or team.128. 106 Chapter 4. to process remote unit tests. In combination with Cloud IDE.0: [Up-to-date] Updating framework-arduinoteensy @ 1. A registration is FREE. to upload firmware (program).3.4.40804. where wireless devices should be visible for PIO Remote™ Agent to provide network operations Over-The-Air (OTA).0: [Up-to-date] .0: [Up-to-date] Updating framework-arduinoespressif8266 @ 1. tunneling or opening incoming network ports. You should have PIO Account to work with PIO Remote™.0: [Up-to-date] Updating tool-scons @ 2.10502.409.1.1: [Up-to-date] Updating toolchain-atmelavr @ 1. you can create awesome things at any time when inspiration comes to you.1: [Up-to-date] Updating toolchain-xtensa @ 1.PlatformIO Documentation.0: [Up-to-date] Updating tool-mkspiffs @ 1. or to start remote debugging session via Remote Serial Port Monitor. To print all available commands and options use: pio remote --help platformio remote --help platformio remote COMMAND --help # run command on the specified PIO Remote Agents platformio remote --agent NAME_1 --agent NAME_N COMMAND PIO Remote™ Agent Start PIO Remote™ Agent on a host machine and work remotely with your devices WITHOUT extra software.1 Updating toolchain-atmelavr @ 1.40802..20300.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.0. Contents . SSH.

3.788d77375e7 Started: 2016-10-26 16:32:56 4..local ------------- ID: 98853d930.1 Contents • PIO Remote™ Agent – platformio remote agent list * Usage * Description * Example – platformio remote agent start * Usage * Description * Options – platformio remote agent reload * Usage * Description * Example platformio remote agent list Usage platformio remote agent list pio remote agent list Description List active PIO Remote™ Agent s started using own PIO Account or shared with you by other PlatformIO developers.. PlatformIO Documentation..com) innomac.. Example > platformio remote agent list PlatformIO Plus (https://pioplus.4.. PlatformIO Core 107 . Release 3.

team. -s. -d. You can use this name later for platformio remote device and platformio remote run commands. --share Share your agent/devices with other PlatformIO developers who have PIO Account: friends. --name Agent name/alias. etc. Contents . machine’s hostname will be used.1 platformio remote agent start Usage platformio remote agent start [OPTIONS] pio remote agent start [OPTIONS] Description Start PIO Remote™ Agent and work remotely with your devices from anywhere in the world. Release 3. This command can be run as daemon or added to autostart list of your OS.3. Example 108 Chapter 4. platformio remote agent reload Usage platformio remote agent reload pio remote agent reload # reload specified PIO Remote Agents platformio remote --agent NAME reload Description Allows gracefully reload one or more PIO Remote™ Agent ‘s. co-workers. office. Good names are home. --working-dir A working directory where PIO Remote™ Agent stores projects data for incremental synchronization and embedded programs for PIO Process Supervisor. By default.PlatformIO Documentation. lab or etc. Options -n. The valid value for --share option is E-Mail address that was used for platformio account register command.

For example..com) innomac.77375e7 Reloaded: 2016-11-11 23:33:32 platformio remote device Remote Device: monitor remote device or list existing. Contents • platformio remote device – platformio remote device list * Usage * Description * Options * Example – platformio remote device monitor * Usage * Description * Options * Examples platformio remote device list Usage platformio remote device list [OPTIONS] pio remote device list [OPTIONS] # List devices from the specified agents..3. Release 3.1 > platformio remote agent list PlatformIO Plus (https://pioplus. You can list devices from the specified remote machines using --agent NAME option between “remote” & “de- vice” sub-commands. you have run platformio remote agent start --name command with “home” and “office” options: 4..local ------------- ID: 98853d93.. platformio remote --agent NAME device list [OPTIONS] Description List Serial Ports on remote machines where PIO Remote™ Agent is started. PlatformIO Core 109 . PlatformIO Documentation. Multiple agents are allowed.4.

local =================== /dev/cu.).FT232R USB UART /dev/cu.obd2ecu-SPPDev ---------------------- Hardware ID: n/a Description: n/a /dev/cu.3 Description: Arduino Uno /dev/cu. to list devices from office machine please use platformio remote --agent office device list.3.1 Description: FT232R USB UART .3..usbmodemFA1431 ---------------------- Hardware ID: USB VID:PID=2A03:0043 SER=75435353038351015271 LOCATION=250-1.PlatformIO Documentation. Multiple agents are allowed ( platformio remote --agent lab1 --agent lab3 device . Contents .3.4.usbserial-A6004003 -------------------------- Hardware ID: USB VID:PID=0403:6001 SER=A6004003 LOCATION=253-1.1 Description: USB Serial platformio remote device monitor Remote Serial Port Monitor 110 Chapter 4.4..Bluetooth-Incoming-Port ------------------------------- Hardware ID: n/a Description: n/a /dev/cu. Release 3. Options --json-output Return the output in JSON format Example > platformio remote device list PlatformIO Plus (https://pioplus.SLAB_USBtoUART ---------------------- Hardware ID: USB VID:PID=10C4:EA60 SER=0001 LOCATION=253-1.usbmodem589561 ---------------------- Hardware ID: USB VID:PID=16C0:0483 SER=589560 LOCATION=250-1.2 Description: CP2102 USB to UART Bridge Controller .com) Agent innomac.1 • platformio remote agent start --name home • platformio remote agent start --name office Now.CP2102 USB to UART Bridge ˓→Controller /dev/cu.

--baud Set baud rate.g. E. --port Port. default 9600 --parity Set parity (None. default 0 --dtr Set initial DTR line state. default N --rtscts Enable RTS/CTS flow control. -f. Space. UTF-8). hexlify. default Off --rts Set initial RTS line state. S. O. M]. Odd. a number or a device name -b.3.1 Usage platformio remote device monitor [OPTIONS] pio remote device monitor [OPTIONS] # Connect to a specified agent platformio remote --agent NAME device monitor [OPTIONS] platformio remote -a NAME device monitor [OPTIONS] Description Connect to Serial Port of remote device and receive or send data in real time. Mark). Even. default UTF-8. Latin1. default 0 --echo Enable local echo. one of [N. --filter Add text transformation. default Off --xonxoff Enable software flow control. To control monitor please use these “hot keys”: • Ctrl+C Quit • Ctrl+T Menu • Ctrl+T followed by Ctrl+H Help Options -p. Available filters: 4. Release 3.4. PlatformIO Documentation. default Off --encoding Set the encoding for the serial port (e. PIO Remote™ Agent should be started before on a remote machine. PlatformIO Core 111 .

incl. default=Off --encoding TEXT Set the encoding for the serial port (e. default=29 (DEC) --menu-char INTEGER ASCII code of special character that is used to control miniterm (menu). LF or CRLF). 112 Chapter 4.1 • colorize Apply different colors for received and echo • debug Print what is sent and received • default Remove typical terminal control codes from input • direct Do-nothing: forward all data unchanged • nocontrol Remove all control codes. --filter TEXT Add text transformation --eol [CR|LF|CRLF] End of line mode. default=Off --rts [0|1] Set initial RTS line state. default CRLF --raw Do not apply any encodings/transformations --exit-char ASCII code of special character that is used to exit the application.PlatformIO Documentation. default 3 (DEC. default: UTF-8 -f. default 20 (DEC) ---quiet Diagnostics: suppress non-error messages. default=0 --echo Enable local echo. to use Ctrl+] run platformio remote device monitor --exit-char 29. For example. CR+LF • printable Show decimal code for all non-ASCII characters and replace most control codes --eol End of line mode (CR. a number or a device name -b. Ctrl+C). --help Show this message and exit. --menu-char ASCII code of special character that is used to control miniterm (menu). default=CRLF --raw Do not apply any encodings/transformations --exit-char INTEGER ASCII code of special character that is used to exit the application.g. default=Off --xonxoff Enable software flow control. Release 3. default=9600 --parity [N|E|O|S|M] Set parity. --port TEXT Port. default=Off -h. default Off Examples 1. --baud INTEGER Set baud rate. hexlify. default=20 (DEC) --quiet Diagnostics: suppress non-error messages. Show available options for monitor > platformio remote device monitor --help Usage: platformio remote device monitor [OPTIONS] Options: -p. UTF-8). Latin1.3. default=N --rtscts Enable RTS/CTS flow control. Contents . default=0 --dtr [0|1] Set initial DTR line state.

Ctrl+U Upload file (prompt will be shown) --. Odd.Port settings (Ctrl+T followed by the following): --. PlatformIO Documentation. Ctrl+T Send the menu character itself to remote --.Menu keys: --.Ctrl+] Exit program --.SLAB_USBtoUART: 9600. PlatformIO Core 113 .Bluetooth-Incoming-Port n/a --. Communicate with serial device and print help inside terminal > platformio remote device monitor --. n e o s m change parity (None. Ctrl+] Send the exit character itself to remote --. Ctrl+R RTS Ctrl+E local echo --. 1 2 3 set stop bits (1.5) --. b change baud rate --.Bluetooth-Modem n/a --./dev/cu.SLAB_USBtoUART CP2102 USB to UART Bridge Controller --. Release 3. r R disable/enable hardware flow control --.SLAB_USBtoUART --.Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Hello PlatformIO! --- --.Available ports: --. Even. Mark) --.8./dev/cu.4.Toggles: --.Ctrl+T Menu escape key.N. Ctrl+L line feed Ctrl+A Cycle repr mode --- --.obd2ecu-SPPDev n/a Enter port name:/dev/cu./dev/cu.Miniterm on /dev/cu. Ctrl+I Show info --. 2. 1. Ctrl+D DTR Ctrl+B BREAK --.1 --- --.exit --- platformio remote run Remote Firmware Updates Contents • platformio remote run – Usage – Description – Options – Example 4.1 2./dev/cu. 7 8 set data bits --. followed by: --.3. p change port --. x X disable/enable software flow control --. Space.

libraries and firmware/program binaries • upload firmware “auto-uploading” for embedded platforms • program firmware “auto-uploading” for embedded platforms using external programmer (available only for Platform atmelavr) • buildfs Uploading files to file system SPIFFS • uploadfs Uploading files to file system SPIFFS • envdump dump current build environment • size print the size of the sections in a firmware/program --upload-port Custom upload port of embedded board. -t. install required toolchains. frameworks. etc. Contents . SDKs. To print all available ports use platformio remote device command.1 Usage platformio remote run [OPTIONS] pio remote run [OPTIONS] # process environments using specified PIO Remote Agent platformio remote --agent NAME run [OPTIONS] Description Process remotely environments which are defined in Project Configuration File platformio. --environment Process specified environments. By default. By default. Release 3. --target Process specified targets. In this case. -v. PlatformIO will try to detect it automatically. If you need to process project on a remote machine.PlatformIO Documentation. -d. and process project. --project-dir Specify the path to project directory.. If upload port is not specified. You can also specify which environments should be processed by default using env_default option from Project Con- figuration File platformio.ini. Built-in targets: • clean delete compiled object files.ini file. --verbose 114 Chapter 4. PIO Remote™ builds project on a host machine and deploy final firmware (program) to a remote device (embedded board). please use platformio remote run --force-remote option. --project-dir is equal to current working directory (CWD). PIO Remote™ will automatically synchronize your project with remote machine.3. Options -e.

SDKs. In this case.pioenvs/uno/FrameworkArduino/wiring_digital. This option can be set globally using force_verbose setting or by environment variable PLATFORMIO_SETTING_FORCE_VERBOSE.pioenvs/uno/src/main. --disable-auto-clean Disable auto-clean of envs_dir when Project Configuration File platformio. PlatformIO Documentation.o Compiling . PlatformIO Core 115 . install required toolchains. If you need to process project on remote machine.pioenvs/uno/FrameworkArduino/USBCore.pioenvs/uno/FrameworkArduino/HardwareSerial0.pioenvs/uno/FrameworkArduino/WInterrupts.pioenvs/uno/FrameworkArduino/_wiring_pulse..a Compiling .o Compiling . please use platformio remote run --force-remote option.com) Building project locally [Wed Oct 26 16:35:09 2016] Processing uno (platform: atmelavr.o Compiling .o Compiling . --verbose` option Collected 25 compatible libraries Looking for dependencies. PIO Remote™ builds project on a host machine and deploy final firmware (program) to remote device (embedded board).pioenvs/uno/FrameworkArduino/WMath.pioenvs/uno/FrameworkArduino/wiring_pulse. Release 3.o Compiling .pioenvs/uno/FrameworkArduino/wiring. framework: ˓→arduino) -------------------------------------------------------------------------------- Verbose mode can be enabled via `-v.pioenvs/uno/FrameworkArduino/HardwareSerial1.pioenvs/uno/FrameworkArduino/hooks.pioenvs/uno/FrameworkArduino/Stream.a Indexing . and process project.ini or src_dir (project structure) have been modified.o Compiling . -r.o Compiling .pioenvs/uno/FrameworkArduino/HardwareSerial.pioenvs/uno/FrameworkArduino/Print.o Compiling .o Compiling .pioenvs/uno/FrameworkArduino/HardwareSerial2.o Compiling .pioenvs/uno/FrameworkArduino/Tone.o Compiling .pioenvs/uno/FrameworkArduino/WString. Project does not have dependencies Compiling .o Compiling . Example > platformio remote run --environment uno --target upload PlatformIO Plus (https://pioplus.pioenvs/uno/FrameworkArduino/PluggableUSB. board: uno.. PIO Remote™ will automatically synchronize your project with remote machine.o Compiling .o 4.3.pioenvs/uno/libFrameworkArduinoVariant.o Compiling .pioenvs/uno/FrameworkArduino/CDC.o Compiling .pioenvs/uno/FrameworkArduino/abi.o Compiling .o Compiling .pioenvs/uno/FrameworkArduino/wiring_analog.o Compiling .o Archiving .o Compiling ..4.o Compiling .pioenvs/uno/FrameworkArduino/new.o Compiling .pioenvs/uno/FrameworkArduino/main. --force-remote By default.o Compiling .pioenvs/uno/libFrameworkArduinoVariant.pioenvs/uno/FrameworkArduino/HardwareSerial3.o Compiling . etc. frameworks.pioenvs/uno/FrameworkArduino/IPAddress.1 Shows detailed information when processing environments.

elf Checking program size Building .hex contains 2622 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0. Release 3.elf ========================= [SUCCESS] Took 10.01 seconds ======================= ================================== [SUMMARY] ================================= Environment nodemcuv2 [SKIP] Environment uno_pic32 [SKIP] Environment teensy31 [SKIP] Environment uno [SUCCESS] ========================= [SUCCESS] Took 10. avrdude: 2622 bytes of flash verified avrdude done.o Archiving .pioenvs/uno/FrameworkArduino/wiring_shift..PlatformIO Documentation.usbmodemFA1431 Uploading . --verbose` option Looking for upload port..pioenvs/uno/firmware.pioenvs/uno/libFrameworkArduino.pioenvs/uno/firmware.a Linking .. board: uno.1 Compiling . framework: ˓→arduino) -------------------------------------------------------------------------------------- ˓→-------- Verbose mode can be enabled via `-v.a Indexing .04 seconds ======================== platformio remote test Helper command for remote Unit Testing.34s avrdude: verifying .pioenvs/uno/firmware.pioenvs/uno/firmware.hex: avrdude: load data flash data from input file . ========================= [SUCCESS] Took 3.pioenvs/uno/firmware.00s avrdude: Device signature = 0x1e950f avrdude: reading input file ". Contents . Thank you. Auto-detected: /dev/cu..pioenvs/uno/firmware.43s avrdude: 2622 bytes of flash written avrdude: verifying flash memory against . Contents • platformio remote test 116 Chapter 4.hex: avrdude: input file .3.01 seconds ======================== Uploading firmware remotely [Wed Oct 26 19:35:20 2016] Processing uno (platform: atmelavr.pioenvs/uno/firmware.04 seconds ======================= ========================= [SUMMARY] ========================================= Environment nodemcuv2 [SKIP] Environment uno_pic32 [SKIP] Environment teensy31 [SKIP] Environment uno [SUCCESS] ========================= [SUCCESS] Took 3.hex" avrdude: writing flash (2622 bytes): Writing | ################################################## | 100% 0.hex text data bss dec hex filename 2574 48 168 2790 ae6 .pioenvs/uno/firmware.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.pioenvs/uno/libFrameworkArduino.

Options -e. By default. -d. This command allows you to apply the tests for the environments specified in Project Configuration File platformio. PlatformIO Core 117 . If upload port is not specified. --project-dir Specify the path to project directory. PlatformIO will try to detect it automatically. To list available ports please use platformio device list command. If you need to ignore some tests for the specific environment. 4. PlatformIO will try to detect it automatically.ini. --ignore Ignore tests where the name matches specified patterns.4.1 – Usage – Description – Options – Examples Usage platformio remote test [OPTIONS] pio remote test [OPTIONS] # run tests on specified PIO Remote Agent platformio remote --agent NAME test [OPTIONS] Description Run remotely tests from PlatformIO based project.ini. Release 3. please take a look at test_ignore option from Project Configuration File platformio. More than one pattern is allowed. More details platformio run --environment -i. Pattern Meaning * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any character not in seq For example. --project-dir is equal to current working directory (CWD). More details about PlatformIO Unit Testing. PlatformIO Documentation.3. --test-port A Serial/UART port that PlatformIO uses as communication interface between PlatformIO Unit Test Engine and target device. platformio remote test --ignore "mytest*" -i "test[13]" --upload-port A port that is intended for firmware uploading. To list available ports please use platformio device list command. If test port is not specified. --environment Process specified environments.

3. Examples For the examples please follow to Unit Testing page. If you need to process project on remote machine. 118 Chapter 4. platformio remote update Contents • platformio remote update – Usage – Description – Options – Examples Usage platformio remote update [OPTIONS] pio remote update [OPTIONS] # start update process on the specified agents/machines platformio remote --agent NAME update [OPTIONS] Description Check or update installed Development Platforms and global Libraries on the remote machine. etc. Contents . and process project. please use platformio remote test --force-remote option. Release 3. --verbose Shows detailed information when processing environments. PIO Remote™ will automatically synchronize your project with remote machine. This option can be set globally using force_verbose setting or by environment variable PLATFORMIO_SETTING_FORCE_VERBOSE. SDKs. --without-uploading Skip uploading stage -v. --without-building Skip building stage. frameworks.. install required toolchains. --force-remote By default. In this case.1 -r.PlatformIO Documentation. PIO Remote™ processes project on a host machine and deploy final testing firmware (program) to remote device (embedded board).

10200.0: [Up-to-date] Updating framework-arduinoavr @ 1.0: [Up-to-date] Updating tool-stlink @ 1.0: [Up-to-date] 4. --only-check Do not update.0.40804.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.1: [Up-to-date] Platform espressif8266 -------- Updating espressif8266 @ 0.1 Options -c.0.10601.4.40603.0.10608.0: [Up-to-date] Updating tool-scons @ 2.3.121.1: [Up-to-date] Platform atmelavr -------- Updating atmelavr @ 0.60001.121.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating toolchain-timsp430 @ 1.1: [Up-to-date] Updating toolchain-atmelavr @ 1.com) Platform Manager ================ Platform timsp430 -------- Updating timsp430 @ 0. Release 3.0.10201.0: [Up-to-date] Updating framework-cmsis @ 1.17.4.1: [Up-to-date] Platform ststm32 -------- Updating ststm32 @ 0.1: [Up-to-date] Updating tool-avrdude @ 1.1: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Platform lattice_ice40 -------- Updating lattice_ice40 @ 0.4.0: [Up-to-date] Updating framework-spl @ 1.4.40801.1.40804.0: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Platform freescalekinetis -------- Updating freescalekinetis @ 0.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1. PlatformIO Core 119 .0: [Up-to-date] Updating framework-libopencm3 @ 1.0: [Up-to-date] Updating toolchain-icestorm @ 1.0: [Up-to-date] Updating framework-arduinomsp430 @ 1.0.4.0: [Up-to-date] Updating framework-energiamsp430 @ 1.7.40300. only check for new version Examples > platformio remote update PlatformIO Plus (https://pioplus.0: [Up-to-date] Updating tool-scons @ 2.4.0. PlatformIO Documentation.

121.128.0: [Up-to-date] 120 Chapter 4.0: [Up-to-date] Updating sdk-esp8266 @ 1.0: [Up-to-date] Updating toolchain-gcclinux64 @ 1.0: [Up-to-date] Updating tool-openocd @ 1.40804.4.10601.3.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating framework-libopencm3 @ 1.0.1 Updating tool-scons @ 2. Contents .1: [Up-to-date] Platform teensy -------- Updating teensy @ 0.4.1: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating toolchain-gccmingw32 @ 1.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.4.1: [Up-to-date] Updating toolchain-xtensa @ 1.4.1.1: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-scons @ 2.102.20300.0: [Up-to-date] Platform linux_x86_64 -------- Updating linux_x86_64 @ 0.1: [Up-to-date] Platform atmelsam -------- Updating atmelsam @ 0. Release 3.1.1: [Up-to-date] Platform windows_x86 -------- Updating windows_x86 @ 0.1: [Up-to-date] Updating tool-bossac @ 1.1: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating framework-arduinoespressif8266 @ 1.4.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.0: [Up-to-date] Updating framework-arduinoteensy @ 1.1: [Up-to-date] Updating toolchain-atmelavr @ 1.0: [Up-to-date] Updating framework-energiativa @ 1.0: [Up-to-date] Updating framework-mbed @ 1.4.0.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.0.0.121.0.409.PlatformIO Documentation.10502.121.40800.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.40801.0: [Up-to-date] Updating tool-mkspiffs @ 1.1: [Up-to-date] Updating tool-avrdude @ 1.0: [Up-to-date] Platform nordicnrf51 -------- Updating nordicnrf51 @ 0.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating tool-esptool @ 1.0.0: [Up-to-date] Updating framework-arduinonordicnrf51 @ 1.0: [Up-to-date] Platform siliconlabsefm32 -------- Updating siliconlabsefm32 @ 0.60001.20302.0.4.1: [Up-to-date] Platform titiva -------- Updating titiva @ 0.40802.17.40804.40801.40804.900.0: [Up-to-date] Updating tool-teensy @ 1.40804.

1: [Up-to-date] Platform microchippic32 -------- Updating microchippic32 @ 0.0. PlatformIO Core 121 .0.4.0: [Up-to-date] Updating toolchain-microchippic32 @ 1.4.6.0: [Up-to-date] Updating toolchain-gccarmlinuxgnueabi @ 1.40804. PlatformIO Documentation.1.1: [Up-to-date] Platform linux_arm -------- Updating linux_arm @ 0.4.2.0: [Up-to-date] Updating tool-scons @ 2.10006.0.3: [Up-to-date] Updating EngduinoMagnetometer @ 3.1: [Up-to-date] Library Manager =============== Updating Adafruit-GFX @ 334e815bc1: [Up-to-date] Updating Adafruit-ST7735 @ d53d4bf03a: [Up-to-date] Updating Adafruit-DHT @ 09344416d2: [Up-to-date] Updating Adafruit-Unified-Sensor @ f2af6f4efc: [Up-to-date] Updating ESP8266_SSD1306 @ 3.40803.4: [Up-to-date] Updating MODSERIAL @ d8422efe47: [Up-to-date] Updating PJON @ 1fb26fd: [Checking] git version 2.40802.4 (Apple Git-66) 4.1: [Up-to-date] Platform intel_arc32 -------- Updating intel_arc32 @ 0.0.0: [Up-to-date] Updating tool-arduino101load @ 1.121.0: [Up-to-date] Updating framework-arduinointel @ 1.0: [Up-to-date] Updating toolchain-intelarc32 @ 1.4.3.0: [Up-to-date] Updating framework-arduinomicrochippic32 @ 1.40804.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.10201.0: [Up-to-date] Updating tool-scons @ 2.200200.7.2.0: [Up-to-date] Updating IRremote @ 2.1: [Up-to-date] Platform nxplpc -------- Updating nxplpc @ 0.40801.0: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Updating Json @ 5.0.4.0: [Up-to-date] Updating toolchain-gcclinux32 @ 1.0: [Up-to-date] Updating tool-scons @ 2. Release 3.0: [Up-to-date] Updating tool-pic32prog @ 1.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.0: [Up-to-date] Updating tool-scons @ 2.4.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating framework-mbed @ 1.1: [Up-to-date] Platform linux_i686 -------- Updating linux_i686 @ 0.1: [Up-to-date] Platform native -------- Updating native @ 0.124.0.4.4.121.40805.1 Updating framework-mbed @ 1.

mbed.8. see the source for copying conditions. Contents .org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. There is NO warranty. There is NO warranty.4) (see https://mercurial-scm. 122 Chapter 4.org/users/simon/code/TextLCD/ searching for changes no changes found platformio run Contents • platformio run – Usage – Description – Options – Examples Usage platformio run [OPTIONS] pio run [OPTIONS] Description Process environments which are defined in Project Configuration File platformio. --environment Process specified environments. pulling from https://developer.4) (see https://mercurial-scm.1 Already up-to-date.3. Updating Servo @ 36b69a7ced07: [Checking] Mercurial Distributed SCM (version 3. Release 3.PlatformIO Documentation.org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software. see the source for copying conditions.mbed.8.org/users/simon/code/Servo/ searching for changes no changes found Updating TextLCD @ 308d188a2d3a: [Checking] Mercurial Distributed SCM (version 3.ini file Options -e. pulling from https://developer. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

build flags.4. board: uno.1 You can also specify which environments should be processed by default using env_default option from Project Con- figuration File platformio. -d. Release 3. Process Wiring Blink Example > platformio run [Wed Sep 7 15:48:58 2016] Processing uno (platform: atmelavr. PlatformIO Documentation. framework: ˓→arduino) 4. -s.3. --target Process specified targets. libraries and firmware/program binaries – upload firmware “auto-uploading” for embedded platforms – program firmware “auto-uploading” for embedded platforms using external programmer (available only for Platform atmelavr) – fuses set fuse bits (available only for Platform atmelavr) – buildfs Uploading files to file system SPIFFS – uploadfs Uploading files to file system SPIFFS – size print the size of the sections in a firmware/program • Service – envdump dump current build environment – idedata export build environment for IDE (defines. --silent Suppress progress reporting -v. If upload port is not specified. PlatformIO Core 123 .ini.) --upload-port Custom upload port of embedded board.ini or src_dir (project structure) have been modified. To print all available ports use platformio device command. --verbose Shows detailed information when processing environments. Examples 1. --project-dir is equal to current working directory (CWD). This option can be set globally using force_verbose setting or by environment variable PLATFORMIO_SETTING_FORCE_VERBOSE. CPPPATH. By default. Built-in targets: • Processing – clean delete compiled object files. --project-dir Specify the path to project directory. etc. --disable-auto-clean Disable auto-clean of envs_dir when Project Configuration File platformio. -t. PlatformIO will try to detect it automatically.

elf text data bss dec hex filename 221240 888 29400 251528 3d688 .data + .47 seconds =========================== [Wed Sep 7 15:49:01 2016] Processing nodemcu (platform: espressif8266.a Linking ..data + . board: ˓→nodemcu.pioenvs/uno/libFrameworkArduino.a Linking .bss + . framework: arduino) -------------------------------------------------------------------------------------- ˓→--------- Verbose mode can be enabled via `-v.pioenvs/nodemcu/libFrameworkArduino.elf Building .pioenvs/nodemcu/libFrameworkArduinoVariant.hex Calculating size .pioenvs/nodemcu/firmware. --verbose` option Collected 34 compatible libraries Looking for dependencies..bootloader) Data: 9 bytes (0.pioenvs/uno/libFrameworkArduinoVariant.pioenvs/nodemcu/FrameworkArduino/HardwareSerial.a Indexing .pioenvs/nodemcu/firmware.pioenvs/nodemcu/firmware.elf AVR Memory Usage ---------------- Device: atmega328p Program: 1034 bytes (3.pioenvs/uno/libFrameworkArduino.bin =========================== [SUCCESS] Took 6. Release 3.1 -------------------------------------------------------------------------------------- ˓→--------- Verbose mode can be enabled via `-v.pioenvs/uno/firmware. ˓→framework: arduino) -------------------------------------------------------------------------------------- ˓→--------- 124 Chapter 4.pioenvs/uno/firmware.noinit) =========================== [SUCCESS] Took 2.pioenvs/uno/FrameworkArduino/wiring_shift.elf Building . board: teensy31.4% Full) (.pioenvs/nodemcu/libFrameworkArduino.pioenvs/uno/libFrameworkArduinoVariant.a Compiling .pioenvs/nodemcu/FrameworkArduino/FS. Contents .o Archiving .pioenvs/nodemcu/firmware.text + .o ..a Indexing .43 seconds =========================== [Wed Sep 7 15:49:07 2016] Processing teensy31 (platform: teensy.o Compiling .pioenvs/uno/src/main.a Compiling . Compiling . Archiving .PlatformIO Documentation.pioenvs/nodemcu/FrameworkArduino/Esp.o Archiving .3..elf Calculating size ..pioenvs/nodemcu/src/main.a Indexing .o Archiving ..o Compiling . Project does not have dependencies Compiling .pioenvs/uno/firmware..pioenvs/nodemcu/libFrameworkArduinoVariant.pioenvs/uno/FrameworkArduino/CDC.. --verbose` option Collected 36 compatible libraries Looking for dependencies.2% Full) (.a Indexing .o . Project does not have dependencies Compiling .

.a Compiling .o Compiling .. Compiling .pioenvs/nodemcu/libFrameworkArduinoVariant.o Archiving . framework: arduino) -------------------------------------------------------------------------------------- ˓→--------- Verbose mode can be enabled via `-v.o 4.pioenvs/lpmsp430g2553/libFrameworkEnergia.o Compiling .hex =========================== [SUCCESS] Took 2.pioenvs/lpmsp430g2553/FrameworkEnergia/wiring_shift.pioenvs/teensy31/FrameworkArduino/yield.4.o . Process specific environment > platformio run -e nodemcu -e teensy31 [Wed Sep 7 15:49:01 2016] Processing nodemcu (platform: espressif8266. build_flags: ˓→-D LED_BUILTIN=RED_LED.o Archiving .o Compiling .pioenvs/teensy31/firmware.pioenvs/teensy31/src/main.elf Calculating size .a Linking . PlatformIO Documentation.elf text data bss dec hex filename 11288 168 2288 13744 35b0 .1 Verbose mode can be enabled via `-v.pioenvs/teensy31/libFrameworkArduino.pioenvs/nodemcu/src/main.a Linking . Compiling .pioenvs/lpmsp430g2553/src/main.o .o Compiling .pioenvs/teensy31/libFrameworkArduino.pioenvs/lpmsp430g2553/firmware.pioenvs/nodemcu/FrameworkArduino/Esp.elf Building .pioenvs/lpmsp430g2553/FrameworkEnergia/wiring_digital...elf Calculating size .pioenvs/lpmsp430g2553/firmware..pioenvs/nodemcu/libFrameworkArduinoVariant.a Indexing . Release 3.pioenvs/lpmsp430g2553/FrameworkEnergia/HardwareSerial..pioenvs/teensy31/firmware. --verbose` option Collected 34 compatible libraries Looking for dependencies. board: lpmsp430g2553.hex =========================== [SUCCESS] Took 5.pioenvs/lpmsp430g2553/FrameworkEnergia/wiring_pulse. --verbose` option Collected 96 compatible libraries Looking for dependencies. Project does not have dependencies Compiling .pioenvs/teensy31/FrameworkArduino/DMAChannel..o Compiling .pioenvs/lpmsp430g2553/firmware.pioenvs/lpmsp430g2553/libFrameworkEnergia.o Archiving . PlatformIO Core 125 . Project does not have dependencies Compiling .pioenvs/teensy31/firmware.a Indexing . Project does not have dependencies Compiling .36 seconds =========================== [Wed Sep 7 15:49:12 2016] Processing lpmsp430g2553 (platform: timsp430.34 seconds =========================== 2.pioenvs/teensy31/firmware.o Compiling .pioenvs/lpmsp430g2553/FrameworkEnergia/IPAddress.pioenvs/teensy31/FrameworkArduino/AudioStream. --verbose` option Collected 29 compatible libraries Looking for dependencies.a Indexing .3.elf text data bss dec hex filename 820 0 20 840 348 . board: ˓→nodemcu... framework: energia) -------------------------------------------------------------------------------------- ˓→--------- Verbose mode can be enabled via `-v.elf Building ..pioenvs/lpmsp430g2553/firmware.

o Compiling .pioenvs/nodemcu/libFrameworkArduino.o Removed . Archiving .pioenvs/uno/FrameworkArduino/HardwareSerial3..pioenvs/nodemcu/FrameworkArduino/HardwareSerial.pioenvs/teensy31/FrameworkArduino/AudioStream.a Indexing .o Compiling .o Removed .elf Calculating size .o Removed .bin =========================== [SUCCESS] Took 6.pioenvs/nodemcu/firmware.o 126 Chapter 4. Compiling .3.o Removed . framework: ˓→arduino) -------------------------------------------------------------------------------------- ˓→--------------- Removed .o Compiling .pioenvs/nodemcu/libFrameworkArduino.. Release 3.pioenvs/uno/FrameworkArduino/hooks.elf Calculating size .a Removed .o . Project does not have dependencies Compiling .pioenvs/nodemcu/firmware.pioenvs/uno/FrameworkArduino/new.o Removed .pioenvs/teensy31/src/main.hex =========================== [SUCCESS] Took 5.a Indexing .pioenvs/uno/firmware.pioenvs/uno/FrameworkArduino/main.pioenvs/uno/libFrameworkArduino. ˓→framework: arduino) -------------------------------------------------------------------------------------- ˓→--------- Verbose mode can be enabled via `-v.1 Compiling .pioenvs/teensy31/firmware.o Removed .elf text data bss dec hex filename 221240 888 29400 251528 3d688 .pioenvs/teensy31/FrameworkArduino/yield.pioenvs/teensy31/firmware. Contents .pioenvs/uno/FrameworkArduino/abi.pioenvs/uno/firmware.elf Building .pioenvs/teensy31/FrameworkArduino/DMAChannel.o Removed .pioenvs/uno/FrameworkArduino/HardwareSerial2. Process specific target (clean project) > platformio run -t clean [Wed Sep 7 15:53:26 2016] Processing uno (platform: atmelavr.elf Removed .o Removed .hex Removed . --verbose` option Collected 96 compatible libraries Looking for dependencies.pioenvs/uno/FrameworkArduino/PluggableUSB.o Removed ..pioenvs/nodemcu/firmware. board: teensy31.o Removed .pioenvs/teensy31/libFrameworkArduino..pioenvs/nodemcu/firmware..a Linking .pioenvs/uno/libFrameworkArduinoVariant.43 seconds =========================== [Wed Sep 7 15:49:07 2016] Processing teensy31 (platform: teensy.pioenvs/nodemcu/FrameworkArduino/FS.pioenvs/uno/FrameworkArduino/CDC.o .a Removed ..pioenvs/uno/FrameworkArduino/IPAddress.elf Building .o Removed .o Removed .pioenvs/uno/FrameworkArduino/HardwareSerial1.pioenvs/uno/FrameworkArduino/HardwareSerial0.PlatformIO Documentation.pioenvs/teensy31/firmware.pioenvs/uno/FrameworkArduino/_wiring_pulse. board: uno.o Archiving .36 seconds =========================== 3.pioenvs/teensy31/firmware.elf text data bss dec hex filename 11288 168 2288 13744 35b0 .a Linking .pioenvs/teensy31/libFrameworkArduino.pioenvs/uno/FrameworkArduino/HardwareSerial.

o .pioenvs/uno/FrameworkArduino/Tone.o Removed .pioenvs/uno/src/main.pioenvs/lpmsp430g2553/FrameworkEnergia/avr/dtostrf.o Removed .pioenvs/teensy31/src/main.pioenvs/teensy31/FrameworkArduino/AudioStream.pioenvs/uno/FrameworkArduino/Stream..o Removed .pioenvs/uno/FrameworkArduino/wiring_pulse. build_flags: ˓→-D LED_BUILTIN=RED_LED.pioenvs/lpmsp430g2553/libFrameworkEnergia. board: ˓→nodemcu.1 Removed .pioenvs/uno/FrameworkArduino/wiring.o Removed .pioenvs/uno/FrameworkArduino/Print.elf Removed . Removed .o Removed .pioenvs/lpmsp430g2553/src/main.bin Removed .o Removed .o Removed . Release 3. Removed .o Removed .pioenvs/lpmsp430g2553/firmware.o .pioenvs/uno/FrameworkArduino/wiring_analog.50 seconds ======================= [Wed Sep 7 15:53:27 2016] Processing teensy31 (platform: teensy.pioenvs/lpmsp430g2553/FrameworkEnergia/atof. PlatformIO Core 127 . framework: arduino) -------------------------------------------------------------------------------------- ˓→--------------- Removed .pioenvs/nodemcu/FrameworkArduino/spiffs/spiffs_nucleus. framework: energia) -------------------------------------------------------------------------------------- ˓→--------------- Removed .elf Removed .o Removed ..o Removed .a Removed .pioenvs/teensy31/FrameworkArduino/yield.o Done cleaning ======================= [SUCCESS] Took 0.pioenvs/uno/FrameworkArduino/wiring_digital. PlatformIO Documentation.o Removed .a Removed .pioenvs/teensy31/firmware. ˓→framework: arduino) -------------------------------------------------------------------------------------- ˓→--------------- Removed .pioenvs/nodemcu/firmware.pioenvs/nodemcu/libFrameworkArduinoVariant.49 seconds ======================= [Wed Sep 7 15:53:27 2016] Processing nodemcu (platform: espressif8266.3.o Done cleaning ======================= [SUCCESS] Took 0.o Removed .pioenvs/teensy31/FrameworkArduino/analog.pioenvs/nodemcu/firmware.pioenvs/uno/FrameworkArduino/WString.pioenvs/uno/FrameworkArduino/USBCore.. board: lpmsp430g2553.pioenvs/uno/FrameworkArduino/WInterrupts.pioenvs/uno/FrameworkArduino/WMath.50 seconds ======================= [Wed Sep 7 15:53:28 2016] Processing lpmsp430g2553 (platform: timsp430.pioenvs/nodemcu/FrameworkArduino/umm_malloc/umm_malloc.pioenvs/teensy31/FrameworkArduino/WString.a Removed .pioenvs/uno/FrameworkArduino/wiring_shift.pioenvs/teensy31/libFrameworkArduino.pioenvs/nodemcu/src/main..elf Removed .o Removed .a . board: teensy31.pioenvs/nodemcu/libFrameworkArduino.pioenvs/lpmsp430g2553/firmware.o Removed ..o 4. Removed .hex Removed .o Removed .hex Removed .o Removed .o Removed .o Removed .pioenvs/teensy31/firmware.4..o Done cleaning ======================= [SUCCESS] Took 0.

3.pioenvs/uno/firmware.hex" avrdude: writing flash (1034 bytes): Writing | ################################################## | 100% 0..a Linking .pioenvs/uno/firmware.pioenvs/uno/libFrameworkArduinoVariant..14 seconds ======================== 128 Chapter 4.a Compiling ..o Archiving . ======================== [SUCCESS] Took 4.hex contains 1034 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0. Auto-detected: /dev/cu.hex: avrdude: load data flash data from input file .o ..a Indexing .pioenvs/uno/firmware.pioenvs/uno/firmware. framework: ˓→arduino) -------------------------------------------------------------------------------------- ˓→------------ Verbose mode can be enabled via `-v.1 Done cleaning ======================= [SUCCESS] Took 0.hex: avrdude: input file .pioenvs/uno/src/main. Release 3.pioenvs/uno/libFrameworkArduinoVariant. Compiling .elf Building .elf text data bss dec hex filename 1034 0 9 1043 413 .a Indexing .usbmodemFA141 Uploading .elf Checking program size .18s avrdude: 1034 bytes of flash written avrdude: verifying flash memory against .PlatformIO Documentation.o Archiving . Thank you.pioenvs/uno/FrameworkArduino/wiring_shift.pioenvs/uno/libFrameworkArduino.. board: uno.01s avrdude: Device signature = 0x1e950f avrdude: reading input file ".15s avrdude: verifying . Contents .hex Looking for upload port.pioenvs/uno/FrameworkArduino/CDC.pioenvs/uno/firmware.49 seconds ======================= 4..pioenvs/uno/firmware. L:00) avrdude done.pioenvs/uno/firmware. avrdude: 1034 bytes of flash verified avrdude: safemode: Fuses OK (H:00.pioenvs/uno/firmware. Mix environments and targets > platformio run -e uno -t upload [Wed Sep 7 15:55:11 2016] Processing uno (platform: atmelavr.pioenvs/uno/libFrameworkArduino. --verbose` option Collected 36 compatible libraries Looking for dependencies... Project does not have dependencies Compiling .pioenvs/uno/firmware. E:00.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.

PlatformIO Core 129 .4. Release 3.3.1 platformio settings Manage PlatformIO settings Contents • platformio settings – platformio settings get * Usage * Description * Settings · auto_update_libraries · auto_update_platforms · check_libraries_interval · check_platformio_interval · check_platforms_interval · enable_ssl · enable_cache · force_verbose · enable_telemetry * Examples – platformio settings set * Usage * Description * Examples – platformio settings reset * Usage * Description * Examples platformio settings get Usage platformio settings get [NAME] pio settings get [NAME] 4. PlatformIO Documentation.

enable_ssl Default No Values Yes/No Enable SSL for PlatformIO Services 130 Chapter 4. Release 3. check_libraries_interval Default 7 Values Days (Number) Check for the library updates interval.1 Description Get/List existing settings Settings auto_update_libraries Default Yes Values Yes/No Automatically update libraries. Contents . check_platforms_interval Default 7 Values Days (Number) Check for the platform updates interval.PlatformIO Documentation. auto_update_platforms Default Yes Values Yes/No Automatically update platforms.3. check_platformio_interval Default 3 Values Days (Number) Check for the new PlatformIO interval.

“lib list”. The source code of telemetry service is open source. “uno”. “run”.4. Release 3.1 enable_cache Default Yes Values Yes/No Enable caching for API requests and Library Manager force_verbose Default No Values Yes/No Force verbose output when processing environments.) This gives us a sense of what parts of the PlatformIO is most important. PlatformIO Documentation. PlatformIO Core 131 . etc. List all settings and theirs current values 4. etc.) • The name of commands (for example. Thanks a lot that keep this setting enabled.) • The type of IDE (for example. boards. “atom”. • You can override these settings using Environment variables. 1. “arduino”. Y. You can make sure that we DO NOT share PRIVATE information or source code of your project. Note: • The Yes value is equl to: True. “espressif”. “eclipse”.3. The value is not case sensetive. All information shares anonymously. frameworks (for example. Examples 1. etc. This setting overrides • platformio run --verbose • platformio ci --verbose • platformio test --verbose enable_telemetry Default Yes Values Yes/No Share diagnostics and usage information to help us make PlatformIO better: • PlatformIO errors/exceptions • The name of used platforms.

3.PlatformIO Documentation. Contents . Show specified setting $ platformio settings get auto_update_platforms Name Value [Default] Description -------------------------------------------------------------------------------------- ˓→---- auto_update_platforms Yes Automatically update platforms (Yes/ ˓→No) platformio settings set Usage platformio settings set NAME VALUE Description Set new value for the setting Examples Change to check for the new PlatformIO each day $ platformio settings set check_platformio_interval 1 The new value for the setting has been set! Name Value [Default] Description -------------------------------------------------------------------------------------- ˓→---- check_platformio_interval 1 [3] Check for the new PlatformIO ˓→interval (days) 132 Chapter 4.1 > platformio settings get Name Value [Default] Description -------------------------------------------------------------------------------------- ˓→---- auto_update_libraries No Automatically update libraries (Yes/ ˓→No) auto_update_platforms No Automatically update platforms (Yes/ ˓→No) check_libraries_interval 7 Check for the library updates ˓→interval (days) check_platformio_interval 3 Check for the new PlatformIO ˓→interval (days) check_platforms_interval 7 Check for the platform updates ˓→interval (days) enable_cache Yes Enable caching for API requests and ˓→Library Manager enable_ssl No Enable SSL for PlatformIO Services enable_telemetry Yes Telemetry service (Yes/No) force_verbose No Force verbose output when ˓→processing environments 2. Release 3.

3. PlatformIO Documentation.4. Contents • platformio test – Usage – Description – Options – Examples 4.1 platformio settings reset Usage platformio settings reset Description Reset settings to default Examples $ platformio settings reset The settings have been reseted! Name Value [Default] Description -------------------------------------------------------------------------------------- ˓→---- auto_update_libraries No Automatically update libraries (Yes/ ˓→No) auto_update_platforms No Automatically update platforms (Yes/ ˓→No) check_libraries_interval 7 Check for the library updates ˓→interval (days) check_platformio_interval 3 Check for the new PlatformIO ˓→interval (days) check_platforms_interval 7 Check for the platform updates ˓→interval (days) enable_cache Yes Enable caching for API requests and ˓→Library Manager enable_ssl No Enable SSL for PlatformIO Services enable_telemetry Yes Telemetry service (Yes/No) force_verbose No Force verbose output when ˓→processing environments platformio test Helper command for local Unit Testing. PlatformIO Core 133 . Release 3.

1 Usage platformio test [OPTIONS] pio test [OPTIONS] Description Run locally tests from PlatformIO based project.ini. If you need to ignore some tests for the specific environment.DTR/RST before test running. --without-building Skip building stage. --project-dir Specify the path to project directory.PlatformIO Documentation.3. This command allows you to apply the tests for the environments specified in Project Configuration File platformio. --without-uploading Skip uploading stage --no-reset Disable software reset via Serial. platformio test --ignore "mytest*" -i "test[13]" --upload-port A port that is intended for firmware uploading. -d. To list available ports please use platformio device list command. PlatformIO will try to detect it automatically. Options -e. --environment Process specified environments. If test port is not specified. More than one pattern is allowed. If upload port is not specified. PlatformIO will try to detect it automatically. --project-dir is equal to current working directory (CWD). 134 Chapter 4. More details about PlatformIO Unit Testing. In this case. need to press “reset” button manually after firmware uploading. --ignore Ignore tests where the name matches specified patterns. Release 3. Pattern Meaning * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any character not in seq For example. To list available ports please use platformio device list command.ini. Contents . --test-port A Serial/UART port that PlatformIO uses as communication interface between PlatformIO Unit Test Engine and target device. More details platformio run --environment -i. please take a look at test_ignore option from Project Configuration File platformio. By default.

PlatformIO Core 135 .4. Development Platforms and global Libraries. --monitor-rts Set initial RTS line state for Serial Monitor (0 or 1). We need that time to establish a ``Serial communication be- tween host machine and target device. default 1. We use it to gather test results via Serial connection. Examples For the examples please follow to Unit Testing page. -v. This command is combi- nation of 2 sub-commands: • platformio platform update • platformio lib update 4. platformio update Contents • platformio update – Usage – Description – Options – Examples Usage platformio update [OPTIONS] pio update [OPTIONS] Description Check or update installed PIO Core packages.3. This option can be set globally using force_verbose setting or by environment variable PLATFORMIO_SETTING_FORCE_VERBOSE.DTR/RTS you should add >2 seconds delay before UNITY_BEGIN()`. See Unit Testing. --monitor-dtr Set initial DTR line state for Serial Monitor (0 or 1). PlatformIO Documentation. Release 3. --verbose Shows detailed information when processing environments. We use it to gather test results via Serial connection.1 Warning: If board does not support software reset via Serial. default 1.

4.4.1: [Up-to-date] Updating toolchain-atmelavr @ 1. Release 3.7.10200.0: [Up-to-date] Updating toolchain-timsp430 @ 1.40804.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1. only check for new version Examples > platformio update Platform Manager ================ Platform timsp430 -------- Updating timsp430 @ 0.0.10201.1: [Up-to-date] Platform freescalekinetis -------- Updating freescalekinetis @ 0.1: [Up-to-date] Platform atmelavr -------- Updating atmelavr @ 0.0: [Up-to-date] Updating toolchain-icestorm @ 1.1: [Up-to-date] Updating tool-scons @ 2.4.0: [Up-to-date] Updating framework-mbed @ 1.121.0.0.0: [Up-to-date] Updating framework-spl @ 1.1: [Up-to-date] Platform espressif8266 136 Chapter 4.1 Options --core-packages Update only the core packages -c.0: [Up-to-date] Updating framework-libopencm3 @ 1.1: [Up-to-date] Updating tool-avrdude @ 1.0: [Up-to-date] Updating framework-arduinoavr @ 1. --only-check Do not update.0: [Up-to-date] Updating framework-cmsis @ 1.1: [Up-to-date] Platform lattice_ice40 -------- Updating lattice_ice40 @ 0.1: [Up-to-date] Platform ststm32 -------- Updating ststm32 @ 0.60001.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-scons @ 2.PlatformIO Documentation.4.0.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-stlink @ 1.40603.0: [Up-to-date] Updating framework-energiamsp430 @ 1.1.0: [Up-to-date] Updating framework-arduinomsp430 @ 1.0: [Up-to-date] Updating framework-mbed @ 1.40801.3. Contents .4.10608.0.10601.17.40300.121.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.40804.

0.40802.1: [Up-to-date] Platform windows_x86 -------- Updating windows_x86 @ 0.0: [Up-to-date] Updating tool-openocd @ 1.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-teensy @ 1.40804.0: [Up-to-date] Updating tool-mkspiffs @ 1.0.0: [Up-to-date] Updating framework-arduinoespressif8266 @ 1.1.0: [Up-to-date] Updating sdk-esp8266 @ 1.10601.1: [Up-to-date] Updating tool-scons @ 2.40804.3.40800.20300.1: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Platform nordicnrf51 -------- Updating nordicnrf51 @ 0.4.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.121.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.1.102.0: [Up-to-date] Updating framework-mbed @ 1.40804.0.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.4.40801.0.0.1: [Up-to-date] Platform atmelsam -------- Updating atmelsam @ 0.0: [Up-to-date] Updating toolchain-gccmingw32 @ 1.4.40804.17.0: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Updating tool-bossac @ 1. PlatformIO Core 137 . PlatformIO Documentation.121.1: [Up-to-date] Updating toolchain-xtensa @ 1.0: [Up-to-date] Updating framework-mbed @ 1.409.1: [Up-to-date] Updating tool-avrdude @ 1.10502.1: [Up-to-date] Platform teensy -------- Updating teensy @ 0.128.0: [Up-to-date] Platform linux_x86_64 -------- Updating linux_x86_64 @ 0.0: [Up-to-date] Updating tool-esptool @ 1.0: [Up-to-date] Updating toolchain-gcclinux64 @ 1.4.4.121.4.0: [Up-to-date] Updating framework-energiativa @ 1.0: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.60001.0: [Up-to-date] Updating framework-libopencm3 @ 1.40801.0: [Up-to-date] Updating framework-arduinoteensy @ 1.900.1 -------- Updating espressif8266 @ 0.0: [Up-to-date] Updating framework-arduinonordicnrf51 @ 1.4.0: [Up-to-date] Updating tool-scons @ 2.0.0: [Up-to-date] Updating tool-scons @ 2.1: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Platform siliconlabsefm32 4.4.1: [Up-to-date] Updating toolchain-atmelavr @ 1.0.20302.1: [Up-to-date] Platform titiva -------- Updating titiva @ 0. Release 3.

0: [Up-to-date] Updating tool-scons @ 2.40803.1: [Up-to-date] Platform intel_arc32 -------- Updating intel_arc32 @ 0.0: [Up-to-date] Updating IRremote @ 2. Release 3.0.0: [Up-to-date] Updating framework-mbed @ 1.0: [Up-to-date] Updating tool-pic32prog @ 1.121.0: [Up-to-date] Updating toolchain-intelarc32 @ 1.0: [Up-to-date] Updating toolchain-microchippic32 @ 1.0: [Up-to-date] Updating toolchain-gcclinux32 @ 1.0: [Up-to-date] Updating tool-arduino101load @ 1.4.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating toolchain-gccarmlinuxgnueabi @ 1.40802.0: [Up-to-date] Updating tool-scons @ 2.40805.1: [Up-to-date] Updating Json @ 5.1: [Up-to-date] Platform native -------- Updating native @ 0.1: [Up-to-date] Platform microchippic32 -------- Updating microchippic32 @ 0.0.0: [Up-to-date] Updating tool-scons @ 2.0: [Up-to-date] Updating tool-scons @ 2.0.10006.0.200200.0: [Up-to-date] Updating tool-scons @ 2.0.3.124.6.PlatformIO Documentation.0.4.4.40801.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1.1: [Up-to-date] Platform nxplpc -------- Updating nxplpc @ 0.4.1: [Up-to-date] Updating toolchain-gccarmnoneeabi @ 1. Contents .4: [Up-to-date] Updating MODSERIAL @ d8422efe47: [Up-to-date] 138 Chapter 4.0: [Up-to-date] Updating framework-mbed @ 1.2.1: [Up-to-date] Platform linux_arm -------- Updating linux_arm @ 0.4.1 -------- Updating siliconlabsefm32 @ 0.2.4.121.0: [Up-to-date] Updating framework-arduinomicrochippic32 @ 1.0.0: [Up-to-date] Updating tool-scons @ 2.3: [Up-to-date] Updating EngduinoMagnetometer @ 3.10201.1: [Up-to-date] Library Manager =============== Updating Adafruit-GFX @ 334e815bc1: [Up-to-date] Updating Adafruit-ST7735 @ d53d4bf03a: [Up-to-date] Updating Adafruit-DHT @ 09344416d2: [Up-to-date] Updating Adafruit-Unified-Sensor @ f2af6f4efc: [Up-to-date] Updating ESP8266_SSD1306 @ 3.1: [Up-to-date] Platform linux_i686 -------- Updating linux_i686 @ 0.40804.4.0: [Up-to-date] Updating framework-arduinointel @ 1.1.40804.

Updating Servo @ 36b69a7ced07: [Checking] Mercurial Distributed SCM (version 3. see the source for copying conditions.org/users/simon/code/TextLCD/ searching for changes no changes found platformio upgrade Contents • platformio upgrade – Usage – Description – Examples Usage platformio upgrade pio upgrade Description Check or upgrade PlatformIO to the latest version Examples > platformio upgrade 4. PlatformIO Documentation.4) (see https://mercurial-scm. pulling from https://developer.org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software.4) (see https://mercurial-scm.8. PlatformIO Core 139 .org for more information) Copyright (C) 2005-2016 Matt Mackall and others This is free software.7.1 Updating PJON @ 1fb26fd: [Checking] git version 2. There is NO warranty.org/users/simon/code/Servo/ searching for changes no changes found Updating TextLCD @ 308d188a2d3a: [Checking] Mercurial Distributed SCM (version 3.4. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.mbed. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.8. Release 3. There is NO warranty.3.4 (Apple Git-66) Already up-to-date.mbed. pulling from https://developer. see the source for copying conditions.

This is a INI-style file.x is currently the newest version available. are ignored and may be used to provide comments.ini has sections (each denoted by a [header]) and key / value pairs within the sections. You can inject environment variable using env as a section. Release 3. for Dynamic variables. common build_flags or project dependencies lib_deps.ini – Dynamic variables – Section [platformio] – Section [env:NAME] – Examples Dynamic variables New in version 3.ini The Project configuration file is named platformio. • Variable can be applied only for the option’s value • Multiple variables are allowed • The platformio and env sections are reserved and could not be used as custom section. Contents . Some good section names might be common or global.1 You are up-to-date! PlatformIO x. # If you have problem with permissions try: > sudo platformio upgrade Project Configuration File platformio. Lines beginning with . for example. Example: 140 Chapter 4. The sections and their allowable values are described below. There are 2 system reserved sections: • Base PlatformIO settings: Section [platformio] • Build Environment settings: Section [env:NAME] The other sections can be used by users.HOME}.1.<option>}.ini.x. etc. For example. Each variable should have a next format: ${<section>.PlatformIO Documentation. platformio. where <section> is a value from [<section>] group. ${env. and <option> is a first item from pair <option> = value.3. For examples. Contents • Project Configuration File platformio. Dynamic variables/templates are useful when you have common configuration data between build environments.

lib_deps_builtin}.ini 141 . ${common.lib_deps_builtin} ${common.3 -D DEBUG=1 lib_deps_builtin = SPI Wire lib_deps_external = ArduinoJson@>5.6.lib_deps_external} PubSubClient@2.HOME}/Documents/Arduino/libraries .build_flags} lib_deps = ${common.3. Unix lib_extra_dirs = ${env. Release 3.HOMEDRIVE}${env. PlatformIO Documentation.5.2.6 OneWire Section [platformio] • Options – env_default – home_dir – lib_dir – libdeps_dir – lib_extra_dirs – src_dir – envs_dir – data_dir – test_dir – boards_dir A platformio section is used for overriding default configuration options 4. Project Configuration File platformio. Windows lib_extra_dirs = ${env.HOMEPATH}\Documents\Arduino\libraries [common] build_flags = -D VERSION=1.1 [platformio] .lib_deps_external} [env:nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2 build_flags = ${common.0 [env:uno] platform = atmelavr framework = arduino board = uno build_flags = ${common.build_flags} -DSSID_NAME=HELLO -DSSID_PASWORD=WORLD lib_deps = ${common.

Contents . For example. [platformio] env_default = uno. frameworks.platformio • Windows %HOMEPATH%\. A default value is User’s home directory: • Unix ~/./ or . The size of this folder will depend on number of installed development platforms.1 Note: Relative path is allowed for directory option: • ~ will be expanded to user’s home directory • ...\ go up to one folder Options env_default platformio run command processes all environments [env:***] by default if platformio run --environment option is not specified. service data and etc. nodemcu [env:uno] platform = atmelavr framework = arduino board = uno [env:nodemcu] platform = espressif8266 framework = arduino board = nodemcu [env:teensy31] platform = teensy framework = arduino board = teensy31 [env:lpmsp430g2553] platform = timsp430 framework = energia board = lpmsp430g2553 build_flags = -D LED_BUILTIN=RED_LED home_dir Is used to store platform toolchains.platformio This option can be overridden by global environment variable PLATFORMIO_HOME_DIR.3. Release 3. Multiple environments are allowed if they are separated with ”.PlatformIO Documentation. env_default allows to define environments which should be processed by default. Example: 142 Chapter 4. ” (comma+space). global libraries for :ref: ldf.

Project Configuration File platformio. lib_extra_dirs New in version 3.Bar.h> #include <Bar.c you should use: #include <Foo.h | |--Foo | | |.platformio. The main difference is that the option that is defined in [platofrmio] section will be applied automatically for all [env:] sections. 4. piolibdeps that means that folder is located in the root of project. A default value is lib that means that folder is located in the root of project.Foo. This option can be overridden by global environment variable PLATFORMIO_LIB_DIR.ini 143 .ini |--src |.h> // rest H/C/CPP code PlatformIO will find your libraries automatically.5. see how can be organized Foo and Bar libraries: |--lib | |--Bar | | |--docs | | |--examples | | |--src | | |. This option has the same behavior as lib_extra_dirs option for a specific build environment defined in [env:] section. For the possible values and examples please follow to lib_extra_dirs. like lib/private_lib/[here are source files]. Release 3.h |.Foo.c | | |. PlatformIO Documentation.3.c | | |. This directory has the highest priority for Library Dependency Finder (LDF).2. For example.1 [platformio] home_dir = /path/to/custom/pio/storage lib_dir You can put here your own/private libraries. A default value is . The source code of each library should be placed in separate directory. configure preprocessor’s include paths and build them.Bar. A list with global extra directories for a project where Library Dependency Finder (LDF) will look for libraries.main.c Then in src/main. libdeps_dir Internal storage where Library Manager will install project dependencies (lib_deps). This option can be overridden by global environment variable PLATFORMIO_LIBDEPS_DIR.

A default value is boards that means that folder is located in the root of project. You can change this path with your own. This option can be overridden by global environment variable PLATFORMIO_TEST_DIR. firmwares and other cached information. See example project with own source directory. envs_dir Warning: PLEASE DO NOT EDIT FILES IN THIS FOLDER.PlatformIO Documentation. This option can be overridden by global environment variable PLATFORMIO_ENVS_DIR. THIS IS A CACHE DIRECTORY.ini. PlatformIO Build System uses this folder for project environments to store compiled object files. Note: This option is useful for people who migrate from Arduino/Energia IDEs where source directory should have the same name like the main source file.ini. A default value is test that means that folder is located in the root of project. PlatformIO looks for boards in this order: 144 Chapter 4. Note: If you have any problems with building your Project environments which are defined in Project Configuration File platformio. boards_dir Custom board settings per project. data_dir Data directory to store contents and Uploading files to file system SPIFFS.3. It allows PlatformIO to build source code extremely fast! You can delete this folder without any risk! If you modify Project Configuration File platformio. then TRY TO DELETE this folder. A default value is . PlatformIO uses it for platformio run command. PlatformIO will overwrite your changes on the next build. By default. In this situation you will remove all cached files without any risk. It will be created on the next build operation.1 src_dir A path to project’s source directory.pioenvs that means that folder is located in the root of project. test_dir Directory where Unit Testing engine will look for the tests. static libraries. Contents . This option can be overridden by global environment variable PLATFORMIO_DATA_DIR. then PlatformIO will remove this folder automatically. A default value is data that means that folder is located in the root of project. A default value is src that means that folder is located in the root of project. This option can be overridden by global environment variable PLATFORMIO_SRC_DIR. Release 3.

Development platform home_dir/platforms/*/boards. Section [env:NAME] • General options – platform – framework – board • Board options – board_mcu – board_f_cpu – board_f_flash – board_flash_mode • Build options – build_flags * Dynamic build flags – src_build_flags – build_unflags – src_filter – targets • Upload options – upload_port – upload_protocol – upload_speed – upload_flags – upload_resetmethod • Library options – lib_deps – lib_ignore – lib_extra_dirs – lib_ldf_mode 4.3. Project boards_dir 2.5.1 1. Release 3. Project Configuration File platformio. PlatformIO Documentation. Global home_dir/boards 3.ini 145 . This option can be overridden by global environment variable PLATFORMIO_BOARDS_DIR.

1.0 and less than 0.x. PlatformIO allows to use specific version of platform using Semantic Versioning (X.1. Version specifications can take any of the following forms: • 0.1.1.1.2.0.1.3.2: any version greater than 0.2: any version with the same major and minor versions. Use only this exact version • ^0.2: any compatible version (exact version for 0.2.1 – lib_compat_mode • Test options – test_ignore – test_port • Advanced options – extra_script * Extra Linker Flags without -Wl.Y.PATCH). and <= are also possible • >0.0.PlatformIO Documentation.0: any version greater than 0.3. Each environment must have unique NAME.x versions • ~0.2: an exact version number. General options • platform • framework • board platform Development Platforms name.!=0. >=. and an equal or greater patch version • >0.MINOR. Contents . <. [env:hello_world].Z=MAJOR.3. prefix * Custom Uploader * Before/Pre and After/Post actions A section with env: prefix is used to define virtual environment with specific options that will be processed with platformio run command. The valid chars for NAME are • letters a-z • numbers 0-9 • special char _ (underscore) For example. You can define unlimited numbers of environments.0 Examples: 146 Chapter 4.1.<0. Release 3. not equal to 0.0.2.

then 16 Mhz (Mega Hertz) is equal to 16000000L. The full list of board_mcu for the popular embedded platforms you can find in Boards section of Development Platforms.5.3. board_f_cpu. A format of this option is C-like long integer value with L suffix. See “Microcontroller” column. board_f_cpu An option board_f_cpu is used to define MCU frequency (Hertz.ini 147 . split them with comma+space ”. Project Configuration File platformio. upload_protocol or upload_speed options.1. PlatformIO Documentation. Just define a board type and PlatformIO will pre-fill options described above with appropriate values. The correct type of board_mcu depends on platform library. The 1 Hertz is equal to 1L. board PlatformIO has pre-configured settings for the most popular boards.2 [env:specific_major_and_minor_version] platform = atmelavr@~0.1. For example. You don’t need to specify board_mcu.1 [env:the_latest_version] platform = atmelavr [env:specific_major_version] platform = atmelavr@^0. the list of board_mcu for “megaAVR Devices” is described here. Release 3. The multiple frameworks are allowed.2 framework Frameworks name. “. 4. You can find the board type in Boards section of each Development Platforms or using PlatformIO Embedded Boards Explorer. Board options • board_mcu • board_f_cpu • board_f_flash • board_flash_mode board_mcu board_mcu is a microcontroller(MCU) type that is used by compiler to recognize MCU architecture. Clock).

You can overclock a board by specifying a board_f_cpu value other than the default. The only Platform espres- sif8266 supports it. Build options • build_flags – Dynamic build flags • src_build_flags • build_unflags • src_filter • targets build_flags These flags/options control preprocessing. The 1 Hertz is equal to 1L.PlatformIO Documentation. Release 3. The only Platform espressif8266 supports it. assembly and linking processes: 148 Chapter 4. then 40 Mhz (Mega Hertz) is equal to 40000000L. A format of this option is C-like long integer value with L suffix. See “Frequency” column. compilation. This option isn’t available for the all development platforms. board_flash_mode Flash chip interface mode.1 The full list of board_f_cpu for the popular embedded platforms you can find in Boards section of Development Platforms. This option isn’t available for the all development platforms.3. Contents . Clock). board_f_flash An option board_f_flash is used to define FLASH chip frequency (Hertz.

Source code which triggers warnings will be rejected. it is CCFLAGS split into multiple options at the commas.h) • Process media content before generating SPIFFS image • Make some changes to source code or related libraries Example: 4. with definition 1. -include CCFLAGS Process file as if #include "file" appeared as the first line of the file primary source file. The contents of definition are tokenized and processed as if they appeared FINES name=definition during translation phase three in a #define directive. This option can be set by global environment variable PLATFORMIO_BUILD_FLAGS. -Werror CCFLAGS Make all warnings into hard errors. -Wp.ld Dynamic build flags PlatformIO Core allows to run external command/script which outputs build flags. Release 3.23457e+07 [env:string_defines] build_flags = '-DHELLO="World!"' '-DWIFI_PASS="My password"' [env:specific_inclibs] build_flags = -I/opt/include -L/opt/lib -lfoo [env:specific_ld_script] build_flags = -Wl.-T/path/to/ld_script. Use Cases: • Macro with the latest VCS revision/tag “on-the-fly” • Generate dynamic headers (*. -Wl. PlatformIO Documentation. Example: [env:specific_defines] build_flags = -DFOO -DBAR=1 -DFLOAT_VALUE=1.option ASFLAGS. Predefine name as a macro. If option contains commas. Pass option as an option to the assembler. If option contains commas. it is split into multiple options at the commas.option CPPFLAGS Bypass the compiler driver and pass option directly through to the preprocessor -Wall CCFLAGS Turns on all optional warnings which are desirable for normal code. -U name CPPDE. including those which GNU CPP issues by default. -Wa. PIO will automatically parse the output and append flags to a build environment. Project Configuration File platformio. FINES -D CPPDE.option LINKFLAGS Pass option as an option to the linker.5.ini 149 . either built in or provided with a -D FINES option. You can use any shell or programming language. -w CCFLAGS Suppress all warnings.1 Format Scope Description -D name CPPDE.3. This external command will be called on each platformio run command before building/uploading process. -llibrary LIBS Search the library named library when linking -Ldir LIBPATH Add directory dir to the list of directories to be searched for -l. -Idir CPPPATH Add the directory dir to the list of directories to be searched for header files. Cancel any previous definition of name.

bat and place it near platformio. platformio. This option can be set by global environment variable PLATFORMIO_SRC_BUILD_FLAGS.1 [env:generate_flags_with_external_command] build_flags = !cmd_or_path_to_script Use Case: Get the latest GIT revision “on-the-fly” Unix [env:git_revision_macro] build_flags = !echo "-DPIO_SRC_REV="$(git rev-parse HEAD) Windows You need to create a separate file named print_git_rev. [env:unflags] build_unflags = -Os -std=gnu++11 build_flags = -O2 150 Chapter 4. build_unflags Remove base/initial flags which were set by development platform.PlatformIO Documentation.ini: [env:git_revision_macro] build_flags = !print_git_rev. Release 3.bat print_git_rev.bat: @echo off FOR /F "tokens=1 delims=" %%A in ('git rev-parse HEAD') do echo -DPIO_SRC_REV=%%A For more detailed information about available flags/options go to: • Options to Request or Suppress Warnings • Options for Debugging Your Program • Options That Control Optimization • Options Controlling the Preprocessor • Passing Options to the Assembler • Options for Linking • Options for Directory Search src_build_flags An option src_build_flags has the same behavior like build_flags but will be applied only for the project source code from src_dir directory. Contents .3.ini.

This option can be set by global environment variable PLATFORMIO_SRC_FILTER.physical path to media disk/flash drive (Framework mbed enabled boards) 4.1 src_filter This option allows to specify which source files should be included/excluded from build process. • /dev/ttyUSB0 . GLOB Patterns are allowed.IP address when using OTA • /media/disk .3. targets A list with targets which will be processed by platformio run command by default. PlatformIO will build only sources by default. Tip! You can use these targets like an option to platformio run --target command.git/> -<svn/> -<example/> -<examples/> -<test/> -<tests/>.13 . example . then exclude . src_filter is predefined to +<*> -<.0. that means “includes ALL files.git and svn repository folders. You can enter more than one target separated with “space”. Project Configuration File platformio.5.ini 151 . Upload options • upload_port • upload_protocol • upload_speed • upload_flags • upload_resetmethod upload_port This option is used by “uploader” tool when sending firmware to board via upload_port. For example. All patterns will be applied in theirs order.Serial port (Unix-based OS) • COM3 .Serial port (Windows OS) • 192. Filter supports 2 templates: • +<PATH> include template • -<PATH> exclude template PATH MAST BE related from src_dir. By default. Release 3... The list with available targets is located in platformio run --target.168. folder. For example: # clean project platformio run -t clean # dump current build environment platformio run --target envdump When no targets are defined. PlatformIO Documentation.

This option can be set by global environment variable PLATFORMIO_UPLOAD_FLAGS.1 • D: . This option can be set by global environment variable PLATFORMIO_UPLOAD_PORT. upload_resetmethod Specify reset method for “uploader” tool. If you need to override uploader command or base flags please use extra_script. Library options • lib_deps 152 Chapter 4. Contents . Will be added to the end of uploader command. This option isn’t available for all development platforms. COM1 or COM3 upload_port = COM[13] upload_protocol A protocol that “uploader” tool uses to talk to the board. upload_flags Extra flags for uploader. Please note that you can use Unix shell-style wildcards: Pattern Meaning * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any character not in seq Example: [env:uno] platform = atmelavr framework = arduino .3.PlatformIO Documentation.physical path to media disk/flash drive (Windows OS). To print all available serial ports use platformio device list command. upload_speed A connection speed (baud rate) which “uploader” tool uses when sending firmware to board. If upload_port isn’t specified. any port that stats with /dev/ttyUSB upload_port = /dev/ttyUSB* . then PlatformIO will try to detect it automatically. The only Platform espressif8266 supports it. Release 3.

LIBRARY_2. Project Configuration File platformio. Specify libraries which should be ignored by Library Dependency Finder. Example: [env:depends_on_some_libs] lib_deps = 13 PubSubClient Json@~5. LIBRARY_N will be passed automatically to platformio lib install command. LIBRARY_N . Specify project dependencies that should be installed automatically to libdeps_dir before environment processing.. See also: Please make sure to read Library Dependency Finder (LDF) guide first. multi-line definition [env:myenv2] lib_deps = LIBRARY_1 LIBRARY_2 LIBRARY_N The each line with LIBRARY_1.6.1 • lib_ignore • lib_extra_dirs • lib_ldf_mode • lib_compat_mode lib_deps New in version 3.com/me-no-dev/ESPAsyncTCP. Multiple dependencies are allowed (multi-lines or separated with comma+space ”.com/gioblu/PJON. PlatformIO Documentation. “). you can use Dynamic variables to use common configuration.git#v2. 4.0 https://github.5. Please follow to platformio lib install for detailed documentation about possible values.0.4 https://github. one line definition (comma + space) [env:myenv] lib_deps = LIBRARY_1.3. Valid forms .!=5.ini 153 .git lib_ignore See also: Please make sure to read Library Dependency Finder (LDF) guide first.. If you have multiple build environments that depend on the same libraries. Release 3.

This option specifies how does Library Dependency Finder should analyze dependencies (#include directives). library name is pre-defined in manifest file (library. Release 3. See also: Please make sure to read Library Dependency Finder (LDF) guide first. mbed-fs lib_extra_dirs New in version 3. library. “. lib_compat_mode New in version 3. Warning: This is a not direct path to library with source code. Please separate them using comma+space ”.json). Multiple paths are allowed./path/to/private/dir2 lib_ldf_mode New in version 3. A list with extra directories/storages where Library Dependency Finder (LDF) will look for dependencies.3. In the most cases.properties.1 The correct value for this option is library name (not folder name). See Dependency Finder Mode for details. See also: Please make sure to read Library Dependency Finder (LDF) guide first. mbed-events. For example. “. There is ability to ignore built-in Framework mbed libraries: mbed-rtos. The multiple library names are allowed.json.PlatformIO Documentation. See also: Please make sure to read Library Dependency Finder (LDF) guide first.0. mbed-dsp.0. Ethernet. /extra/lib/storage/ but not /extra/lib/storage/ MyLibrary. Example: [env:ignore_some_libs] lib_ignore = SPI. Contents . mbed-rpc. 154 Chapter 4. mbed-USBHost. mbed-fs.0. module. mbed-USBDevice. mbed-net. It should be the path to storage that con- tains libraries grouped by folders. See full list here. This option can be set by global environment variable PLATFORMIO_LIB_EXTRA_DIRS or using global [platformio] section and lib_extra_dirs option. Example: [env:custom_lib_dirs] lib_extra_dirs = /path/to/private/dir1. split them with comma+space ”.

Multiple names are allowed.Unix-based OS • COM3 .ini 155 . Please separate them using comma+space ”.0. Also. “. Pattern Meaning * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any character not in seq Example [env:myenv] test_ignore = footest. then PlatformIO will try to detect it automatically. Release 3.5. For example. • /dev/ttyUSB0 . PlatformIO Documentation. See also: Please make sure to read Unit Testing guide first. you can ignore some tests using platformio test --ignore command. Ignore Unit Testing tests where the name matches specified patterns. Test options • test_ignore • test_port test_ignore New in version 3. this value is set to lib_compat_mode = 1 and means that LDF will check only for framework com- patibility. test[13] test_port This option is used as communication interface (Serial/UART) between PlatformIO Unit Testing Engine and target device. Project Configuration File platformio. Advanced options 4. More details Compatibility Mode.Windows OS If test_port isn’t specified.3. By default. bartest_*.1 Library compatibility mode allows to control strictness of Library Dependency Finder. To print all available serial ports use platformio device list command.

.1 extra_script Warning: This option is recommended for Advanced Users and requires Python language knowledges. Take a look at the multiple snippets/answers for the user questions: • #462 Split C/C++ build flags • #365 Extra configuration for ESP8266 uploader • #351 Specific reset method for ESP8266 • #247 Specific options for avrdude. We highly recommended to take a look at Dynamic build flags option where you can use any programming lan- guage.h) • Process media content before generating SPIFFS image • Make some changes to source code or related libraries More details Dynamic build flags. simple extra script will help: platformio.3. prefix Sometimes you need to pass extra flags to GCC linker without Wl.py (place it near platformio. For more details please follow to “Construction Environments” section of SCons documentation. Release 3. This option can be set by global environment variable PLATFORMIO_EXTRA_SCRIPT. this option is very good if you need to apply changes to the project before building/uploading process: • Macro with the latest VCS revision/tag “on-the-fly” • Generate dynamic headers (*. "-static-libgcc". You could use build_flags option but it will not work. • Extra Linker Flags without -Wl. Extra Linker Flags without -Wl. Contents .ini): Import('env') env.py extra_script. Also.Append( LINKFLAGS=[ "-static".ini: [env:env_extra_link_flags] platform = windows_x86 extra_script = extra_script.PlatformIO Documentation. prefix • Custom Uploader • Before/Pre and After/Post actions Allows to launch extra script using SCons software construction tool. PlatformIO will not parse these flags to LINKFLAGS scope. "-static-libstdc++" 156 Chapter 4. In this case.

A first argument target can be a name of target that is passed using platformio run --target command. env): print "before_upload" # do some actions 4. specify own upload command for Platform atmelavr: platformio. size. Project Configuration File platformio. platformio. upload.py: Import('env') from base64 import b64decode env..1 ] ) Custom Uploader Example.ini 157 .ini: [env:env_custom_uploader] platform = atmelavr extra_script = /path/to/extra_script. BIN.get("CUSTOM_OPTION")) + ˓→' --uploader --flags') # uncomment line below to see environment variables # print env.5.Dump() # print ARGUMENTS Before/Pre and After/Post actions PlatformIO Build System has rich API that allows to attach different pre-/post actions (hooks) using env.). The example below demonstrates how to call different functions when platformio run --target is called with upload value.]) function.AddPreAction(target. Release 3.AddPreAction(target. program.ini. callback) or env.3. uploadfs. buildfs.Replace(UPLOADHEXCMD='"$UPLOADER" ' + b64decode(ARGUMENTS. callback2.py: Import("env") # # Upload actions # def before_upload(source.py custom_option = hello extra_script. target. etc. HEX. [callback1.ini: [env:pre_and_post_hooks] extra_script = extra_script. uploadfsota) or path to file which PlatformIO processes (ELF. OBJ.. a name of built-in targets (buildprog.py extra_script. .py file is located on the same level as platformio. extra_script. PlatformIO Documentation.

) Examples Note: A full list with project examples can be found in PlatformIO Repository. target.) # custom action for project's main.1 def after_upload(source.. env.. callback. after_upload) # # Custom actions when building program/firmware # env.cpp.3.PlatformIO Documentation. compress HTML.) env. enable auto-uploading targets = upload 2. callback..AddPostAction("upload"..AddPostAction("$BUILD_DIR/firmware.]) env..AddPostAction("$BUILD_DIR/src/main. Platform atmelavr: Arduino UNO board with auto pre-configured board_* and upload_* options (use only board option) and Arduino Wiring-based Framework [env:atmelavr_arduino_uno_board] platform = atmelavr framework = arduino board = uno .....elf". [callback1.o". For example. env): print "after_upload" # do some actions print "Current build targets". Contents . for Windows OS 158 Chapter 4. before_upload) env. Platform atmelavr: Embedded board that is based on ATmega168 MCU with “arduino” bootloader [env:atmelavr_atmega168_board] platform = atmelavr board_mcu = atmega168 board_f_cpu = 16000000L upload_port = /dev/ttyUSB0 .AddPreAction("$BUILD_DIR/spiffs. etc.hex". callback2.bin".. callback. map(str.. Release 3.AddPostAction("buildprog".AddPreAction("buildprog". callback. callback.cpp env.. 1.) # # Custom actions for specific files/objects # env.) # custom action before building SPIFFS image.AddPreAction("upload". BUILD_TARGETS) env..AddPreAction("$BUILD_DIR/firmware.

upload_port = COM3 upload_protocol = arduino upload_speed = 19200 . issue #175 [env:st_via_gdb] platform = ststm32 board = armstrap_eagle512 upload_protocol = gdb Also.3. They have the HIGHEST PRIORITY. PlatformIO Documentation. To use other pro- grammers see Upload using Programmer. PlatformIO handles variables which start with PLATFORMIO_ prefix.1 . Environment variables 159 . Platform ststm32: Upload firmware using ST-Link instead mbed’s media disk [env:stlink_for_mbed] platform = ststm32 board = disco_f100rb upload_protocol = stlink Environment variables Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer. Release 3. enable auto-uploading targets = upload 3. How to set environment variable? # Windows set VARIABLE_NAME=VALUE # Unix (bash. Upload firmware via USB programmer (USBasp) to Platform atmelavr microcontrollers [env:atmelavr_usbasp] platform = atmelavr framework = arduino board = pro8MHzatmega328 upload_protocol = usbasp upload_flags = -Pusb -B5 Then upload firmware using target program for platformio run --target.6. Platform ststm32: Upload firmware using GDB script upload. 4. command. 5. zsh) export VARIABLE_NAME=VALUE # Unix (fish) set -x VARIABLE_NAME VALUE 4.gdb. take a look at this article Armstrap Eagle and PlatformIO.

CI PlatformIO handles CI variable which is setup by Continuous Integration (Travis. Release 3. PLATFORMIO_LIBDEPS_DIR Allows to override Project Configuration File platformio.1 Contents • Environment variables – General – Building – Uploading – Settings General PlatformIO uses General environment variables for the common operations/commands. PLATFORMIO_DATA_DIR Allows to override Project Configuration File platformio.ini option data_dir. PlatformIO uses it to disable prompts and progress bars.ini option envs_dir.) systems.PlatformIO Documentation. PLATFORMIO_AUTH_TOKEN Allows to specify Personal Authentication Token that could be used for automatic login in to PIO Account. PLATFORMIO_DISABLE_PROGRESSBAR Disable progress bar for package/library downloader and uploader. Circle and etc. PLATFORMIO_FORCE_COLOR Force to output color ANSI-codes even if the output is a pipe (not a tty). You can get own Personal Authentication Token using platformio account token command. It is very useful for Continuous Integration systems and PIO Remote™ operations where you are not able manually authorize.ini option lib_dir. PLATFORMIO_SRC_DIR Allows to override Project Configuration File platformio.ini option src_dir. PLATFORMIO_TEST_DIR 160 Chapter 4. Contents . Default is PLATFORMIO_FORCE_COLOR=false.ini option libdeps_dir.ini option home_dir. In other words. CI=true automatically setup PLATFORMIO_DISABLE_PROGRESSBAR to true. PLATFORMIO_LIB_DIR Allows to override Project Configuration File platformio. PLATFORMIO_ENVS_DIR Allows to override Project Configuration File platformio.3. The possible values are true and false. PLATFORMIO_HOME_DIR Allows to override Project Configuration File platformio. The possible values are true and false. This is useful when calling PlatformIO from subprocess and output is a pipe (not a tty). Default is PLATFORMIO_DISABLE_PROGRESSBAR=false.

1 Allows to override Project Configuration File platformio.3. Environment variables 161 . You can manage them via platformio settings command. Release 3. PLATFORMIO_UPLOAD_FLAGS Allows to set Project Configuration File platformio. PLATFORMIO_REMOTE_AGENT_DIR Allows to override platformio remote agent start --working-dir.6.ini option upload_flags.ini option extra_script. Building PLATFORMIO_BUILD_FLAGS Allows to set Project Configuration File platformio. PLATFORMIO_BOARDS_DIR Allows to override Project Configuration File platformio.23457e+07 export PLATFORMIO_BUILD_FLAGS='-DWIFI_PASS=\"My password\"' '-DWIFI_SSID=\"My ssid ˓→name\"' # Windows: SET PLATFORMIO_BUILD_FLAGS=-DFOO SET PLATFORMIO_BUILD_FLAGS=-DFOO -DBAR=1 -DFLOAT_VALUE=1. Settings Allows to override PlatformIO settings.ini option upload_port.ini option boards_dir. PLATFORMIO_SETTING_AUTO_UPDATE_LIBRARIES 4.ini option src_build_flags.ini option build_flags.23457e+07 SET PLATFORMIO_BUILD_FLAGS='-DWIFI_PASS="My password"' '-DWIFI_SSID="My ssid name"' PLATFORMIO_SRC_BUILD_FLAGS Allows to set Project Configuration File platformio.ini option src_filter. Uploading PLATFORMIO_UPLOAD_PORT Allows to set Project Configuration File platformio. PLATFORMIO_SRC_FILTER Allows to set Project Configuration File platformio. PLATFORMIO_EXTRA_SCRIPT Allows to set Project Configuration File platformio.ini option lib_extra_dirs. PlatformIO Documentation. Examples: # Unix: export PLATFORMIO_BUILD_FLAGS=-DFOO export PLATFORMIO_BUILD_FLAGS=-DFOO -DBAR=1 -DFLOAT_VALUE=1. PLATFORMIO_LIB_EXTRA_DIRS Allows to set Project Configuration File platformio.ini option test_dir.

Embedded Platform atmelavr Atmel AVR 8.and 32-bit MCUs deliver a unique combination of performance.ini type or frequency of MCU. PLATFORMIO_SETTING_CHECK_PLATFORMS_INTERVAL Allows to override setting check_platforms_interval. Development Platforms PlatformIO has pre-built different development platforms for popular OS (Mac OS X. Each of them include compiler. Also it has pre-configured settings for most popular Embedded Platform Boards. Please use board option.PlatformIO Documentation. PLATFORMIO_SETTING_AUTO_UPDATE_PLATFORMS Allows to override setting auto_update_platforms. Contents • Platform atmelavr – Packages – Frameworks – Boards * Adafruit 162 Chapter 4. For more detailed information please visit vendor site. Linux (+ARM) and Windows). PLATFORMIO_SETTING_ENABLE_SSL Allows to override setting enable_ssl. Release 3. PLATFORMIO_SETTING_FORCE_VERBOSE Allows to override setting force_verbose. uploader (for embedded) and many other useful tools.3. PLATFORMIO_SETTING_CHECK_PLATFORMIO_INTERVAL Allows to override setting check_platformio_interval. debugger. PLATFORMIO_SETTING_ENABLE_TELEMETRY Allows to override setting enable_telemetry. PLATFORMIO_SETTING_CHECK_LIBRARIES_INTERVAL Allows to override setting check_libraries_interval. upload protocol or etc. Contents . power efficiency and design flexibility. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming.1 Allows to override setting auto_update_libraries. You have no need to specify in Project Configuration File platformio.

7. PlatformIO Documentation.mx * ubIQio – Upload using Programmer – Upload EEPROM data – Fuses * Custom Fuses – Articles – Examples 4. Development Platforms 163 .3. Release 3.1 * Arduboy * Arduino * BQ * BitWizard * Digistump * Engduino * EnviroDIY * Generic ATTiny * LightUp * Linino * LowPowerLab * Mcudude * Microduino * OpenEnergyMonitor * PanStamp * Pinoccio * Pololu Corporation * Punch Through * Quirkbot * RedBearLab * RepRap * SODAQ * Sanguino * SparkFun * The Things Network * TinyCircuits * Wicked Device * makerlab.

please read this article Enable serial port on Raspberry Pi. It aims to make embedded programming easy and simba portable.1 Packages Name Description framework-arduinoavr Arduino Wiring-based Framework (AVR Core. 1. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. doing this issuing a sudo usermod -a -G dialout yourusername. Contents . Release 3.3.6) framework-simba Simba Framework tool-avrdude AVRDUDE tool-micronucleus Micronucleus toolchain-atmelavr avr-gcc Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”.PlatformIO Documentation. • Raspberry Pi users. • Install “udev” rules file 99-platformio-udev.rules (an instruction is located in the file). interactive objects. 164 Chapter 4. Framework Simba is an RTOS and build framework. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. spaces or physical experiences.

5 Kb arduboy_devkit Arduboy DevKit ATMEGA32U4 16 MHz 32 Kb 2.1 Adafruit ID Name Microcon.5 Kb metro Adafruit Metro ATMEGA328P 16 MHz 32 2 Kb Kb protrinket3 Adafruit Pro Trinket 3V/12MHz ATMEGA328P 12 MHz 32 2 Kb (USB) Kb protrinket3ftdi Adafruit Pro Trinket 3V/12MHz ATMEGA328P 12 MHz 32 2 Kb (FTDI) Kb protrinket5 Adafruit Pro Trinket 5V/16MHz ATMEGA328P 16 MHz 32 2 Kb (USB) Kb protrinket5ftdi Adafruit Pro Trinket 5V/16MHz ATMEGA328P 16 MHz 32 2 Kb (FTDI) Kb trinket3 Adafruit Trinket 3V/8MHz ATTINY85 8 MHz 8 Kb 0. PlatformIO Documentation. Development Platforms 165 .5 MEGA32U4 Kb Kb gemma Adafruit Gemma ATTINY85 8 MHz 8 Kb 0. 8 MHz 32 2. Fre. Flash RAM troller quency bluefruitmicro Adafruit Bluefruit Micro AT.5 Kb Arduino ID Name Microcontroller Frequency Flash LilyPadUSB Arduino LilyPad USB ATMEGA32U4 8 MHz 32 Kb atmega328pb Atmel ATmega328PB ATMEGA328PB 16 MHz 32 Kb atmegangatmega168 Arduino NG or older ATmega168 ATMEGA168 16 MHz 16 Kb atmegangatmega8 Arduino NG or older ATmega8 ATMEGA8 16 MHz 8 Kb btatmega168 Arduino BT ATmega168 ATMEGA168 16 MHz 16 Kb btatmega328 Arduino BT ATmega328 ATMEGA328P 16 MHz 32 Kb chiwawa Arduino Industrial 101 ATMEGA32U4 16 MHz 32 Kb diecimilaatmega168 Arduino Duemilanove or Diecimila ATmega168 ATMEGA168 16 MHz 16 Kb diecimilaatmega328 Arduino Duemilanove or Diecimila ATmega328 ATMEGA328P 16 MHz 32 Kb esplora Arduino Esplora ATMEGA32U4 16 MHz 32 Kb ethernet Arduino Ethernet ATMEGA328P 16 MHz 32 Kb fio Arduino Fio ATMEGA328P 8 MHz 32 Kb Continued on ne 4.5 Kb trinket5 Adafruit Trinket 5V/16MHz ATTINY85 16 MHz 8 Kb 0.3. 8 MHz 32 2.5 MEGA32U4 Kb Kb flora8 Adafruit Flora AT.5 Kb Arduboy ID Name Microcontroller Frequency Flash RAM arduboy Arduboy ATMEGA32U4 16 MHz 32 Kb 2.5 MEGA32U4 Kb Kb feather32u4 Adafruit Feather AT.7. 8 MHz 32 2. Release 3.

8 MHz) ATMEGA328P 8 MHz 32 Kb robotControl Arduino Robot Control ATMEGA32U4 16 MHz 32 Kb robotMotor Arduino Robot Motor ATMEGA32U4 16 MHz 32 Kb uno Arduino Uno ATMEGA328P 16 MHz 32 Kb yun Arduino Yun ATMEGA32U4 16 MHz 32 Kb yunmini Arduino Yun Mini ATMEGA32U4 16 MHz 32 Kb BQ ID Name Microcontroller Frequency Flash RAM zumbt328 BQ ZUM BT-328 ATMEGA328P 16 MHz 32 Kb 2 Kb BitWizard ID Name Microcontroller Frequency Flash RAM raspduino BitWizard Raspduino ATMEGA328P 16 MHz 32 Kb 2 Kb Digistump ID Name Microcon. Release 3.5 byte buffer) Kb Kb digispark-pro64Digistump Digispark Pro (16 MHz) (64 ATTINY167 16 MHz 16 0.5 Kb Kb digispark-pro32Digistump Digispark Pro (16 MHz) (32 ATTINY167 16 MHz 16 0.1 – continued from previous page ID Name Microcontroller Frequency Flash leonardo Arduino Leonardo ATMEGA32U4 16 MHz 32 Kb leonardoeth Arduino Leonardo ETH ATMEGA32U4 16 MHz 32 Kb lilypadatmega168 Arduino LilyPad ATmega168 ATMEGA168 8 MHz 16 Kb lilypadatmega328 Arduino LilyPad ATmega328 ATMEGA328P 8 MHz 32 Kb megaADK Arduino Mega ADK ATMEGA2560 16 MHz 256 Kb megaatmega1280 Arduino Mega or Mega 2560 ATmega1280 ATMEGA1280 16 MHz 128 Kb megaatmega2560 Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) ATMEGA2560 16 MHz 256 Kb micro Arduino Micro ATMEGA32U4 16 MHz 32 Kb miniatmega168 Arduino Mini ATmega168 ATMEGA168 16 MHz 16 Kb miniatmega328 Arduino Mini ATmega328 ATMEGA328P 16 MHz 32 Kb nanoatmega168 Arduino Nano ATmega168 ATMEGA168 16 MHz 16 Kb nanoatmega328 Arduino Nano ATmega328 ATMEGA328P 16 MHz 32 Kb pro16MHzatmega168 Arduino Pro or Pro Mini ATmega168 (5V.PlatformIO Documentation.3V.3V.5 byte buffer) Kb Kb digispark-tiny Digistump Digispark (Default .5 Kb 166 Chapter 4. Flash RAM troller quency digispark-pro Digistump Digispark Pro (Default 16 MHz) ATTINY167 16 MHz 16 0. Fre.3. 16 MHz) ATMEGA328P 16 MHz 32 Kb pro8MHzatmega168 Arduino Pro or Pro Mini ATmega168 (3.1 Table 4. Contents . 16 MHz) ATMEGA168 16 MHz 16 Kb pro16MHzatmega328 Arduino Pro or Pro Mini ATmega328 (5V.16 MHz) ATTINY85 16 MHz 8 Kb 0. 8 MHz) ATMEGA168 8 MHz 16 Kb pro8MHzatmega328 Arduino Pro or Pro Mini ATmega328 (3.

5 Kb LightUp ID Name Microcontroller Frequency Flash RAM lightup LightUp ATMEGA32U4 8 MHz 32 Kb 2.5 Kb Linino ID Name Microcontroller Frequency Flash RAM one Linino One ATMEGA32U4 16 MHz 32 Kb 2.125 Kb attiny4313 Generic ATTiny4313 ATTINY4313 8 MHz 4 Kb 0.5 Kb EnviroDIY ID Name Microcontroller Frequency Flash RAM mayfly EnviroDIY Mayfly ATMEGA1284P 8 MHz 128 Kb 16 Kb Generic ATTiny ID Name Microcontroller Frequency Flash RAM attiny13 Generic ATTiny13 ATTINY13 9 MHz 1 Kb 0.5 Kb attiny85 Generic ATTiny85 ATTINY85 8 MHz 8 Kb 0.125 Kb attiny25 Generic ATTiny25 ATTINY25 8 MHz 2 Kb 0. PlatformIO Documentation.25 Kb attiny84 Generic ATTiny84 ATTINY84 8 MHz 8 Kb 0.3. Development Platforms 167 .25 Kb attiny45 Generic ATTiny45 ATTINY45 8 MHz 4 Kb 0.125 Kb attiny24 Generic ATTiny24 ATTINY24 8 MHz 2 Kb 0.0625 Kb attiny2313 Generic ATTiny2313 ATTINY2313 8 MHz 2 Kb 0. Release 3.7.1 Engduino ID Name Microcontroller Frequency Flash RAM engduinov3 Engduino 3 ATMEGA32U4 8 MHz 32 Kb 2.25 Kb attiny44 Generic ATTiny44 ATTINY44 8 MHz 4 Kb 0.5 Kb LowPowerLab ID Name Microcontroller Frequency Flash RAM moteino LowPowerLab Moteino ATMEGA328P 16 MHz 32 Kb 2 Kb moteinomega LowPowerLab MoteinoMEGA ATMEGA1284P 16 MHz 128 Kb 16 Kb 4.

3. 16 MHz 128 16 Kb MEGA1284P Kb 1284p8m Microduino Core+ AT.3.3V) MEGA1284P Kb 168pa16m Microduino Core (Atmega168PA@16M.5V) ATMEGA168P 16 MHz 16 Kb 1 Kb 168pa8m Microduino Core (Atmega168PA@8M. Release 3. Contents .3V) ATMEGA328P 8 MHz 32 Kb 2 Kb 32u416m Microduino Core USB AT.5V) AT.5V) ATMEGA644P 16 MHz 64 Kb 4 Kb 644pa8m Microduino Core+ (Atmega644PA@8M. 8 MHz 128 16 Kb (ATmega1284P@8M.5 Kb 168 Chapter 4.3.1 Mcudude ID Name Microcontroller Frequency Flash RAM mightycore1284 MightyCore ATmega1284 ATMEGA1284P 16 MHz 128 Kb 16 Kb mightycore16 MightyCore ATmega16 ATMEGA16 16 MHz 16 Kb 1 Kb mightycore164 MightyCore ATmega164 ATMEGA164P 16 MHz 16 Kb 1 Kb mightycore32 MightyCore ATmega32 ATMEGA32 16 MHz 32 Kb 2 Kb mightycore324 MightyCore ATmega324 ATMEGA324P 16 MHz 32 Kb 2 Kb mightycore644 MightyCore ATmega644 ATMEGA644P 16 MHz 64 Kb 4 Kb mightycore8535 MightyCore ATmega8535 ATMEGA16 16 MHz 8 Kb 0.3V) ATMEGA168P 8 MHz 16 Kb 1 Kb 328p16m Microduino Core (Atmega328P@16M.3. 16 MHz 32 Kb 2. Fre.PlatformIO Documentation.5V) MEGA32U4 Kb 644pa16m Microduino Core+ (Atmega644PA@16M.3V) ATMEGA644P 8 MHz 64 Kb 4 Kb OpenEnergyMonitor ID Name Microcontroller Frequency Flash RAM emonpi OpenEnergyMonitor emonPi ATMEGA328P 16 MHz 32 Kb 2 Kb PanStamp ID Name Microcontroller Frequency Flash RAM panStampAVR PanStamp AVR ATMEGA328P 8 MHz 32 Kb 2 Kb Pinoccio ID Name Microcontroller Frequency Flash RAM pinoccio Pinoccio Scout ATMEGA256RFR2 16 MHz 256 Kb 32 Kb Pololu Corporation ID Name Microcontroller Frequency Flash RAM a-star32U4 Pololu A-Star 32U4 ATMEGA32U4 16 MHz 32 Kb 2.3.5 (ATmega32U4@16M. Flash RAM troller quency 1284p16m Microduino Core+ (ATmega1284P@16M.5 Kb Microduino ID Name Microcon.5V) ATMEGA328P 16 MHz 32 Kb 2 Kb 328p8m Microduino Core (Atmega328P@8M.

3V/16MHz AT. Release 3.5 (overclock) MEGA32U4 Kb Kb blendmicro8 RedBearLab Blend Micro 3. PlatformIO Documentation.1 Punch Through ID Name Microcontroller Frequency Flash RAM lightblue-bean LightBlue Bean ATMEGA328P 8 MHz 32 Kb 2 Kb lightblue-beanplus LightBlue Bean+ ATMEGA328P 16 MHz 32 Kb 2 Kb Quirkbot ID Name Microcontroller Frequency Flash RAM quirkbot Quirkbot ATMEGA32U4 8 MHz 32 Kb 2. Development Platforms 169 .3. 16 MHz 32 2.7. Fre.5 Kb RedBearLab ID Name Microcon.3V/8MHz AT. 16 MHz 32 2.5 MEGA32U4 Kb Kb RepRap ID Name Microcontroller Frequency Flash RAM reprap_rambo RepRap RAMBo ATMEGA2560 16 MHz 256 Kb 8 Kb SODAQ ID Name Microcontroller Frequency Flash RAM sodaq_galora SODAQ GaLoRa ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_mbili SODAQ Mbili ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_moja SODAQ Moja ATMEGA328P 8 MHz 32 Kb 2 Kb sodaq_ndogo SODAQ Ndogo ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_tatu SODAQ Tatu ATMEGA1284P 8 MHz 128 Kb 16 Kb 4.5 MEGA32U4 Kb Kb blendmicro16 RedBearLab Blend Micro 3. 8 MHz 32 2. Flash RAM troller quency blend RedBearLab Blend AT.

8 MHz 64 4 ATmega644PA (8 MHz) MEGA644P Kb Kb SparkFun ID Name Microcon.PlatformIO Documentation. 8 MHz 128 16 MEGA1284P Kb Kb Sanguino ATmega1284p (16MHz) sanguino_atmega1284p AT. 16 MHz 128 16 MEGA1284P Kb Kb sanguino_atmega644 Sanguino ATmega644 or ATmega644A AT. Fre. 16 MHz 64 4 ATmega644PA (16 MHz) MEGA644P Kb Kb Sanguino ATmega644P or sanguino_atmega644p_8m AT. Release 3.5 Kb Kb sparkfun_redboard SparkFun RedBoard ATMEGA328P 16 MHz 32 2 Kb Kb SparkFun ATmega128RFA1 sparkfun_satmega128rfa1 AT.3V/8MHz ATMEGA32U4 8 MHz 32 2. Flash RAM troller quency SparkFun Digital Sandbox sparkfun_digitalsandbox ATMEGA328P 8 MHz 32 2 Kb Kb sparkfun_fiov3 SparkFun Fio V3 3.3. 16 MHz 16 124 Dev Board MEGA128RFA1 Kb Kb sparkfun_serial7seg SparkFun Serial 7-Segment ATMEGA328P 8 MHz 32 2 Kb Display Kb uview SparkFun MicroView ATMEGA328P 16 MHz 32 2 Kb Kb 170 Chapter 4. Flash RAM troller quency Sanguino ATmega1284p (8MHz) sanguino_atmega1284_8m AT. Fre.5 Kb Kb sparkfun_megamini SparkFun Mega Pro Mini 3.5 Kb Kb sparkfun_promicro8 SparkFun Pro Micro ATMEGA32U4 8 MHz 32 2.5 3.3V/8MHz Kb Kb sparkfun_qduinomini SparkFun Qduino Mini ATMEGA32U4 8 MHz 32 2.5 Kb Kb sparkfun_makeymakey SparkFun Makey Makey ATMEGA32U4 16 MHz 32 2. 8 MHz 64 4 (8 MHz) MEGA644 Kb Kb sanguino_atmega644pSanguino ATmega644P or AT.3V ATMEGA2560 8 MHz 256 8 Kb Kb sparkfun_megapro16MHzSparkFun Mega Pro 5V/16MHz ATMEGA2560 16 MHz 256 8 Kb Kb sparkfun_megapro8MHz SparkFun Mega Pro ATMEGA2560 8 MHz 256 8 Kb 3. Contents . 16 MHz 64 4 (16 MHz) MEGA644 Kb Kb Sanguino ATmega644 or ATmega644A sanguino_atmega644_8m AT.3V/8MHz Kb sparkfun_promicro16 SparkFun Pro Micro 5V/16MHz ATMEGA32U4 16 MHz 32 2.1 Sanguino ID Name Microcon.

PlatformIO Documentation.mx ID Name Microcontroller Frequency Flash RAM altair Altair ATMEGA256RFR2 16 MHz 256 Kb 32 Kb ubIQio ID Name Microcontroller Frequency Flash RAM ardhat ubIQio Ardhat ATMEGA328P 16 MHz 32 Kb 2 Kb Upload using Programmer To upload firmware using programmer you need to use program target instead upload for platformio run --target command. platformio run -t program.7. Release 3. Development Platforms 171 . For example.1 The Things Network ID Name Microcontroller Frequency Flash RAM the_things_uno The Things Uno ATMEGA32U4 16 MHz 32 Kb 2.5 Kb TinyCircuits ID Name Microcontroller Frequency Flash RAM tinyduino TinyCircuits TinyDuino Processor Board ATMEGA328P 8 MHz 32 Kb 2 Kb tinylily TinyCircuits TinyLily Mini Processor ATMEGA328P 8 MHz 32 Kb 2 Kb Wicked Device ID Name Microcontroller Frequency Flash RAM wildfirev2 Wicked Device WildFire V2 ATMEGA1284P 16 MHz 128 Kb 16 Kb wildfirev3 Wicked Device WildFire V3 ATMEGA1284P 16 MHz 128 Kb 16 Kb makerlab. Configuration for the programmers: • AVR ISP [env:myenv] platform = atmelavr framework = arduino upload_protocol = stk500v1 upload_flags = -P$UPLOAD_PORT . edit this line with valid upload port upload_port = SERIAL_PORT_HERE • AVRISP mkII 4.3.

172 Chapter 4. platformio run -t uploadeep. Release 3.3.PlatformIO Documentation. For example.1 [env:myenv] platform = atmelavr framework = arduino upload_protocol = stk500v2 upload_flags = -Pusb • USBtinyISP [env:myenv] platform = atmelavr framework = arduino upload_protocol = usbtiny • ArduinoISP [env:myenv] platform = atmelavr framework = arduino upload_protocol = arduinoisp • USBasp [env:myenv] platform = atmelavr framework = arduino upload_protocol = usbasp upload_flags = -Pusb • Parallel Programmer [env:myenv] platform = atmelavr framework = arduino upload_protocol = dapa upload_flags = -F • Arduino as ISP [env:myenv] platform = atmelavr framework = arduino upload_protocol = stk500v1 upload_flags = -P$UPLOAD_PORT -b$UPLOAD_SPEED . edit these lines upload_port = SERIAL_PORT_HERE upload_speed = 19200 Upload EEPROM data To upload EEPROM data (from EEMEM directive) you need to use uploadeep target instead upload for platformio run --target command. Contents .

Programar con Arduino “The good way” (Programming with Arduino “The good way”.Using PlatformIO to get started with Arduino in CLion IDE • Nov 09.Programming Arduino with Atom • June 20. 2015 .Nico Coetzee .Floyd Hilton .1 Fuses PlatformIO has built-in target named fuses for setting fuse bits.ÁLvaro García Gómez . 2015 .First Arduino I2C Experience with PlatformIO • Oct 10. Arduino Uno Fuses. For example. To set fuse bits you need to use target fuses for platformio run --target command.py extra_script. .7. Ph. 2014 . 2015 . Custom Fuses You can specify custom fuse bits. 2015 .Ivan Kravets. PlatformIO Documentation.Using PlatformIO for Embedded Projects • Nov 22. • Wiring Blink • Arduino with external libraries • Arduino with internal libraries • Project uses source file name for “src” directory (Arduino project structure) • Atmel AVR Native blink • Digitstump Mouse 4.py: Import('env') env.3. Examples All project examples are located in PlatformIO repository Examples for Atmel AVR platform. Development Platforms 173 . The default fuse bits are predefined in board manifest file in fuses section. Please create custom extra_script and override default “fuses” command: platformio. Release 3.Michał Seroczyński .Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO See more Articles about us. Spanish) • Oct 18. 2015 .Replace(FUSESCMD="avrdude $UPLOADERFLAGS -e -Ulock:w:0x3F:m -Uhfuse:w:0xDE:m - ˓→Uefuse:w:0x05:m -Ulfuse:w:0xFF:m") Articles • Dec 01.Push Notification from Arduino Yún with motion sensor • Nov 29.Keith Hughes .ini: [env:custom_fuses] platform = atmelavr extra_script = extra_script.D.Michał Seroczyński . 2015 .

1 • Engduino magnetometer • PanStamp blink Platform atmelsam Atmel | SMART offers Flash. Cortex-M3 and Cortex-M4 architectures. Contents • Platform atmelsam – Packages – Frameworks – Boards * Adafruit * Arduino * Atmel * Digistump * SODAQ * SainSmart * SparkFun Packages Name Description framework-arduinosam Arduino Wiring-based Framework (SAM Core. please read this article Enable serial port on Raspberry Pi. Windows Users: Please check that you have correctly installed USB driver from board manufacturer 174 Chapter 4. • Raspberry Pi users. doing this issuing a sudo usermod -a -G dialout yourusername. For more detailed information please visit vendor site.based ARM products based on the ARM Cortex-M0+. Contents .3.PlatformIO Documentation. • Install “udev” rules file 99-platformio-udev. Release 3. ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.6) framework-mbed mbed Framework framework-simba Simba Framework tool-avrdude AVRDUDE tool-bossac BOSSA CLI tool-openocd OpenOCD toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”.rules (an instruction is located in the file). 1.

allowing you to code down to the metal if needed. Flash RAM troller quency Adafruit Circuit Playground adafruit_circuitplayground_m0 SAMD21G18A 48 MHz 256 32 Express Kb Kb adafruit_feather_m0_usb Adafruit Feather M0 SAMD21G18A 48 MHz 256 32 Kb Kb Arduino ID Name Microcontroller Frequency Flash RAM due Arduino Due (Programming Port) AT91SAM3X8E 84 MHz 512 Kb 32 Kb dueUSB Arduino Due (USB Native Port) AT91SAM3X8E 84 MHz 512 Kb 32 Kb mkr1000USB Arduino MKR1000 SAMD21G18A 48 MHz 256 Kb 32 Kb mkrzero Arduino MKRZero SAMD21G18A 48 MHz 256 Kb 32 Kb mzeroUSB Arduino M0 SAMD21G18A 48 MHz 256 Kb 32 Kb mzeropro Arduino M0 Pro (Programming Port) SAMD21G18A 48 MHz 256 Kb 32 Kb mzeroproUSB Arduino M0 Pro (Native USB Port) SAMD21G18A 48 MHz 256 Kb 32 Kb tian Arduino Tian SAMD21G18A 48 MHz 256 Kb 32 Kb zero Arduino Zero (Programming Port) SAMD21G18A 48 MHz 256 Kb 32 Kb zeroUSB Arduino Zero (USB Native Port) SAMD21G18A 48 MHz 256 Kb 32 Kb 4. yet powerful enough to build complex projects. Release 3.3. spaces or physical experiences. Framework The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to mbed be intuitive and concise. In addition to RTOS. USB and Networking libraries. It aims to make embedded programming easy and simba portable. Adafruit ID Name Microcon. Fre. It is built on the low-level ARM CMSIS APIs. interactive objects.7. PlatformIO Documentation. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.1 Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. Framework Simba is an RTOS and build framework. Development Platforms 175 . Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.

For more detailed information please visit vendor site. 176 Chapter 4. Contents . Release 3. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. Flash RAM quency sainSmartDue SainSmart Due (Programming AT91SAM3X8E 84 MHz 512 32 Port) Kb Kb sainSmartDueUSB SainSmart Due (USB Native Port) AT91SAM3X8E 84 MHz 512 32 Kb Kb SparkFun ID Name Microcon.3. Flash RAM troller quency sparkfun_samd21_dev_usbSparkFun SAMD21 Dev SAMD21G18A 48 MHz 256 32 Breakout Kb Kb SparkFun SAMD21 Mini sparkfun_samd21_mini_usb SAMD21G18A 48 MHz 256 32 Breakout Kb Kb Platform espressif32 Espressif Systems is a privately held fabless semiconductor company.PlatformIO Documentation.1 Atmel ID Name Microcontroller Frequency Flash RAM samd21_xpro Atmel SAMD21-XPRO ATSAMD21J18A 48 MHz 256 Kb 32 Kb samd21g18a Atmel ATSAMW25-XPRO ATSAMD21G18A 48 MHz 256 Kb 32 Kb saml21_xpro_b Atmel SAML21-XPRO-B ATSAML21J18B 48 MHz 256 Kb 32 Kb samr21_xpro Atmel ATSAMR21-XPRO ATSAMR21G18A 48 MHz 256 Kb 32 Kb Digistump ID Name Microcontroller Frequency Flash RAM digix Digistump DigiX AT91SAM3X8E 84 MHz 512 Kb 28 Kb SODAQ ID Name Microcontroller Frequency Flash RAM sodaq_autonomo SODAQ Autonomo SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_explorer SODAQ ExpLoRer SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_one SODAQ ONE SAMD21G18A 48 MHz 256 Kb 32 Kb sodaq_wdt SODAQ WDT SAMD21J18A 48 MHz 256 Kb 32 Kb SainSmart ID Name Microcontroller Fre. Fre.

7. PlatformIO Documentation.3. Windows Users: Please check that you have correctly installed USB driver from board manufacturer 4. doing this issuing a sudo usermod -a -G dialout yourusername. • Install “udev” rules file 99-platformio-udev. Development Platforms 177 .1 Contents • Platform espressif32 – Packages – Frameworks – Boards * Aiyarafun * April Brother * Electronic SweetPeas * Espressif * Hornbill * MakerAsia * Noduino * SparkFun Electronics * WEMOS – Using Arduino Framework with Staging version – Examples Packages Name Description framework-arduinoespressif32 Arduino Wiring-based Framework (ESP32 Core) framework-espidf Espressif IoT Development Framework framework-pumbaa Pumbaa Framework framework-simba Simba Framework tool-esptoolpy Espressif ROM Bootloader utility toolchain-xtensa32 xtensa32-gcc Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”.rules (an instruction is located in the file). • Raspberry Pi users. please read this article Enable serial port on Raspberry Pi. Release 3.

Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Official development framework for ESP32. spaces or physical experiences. Framework Simba is an RTOS and build framework. Release 3. designed for pumbaa embedded devices with limited amount of RAM and code memory. It aims to make embedded programming easy and simba portable. The implementation is a port of MicroPython. Framework Espressif IoT Development Framework. Aiyarafun ID Name Microcontroller Frequency Flash RAM node32s Node32s ESP32 240 MHz 1024 Kb 112 Kb April Brother ID Name Microcontroller Frequency Flash RAM espea32 April Brother ESPea32 ESP32 240 MHz 1024 Kb 288 Kb Electronic SweetPeas ID Name Microcontroller Frequency Flash RAM esp320 Electronic SweetPeas ESP320 ESP32 240 MHz 1024 Kb 288 Kb Espressif ID Name Microcontroller Frequency Flash RAM esp32dev Espressif ESP32 Dev Module ESP32 240 MHz 1024 Kb 288 Kb 178 Chapter 4.PlatformIO Documentation.3. Contents . espidf Framework Pumbaa is Python on top of Simba.1 Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. interactive objects.

then try to build this project using the same stage with Arduino IDE 5. please use platformio platform update command.git#feature/stage 2. For example.ini. If you see build errors. If it works with Arduino IDE but doesn’t work with PlatformIO. Set platform to espressif32_stage in Project Configuration File platformio.7. 1. PlatformIO Documentation.com/espressif/arduino-esp32.3. The Git should be installed in a system.com/platformio/platform- ˓→espressif32.1 Hornbill ID Name Microcontroller Frequency Flash RAM hornbill32dev Hornbill ESP32 Dev ESP32 240 MHz 1024 Kb 288 Kb hornbill32minima Hornbill ESP32 Minima ESP32 240 MHz 1024 Kb 288 Kb MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb Noduino ID Name Microcontroller Frequency Flash RAM quantum Noduino Quantum ESP32 240 MHz 1024 Kb 288 Kb SparkFun Electronics ID Name Microcontroller Frequency Flash RAM esp32thing SparkFun ESP32 Thing ESP32 240 MHz 1024 Kb 112 Kb WEMOS ID Name Microcontroller Frequency Flash RAM lolin32 WEMOS LoLin32 ESP32 240 MHz 1024 Kb 288 Kb Using Arduino Framework with Staging version PlatformIO will install the latest Arduino Core for ESP32 from https://github. Release 3. Install Espressif 32 (Stage) development platform platformio platform install https://github. Try to build project 4. [env:esp32dev] platform = espressif32_stage board = esp32dev framework = arduino 3. To update Arduino Core to the latest revision. then please file new issue with attached infor- mation: 4. Development Platforms 179 .

3.com) • detailed log of build process from PlatformIO Build System ( please copy it from console to http://pastebin.PlatformIO Documentation. Contents .1 • test project/files • detailed log of build process from Arduino IDE (please copy it from console to http://pastebin. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. For more detailed information please visit vendor site. Contents • Platform espressif8266 – Packages – Frameworks – Boards * Adafruit * Doit * DycodeX * ESPert * ESPino * Espressif * NodeMCU * Olimex * SparkFun * SweetPea * ThaiEasyElec * WeMos – Custom CPU Frequency – Custom FLASH Frequency 180 Chapter 4. Release 3. com) Examples All project examples are located in PlatformIO repository Examples for Espressif 32 platform. • Arduino Blink • Arduino WiFiScan • ESP-IDF Hello World • ESP-IDF HTTP Request Platform espressif8266 Espressif Systems is a privately held fabless semiconductor company.

PlatformIO Documentation.1 – Custom FLASH Mode – Custom Reset Method – Custom Flash Size – Custom Upload Speed – Uploading files to file system SPIFFS – Over-the-Air (OTA) update * Authentication and upload options * Demo – Using Arduino Framework with Staging version – Articles – Examples Packages Name Description framework-arduinoespressif8266 Arduino Wiring-based Framework (ESP8266 Core) framework-simba Simba Framework sdk-esp8266 ESP8266 SDK tool-espotapy ESP8266 OTA utility tool-esptool esptool-ck tool-mkspiffs Tool to build and unpack SPIFFS images toolchain-xtensa xtensa-gcc Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. spaces or physical experiences.3. Development Platforms 181 . doing this issuing a sudo usermod -a -G dialout yourusername.7. Boards 4. It aims to make embedded programming easy and simba portable. please read this article Enable serial port on Raspberry Pi. • Install “udev” rules file 99-platformio-udev. interactive objects. Release 3. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. • Raspberry Pi users.rules (an instruction is located in the file). Framework Simba is an RTOS and build framework.

0 ESP8266 80 MHz 4096 Kb 80 Kb espresso_lite_v2 ESPresso Lite 2. Release 3.3. Contents .PlatformIO Documentation.1 Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Adafruit ID Name Microcontroller Frequency Flash RAM huzzah Adafruit HUZZAH ESP8266 ESP8266 80 MHz 4096 Kb 80 Kb Doit ID Name Microcontroller Frequency Flash RAM espduino ESPDuino (ESP-13 Module) ESP8266 80 MHz 4096 Kb 80 Kb DycodeX ID Name Microcontroller Frequency Flash RAM espectro ESPrectro Core ESP8266 80 MHz 4096 Kb 80 Kb ESPert ID Name Microcontroller Frequency Flash RAM espresso_lite_v1 ESPresso Lite 1.0 ESP8266 80 MHz 4096 Kb 80 Kb ESPino ID Name Microcontroller Frequency Flash RAM espino ESPino ESP8266 80 MHz 4096 Kb 80 Kb 182 Chapter 4.

3.0 ESP8266 80 MHz 1024 80 Kb Kb wifinfo WifInfo ESP8266 80 MHz 448 Kb 80 Kb NodeMCU ID Name Microcontroller Frequency Flash RAM nodemcu NodeMCU 0.7. PlatformIO Documentation.1 Espressif ID Name Microcon.0 (ESP-12E Module) ESP8266 80 MHz 4096 Kb 80 Kb Olimex ID Name Microcontroller Frequency Flash RAM modwifi Olimex MOD-WIFI-ESP8266(-DEV) ESP8266 80 MHz 2048 Kb 80 Kb SparkFun ID Name Microcontroller Frequency Flash RAM sparkfunBlynk SparkFun Blynk Board ESP8266 80 MHz 4096 Kb 80 Kb thing SparkFun ESP8266 Thing ESP8266 80 MHz 512 Kb 80 Kb thingdev SparkFun ESP8266 Thing Dev ESP8266 80 MHz 512 Kb 80 Kb SweetPea ID Name Microcontroller Frequency Flash RAM esp210 SweetPea ESP-210 ESP8266 80 MHz 4096 Kb 80 Kb 4.0 ESP8266 80 MHz 1024 80 Kb Kb phoenix_v2 Phoenix 2. Flash RAM troller quency esp01 Espressif Generic ESP8266 ESP-01 ESP8266 80 MHz 512 Kb 80 512k Kb esp01_1m Espressif Generic ESP8266 ESP-01 1M ESP8266 80 MHz 1024 80 Kb Kb esp07 Espressif Generic ESP8266 ESP-07 ESP8266 80 MHz 4096 80 Kb Kb esp12e Espressif ESP8266 ESP-12E ESP8266 80 MHz 4096 80 Kb Kb esp8285 Generic ESP8285 Module ESP8266 80 MHz 448 Kb 80 Kb esp_wroom_02 ESP-WROOM-02 ESP8266 80 MHz 4096 80 Kb Kb phoenix_v1 Phoenix 1. Development Platforms 183 . Fre. Release 3.9 (ESP-12 Module) ESP8266 80 MHz 4096 Kb 80 Kb nodemcuv2 NodeMCU 1.

ini.1 ThaiEasyElec ID Name Microcontroller Frequency Flash RAM espinotee ThaiEasyElec ESPino ESP8266 80 MHz 4096 Kb 80 Kb WeMos ID Name Microcontroller Frequency Flash RAM d1 WeMos D1(Retired) ESP8266 80 MHz 4096 Kb 80 Kb d1_mini WeMos D1 R2 & mini ESP8266 80 MHz 4096 Kb 80 Kb Custom CPU Frequency See board_f_cpu option from Project Configuration File platformio. along with the flash size and flash frequency. This parameter is stored in the binary image header. Possible values: • qio • qout • dio • dout [env:myenv] board_flash_mode = qio 184 Chapter 4.PlatformIO Documentation. The ROM bootloader in the ESP chip uses the value of these parameters in order to know how to talk to the flash chip.ini.3. See board_flash_mode option from Project Configuration File platformio. Possible values: • 20000000L • 26000000L • 40000000L • 80000000L [env:myenv] . set frequency to 80MHz board_f_flash = 80000000L Custom FLASH Mode Flash chip interface mode. Contents .ini [env:myenv] . set frequency to 160MHz board_f_cpu = 160000000L Custom FLASH Frequency See board_f_flash option from Project Configuration File platformio. Release 3.

ld 1M (512K SPIFFS) • esp8266.flash.7.ld 2M (1M SPIFFS) • esp8266.flash. The possible values are: • ck .flash.ld 1M (128K SPIFFS) • esp8266.RTS controls RESET or CH_PD.1m512.ld 1M (256K SPIFFS) • esp8266.flash.ld Custom Upload Speed You can set custom upload speed using upload_speed option from Project Configuration File platformio.flash.ld 512K (no SPIFFS) • esp8266.ld 4M (1M SPIFFS) • esp8266. Development Platforms 185 .flash.2m.512k0. PlatformIO Documentation. The list with preconfigured LD scripts is located in public repository platformio-pkg-ldscripts.ini.ld 1M (64K SPIFFS) • esp8266.ini [env:myenv] upload_speed = 9600 4.4m1m.1 Custom Reset Method You can set custom reset method using upload_resetmethod option from Project Configuration File platformio. [env:myenv] upload_resetmethod = ck Custom Flash Size Warning: Please make sure to read ESP8266 Flash layout information first. [env:myenv] build_flags = -Wl.ini.flash.3.4m.4m.ld 4M (3M SPIFFS) To override default LD script please use build_flags from Project Configuration File platformio.-Tesp8266.1m128. DTR controls GPIO0 • wifio .flash.TXD controls GPIO0 via PNP transistor and DTR controls RESET via a capacitor • nodemcu .GPIO0 and RESET controlled using two NPN transistors as in NodeMCU devkit.ld 512K (64K SPIFFS) • esp8266.1m64. See default reset methods per board. • esp8266.512k64.1m256. Release 3.flash.flash.

1 Uploading files to file system SPIFFS Warning: Please make sure to read ESP8266 Flash layout information first. • platformio run -t upload --upload-port 192.local • Specify upload_port option in Project Configuration File platformio. you can specify own location for data_dir 3.0. Initialize project platformio init (if you have not initialized yet) 2. please read What is OTA? How to use it? There are 2 options: • Directly specify platformio run --upload-port in command line platformio run --target upload --upload-port IP_ADDRESS_HERE or mDNS_NAME. page. Also.local Authentication and upload options You can pass additional options/flags to OTA uploader using upload_flags option in Project Configuration File platformio. Run buildfs or uploadfs target using platformio run --target command. Create data folder (it should be on the same level as src folder) and put files here. Active discussion is located in issue #382.local For example. Default 8266 • --auth=AUTH Set authentication password • --spiffs Use this option to transmit a SPIFFS image and do not flash the module For the full list with available options please run 186 Chapter 4. For the details please follow to Over-the-Air (OTA) update.PlatformIO Documentation.local).3. block). end. Contents . By default. Release 3. 1. You can override it using Custom Flash Size. will be used default LD Script for the board where is specified SPIFFS offsets (start. Over-the-Air (OTA) update Firstly.ini [env:myenv] upload_flags = --port=8266 Available flags • --port=ESP_PORT ESP8266 OTA Port.168.255 • platformio run -t upload --upload-port myesp8266. To upload SPIFFS image using OTA update please specify upload_port / --upload-port as IP address or mDNS host name (ending with the *.ini [env:myenv] upload_port = IP_ADDRESS_HERE or mDNS_NAME.

Options: -h. Output: -d. --debug Show debug output.py -h Usage: espota. Release 3.3. --ip=ESP_IP ESP8266 IP Address.platformio/packages/framework-arduinoespressif8266/tools/espota. Image: -f FILE. -r. Default 8266 Authentication: -a AUTH.7. --port=ESP_PORT ESP8266 ota Port. Does not work for ArduinoIDE Demo 4. --spiffs Use this option to transmit a SPIFFS image and do not flash the module. --progress Show progress output. Development Platforms 187 . -p ESP_PORT. And override loglevel with debug. -s.1 ~/. PlatformIO Documentation. --auth=AUTH Set authentication password. --file=FILE Image file. --help show this help message and exit Destination: -i ESP_IP.py [options] Transmit image over the air to the esp8266 module with OTA support.

Tiest van Gool . 2016 . 2016 .Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266.ESP8266 Mobile Rick Roll Captive Portal • Jun 13.ESP8266: Continuous Delivery Pipeline – Push To Production • May 29.New Weather Station Demo on Github • Jun 3. To update Arduino Core to the latest revision. please use platformio platform update com- mand.Jaime . If it works with Arduino IDE but doesn’t work with PlatformIO. 2016 .PlatformIO Documentation. 2016 . 2016 .OTA: PlatformIO and ESP8266 • Sep 12.com/esp8266/Arduino.0 (ESP 12-E) • Feb 23.ESP8266 Over The Air updating – what are the options? • Jan 16.com) • detailed log of build process from PlatformIO Build System ( please copy it from console to http://pastebin. 2016 . Contents .Pedro Minatel .com/platformio/platform-espressif8266.OTA – Como programar o ESP8266 pelo WiFi no platformIO (OTA program- ming for ESP8266 via Wi-Fi using PlatformIO. 1.Joran Jessurun .Pedro Minatel .Tinkerman Optimizing files for SPIFFS with Gulp • Jul 15.Estação meteorológica com ESP8266 (Weather station with ESP8266. For example. 2016 .Nieuwe wereld met PlatformIO (New world with PlatformIO.ini. The Git should be installed in a system.Chris Synan .Reverse Engineer RF Remote Controller for IoT! • May 22. Release 3. Portuguese) • Sep 2. Install Espressif 8266 (Stage) development platform platformio platform install https://github. 2016 .Daniel Eichhorn .ESP8266 Arduino IDE Alternative: PlatformIO 188 Chapter 4.Pedro Minatel .Touch controlled buzzer (Nodemcu ESP8266) • Mar 07. Set platform to espressif8266_stage in Project Configuration File platformio. Por- tuguese) • May 16. 2016 . Dutch) • Feb 25. 2016 .PlatformIO Blink On Nodemcu Dev Kit V1.Ptarmigan Labs .1 Using Arduino Framework with Staging version PlatformIO will install the latest Arduino Core for ESP8266 from https://github. please file new issue with attached information: • test project/files • detailed log of build process from Arduino IDE (please copy it from console to http://pastebin.Daniel Eichhorn . Try to build project 4. com) Articles • Jan 12. If you see build errors. 2016 . then try to build this project using the same stage with Arduino IDE 5. 2017 . 2016 . [env:nodemcuv2] platform = espressif8266_stage board = nodemcuv2 framework = arduino 3.3. 2016 .NutDIY .Dani Eichhorn .Radoslaw Bob . ˓→git#feature/stage 2. Portuguese) • May 08.

• Native SDK • WebServer • WiFiScan Platform freescalekinetis Freescale Kinetis Microcontrollers is family of multiple hardware. Japanese) See more Articles about us.7. please read this article Enable serial port on Raspberry Pi. 2015 .Jan Penninkhof .and software-compatible ARM Cortex-M0+.rules (an instruction is located in the file). 2015 . • Raspberry Pi users. Windows Users: Please check that you have correctly installed USB driver from board manufacturer 4. Examples All project examples are located in PlatformIO repository Examples for Espressif 8266 platform. PlatformIO Documentation.ESP8266 CUI (Develop a ESP8266 in CUI. Development Platforms 189 . • Install “udev” rules file 99-platformio-udev. Kinetis MCUs offer exceptional low-power performance.3. scalabil- ity and feature integration. doing this issuing a sudo usermod -a -G dialout yourusername.Tateno Yuichi .Over-the-Air ESP8266 programming using PlatformIO • Dec 01. Release 3. Cortex-M4 and Cortex-M7-based MCU series. For more detailed information please visit vendor site.1 • Dec 22. Contents • Platform freescalekinetis – Packages – Frameworks – Boards * Freescale * MikroElektronika Packages Name Description framework-mbed mbed Framework toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”.

In addition to RTOS.PlatformIO Documentation. allowing you to code down to the metal if needed. Contents .3. Release 3. Freescale ID Name MicrocontrollerFre. The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to work be intuitive and concise. USB and Networking libraries. and Internet of Things applications. yet powerful enough to build complex projects.1 Frameworks Name Description Frame. Flash RAM quency IBMEthernetKit Ethernet IoT Starter Kit MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_k20d50m Freescale Kinetis MK20DX128VLH5 48 MHz 128 Kb 16 Kb FRDM-K20D50M frdm_k22f Freescale Kinetis FRDM-K22F MK22FN512VLH12 120 MHz 512 Kb 128 Kb frdm_k64f Freescale Kinetis FRDM-K64F MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_kl05z Freescale Kinetis FRDM-KL05Z MKL05Z32VFM4 48 MHz 32 Kb 4 Kb frdm_kl25z Freescale Kinetis FRDM-KL25Z MKL25Z128VLK4 48 MHz 128 Kb 16 Kb frdm_kl26z Freescale Kinetis FRDM-KL26Z MKL26Z128VLH4 48 MHz 128 Kb 16 Kb frdm_kl27z Freescale Kinetis FRDM-KL27Z MKL27Z64VLH4 48 MHz 64 Kb 16 Kb frdm_kl43z Freescale Kinetis FRDM-KL43Z MKL43Z256VLH4 48 MHz 256 Kb 32 Kb frdm_kl46z Freescale Kinetis FRDM-KL46Z MKL46Z256VLL4 48 MHz 256 Kb 32 Kb MikroElektronika ID Name Microcontroller Frequency Flash RAM hexiwear Hexiwear MK64FN1M0VDC12 120 MHz 1024 Kb 256 Kb Platform intel_arc32 ARC embedded processors are a family of 32-bit CPUs that are widely used in SoC devices for storage. For more detailed information please visit vendor site. mobile. automotive. It is built on the low-level mbed ARM CMSIS APIs. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community. 190 Chapter 4. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. home.

please read this article Enable serial port on Raspberry Pi. Development Platforms 191 . spaces or physical experiences. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. doing this issuing a sudo usermod -a -G dialout yourusername.7. Intel ID Name Microcontroller Frequency Flash RAM genuino101 Arduino/Genuino 101 ARCV2EM 32 MHz 192 Kb 80 Kb 4.3. interactive objects.rules (an instruction is located in the file).1 Contents • Platform intel_arc32 – Packages – Frameworks – Boards * Intel Packages Name Description framework-arduinointel Arduino Wiring-based Framework (Intel ARC Core) tool-arduino101load Genuino101 uploader toolchain-intelarc32 GCC for Intel ARC Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Release 3. • Raspberry Pi users. PlatformIO Documentation. • Install “udev” rules file 99-platformio-udev.

PlatformIO Documentation. doing this issuing a sudo usermod -a -G dialout yourusername. In addition to LUT-based. These features allow the devices to be used in low-cost. Contents • Platform lattice_ice40 – Packages – Boards * FPGAwars * Lattice Packages Name Description toolchain-icestorm Tools for analyzing and creating bitstream files for FPGA IceStorm toolchain-iverilog Verilog simulation and synthesis tool Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. Contents . • Raspberry Pi users. FPGAwars ID Name Microcontroller Frequency Flash RAM icezum IceZUM Alhambra FPGA ICE40-HX1K-TQ144 12 MHz 32 Kb 32 Kb 192 Chapter 4. high-volume consumer and system applications. these devices feature Embedded Block RAM (EBR).rules (an instruction is located in the file). Non-volatile Configuration Memory (NVCM) and Phase Locked Loops (PLLs).1 Platform lattice_ice40 The iCE40 family of ultra-low power. Release 3. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. • Install “udev” rules file 99-platformio-udev. please read this article Enable serial port on Raspberry Pi.low-cost programmable logic. For more detailed information please visit vendor site. non-volatile FPGAs has five devices with densities ranging from 384 to 7680 Look-Up Tables (LUTs).3.

PIC32 MCUs gives your application the processing power. Release 3.3.7. doing this issuing a sudo usermod -a -G dialout yourusername.1 Lattice ID Name Microcontroller Frequency Flash RAM icestick Lattice iCEstick FPGA Evaluation Kit ICE40-HX1K-TQ144 12 MHz 32 Kb 32 Kb Platform microchippic32 Microchip’s 32-bit portfolio with the MIPS microAptiv or M4K core offer high performance microcontrollers. Development Platforms 193 . Contents • Platform microchippic32 – Packages – Frameworks – Boards * 4DSystems * Digilent * Fubarino * MikroElektronika * Olimex * OpenBCI * PONTECH * SeeedStudio * UBW32 * chipKIT * element14 Packages Name Description framework-arduinomicrochippic32 Arduino Wiring-based Framework (PIC32 Core) tool-pic32prog pic32prog toolchain-microchippic32 GCC for Microchip PIC32 Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. and all the tools needed to develop your embedded projects. PlatformIO Documentation. memory and peripherals your design needs! For more detailed information please visit vendor site. 4.

rules (an instruction is located in the file). Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. interactive objects. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Contents . Release 3.3. spaces or physical experiences.PlatformIO Documentation. 4DSystems ID Name Microcontroller Frequency Flash RAM picadillo_35t 4DSystems PICadillo 35T 32MX795F512L 80 MHz 512 Kb 128 Kb Digilent ID Name Microcontroller Frequency Flash RAM cerebot32mx4 Digilent Cerebot 32MX4 32MX460F512L 80 MHz 512 Kb 32 Kb cerebot32mx7 Digilent Cerebot 32MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_cmod Digilent chipKIT Cmod 32MX150F128D 40 MHz 128 Kb 32 Kb chipkit_dp32 Digilent chipKIT DP32 32MX250F128B 40 MHz 128 Kb 32 Kb chipkit_mx3 Digilent chipKIT MX3 32MX320F128H 80 MHz 128 Kb 16 Kb chipkit_pro_mx4 Digilent chipKIT Pro MX4 32MX460F512L 80 MHz 512 Kb 32 Kb chipkit_pro_mx7 Digilent chipKIT Pro MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_uc32 Digilent chipKIT uC32 32MX340F512H 80 MHz 512 Kb 32 Kb chipkit_wf32 Digilent chipKIT WF32 32MX695F512L 80 MHz 512 Kb 128 Kb chipkit_wifire Digilent chipKIT WiFire 32MZ2048ECG100 200 MHz 2048 Kb 512 Kb mega_pic32 Digilent chipKIT MAX32 32MX795F512L 80 MHz 512 Kb 128 Kb openscope Digilent OpenScope 32MZ2048EFG124 200 MHz 2048 Kb 512 Kb uno_pic32 Digilent chipKIT UNO32 32MX320F128H 80 MHz 128 Kb 16 Kb 194 Chapter 4.1 • Install “udev” rules file 99-platformio-udev. • Raspberry Pi users. please read this article Enable serial port on Raspberry Pi.

1 Fubarino ID Name Microcontroller Frequency Flash RAM fubarino_mini Fubarino Mini 32MX250F128D 48 MHz 128 Kb 32 Kb fubarino_sd Fubarino SD (1. PlatformIO Documentation.5) 32MX795F512H 80 MHz 512 Kb 128 Kb MikroElektronika ID Name Microcontroller Frequency Flash RAM clicker2 MikroElektronika Clicker 2 32MX460F512L 80 MHz 512 Kb 32 Kb Olimex ID Name Microcontroller Frequency Flash RAM pinguino32 Olimex PIC32-PINGUINO 32MX440F256H 80 MHz 256 Kb 32 Kb OpenBCI ID Name Microcontroller Frequency Flash RAM openbci OpenBCI 32bit 32MX250F128B 40 MHz 128 Kb 32 Kb PONTECH ID Name Microcontroller Frequency Flash RAM quick240_usb PONTECH quicK240 32MX795F512L 80 MHz 512 Kb 128 Kb usbono_pic32 PONTECH UAV100 32MX440F512H 80 MHz 512 Kb 32 Kb SeeedStudio ID Name Microcontroller Frequency Flash RAM cui32stem SeeedStudio CUI32stem 32MX795F512H 80 MHz 512 Kb 128 Kb UBW32 ID Name Microcontroller Frequency Flash RAM ubw32_mx460 UBW32 MX460 32MX460F512L 80 MHz 512 Kb 32 Kb ubw32_mx795 UBW32 MX795 32MX795F512L 80 MHz 512 Kb 128 Kb chipKIT ID Name Microcontroller Frequency Flash RAM lenny chipKIT Lenny 32MX270F256D 40 MHz 128 Kb 32 Kb 4. Development Platforms 195 . Release 3.3.7.

3.4GHz protocols such as Gazell. For more detailed information please visit vendor site. Release 3. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy).PlatformIO Documentation. system-on-chip (SoC) devices for ultra-low power wireless applications.1 element14 ID Name Microcontroller Frequency Flash RAM chipkit_pi Element14 chipKIT Pi 32MX250F128B 40 MHz 128 Kb 32 Kb Platform nordicnrf51 The Nordic nRF51 Series is a family of highly flexible. ANT and proprietary 2. multi-protocol. Contents . Contents • Platform nordicnrf51 – Packages – Frameworks – Boards * BBC * Delta * JKSoft * Nordic * RFduino * RedBearLab * SeeedStudio * Switch Science * y5 design – Articles – Examples Packages Name Description framework-arduinonordicnrf51 Arduino Wiring-based Framework (RFduino Core) framework-mbed mbed Framework tool-rfdloader rfdloader tool-sreccat Merging tool toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: 196 Chapter 4.

Framework The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to mbed be intuitive and concise.rules (an instruction is located in the file). Development Platforms 197 . spaces or physical experiences. USB and Networking libraries. In addition to RTOS. PlatformIO Documentation.3. BBC ID Name Microcontroller Frequency Flash RAM bbcmicrobit BBC micro:bit NRF51822 16 MHz 256 Kb 16 Kb bbcmicrobit_b BBC micro:bit B(S130) NRF51822 16 MHz 256 Kb 16 Kb Delta ID Name Microcontroller Frequency Flash RAM dfcm_nnn40 Delta DFCM-NNN40 NRF51822 32 MHz 256 Kb 32 Kb JKSoft ID Name Microcontroller Frequency Flash RAM wallbot_ble JKSoft Wallbot BLE NRF51822 16 MHz 128 Kb 16 Kb 4. • Install “udev” rules file 99-platformio-udev. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.7. It is built on the low-level ARM CMSIS APIs.1 • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. yet powerful enough to build complex projects. please read this article Enable serial port on Raspberry Pi. doing this issuing a sudo usermod -a -G dialout yourusername. allowing you to code down to the metal if needed. interactive objects. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. Release 3. • Raspberry Pi users. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

3. Contents .Tom Parker Using the BBC micro:bit with PlatformIO Examples All project examples are located in PlatformIO repository Examples for Nordic nRF51 platform. Release 3. 2016 . • RFduino iBeacon 198 Chapter 4.1 Nordic ID Name Microcontroller Frequency Flash RAM nrf51_dk Nordic nRF51-DK NRF51822 32 MHz 256 Kb 32 Kb nrf51_dongle Nordic nRF51-Dongle NRF51822 32 MHz 256 Kb 32 Kb nrf51_mkit Nordic nRF51822-mKIT NRF51822 16 MHz 128 Kb 16 Kb RFduino ID Name Microcontroller Frequency Flash RAM rfduino RFduino NRF51822 16 MHz 128 Kb 8 Kb RedBearLab ID Name Microcontroller Frequency Flash RAM redBearLab RedBearLab nRF51822 NRF51822 16 MHz 256 Kb 16 Kb redBearLabBLENano RedBearLab BLE Nano NRF51822 16 MHz 256 Kb 32 Kb SeeedStudio ID Name Microcontroller Frequency Flash RAM seeedArchBLE Seeed Arch BLE NRF51822 16 MHz 128 Kb 16 Kb seeedArchLink Seeed Arch Link NRF51822 16 MHz 256 Kb 16 Kb seeedTinyBLE Seeed Tiny BLE NRF51822 16 MHz 256 Kb 16 Kb Switch Science ID Name Microcontroller Frequency Flash RAM hrm1017 Switch Science mbed HRM1017 NRF51822 16 MHz 256 Kb 16 Kb ty51822r3 Switch Science mbed TY51822r3 NRF51822 32 MHz 256 Kb 32 Kb y5 design ID Name Microcontroller Frequency Flash RAM nrf51822_y5_mbug y5 nRF51822 mbug NRF51822 16 MHz 256 Kb 16 Kb Articles • Aug 28.PlatformIO Documentation.

Contents • Platform nxplpc – Packages – Frameworks – Boards * CQ Publishing * Elektor Labs * Embedded Artists * GHI Electronics * Micromint * NGX Technologies * NXP * Outrageous Circuits * SeeedStudio * Smeshlink * Solder Splash Labs * Switch Science * u-blox * y5 design Packages Name Description framework-mbed mbed Framework toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. • Install “udev” rules file 99-platformio-udev. • Raspberry Pi users. Internally.1 Platform nxplpc The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. or Cortex-M0.7. For more detailed information please visit vendor site. Release 3. debugging interface. each microcontroller consists of the processor core. Cortex-M3. please read this article Enable serial port on Raspberry Pi. Development Platforms 199 . flash memory.rules (an instruction is located in the file). The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core. PlatformIO Documentation. and various peripherals. doing this issuing a sudo usermod -a -G dialout yourusername. Cortex-M0+.3. 4. static RAM memory. such as the Cortex-M4F.

USB and Networking libraries. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Release 3. yet powerful enough to build complex projects.1 Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Frame. It is built on the low-level mbed ARM CMSIS APIs. CQ Publishing ID Name Microcontroller Frequency Flash RAM lpc11u35_501 CQ Publishing TG-LPC11U35-501 LPC11U35 48 MHz 64 Kb 10 Kb Elektor Labs ID Name Microcontroller Frequency Flash RAM elektor_cocorico CoCo-ri-Co! LPC812 30 MHz 16 Kb 4 Kb Embedded Artists ID Name Microcon. The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to work be intuitive and concise.PlatformIO Documentation. Contents . In addition to RTOS.3. allowing you to code down to the metal if needed. Fre. Flash RAM troller quency lpc11u35 EA LPC11U35 QuickStart Board LPC11U35 48 MHz 64 Kb 10 Kb lpc4088 Embedded Artists LPC4088 QuickStart LPC4088 120 MHz 512 96 Board Kb Kb lpc4088_dm Embedded Artists LPC4088 Display LPC4088 120 MHz 512 96 Module Kb Kb GHI Electronics ID Name Microcontroller Frequency Flash RAM oc_mbuino mBuino LPC11U24 50 MHz 32 Kb 10 Kb 200 Chapter 4. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

7. Flash RAM troller quency blueboard_lpc11u24 NGX Technologies LPC11U24 48 MHz 32 8 Kb BlueBoard-LPC11U24 Kb NXP ID Name Microcontroller Frequency Flash RAM lpc11c24 NXP LPC11C24 LPC11C24 48 MHz 32 Kb 8 Kb lpc11u24 NXP mbed LPC11U24 LPC11U24 48 MHz 32 Kb 8 Kb lpc11u24_301 ARM mbed LPC11U24 (+CAN) LPC11U24 48 MHz 32 Kb 8 Kb lpc11u34_421 NXP LPC11U34 LPC11U34 48 MHz 64 Kb 8 Kb lpc11u37_501 NXP LPC11U37 LPC11U37 48 MHz 128 Kb 10 Kb lpc11u68 LPCXpresso11U68 LPC11U68 50 MHz 256 Kb 36 Kb lpc1549 NXP LPCXpresso1549 LPC1549 72 MHz 256 Kb 36 Kb lpc1768 NXP mbed LPC1768 LPC1768 96 MHz 512 Kb 64 Kb lpc2368 NXP LPC2368 LPC2368 72 MHz 512 Kb 58 Kb lpc2460 NXP LPC2460 LPC2460 72 MHz 64 Kb 16 Kb lpc812 NXP LPC800-MAX LPC812 30 MHz 16 Kb 4 Kb lpc824 LPCXpresso824-MAX LPC824 30 MHz 32 Kb 8 Kb micronfcboard MicroNFCBoard LPC11U34 48 MHz 64 Kb 10 Kb Outrageous Circuits ID Name Microcontroller Frequency Flash RAM mbuino Outrageous Circuits mBuino LPC11U24 48 MHz 32 Kb 8 Kb SeeedStudio ID Name Microcontroller Frequency Flash RAM seeedArchGPRS Seeed Arch GPRS V2 LPC11U37 48 MHz 128 Kb 10 Kb seeedArchPro Seeed Arch Pro LPC1768 96 MHz 512 Kb 64 Kb xadow_m0 Seeed Xadow M0 LPC11U35 48 MHz 64 Kb 10 Kb Smeshlink ID Name Microcontroller Frequency Flash RAM xbed_lpc1768 Smeshlink xbed LPC1768 LPC1768 96 MHz 512 Kb 32 Kb 4.1 Micromint ID Name Microcontroller Frequency Flash RAM lpc4330_m4 Bambino-210E LPC4330 204 MHz 8192 Kb 264 Kb lpc4337 LPCXpresso4337 LPC4337 204 MHz 1024 Kb 136 Kb NGX Technologies ID Name Microcon. Release 3.3. PlatformIO Documentation. Development Platforms 201 . Fre.

short wake-up time from energy saving modes and a wide se- lection of peripherals. Release 3.1 Solder Splash Labs ID Name Microcontroller Frequency Flash RAM dipcortexm0 Solder Splash Labs DipCortex M0 LPC11U24 50 MHz 32 Kb 8 Kb lpc1347 DipCortex M3 LPC1347 72 MHz 64 Kb 12 Kb Switch Science ID Name Microcontroller Frequency Flash RAM lpc1114fn28 Switch Science mbed LPC1114FN28 LPC1114FN28 48 MHz 32 Kb 4 Kb ssci824 Switch Science mbed LPC824 LPC824 30 MHz 32 Kb 8 Kb u-blox ID Name Microcontroller Frequency Flash RAM ubloxc027 u-blox C027 LPC1768 96 MHz 512 Kb 64 Kb y5 design ID Name Microcontroller Frequency Flash RAM lpc11u35_y5_mbug y5 LPC11U35 mbug LPC11U35 48 MHz 64 Kb 10 Kb Platform siliconlabsefm32 Silicon Labs EFM32 Gecko 32-bit microcontroller (MCU) family includes devices that offer flash memory configura- tions up to 256 kB.PlatformIO Documentation. the Gecko family features innovative low energy techniques.3. Based on the powerful ARM Cortex-M core. Contents . Contents • Platform siliconlabsefm32 – Packages – Frameworks – Boards * Silicon Labs Packages Name Description framework-mbed mbed Framework toolchain-gccarmnoneeabi gcc-arm-embedded 202 Chapter 4. 32 kB of RAM and CPU speeds up to 48 MHz. making it ideal for battery operated applications and other systems requiring high performance and low-energy consumption. For more detailed information please visit vendor site.

rules (an instruction is located in the file). USB and Networking libraries.3. doing this issuing a sudo usermod -a -G dialout yourusername. In addition to RTOS. Flash RAM quency Silicon Labs EFM32GG-STK3700 (Giant efm32gg_stk3700 EFM32GG990F102448 MHz 1024 128 Gecko) Kb Kb Silicon Labs SLSTK3400A USB-enabled efm32hg_stk3400 EFM32HG322F64 24 MHz 64 Kb 8 Kb (Happy Gecko) Silicon Labs EFM32LG-STK3600 efm32lg_stk3600 EFM32LG990F256 48 MHz 256 32 (Leopard Gecko) Kb Kb Silicon Labs SLSTK3401A (Pearl Gecko) efm32pg_stk3401 EFM32PG1B200F256 40 MHz 256 32 Kb Kb Silicon Labs EFM32WG-STK3800 efm32wg_stk3800 EFM32WG990F25648 MHz 256 32 (Wonder Gecko) Kb Kb Silicon Labs EFM32ZG-STK3200 (Zero efm32zg_stk3200 EFM2ZG222F32 24 MHz 32 Kb 4 Kb Gecko) Platform ststm32 The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. yet powerful enough to build complex projects.7. • Install “udev” rules file 99-platformio-udev. allowing you to code down to the metal if needed. PlatformIO Documentation. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. It is built on the low-level mbed ARM CMSIS APIs. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Frame. Release 3. The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to work be intuitive and concise. Silicon Labs ID Name MicrocontrollerFre. please read this article Enable serial port on Raspberry Pi. • Raspberry Pi users. real-time capabil- 4.1 Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. Development Platforms 203 . It offers a 32-bit product range that combines very high performance. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

PlatformIO Documentation. and low-power. digital signal processing. please read this article Enable serial port on Raspberry Pi. while maintaining full integration and ease of development. • Install “udev” rules file 99-platformio-udev.rules (an instruction is located in the file). Release 3. For more detailed information please visit vendor site.3. Contents . low-voltage operation. • Raspberry Pi users. Contents • Platform ststm32 – Packages – Frameworks – Boards * 96Boards * Armstrap * Espotel * Generic * LeafLabs * MultiTech * ST * SeeedStudio * Semtech * u-blox – Articles – Examples Packages Name Description framework-arduinoststm32 Arduino Wiring-based Framework (STM32 Core) framework-cmsis Vendor-independent hardware abstraction layer for the Cortex-M processor series framework-libopencm3 libOpenCM3 Framework framework-mbed mbed Framework framework-spl Standard Peripheral Library for STM32 MCUs tool-stlink ST-Link tool-stm32duino STM32Duino Tools toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. 204 Chapter 4.1 ities. doing this issuing a sudo usermod -a -G dialout yourusername.

The idea is to save the user (the new user. Release 3. USB and Networking libraries. 15xx. Energy Micro EFM32 and others. Development Platforms 205 . Framework The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various libopencm3 ARM Cortex-M0(+)/M3/M4 microcontrollers. yet powerful enough to build complex projects. PlatformIO Documentation. allowing you to code down to the metal if needed. Framework The ST Standard Peripheral Library provides a set of functions for handling the peripherals on spl the STM32 Cortex-M3 family. It is built on the low-level ARM CMSIS APIs. in particular) having to deal directly with the registers. 17xx parts.1 Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. Ti Tiva and Stellaris. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. spaces or physical experiences. including ST STM32. real-time operating systems. reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices. NXP LPC 11xx.3. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community. Framework The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent cmsis hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. Framework The mbed framework The mbed SDK has been designed to provide enough hardware abstraction mbed to be intuitive and concise. Atmel SAM3. 13xx. 96Boards ID Name Microcontroller Frequency Flash RAM b96b_f446ve 96Boards B96B-F446VE STM32F446VET6 168 MHz 512 Kb 128 Kb Armstrap ID Name Microcontroller Frequency Flash RAM armstrap_eagle1024 Armstrap Eagle 1024 STM32F417VGT6 168 MHz 1024 Kb 192 Kb armstrap_eagle2048 Armstrap Eagle 2048 STM32F427VIT6 168 MHz 2048 Kb 256 Kb armstrap_eagle512 Armstrap Eagle 512 STM32F407VET6 168 MHz 512 Kb 192 Kb 4. interactive objects. and middleware. It simplifies software re-use.7. In addition to RTOS.

Contents .PlatformIO Documentation.3. 256k STM32F103RC 72 MHz 256 48 Flash) Kb Kb genericSTM32F103RESTM32F103RE (64k RAM. 512k STM32F103RE 72 MHz 512 64 Flash) Kb Kb LeafLabs ID Name Microcontroller Frequency Flash RAM maple Maple STM32F103RB 72 MHz 128 Kb 17 Kb maple_mini_b20 Maple Mini Bootloader 2.1 Espotel ID Name Microcontroller Frequency Flash RAM elmo_f411re Espotel LoRa Module STM32F411RET6 100 MHz 512 Kb 128 Kb Generic ID Name Microcon. 128k STM32F103CB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103R8STM32F103R8 (20k RAM. 128k STM32F103RB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103RCSTM32F103RC (48k RAM. Flash RAM troller quency bluepill_f103c8 BluePill F103C8 STM32F103C8T6 72 MHz 64 Kb 20 Kb genericSTM32F103C8STM32F103C8 (20k RAM. 64 STM32F103R8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103RBSTM32F103RB (20k RAM. Fre. 64k STM32F103C8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103CBSTM32F103CB (20k RAM.0 STM32F103CB 72 MHz 128 Kb 20 Kb maple_mini_origin Maple Mini Original STM32F103CB 72 MHz 128 Kb 17 Kb MultiTech ID Name Microcontroller Frequency Flash RAM mts_dragonfly_f411re MTS Dragonfly STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f405rg MultiTech mDot STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f411re MultiTech mDot F411 STM32F411RET6 100 MHz 512 Kb 128 Kb xdot_l151cc MultiTech xDot STM32L151CCU6 32 MHz 256 Kb 32 Kb ST ID Name Microcontroller Frequency Flash RAM disco_f051r8 ST STM32F0DISCOVERY STM32F051R8T6 48 MHz 64 Kb 8 Kb disco_f100rb ST STM32VLDISCOVERY STM32F100RBT6 24 MHz 128 Kb 8 Kb disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f334c8 ST 32F3348DISCOVERY STM32F334C8T6 72 MHz 64 Kb 12 Kb Continued on next page 206 Chapter 4. Release 3.

1 Table 4.7. PlatformIO Documentation. Release 3. Development Platforms 207 .3.2 – continued from previous page ID Name Microcontroller Frequency Flash RAM disco_f401vc ST 32F401CDISCOVERY STM32F401VCT6 84 MHz 256 Kb 64 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_f429zi ST 32F429IDISCOVERY STM32F429ZIT6 180 MHz 2048 Kb 256 Kb disco_f469ni ST 32F469IDISCOVERY STM32F469NIH6 180 MHz 1024 Kb 384 Kb disco_f746ng ST 32F746GDISCOVERY STM32F746NGH6 216 MHz 1024 Kb 320 Kb disco_f769ni ST 32F769IDISCOVERY STM32F769NIH6 80 MHz 1024 Kb 512 Kb disco_l053c8 ST 32L0538DISCOVERY STM32L053C8T6 32 MHz 64 Kb 8 Kb disco_l152rb ST STM32LDISCOVERY STM32L152RBT6 32 MHz 128 Kb 16 Kb disco_l476vg ST 32L476GDISCOVERY STM32L476VGT6 80 MHz 1024 Kb 128 Kb nucleo_f030r8 ST Nucleo F030R8 STM32F030R8T6 48 MHz 64 Kb 8 Kb nucleo_f031k6 ST Nucleo F031K6 STM32F031K6T6 48 MHz 32 Kb 4 Kb nucleo_f042k6 ST Nucleo F042K6 STM32F042K6T6 48 MHz 32 Kb 6 Kb nucleo_f070rb ST Nucleo F070RB STM32F070RBT6 48 MHz 128 Kb 16 Kb nucleo_f072rb ST Nucleo F072RB STM32F072RBT6 48 MHz 128 Kb 16 Kb nucleo_f091rc ST Nucleo F091RC STM32F091RCT6 48 MHz 256 Kb 32 Kb nucleo_f103rb ST Nucleo F103RB STM32F103RBT6 72 MHz 128 Kb 20 Kb nucleo_f207zg ST Nucleo F207ZG STM32F207ZGT6 120 MHz 1024 Kb 128 Kb nucleo_f302r8 ST Nucleo F302R8 STM32F302R8T6 72 MHz 64 Kb 16 Kb nucleo_f303k8 ST Nucleo F303K8 STM32F303K8T6 72 MHz 64 Kb 16 Kb nucleo_f303re ST Nucleo F303RE STM32F303RET6 72 MHz 512 Kb 64 Kb nucleo_f303ze ST Nucleo F303ZE STM32F303ZET6 72 MHz 512 Kb 64 Kb nucleo_f334r8 ST Nucleo F334R8 STM32F334R8T6 72 MHz 64 Kb 16 Kb nucleo_f401re ST Nucleo F401RE STM32F401RET6 84 MHz 512 Kb 96 Kb nucleo_f410rb ST Nucleo F410RB STM32F410RBT6 100 MHz 128 Kb 32 Kb nucleo_f411re ST Nucleo F411RE STM32F411RET6 100 MHz 512 Kb 128 Kb nucleo_f429zi ST Nucleo F429ZI STM32F429ZIT6 180 MHz 2048 Kb 256 Kb nucleo_f446re ST Nucleo F446RE STM32F446RET6 180 MHz 512 Kb 128 Kb nucleo_f446ze ST Nucleo F446ZE STM32F446ZET6 180 MHz 512 Kb 128 Kb nucleo_f746zg ST Nucleo F746ZG STM32F746ZGT6 216 MHz 1024 Kb 320 Kb nucleo_f767zi ST Nucleo F767ZI STM32F746ZGT6 216 MHz 2048 Kb 512 Kb nucleo_l011k4 ST Nucleo L011K4 STM32L011K4T6 32 MHz 16 Kb 2 Kb nucleo_l031k6 ST Nucleo L031K6 STM32L031K6T6 32 MHz 32 Kb 8 Kb nucleo_l053r8 ST Nucleo L053R8 STM32L053R8T6 48 MHz 64 Kb 8 Kb nucleo_l073rz ST Nucleo L073RZ STM32L073RZ 32 MHz 192 Kb 20 Kb nucleo_l152re ST Nucleo L152RE STM32L152RET6 32 MHz 512 Kb 80 Kb nucleo_l432kc ST Nucleo L432KC STM32L432KCU6 80 MHz 256 Kb 64 Kb nucleo_l476rg ST Nucleo L476RG STM32L476RGT6 80 MHz 1024 Kb 128 Kb SeeedStudio ID Name Microcontroller Frequency Flash RAM seeedArchMax Seeed Arch Max STM32F407VET6 168 MHz 512 Kb 192 Kb Semtech ID Name Microcontroller Frequency Flash RAM mote_l152rc NAMote72 STM32L152RC 32 MHz 256 Kb 32 Kb 4.

Release 3. only a standard USB cable and a PC or Macintosh with a USB port. No special programmer is needed.PlatformIO Documentation. 2015 . Examples All project examples are located in PlatformIO repository Examples for ST STM32 platform. Japanese) • Oct 21.Armstrap Eagle and PlatformIO See more Articles about us.3.Josh Glendenning . 2015 . Contents .nocd5 . capable of imple- menting many types of projects. All programming is done via the USB port. For more detailed information please visit vendor site. in a very small footprint.1 u-blox ID Name Microcontroller Frequency Flash RAM ublox_evk_odin_w2 u-blox EVK-ODIN-W2 STM32F439ZIY6 168 MHz 2048 Kb 256 Kb Articles • Nov 06. • CMSIS Blink • libOpenCM3 Blink • SPL Blink Platform teensy Teensy is a complete USB-based microcontroller development system.Using a cheap STM32 Nucleo to teach remote sensor monitoring • Aug 08. Contents • Platform teensy – Packages – Frameworks – Boards * Teensy – USB Features – Examples 208 Chapter 4.Vittorio Zaccaria . 2015 .PlatformIOmbedSTM32 Nucleomruby (Use mruby in the offline build for STM32 Nucleo board with mbed and PlatformIO.

Development Platforms 209 .1 Packages Name Description framework-arduinoteensy Arduino Wiring-based Framework framework-mbed mbed Framework tool-teensy Teensy Loader toolchain-atmelavr avr-gcc toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. Windows XP.rules (an instruction is located in the file). It is built on the low-level ARM CMSIS APIs. doing this issuing a sudo usermod -a -G dialout yourusername. please read this article Enable serial port on Raspberry Pi. yet powerful enough to build complex projects. Vista. 4. In addition to RTOS. • Raspberry Pi users. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. • Install “udev” rules file 99-platformio-udev.7. 7 and 8 require this serial driver is needed to access the COM port your program uses. Windows Users: Teensy programming uses only Windows built-in HID drivers. spaces or physical experiences. When Teensy is programmed to act as a USB Serial device.3. interactive objects. Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. No special driver installation is necessary on Windows 10. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community. allowing you to code down to the metal if needed. USB and Networking libraries. PlatformIO Documentation. Framework The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to mbed be intuitive and concise. Release 3.

210 Chapter 4. • Wiring Blink • HID Mouse • Chat Server Platform timsp430 MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit.3.PlatformIO Documentation. Contents . RISC-based. mixed-signal processors de- signed for ultra-low power. Examples All project examples are located in PlatformIO repository Examples for Teensy platform.5 Kb teensy20pp Teensy++ 2.0 ATMEGA32U4 16 MHz 32 Kb 2.6 MK66FX1M0 180 MHz 1024 Kb 256 Kb teensylc Teensy LC MKL26Z64 48 MHz 64 Kb 8 Kb USB Features If you want to use Teensy USB Features.1 / 3. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications.5 MK64FX512 120 MHz 512 Kb 192 Kb teensy36 Teensy 3.1 Teensy ID Name Microcontroller Frequency Flash RAM teensy20 Teensy 2. you need to add special acros/define using build_flags: • -D USB_AUDIO • -D USB_HID • -D USB_SERIAL_HID • -D USB_DISK • -D USB_DISK_SDFLASH • -D USB_MIDI • -D USB_RAWHID • -D USB_FLIGHTSIM • -D USB_DISABLED Example: [env:teensy_hid_device] platform = teensy framework = arduino board = teensy20 build_flags = -D USB_RAWHID See Teensy USB Examples.2 MK20DX256 72 MHz 256 Kb 64 Kb teensy35 Teensy 3.0 MK20DX128 48 MHz 128 Kb 16 Kb teensy31 Teensy 3. Release 3.0 AT90USB1286 16 MHz 128 Kb 8 Kb teensy30 Teensy 3.

1 For more detailed information please visit vendor site. interactive objects. Contents • Platform timsp430 – Packages – Frameworks – Boards * PanStamp * TI – Articles – Examples Packages Name Description framework-arduinomsp430 Arduino Wiring-based Framework (MSP430 Core) framework-energiamsp430 Energia Wiring-based Framework (MSP430 Core) tool-mspdebug MSPDebug toolchain-timsp430 msp-gcc Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. please read this article Enable serial port on Raspberry Pi. Development Platforms 211 . buzzing buzzers and sensing sensors more quickly than ever before. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Arduino Wiring-based Framework allows writing cross-platform software to control devices arduino attached to a wide range of Arduino boards to create all kinds of creative coding. Framework Energia Wiring-based framework enables pretty much anyone to start easily creating energia microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs. spaces or physical experiences. • Raspberry Pi users. PlatformIO Documentation. Boards 4.3.rules (an instruction is located in the file). Release 3.7. • Install “udev” rules file 99-platformio-udev. doing this issuing a sudo usermod -a -G dialout yourusername.

Flash RAM troller quency lpmsp430f5529 TI LaunchPad MSP-EXP430F5529LP MSP430F5529 16 MHz 128 8 Kb Kb lpmsp430fr4133 TI LaunchPad MSP430FR4133 8 MHz 16 Kb 2 Kb MSP-EXP430FR4133LP lpmsp430fr5739 TI FraunchPad MSP430FR5739 16 MHz 16 Kb 0. Contents .1 CC430F5137 12 MHz 32 Kb 4 Kb TI ID Name Microcon.Piotr Król . • Energia blink • Native blink • Wiring Blink • PanStamp blink 212 Chapter 4. Examples All project examples are located in PlatformIO repository Examples for TI MSP430 platform. Release 3.5 MSP-EXP430G2553LP Kb Articles • Dec 08.1 Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. PanStamp ID Name Microcontroller Frequency Flash RAM panStampNRG PanStamp NRG 1.5 MSP-EXP430FR5739LP Kb lpmsp430fr5969 TI LaunchPad MSP430FR5969 8 MHz 64 Kb 2 Kb MSP-EXP430FR5969LP lpmsp430fr6989 TI LaunchPad MSP430FR6989 8 MHz 128 2 Kb MSP-EXP430FR6989LP Kb lpmsp430g2553 TI LaunchPad MSP430G2553 16 MHz 16 Kb 0.PlatformIO Documentation.Using PlatformIO with TI MSP430 LunchPads See more Articles about us. Fre.3. 2015 .

17xx parts. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs. unparalleled connectivity peripherals. advanced application functions. Energy Micro EFM32 and others. 13xx. Contents • Platform titiva – Packages – Frameworks – Boards * TI – Articles – Examples Packages Name Description framework-energiativa Energia Wiring-based Framework (LM4F Core) framework-libopencm3 libOpenCM3 Framework tool-lm4flash Flash Programmer toolchain-gccarmnoneeabi gcc-arm-embedded Warning: Linux Users: • Ubuntu/Debian users may need to add own “username” to the “dialout” group if they are not “root”. Atmel SAM3. Framework The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various libopencm3 ARM Cortex-M0(+)/M3/M4 microcontrollers. please read this article Enable serial port on Raspberry Pi. Ti Tiva and Stellaris.1 Platform titiva Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options. Development Platforms 213 . doing this issuing a sudo usermod -a -G dialout yourusername. 15xx.3. Windows Users: Please check that you have correctly installed USB driver from board manufacturer Frameworks Name Description Framework Energia Wiring-based framework enables pretty much anyone to start easily creating energia microcontroller-based projects and applications.rules (an instruction is located in the file). industry-leading analog integration. PlatformIO Documentation. 4. Release 3.7. buzzing buzzers and sensing sensors more quickly than ever before. NXP LPC 11xx. and extensive software solutions. For more detailed information please visit vendor site. • Raspberry Pi users. including ST STM32. • Install “udev” rules file 99-platformio-udev.

frameworks. 2016 . Release 3. Flash RAM quency lplm4f120h5qr TI LaunchPad (Stellaris) w/ lm4f120 LPLM4F120H5QR 80 MHz 256 32 (80MHz) Kb Kb lptm4c1230c3pm TI LaunchPad (Tiva C) w/ tm4c123 LPTM4C1230C3PM 80 MHz 256 32 (80MHz) Kb Kb lptm4c1294ncpdtTI LaunchPad (Tiva C) w/ tm4c129 LPTM4C1294NCPDT120 MHz 1024 256 (120MHz) Kb Kb Articles • Mar 12.PlatformIO Documentation. Contents .Getting Started With PlatformIO See more Articles about us.1 Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Contents • Platform native 214 Chapter 4. Examples All project examples are located in PlatformIO repository Examples for TI TIVA platform. • Energia blink • Native blink • OpenCM3 Blink Desktop Platform native Native development platform is intended to be used for desktop OS. For more detailed information please visit vendor site. TI ID Name Microcontroller Fre. This platform uses built-in toolchains (preferable based on GCC). libs from particular OS where it will be run.Richard Arthurs .3.

Development Platforms 215 . UART. 4. I2C.1 Platform linux_arm Linux ARM is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Bluetooth. SPI. For more detailed information please visit vendor site. and others.3. Linux ARM) you can build native application for Linux ARM platform. Contents • Platform linux_arm – Packages – Frameworks – Boards * Raspberry Pi * Samsung Packages Name Description framework-artik-sdk ARTIK SDK is a C/C++ SDK targeting Samsung ARTIK platforms framework-wiringpi GPIO Interface library for the Raspberry Pi toolchain-gccarmlinuxgnueabi GCC for Linux ARM GNU EABI Frameworks Name Description Framework ARTIK SDK is a C/C++ SDK targeting Samsung ARTIK platforms. These APIs cover hardware buses such as GPIO. connectivity links like Wi-Fi. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. MQTT. It’s wiringpi designed to be familiar to people who have used the Arduino “wiring” system. Using host OS (Mac OS X. It exposes a set of APIs to artik-sdk ease up development of applications. Framework WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi. Zigbee. Release 3. Websockets. PlatformIO Documentation.7. and network protocols such as HTTP.

Using host OS (Mac OS X or Linux 32-bit) you can build native application for Linux i686 platform. Release 3. Contents . Fre.3.1 Raspberry Pi ID Name Microcon. Flash RAM troller quency raspberrypi_1b Raspberry Pi 1 Model BCM2835 700 MHz 524288 Kb 524288 Kb B raspberrypi_2b Raspberry Pi 2 Model BCM2836 900 MHz 1048576 1048576 B Kb Kb raspberrypi_zero Raspberry Pi Zero BCM2835 1000 MHz 524288 Kb 524288 Kb Samsung ID Name Microcontroller Frequency Flash RAM artik_1020 Samsung ARTIK 1020 EXYNOS5422 1500 MHz 16777216 Kb 2097152 Kb artik_520 Samsung ARTIK 520 EXYNOS3250 1000 MHz 4194304 Kb 524288 Kb artik_530 Samsung ARTIK 530 S5P4418 1200 MHz 4194304 Kb 524288 Kb artik_710 Samsung ARTIK 710 S5P6818 1400 MHz 4194304 Kb 1048576 Kb Platform linux_i686 Linux i686 (32-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Using host OS (Mac OS X or Linux 64-bit) you can build native application for Linux x86_64 platform. For more detailed information please visit vendor site. For more detailed information please visit vendor site.PlatformIO Documentation. Contents • Platform linux_i686 – Packages Packages Name Description toolchain-gcclinux32 GCC for Linux i686 Platform linux_x86_64 Linux x86_64 (64-bit) is a Unix-like and mostly POSIX-compliant computer operating system (OS) assembled under the model of free and open-source software development and distribution. Contents • Platform linux_x86_64 216 Chapter 4.

Embedded Boards 217 . Contents • Platform windows_x86 – Packages Packages Name Description toolchain-gccmingw32 MinGW Embedded Boards Rapid Embedded Development.3.1 – Packages Packages Name Description toolchain-gcclinux64 GCC for Linux x86_64 Platform windows_x86 Windows x86 (32-bit) is a metafamily of graphical operating systems developed and marketed by Microsoft. Release 3. For more detailed information please visit vendor site. Linux 32/64 or Mac OS X) you can build native application for Windows x86 platform. • You can list pre-configured boards using platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.8. Continuous and IDE integration in a few steps with PlatformIO thanks to built-in project generator for the most popular embedded boards and IDE. Contents • Embedded Boards – 4DSystems – 96Boards – Adafruit – Aiyarafun – April Brother – Arduboy – Arduino 4. Using host OS (Windows. PlatformIO Documentation.

3.1 – Armstrap – Atmel – BBC – BQ – BitWizard – CQ Publishing – Delta – Digilent – Digistump – Doit – DycodeX – ESPert – ESPino – Electronic SweetPeas – Elektor Labs – Embedded Artists – Engduino – EnviroDIY – Espotel – Espressif – FPGAwars – Freescale – Fubarino – GHI Electronics – Generic – Generic ATTiny – Hornbill – Intel – JKSoft – Lattice – LeafLabs – LightUp – Linino – LowPowerLab – MakerAsia 218 Chapter 4. Release 3.PlatformIO Documentation. Contents .

Release 3.1 – Mcudude – Microduino – Micromint – MikroElektronika – MultiTech – NGX Technologies – NXP – NodeMCU – Noduino – Nordic – Olimex – OpenBCI – OpenEnergyMonitor – Outrageous Circuits – PONTECH – PanStamp – Pinoccio – Pololu Corporation – Punch Through – Quirkbot – RFduino – Raspberry Pi – RedBearLab – RepRap – SODAQ – ST – SainSmart – Samsung – Sanguino – SeeedStudio – Semtech – Silicon Labs – Smeshlink – Solder Splash Labs – SparkFun 4. Embedded Boards 219 .3.8. PlatformIO Documentation.

PlatformIO Documentation.1 – SparkFun Electronics – SweetPea – Switch Science – TI – Teensy – ThaiEasyElec – The Things Network – TinyCircuits – UBW32 – WEMOS – WeMos – Wicked Device – chipKIT – element14 – makerlab. Contents .3.mx – u-blox – ubIQio – y5 design 4DSystems ID Name Microcontroller Frequency Flash RAM picadillo_35t 4DSystems PICadillo 35T 32MX795F512L 80 MHz 512 Kb 128 Kb 96Boards ID Name Microcontroller Frequency Flash RAM b96b_f446ve 96Boards B96B-F446VE STM32F446VET6 168 MHz 512 Kb 128 Kb 220 Chapter 4. Release 3.

5 Kb 4.1 Adafruit ID Name Microcon. 8 MHz 32 Kb 2.5 MEGA32U4 Kb flora8 Adafruit Flora AT.5 Kb trinket5 Adafruit Trinket 5V/16MHz ATTINY85 16 MHz 8 Kb 0. Flash RAM troller quency Adafruit Circuit Playground adafruit_circuitplayground_m0 SAMD21G18A48 MHz 256 32 Express Kb Kb adafruit_feather_m0_usb Adafruit Feather M0 SAMD21G18A48 MHz 256 32 Kb Kb bluefruitmicro Adafruit Bluefruit Micro AT.5 Kb Aiyarafun ID Name Microcontroller Frequency Flash RAM node32s Node32s ESP32 240 MHz 1024 Kb 112 Kb April Brother ID Name Microcontroller Frequency Flash RAM espea32 April Brother ESPea32 ESP32 240 MHz 1024 Kb 288 Kb Arduboy ID Name Microcontroller Frequency Flash RAM arduboy Arduboy ATMEGA32U4 16 MHz 32 Kb 2. 8 MHz 32 Kb 2. 8 MHz 32 Kb 2.3.8.5 Kb huzzah Adafruit HUZZAH ESP8266 ESP8266 80 MHz 4096 80 Kb Kb metro Adafruit Metro AT. 16 MHz 32 Kb 2 Kb 5V/16MHz (FTDI) MEGA328P trinket3 Adafruit Trinket 3V/8MHz ATTINY85 8 MHz 8 Kb 0.5 MEGA32U4 Kb gemma Adafruit Gemma ATTINY85 8 MHz 8 Kb 0. 12 MHz 32 Kb 2 Kb 3V/12MHz (USB) MEGA328P protrinket3ftdi Adafruit Pro Trinket AT. Embedded Boards 221 . 16 MHz 32 Kb 2 Kb 5V/16MHz (USB) MEGA328P protrinket5ftdi Adafruit Pro Trinket AT. PlatformIO Documentation. 12 MHz 32 Kb 2 Kb 3V/12MHz (FTDI) MEGA328P protrinket5 Adafruit Pro Trinket AT.5 MEGA32U4 Kb feather32u4 Adafruit Feather AT.Fre. Release 3.5 Kb arduboy_devkit Arduboy DevKit ATMEGA32U4 16 MHz 32 Kb 2. 16 MHz 32 Kb 2 Kb MEGA328P protrinket3 Adafruit Pro Trinket AT.

1 Arduino ID Name Microcontroller Frequency Flash LilyPadUSB Arduino LilyPad USB ATMEGA32U4 8 MHz 32 Kb atmega328pb Atmel ATmega328PB ATMEGA328PB 16 MHz 32 Kb atmegangatmega168 Arduino NG or older ATmega168 ATMEGA168 16 MHz 16 Kb atmegangatmega8 Arduino NG or older ATmega8 ATMEGA8 16 MHz 8 Kb btatmega168 Arduino BT ATmega168 ATMEGA168 16 MHz 16 Kb btatmega328 Arduino BT ATmega328 ATMEGA328P 16 MHz 32 Kb chiwawa Arduino Industrial 101 ATMEGA32U4 16 MHz 32 Kb diecimilaatmega168 Arduino Duemilanove or Diecimila ATmega168 ATMEGA168 16 MHz 16 Kb diecimilaatmega328 Arduino Duemilanove or Diecimila ATmega328 ATMEGA328P 16 MHz 32 Kb due Arduino Due (Programming Port) AT91SAM3X8E 84 MHz 512 Kb dueUSB Arduino Due (USB Native Port) AT91SAM3X8E 84 MHz 512 Kb esplora Arduino Esplora ATMEGA32U4 16 MHz 32 Kb ethernet Arduino Ethernet ATMEGA328P 16 MHz 32 Kb fio Arduino Fio ATMEGA328P 8 MHz 32 Kb leonardo Arduino Leonardo ATMEGA32U4 16 MHz 32 Kb leonardoeth Arduino Leonardo ETH ATMEGA32U4 16 MHz 32 Kb lilypadatmega168 Arduino LilyPad ATmega168 ATMEGA168 8 MHz 16 Kb lilypadatmega328 Arduino LilyPad ATmega328 ATMEGA328P 8 MHz 32 Kb megaADK Arduino Mega ADK ATMEGA2560 16 MHz 256 Kb megaatmega1280 Arduino Mega or Mega 2560 ATmega1280 ATMEGA1280 16 MHz 128 Kb megaatmega2560 Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) ATMEGA2560 16 MHz 256 Kb micro Arduino Micro ATMEGA32U4 16 MHz 32 Kb miniatmega168 Arduino Mini ATmega168 ATMEGA168 16 MHz 16 Kb miniatmega328 Arduino Mini ATmega328 ATMEGA328P 16 MHz 32 Kb mkr1000USB Arduino MKR1000 SAMD21G18A 48 MHz 256 Kb mkrzero Arduino MKRZero SAMD21G18A 48 MHz 256 Kb mzeroUSB Arduino M0 SAMD21G18A 48 MHz 256 Kb mzeropro Arduino M0 Pro (Programming Port) SAMD21G18A 48 MHz 256 Kb mzeroproUSB Arduino M0 Pro (Native USB Port) SAMD21G18A 48 MHz 256 Kb nanoatmega168 Arduino Nano ATmega168 ATMEGA168 16 MHz 16 Kb nanoatmega328 Arduino Nano ATmega328 ATMEGA328P 16 MHz 32 Kb pro16MHzatmega168 Arduino Pro or Pro Mini ATmega168 (5V. 16 MHz) ATMEGA328P 16 MHz 32 Kb pro8MHzatmega168 Arduino Pro or Pro Mini ATmega168 (3.3V. Release 3.3V.PlatformIO Documentation. 8 MHz) ATMEGA168 8 MHz 16 Kb pro8MHzatmega328 Arduino Pro or Pro Mini ATmega328 (3. 8 MHz) ATMEGA328P 8 MHz 32 Kb robotControl Arduino Robot Control ATMEGA32U4 16 MHz 32 Kb robotMotor Arduino Robot Motor ATMEGA32U4 16 MHz 32 Kb tian Arduino Tian SAMD21G18A 48 MHz 256 Kb uno Arduino Uno ATMEGA328P 16 MHz 32 Kb yun Arduino Yun ATMEGA32U4 16 MHz 32 Kb yunmini Arduino Yun Mini ATMEGA32U4 16 MHz 32 Kb zero Arduino Zero (Programming Port) SAMD21G18A 48 MHz 256 Kb zeroUSB Arduino Zero (USB Native Port) SAMD21G18A 48 MHz 256 Kb 222 Chapter 4.3. 16 MHz) ATMEGA168 16 MHz 16 Kb pro16MHzatmega328 Arduino Pro or Pro Mini ATmega328 (5V. Contents .

1 Armstrap ID Name Microcontroller Frequency Flash RAM armstrap_eagle1024 Armstrap Eagle 1024 STM32F417VGT6 168 MHz 1024 Kb 192 Kb armstrap_eagle2048 Armstrap Eagle 2048 STM32F427VIT6 168 MHz 2048 Kb 256 Kb armstrap_eagle512 Armstrap Eagle 512 STM32F407VET6 168 MHz 512 Kb 192 Kb Atmel ID Name Microcontroller Frequency Flash RAM samd21_xpro Atmel SAMD21-XPRO ATSAMD21J18A 48 MHz 256 Kb 32 Kb samd21g18a Atmel ATSAMW25-XPRO ATSAMD21G18A 48 MHz 256 Kb 32 Kb saml21_xpro_b Atmel SAML21-XPRO-B ATSAML21J18B 48 MHz 256 Kb 32 Kb samr21_xpro Atmel ATSAMR21-XPRO ATSAMR21G18A 48 MHz 256 Kb 32 Kb BBC ID Name Microcontroller Frequency Flash RAM bbcmicrobit BBC micro:bit NRF51822 16 MHz 256 Kb 16 Kb bbcmicrobit_b BBC micro:bit B(S130) NRF51822 16 MHz 256 Kb 16 Kb BQ ID Name Microcontroller Frequency Flash RAM zumbt328 BQ ZUM BT-328 ATMEGA328P 16 MHz 32 Kb 2 Kb BitWizard ID Name Microcontroller Frequency Flash RAM raspduino BitWizard Raspduino ATMEGA328P 16 MHz 32 Kb 2 Kb CQ Publishing ID Name Microcontroller Frequency Flash RAM lpc11u35_501 CQ Publishing TG-LPC11U35-501 LPC11U35 48 MHz 64 Kb 10 Kb Delta ID Name Microcontroller Frequency Flash RAM dfcm_nnn40 Delta DFCM-NNN40 NRF51822 32 MHz 256 Kb 32 Kb 4. Embedded Boards 223 . Release 3.8.3. PlatformIO Documentation.

1 Digilent ID Name Microcontroller Frequency Flash RAM cerebot32mx4 Digilent Cerebot 32MX4 32MX460F512L 80 MHz 512 Kb 32 Kb cerebot32mx7 Digilent Cerebot 32MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_cmod Digilent chipKIT Cmod 32MX150F128D 40 MHz 128 Kb 32 Kb chipkit_dp32 Digilent chipKIT DP32 32MX250F128B 40 MHz 128 Kb 32 Kb chipkit_mx3 Digilent chipKIT MX3 32MX320F128H 80 MHz 128 Kb 16 Kb chipkit_pro_mx4 Digilent chipKIT Pro MX4 32MX460F512L 80 MHz 512 Kb 32 Kb chipkit_pro_mx7 Digilent chipKIT Pro MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_uc32 Digilent chipKIT uC32 32MX340F512H 80 MHz 512 Kb 32 Kb chipkit_wf32 Digilent chipKIT WF32 32MX695F512L 80 MHz 512 Kb 128 Kb chipkit_wifire Digilent chipKIT WiFire 32MZ2048ECG100 200 MHz 2048 Kb 512 Kb mega_pic32 Digilent chipKIT MAX32 32MX795F512L 80 MHz 512 Kb 128 Kb openscope Digilent OpenScope 32MZ2048EFG124 200 MHz 2048 Kb 512 Kb uno_pic32 Digilent chipKIT UNO32 32MX320F128H 80 MHz 128 Kb 16 Kb Digistump ID Name Microcon.5 Kb digispark-pro32Digistump Digispark Pro (16 MHz) (32 ATTINY167 16 MHz 16 Kb 0. Contents .3. Fre. Flash RAM troller quency digispark-pro Digistump Digispark Pro (Default 16 MHz) ATTINY167 16 MHz 16 Kb 0.PlatformIO Documentation.16 MHz) ATTINY85 16 MHz 8 Kb 0.5 byte buffer) Kb digispark-tiny Digistump Digispark (Default .5 byte buffer) Kb digispark-pro64Digistump Digispark Pro (16 MHz) (64 ATTINY167 16 MHz 16 Kb 0. Release 3.5 Kb digix Digistump DigiX AT91SAM3X8E 84 MHz 512 28 Kb Kb Doit ID Name Microcontroller Frequency Flash RAM espduino ESPDuino (ESP-13 Module) ESP8266 80 MHz 4096 Kb 80 Kb DycodeX ID Name Microcontroller Frequency Flash RAM espectro ESPrectro Core ESP8266 80 MHz 4096 Kb 80 Kb ESPert ID Name Microcontroller Frequency Flash RAM espresso_lite_v1 ESPresso Lite 1.0 ESP8266 80 MHz 4096 Kb 80 Kb espresso_lite_v2 ESPresso Lite 2.0 ESP8266 80 MHz 4096 Kb 80 Kb 224 Chapter 4.

5 Kb EnviroDIY ID Name Microcontroller Frequency Flash RAM mayfly EnviroDIY Mayfly ATMEGA1284P 8 MHz 128 Kb 16 Kb Espotel ID Name Microcontroller Frequency Flash RAM elmo_f411re Espotel LoRa Module STM32F411RET6 100 MHz 512 Kb 128 Kb 4.3.8. Fre. Embedded Boards 225 . PlatformIO Documentation.1 ESPino ID Name Microcontroller Frequency Flash RAM espino ESPino ESP8266 80 MHz 4096 Kb 80 Kb Electronic SweetPeas ID Name Microcontroller Frequency Flash RAM esp320 Electronic SweetPeas ESP320 ESP32 240 MHz 1024 Kb 288 Kb Elektor Labs ID Name Microcontroller Frequency Flash RAM elektor_cocorico CoCo-ri-Co! LPC812 30 MHz 16 Kb 4 Kb Embedded Artists ID Name Microcon. Flash RAM troller quency lpc11u35 EA LPC11U35 QuickStart Board LPC11U35 48 MHz 64 Kb 10 Kb lpc4088 Embedded Artists LPC4088 QuickStart LPC4088 120 MHz 512 96 Board Kb Kb lpc4088_dm Embedded Artists LPC4088 Display LPC4088 120 MHz 512 96 Module Kb Kb Engduino ID Name Microcontroller Frequency Flash RAM engduinov3 Engduino 3 ATMEGA32U4 8 MHz 32 Kb 2. Release 3.

PlatformIO Documentation.0 ESP8266 80 MHz 1024 80 Kb Kb phoenix_v2 Phoenix 2.1 Espressif ID Name Microcon. Flash RAM quency IBMEthernetKit Ethernet IoT Starter Kit MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_k20d50m Freescale Kinetis MK20DX128VLH5 48 MHz 128 Kb 16 Kb FRDM-K20D50M frdm_k22f Freescale Kinetis FRDM-K22F MK22FN512VLH12 120 MHz 512 Kb 128 Kb frdm_k64f Freescale Kinetis FRDM-K64F MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_kl05z Freescale Kinetis FRDM-KL05Z MKL05Z32VFM4 48 MHz 32 Kb 4 Kb frdm_kl25z Freescale Kinetis FRDM-KL25Z MKL25Z128VLK4 48 MHz 128 Kb 16 Kb frdm_kl26z Freescale Kinetis FRDM-KL26Z MKL26Z128VLH4 48 MHz 128 Kb 16 Kb frdm_kl27z Freescale Kinetis FRDM-KL27Z MKL27Z64VLH4 48 MHz 64 Kb 16 Kb frdm_kl43z Freescale Kinetis FRDM-KL43Z MKL43Z256VLH4 48 MHz 256 Kb 32 Kb frdm_kl46z Freescale Kinetis FRDM-KL46Z MKL46Z256VLL4 48 MHz 256 Kb 32 Kb 226 Chapter 4.3. Flash RAM troller quency esp01 Espressif Generic ESP8266 ESP-01 ESP8266 80 MHz 512 Kb 80 Kb 512k esp01_1m Espressif Generic ESP8266 ESP-01 ESP8266 80 MHz 1024 80 Kb 1M Kb esp07 Espressif Generic ESP8266 ESP-07 ESP8266 80 MHz 4096 80 Kb Kb esp12e Espressif ESP8266 ESP-12E ESP8266 80 MHz 4096 80 Kb Kb esp32dev Espressif ESP32 Dev Module ESP32 240 MHz 1024 288 Kb Kb esp8285 Generic ESP8285 Module ESP8266 80 MHz 448 Kb 80 Kb esp_wroom_02 ESP-WROOM-02 ESP8266 80 MHz 4096 80 Kb Kb phoenix_v1 Phoenix 1. Contents . Release 3. Fre.0 ESP8266 80 MHz 1024 80 Kb Kb wifinfo WifInfo ESP8266 80 MHz 448 Kb 80 Kb FPGAwars ID Name Microcontroller Frequency Flash RAM icezum IceZUM Alhambra FPGA ICE40-HX1K-TQ144 12 MHz 32 Kb 32 Kb Freescale ID Name MicrocontrollerFre.

25 Kb attiny45 Generic ATTiny45 ATTINY45 8 MHz 4 Kb 0.25 Kb attiny84 Generic ATTiny84 ATTINY84 8 MHz 8 Kb 0.125 Kb attiny24 Generic ATTiny24 ATTINY24 8 MHz 2 Kb 0.5 Kb attiny85 Generic ATTiny85 ATTINY85 8 MHz 8 Kb 0.0625 Kb attiny2313 Generic ATTiny2313 ATTINY2313 8 MHz 2 Kb 0.125 Kb attiny4313 Generic ATTiny4313 ATTINY4313 8 MHz 4 Kb 0. 512k STM32F103RE 72 MHz 512 64 Flash) Kb Kb Generic ATTiny ID Name Microcontroller Frequency Flash RAM attiny13 Generic ATTiny13 ATTINY13 9 MHz 1 Kb 0. Release 3.1 Fubarino ID Name Microcontroller Frequency Flash RAM fubarino_mini Fubarino Mini 32MX250F128D 48 MHz 128 Kb 32 Kb fubarino_sd Fubarino SD (1. Flash RAM troller quency bluepill_f103c8 BluePill F103C8 STM32F103C8T6 72 MHz 64 Kb 20 Kb genericSTM32F103C8STM32F103C8 (20k RAM.125 Kb attiny25 Generic ATTiny25 ATTINY25 8 MHz 2 Kb 0.5) 32MX795F512H 80 MHz 512 Kb 128 Kb GHI Electronics ID Name Microcontroller Frequency Flash RAM oc_mbuino mBuino LPC11U24 50 MHz 32 Kb 10 Kb Generic ID Name Microcon.25 Kb attiny44 Generic ATTiny44 ATTINY44 8 MHz 4 Kb 0. Fre.5 Kb Hornbill ID Name Microcontroller Frequency Flash RAM hornbill32dev Hornbill ESP32 Dev ESP32 240 MHz 1024 Kb 288 Kb hornbill32minima Hornbill ESP32 Minima ESP32 240 MHz 1024 Kb 288 Kb 4. Embedded Boards 227 . 128k STM32F103CB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103R8STM32F103R8 (20k RAM. 64 STM32F103R8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103RBSTM32F103RB (20k RAM. 256k STM32F103RC 72 MHz 256 48 Flash) Kb Kb genericSTM32F103RESTM32F103RE (64k RAM.8. 64k STM32F103C8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103CBSTM32F103CB (20k RAM. PlatformIO Documentation.3. 128k STM32F103RB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103RCSTM32F103RC (48k RAM.

0 STM32F103CB 72 MHz 128 Kb 20 Kb maple_mini_origin Maple Mini Original STM32F103CB 72 MHz 128 Kb 17 Kb LightUp ID Name Microcontroller Frequency Flash RAM lightup LightUp ATMEGA32U4 8 MHz 32 Kb 2.3. Contents . Release 3.5 Kb Linino ID Name Microcontroller Frequency Flash RAM one Linino One ATMEGA32U4 16 MHz 32 Kb 2.PlatformIO Documentation.5 Kb LowPowerLab ID Name Microcontroller Frequency Flash RAM moteino LowPowerLab Moteino ATMEGA328P 16 MHz 32 Kb 2 Kb moteinomega LowPowerLab MoteinoMEGA ATMEGA1284P 16 MHz 128 Kb 16 Kb MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb 228 Chapter 4.1 Intel ID Name Microcontroller Frequency Flash RAM genuino101 Arduino/Genuino 101 ARCV2EM 32 MHz 192 Kb 80 Kb JKSoft ID Name Microcontroller Frequency Flash RAM wallbot_ble JKSoft Wallbot BLE NRF51822 16 MHz 128 Kb 16 Kb Lattice ID Name Microcontroller Frequency Flash RAM icestick Lattice iCEstick FPGA Evaluation Kit ICE40-HX1K-TQ144 12 MHz 32 Kb 32 Kb LeafLabs ID Name Microcontroller Frequency Flash RAM maple Maple STM32F103RB 72 MHz 128 Kb 17 Kb maple_mini_b20 Maple Mini Bootloader 2.

Fre. PlatformIO Documentation.8.5V) ATMEGA328P 16 MHz 32 Kb 2 Kb 328p8m Microduino Core (Atmega328P@8M.3.3V) MEGA1284P Kb 168pa16m Microduino Core (Atmega168PA@16M.3.3V) ATMEGA644P 8 MHz 64 Kb 4 Kb Micromint ID Name Microcontroller Frequency Flash RAM lpc4330_m4 Bambino-210E LPC4330 204 MHz 8192 Kb 264 Kb lpc4337 LPCXpresso4337 LPC4337 204 MHz 1024 Kb 136 Kb MikroElektronika ID Name Microcontroller Frequency Flash RAM clicker2 MikroElektronika Clicker 2 32MX460F512L 80 MHz 512 Kb 32 Kb hexiwear Hexiwear MK64FN1M0VDC12 120 MHz 1024 Kb 256 Kb MultiTech ID Name Microcontroller Frequency Flash RAM mts_dragonfly_f411re MTS Dragonfly STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f405rg MultiTech mDot STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f411re MultiTech mDot F411 STM32F411RET6 100 MHz 512 Kb 128 Kb xdot_l151cc MultiTech xDot STM32L151CCU6 32 MHz 256 Kb 32 Kb 4.3. 8 MHz 128 16 Kb (ATmega1284P@8M. 16 MHz 128 16 Kb MEGA1284P Kb 1284p8m Microduino Core+ AT.5V) ATMEGA644P 16 MHz 64 Kb 4 Kb 644pa8m Microduino Core+ (Atmega644PA@8M. Flash RAM troller quency 1284p16m Microduino Core+ (ATmega1284P@16M.5 (ATmega32U4@16M.3.5V) AT. Release 3.1 Mcudude ID Name Microcontroller Frequency Flash RAM mightycore1284 MightyCore ATmega1284 ATMEGA1284P 16 MHz 128 Kb 16 Kb mightycore16 MightyCore ATmega16 ATMEGA16 16 MHz 16 Kb 1 Kb mightycore164 MightyCore ATmega164 ATMEGA164P 16 MHz 16 Kb 1 Kb mightycore32 MightyCore ATmega32 ATMEGA32 16 MHz 32 Kb 2 Kb mightycore324 MightyCore ATmega324 ATMEGA324P 16 MHz 32 Kb 2 Kb mightycore644 MightyCore ATmega644 ATMEGA644P 16 MHz 64 Kb 4 Kb mightycore8535 MightyCore ATmega8535 ATMEGA16 16 MHz 8 Kb 0.3V) ATMEGA168P 8 MHz 16 Kb 1 Kb 328p16m Microduino Core (Atmega328P@16M.5V) MEGA32U4 Kb 644pa16m Microduino Core+ (Atmega644PA@16M. Embedded Boards 229 .3.5V) ATMEGA168P 16 MHz 16 Kb 1 Kb 168pa8m Microduino Core (Atmega168PA@8M.5 Kb Microduino ID Name Microcon. 16 MHz 32 Kb 2.3V) ATMEGA328P 8 MHz 32 Kb 2 Kb 32u416m Microduino Core USB AT.

0 (ESP-12E Module) ESP8266 80 MHz 4096 Kb 80 Kb Noduino ID Name Microcontroller Frequency Flash RAM quantum Noduino Quantum ESP32 240 MHz 1024 Kb 288 Kb Nordic ID Name Microcontroller Frequency Flash RAM nrf51_dk Nordic nRF51-DK NRF51822 32 MHz 256 Kb 32 Kb nrf51_dongle Nordic nRF51-Dongle NRF51822 32 MHz 256 Kb 32 Kb nrf51_mkit Nordic nRF51822-mKIT NRF51822 16 MHz 128 Kb 16 Kb Olimex ID Name Microcontroller Frequency Flash RAM modwifi Olimex MOD-WIFI-ESP8266(-DEV) ESP8266 80 MHz 2048 Kb 80 Kb pinguino32 Olimex PIC32-PINGUINO 32MX440F256H 80 MHz 256 Kb 32 Kb 230 Chapter 4.3. Flash RAM troller quency blueboard_lpc11u24 NGX Technologies LPC11U24 48 MHz 32 8 Kb BlueBoard-LPC11U24 Kb NXP ID Name Microcontroller Frequency Flash RAM lpc11c24 NXP LPC11C24 LPC11C24 48 MHz 32 Kb 8 Kb lpc11u24 NXP mbed LPC11U24 LPC11U24 48 MHz 32 Kb 8 Kb lpc11u24_301 ARM mbed LPC11U24 (+CAN) LPC11U24 48 MHz 32 Kb 8 Kb lpc11u34_421 NXP LPC11U34 LPC11U34 48 MHz 64 Kb 8 Kb lpc11u37_501 NXP LPC11U37 LPC11U37 48 MHz 128 Kb 10 Kb lpc11u68 LPCXpresso11U68 LPC11U68 50 MHz 256 Kb 36 Kb lpc1549 NXP LPCXpresso1549 LPC1549 72 MHz 256 Kb 36 Kb lpc1768 NXP mbed LPC1768 LPC1768 96 MHz 512 Kb 64 Kb lpc2368 NXP LPC2368 LPC2368 72 MHz 512 Kb 58 Kb lpc2460 NXP LPC2460 LPC2460 72 MHz 64 Kb 16 Kb lpc812 NXP LPC800-MAX LPC812 30 MHz 16 Kb 4 Kb lpc824 LPCXpresso824-MAX LPC824 30 MHz 32 Kb 8 Kb micronfcboard MicroNFCBoard LPC11U34 48 MHz 64 Kb 10 Kb NodeMCU ID Name Microcontroller Frequency Flash RAM nodemcu NodeMCU 0. Release 3.1 NGX Technologies ID Name Microcon.9 (ESP-12 Module) ESP8266 80 MHz 4096 Kb 80 Kb nodemcuv2 NodeMCU 1.PlatformIO Documentation. Contents . Fre.

1 CC430F5137 12 MHz 32 Kb 4 Kb Pinoccio ID Name Microcontroller Frequency Flash RAM pinoccio Pinoccio Scout ATMEGA256RFR2 16 MHz 256 Kb 32 Kb Pololu Corporation ID Name Microcontroller Frequency Flash RAM a-star32U4 Pololu A-Star 32U4 ATMEGA32U4 16 MHz 32 Kb 2.3.8. PlatformIO Documentation. Embedded Boards 231 .1 OpenBCI ID Name Microcontroller Frequency Flash RAM openbci OpenBCI 32bit 32MX250F128B 40 MHz 128 Kb 32 Kb OpenEnergyMonitor ID Name Microcontroller Frequency Flash RAM emonpi OpenEnergyMonitor emonPi ATMEGA328P 16 MHz 32 Kb 2 Kb Outrageous Circuits ID Name Microcontroller Frequency Flash RAM mbuino Outrageous Circuits mBuino LPC11U24 48 MHz 32 Kb 8 Kb PONTECH ID Name Microcontroller Frequency Flash RAM quick240_usb PONTECH quicK240 32MX795F512L 80 MHz 512 Kb 128 Kb usbono_pic32 PONTECH UAV100 32MX440F512H 80 MHz 512 Kb 32 Kb PanStamp ID Name Microcontroller Frequency Flash RAM panStampAVR PanStamp AVR ATMEGA328P 8 MHz 32 Kb 2 Kb panStampNRG PanStamp NRG 1.5 Kb Punch Through ID Name Microcontroller Frequency Flash RAM lightblue-bean LightBlue Bean ATMEGA328P 8 MHz 32 Kb 2 Kb lightblue-beanplus LightBlue Bean+ ATMEGA328P 16 MHz 32 Kb 2 Kb 4. Release 3.

1 Quirkbot ID Name Microcontroller Frequency Flash RAM quirkbot Quirkbot ATMEGA32U4 8 MHz 32 Kb 2.3. Contents .5 Kb RFduino ID Name Microcontroller Frequency Flash RAM rfduino RFduino NRF51822 16 MHz 128 Kb 8 Kb Raspberry Pi ID Name Microcon.PlatformIO Documentation. Flash RAM troller quency raspberrypi_1b Raspberry Pi 1 Model BCM2835 700 MHz 524288 Kb 524288 Kb B raspberrypi_2b Raspberry Pi 2 Model BCM2836 900 MHz 1048576 1048576 B Kb Kb raspberrypi_zero Raspberry Pi Zero BCM2835 1000 MHz 524288 Kb 524288 Kb RedBearLab ID Name Microcon.3V/8MHz AT. 16 MHz 32 2.5 MEGA32U4 Kb Kb redBearLab RedBearLab nRF51822 NRF51822 16 MHz 256 16 Kb Kb RedBearLab BLE Nano redBearLabBLENano NRF51822 16 MHz 256 32 Kb Kb RepRap ID Name Microcontroller Frequency Flash RAM reprap_rambo RepRap RAMBo ATMEGA2560 16 MHz 256 Kb 8 Kb 232 Chapter 4. Fre. 16 MHz 32 2.5 MEGA32U4 Kb Kb blendmicro16 RedBearLab Blend Micro 3.5 (overclock) MEGA32U4 Kb Kb blendmicro8 RedBearLab Blend Micro 3. Fre. 8 MHz 32 2.3V/16MHz AT. Flash RAM troller quency blend RedBearLab Blend AT. Release 3.

1 SODAQ ID Name Microcontroller Frequency Flash RAM sodaq_autonomo SODAQ Autonomo SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_explorer SODAQ ExpLoRer SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_galora SODAQ GaLoRa ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_mbili SODAQ Mbili ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_moja SODAQ Moja ATMEGA328P 8 MHz 32 Kb 2 Kb sodaq_ndogo SODAQ Ndogo ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_one SODAQ ONE SAMD21G18A 48 MHz 256 Kb 32 Kb sodaq_tatu SODAQ Tatu ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_wdt SODAQ WDT SAMD21J18A 48 MHz 256 Kb 32 Kb ST ID Name Microcontroller Frequency Flash RAM disco_f051r8 ST STM32F0DISCOVERY STM32F051R8T6 48 MHz 64 Kb 8 Kb disco_f100rb ST STM32VLDISCOVERY STM32F100RBT6 24 MHz 128 Kb 8 Kb disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f334c8 ST 32F3348DISCOVERY STM32F334C8T6 72 MHz 64 Kb 12 Kb disco_f401vc ST 32F401CDISCOVERY STM32F401VCT6 84 MHz 256 Kb 64 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_f429zi ST 32F429IDISCOVERY STM32F429ZIT6 180 MHz 2048 Kb 256 Kb disco_f469ni ST 32F469IDISCOVERY STM32F469NIH6 180 MHz 1024 Kb 384 Kb disco_f746ng ST 32F746GDISCOVERY STM32F746NGH6 216 MHz 1024 Kb 320 Kb disco_f769ni ST 32F769IDISCOVERY STM32F769NIH6 80 MHz 1024 Kb 512 Kb disco_l053c8 ST 32L0538DISCOVERY STM32L053C8T6 32 MHz 64 Kb 8 Kb disco_l152rb ST STM32LDISCOVERY STM32L152RBT6 32 MHz 128 Kb 16 Kb disco_l476vg ST 32L476GDISCOVERY STM32L476VGT6 80 MHz 1024 Kb 128 Kb nucleo_f030r8 ST Nucleo F030R8 STM32F030R8T6 48 MHz 64 Kb 8 Kb nucleo_f031k6 ST Nucleo F031K6 STM32F031K6T6 48 MHz 32 Kb 4 Kb nucleo_f042k6 ST Nucleo F042K6 STM32F042K6T6 48 MHz 32 Kb 6 Kb nucleo_f070rb ST Nucleo F070RB STM32F070RBT6 48 MHz 128 Kb 16 Kb nucleo_f072rb ST Nucleo F072RB STM32F072RBT6 48 MHz 128 Kb 16 Kb nucleo_f091rc ST Nucleo F091RC STM32F091RCT6 48 MHz 256 Kb 32 Kb nucleo_f103rb ST Nucleo F103RB STM32F103RBT6 72 MHz 128 Kb 20 Kb nucleo_f207zg ST Nucleo F207ZG STM32F207ZGT6 120 MHz 1024 Kb 128 Kb nucleo_f302r8 ST Nucleo F302R8 STM32F302R8T6 72 MHz 64 Kb 16 Kb nucleo_f303k8 ST Nucleo F303K8 STM32F303K8T6 72 MHz 64 Kb 16 Kb nucleo_f303re ST Nucleo F303RE STM32F303RET6 72 MHz 512 Kb 64 Kb nucleo_f303ze ST Nucleo F303ZE STM32F303ZET6 72 MHz 512 Kb 64 Kb nucleo_f334r8 ST Nucleo F334R8 STM32F334R8T6 72 MHz 64 Kb 16 Kb nucleo_f401re ST Nucleo F401RE STM32F401RET6 84 MHz 512 Kb 96 Kb nucleo_f410rb ST Nucleo F410RB STM32F410RBT6 100 MHz 128 Kb 32 Kb nucleo_f411re ST Nucleo F411RE STM32F411RET6 100 MHz 512 Kb 128 Kb nucleo_f429zi ST Nucleo F429ZI STM32F429ZIT6 180 MHz 2048 Kb 256 Kb nucleo_f446re ST Nucleo F446RE STM32F446RET6 180 MHz 512 Kb 128 Kb nucleo_f446ze ST Nucleo F446ZE STM32F446ZET6 180 MHz 512 Kb 128 Kb nucleo_f746zg ST Nucleo F746ZG STM32F746ZGT6 216 MHz 1024 Kb 320 Kb nucleo_f767zi ST Nucleo F767ZI STM32F746ZGT6 216 MHz 2048 Kb 512 Kb Continued on next page 4.3. Embedded Boards 233 . Release 3. PlatformIO Documentation.8.

8 MHz 128 16 MEGA1284P Kb Kb Sanguino ATmega1284p (16MHz) sanguino_atmega1284p AT. Fre. Contents . Flash RAM quency sainSmartDue SainSmart Due (Programming AT91SAM3X8E 84 MHz 512 32 Port) Kb Kb sainSmartDueUSB SainSmart Due (USB Native Port) AT91SAM3X8E 84 MHz 512 32 Kb Kb Samsung ID Name Microcontroller Frequency Flash RAM artik_1020 Samsung ARTIK 1020 EXYNOS5422 1500 MHz 16777216 Kb 2097152 Kb artik_520 Samsung ARTIK 520 EXYNOS3250 1000 MHz 4194304 Kb 524288 Kb artik_530 Samsung ARTIK 530 S5P4418 1200 MHz 4194304 Kb 524288 Kb artik_710 Samsung ARTIK 710 S5P6818 1400 MHz 4194304 Kb 1048576 Kb Sanguino ID Name Microcon. 8 MHz 64 4 ATmega644PA (8 MHz) MEGA644P Kb Kb 234 Chapter 4. 16 MHz 128 16 MEGA1284P Kb Kb sanguino_atmega644 Sanguino ATmega644 or ATmega644A AT. 8 MHz 64 4 (8 MHz) MEGA644 Kb Kb sanguino_atmega644pSanguino ATmega644P or AT.PlatformIO Documentation. Flash RAM troller quency Sanguino ATmega1284p (8MHz) sanguino_atmega1284_8m AT.4 – continued from previous page ID Name Microcontroller Frequency Flash RAM nucleo_l011k4 ST Nucleo L011K4 STM32L011K4T6 32 MHz 16 Kb 2 Kb nucleo_l031k6 ST Nucleo L031K6 STM32L031K6T6 32 MHz 32 Kb 8 Kb nucleo_l053r8 ST Nucleo L053R8 STM32L053R8T6 48 MHz 64 Kb 8 Kb nucleo_l073rz ST Nucleo L073RZ STM32L073RZ 32 MHz 192 Kb 20 Kb nucleo_l152re ST Nucleo L152RE STM32L152RET6 32 MHz 512 Kb 80 Kb nucleo_l432kc ST Nucleo L432KC STM32L432KCU6 80 MHz 256 Kb 64 Kb nucleo_l476rg ST Nucleo L476RG STM32L476RGT6 80 MHz 1024 Kb 128 Kb SainSmart ID Name Microcontroller Fre.3. Release 3. 16 MHz 64 4 (16 MHz) MEGA644 Kb Kb Sanguino ATmega644 or ATmega644A sanguino_atmega644_8m AT. 16 MHz 64 4 ATmega644PA (16 MHz) MEGA644P Kb Kb Sanguino ATmega644P or sanguino_atmega644p_8m AT.1 Table 4.

1 SeeedStudio ID Name Microcontroller Frequency Flash RAM cui32stem SeeedStudio CUI32stem 32MX795F512H 80 MHz 512 Kb 128 Kb seeedArchBLE Seeed Arch BLE NRF51822 16 MHz 128 Kb 16 Kb seeedArchGPRS Seeed Arch GPRS V2 LPC11U37 48 MHz 128 Kb 10 Kb seeedArchLink Seeed Arch Link NRF51822 16 MHz 256 Kb 16 Kb seeedArchMax Seeed Arch Max STM32F407VET6 168 MHz 512 Kb 192 Kb seeedArchPro Seeed Arch Pro LPC1768 96 MHz 512 Kb 64 Kb seeedTinyBLE Seeed Tiny BLE NRF51822 16 MHz 256 Kb 16 Kb xadow_m0 Seeed Xadow M0 LPC11U35 48 MHz 64 Kb 10 Kb Semtech ID Name Microcontroller Frequency Flash RAM mote_l152rc NAMote72 STM32L152RC 32 MHz 256 Kb 32 Kb Silicon Labs ID Name MicrocontrollerFre. Flash RAM quency Silicon Labs EFM32GG-STK3700 (Giant efm32gg_stk3700 EFM32GG990F102448 MHz 1024 128 Gecko) Kb Kb Silicon Labs SLSTK3400A USB-enabled efm32hg_stk3400 EFM32HG322F64 24 MHz 64 Kb 8 Kb (Happy Gecko) Silicon Labs EFM32LG-STK3600 efm32lg_stk3600 EFM32LG990F256 48 MHz 256 32 (Leopard Gecko) Kb Kb Silicon Labs SLSTK3401A (Pearl Gecko) efm32pg_stk3401 EFM32PG1B200F256 40 MHz 256 32 Kb Kb Silicon Labs EFM32WG-STK3800 efm32wg_stk3800 EFM32WG990F25648 MHz 256 32 (Wonder Gecko) Kb Kb Silicon Labs EFM32ZG-STK3200 (Zero efm32zg_stk3200 EFM2ZG222F32 24 MHz 32 Kb 4 Kb Gecko) Smeshlink ID Name Microcontroller Frequency Flash RAM xbed_lpc1768 Smeshlink xbed LPC1768 LPC1768 96 MHz 512 Kb 32 Kb Solder Splash Labs ID Name Microcontroller Frequency Flash RAM dipcortexm0 Solder Splash Labs DipCortex M0 LPC11U24 50 MHz 32 Kb 8 Kb lpc1347 DipCortex M3 LPC1347 72 MHz 64 Kb 12 Kb 4. Embedded Boards 235 .3. PlatformIO Documentation.8. Release 3.

1 SparkFun ID Name Microcon.3V/8MHz ATMEGA32U4 8 MHz 32 Kb 2.5 Kb sparkfun_makeymakey SparkFun Makey Makey ATMEGA32U4 16 MHz 32 Kb 2.3V ATMEGA2560 8 MHz 256 8 Kb Kb sparkfun_megapro16MHz SparkFun Mega Pro ATMEGA2560 16 MHz 256 8 Kb 5V/16MHz Kb sparkfun_megapro8MHz SparkFun Mega Pro ATMEGA2560 8 MHz 256 8 Kb 3.5 3. Contents .5 Kb sparkfun_redboard SparkFun RedBoard ATMEGA328P 16 MHz 32 Kb 2 Kb SparkFun SAMD21 Dev sparkfun_samd21_dev_usb SAMD21G18A 48 MHz 256 32 Breakout Kb Kb SparkFun SAMD21 Mini sparkfun_samd21_mini_usb SAMD21G18A 48 MHz 256 32 Breakout Kb Kb SparkFun ATmega128RFA1 sparkfun_satmega128rfa1 AT. Fre. 16 MHz 16 Kb 124 Dev Board MEGA128RFA1 Kb sparkfun_serial7seg SparkFun Serial 7-Segment ATMEGA328P 8 MHz 32 Kb 2 Kb Display thing SparkFun ESP8266 Thing ESP8266 80 MHz 512 80 Kb Kb thingdev SparkFun ESP8266 Thing Dev ESP8266 80 MHz 512 80 Kb Kb uview SparkFun MicroView ATMEGA328P 16 MHz 32 Kb 2 Kb SparkFun Electronics ID Name Microcontroller Frequency Flash RAM esp32thing SparkFun ESP32 Thing ESP32 240 MHz 1024 Kb 112 Kb SweetPea ID Name Microcontroller Frequency Flash RAM esp210 SweetPea ESP-210 ESP8266 80 MHz 4096 Kb 80 Kb 236 Chapter 4.PlatformIO Documentation. Release 3.3.5 5V/16MHz Kb sparkfun_promicro8 SparkFun Pro Micro ATMEGA32U4 8 MHz 32 Kb 2. Flash RAM troller quency sparkfunBlynk SparkFun Blynk Board ESP8266 80 MHz 4096 80 Kb Kb SparkFun Digital Sandbox sparkfun_digitalsandbox ATMEGA328P 8 MHz 32 Kb 2 Kb sparkfun_fiov3 SparkFun Fio V3 3.5 Kb sparkfun_megamini SparkFun Mega Pro Mini 3.3V/8MHz Kb sparkfun_qduinomini SparkFun Qduino Mini ATMEGA32U4 8 MHz 32 Kb 2.3V/8MHz Kb sparkfun_promicro16 SparkFun Pro Micro ATMEGA32U4 16 MHz 32 Kb 2.

0 AT90USB1286 16 MHz 128 Kb 8 Kb teensy30 Teensy 3.5 MK64FX512 120 MHz 512 Kb 192 Kb teensy36 Teensy 3.1 Switch Science ID Name Microcontroller Frequency Flash RAM hrm1017 Switch Science mbed HRM1017 NRF51822 16 MHz 256 Kb 16 Kb lpc1114fn28 Switch Science mbed LPC1114FN28 LPC1114FN28 48 MHz 32 Kb 4 Kb ssci824 Switch Science mbed LPC824 LPC824 30 MHz 32 Kb 8 Kb ty51822r3 Switch Science mbed TY51822r3 NRF51822 32 MHz 256 Kb 32 Kb TI ID Name Microcontroller Fre. PlatformIO Documentation.5 MSP-EXP430FR5739LP Kb lpmsp430fr5969 TI LaunchPad MSP430FR5969 8 MHz 64 Kb 2 Kb MSP-EXP430FR5969LP lpmsp430fr6989 TI LaunchPad MSP430FR6989 8 MHz 128 2 Kb MSP-EXP430FR6989LP Kb lpmsp430g2553 TI LaunchPad MSP430G2553 16 MHz 16 Kb 0.6 MK66FX1M0 180 MHz 1024 Kb 256 Kb teensylc Teensy LC MKL26Z64 48 MHz 64 Kb 8 Kb ThaiEasyElec ID Name Microcontroller Frequency Flash RAM espinotee ThaiEasyElec ESPino ESP8266 80 MHz 4096 Kb 80 Kb 4. Release 3.8.0 ATMEGA32U4 16 MHz 32 Kb 2.5 Kb teensy20pp Teensy++ 2. Flash RAM quency lplm4f120h5qr TI LaunchPad (Stellaris) w/ lm4f120 LPLM4F120H5QR 80 MHz 256 32 (80MHz) Kb Kb lpmsp430f5529 TI LaunchPad MSP-EXP430F5529LP MSP430F5529 16 MHz 128 8 Kb Kb lpmsp430fr4133 TI LaunchPad MSP430FR4133 8 MHz 16 Kb 2 Kb MSP-EXP430FR4133LP lpmsp430fr5739 TI FraunchPad MSP430FR5739 16 MHz 16 Kb 0.3.2 MK20DX256 72 MHz 256 Kb 64 Kb teensy35 Teensy 3.0 MK20DX128 48 MHz 128 Kb 16 Kb teensy31 Teensy 3.5 MSP-EXP430G2553LP Kb lptm4c1230c3pm TI LaunchPad (Tiva C) w/ tm4c123 LPTM4C1230C3PM 80 MHz 256 32 (80MHz) Kb Kb lptm4c1294ncpdtTI LaunchPad (Tiva C) w/ tm4c129 LPTM4C1294NCPDT120 MHz 1024 256 (120MHz) Kb Kb Teensy ID Name Microcontroller Frequency Flash RAM teensy20 Teensy 2. Embedded Boards 237 .1 / 3.

PlatformIO Documentation.1 The Things Network ID Name Microcontroller Frequency Flash RAM the_things_uno The Things Uno ATMEGA32U4 16 MHz 32 Kb 2. Release 3. Contents .3.5 Kb TinyCircuits ID Name Microcontroller Frequency Flash RAM tinyduino TinyCircuits TinyDuino Processor Board ATMEGA328P 8 MHz 32 Kb 2 Kb tinylily TinyCircuits TinyLily Mini Processor ATMEGA328P 8 MHz 32 Kb 2 Kb UBW32 ID Name Microcontroller Frequency Flash RAM ubw32_mx460 UBW32 MX460 32MX460F512L 80 MHz 512 Kb 32 Kb ubw32_mx795 UBW32 MX795 32MX795F512L 80 MHz 512 Kb 128 Kb WEMOS ID Name Microcontroller Frequency Flash RAM lolin32 WEMOS LoLin32 ESP32 240 MHz 1024 Kb 288 Kb WeMos ID Name Microcontroller Frequency Flash RAM d1 WeMos D1(Retired) ESP8266 80 MHz 4096 Kb 80 Kb d1_mini WeMos D1 R2 & mini ESP8266 80 MHz 4096 Kb 80 Kb Wicked Device ID Name Microcontroller Frequency Flash RAM wildfirev2 Wicked Device WildFire V2 ATMEGA1284P 16 MHz 128 Kb 16 Kb wildfirev3 Wicked Device WildFire V3 ATMEGA1284P 16 MHz 128 Kb 16 Kb chipKIT ID Name Microcontroller Frequency Flash RAM lenny chipKIT Lenny 32MX270F256D 40 MHz 128 Kb 32 Kb element14 ID Name Microcontroller Frequency Flash RAM chipkit_pi Element14 chipKIT Pi 32MX250F128B 40 MHz 128 Kb 32 Kb 238 Chapter 4.

9.mx ID Name Microcontroller Frequency Flash RAM altair Altair ATMEGA256RFR2 16 MHz 256 Kb 32 Kb u-blox ID Name Microcontroller Frequency Flash RAM ublox_evk_odin_w2 u-blox EVK-ODIN-W2 STM32F439ZIY6 168 MHz 2048 Kb 256 Kb ubloxc027 u-blox C027 LPC1768 96 MHz 512 Kb 64 Kb ubIQio ID Name Microcontroller Frequency Flash RAM ardhat ubIQio Ardhat ATMEGA328P 16 MHz 32 Kb 2 Kb y5 design ID Name Microcontroller Frequency Flash RAM lpc11u35_y5_mbug y5 LPC11U35 mbug LPC11U35 48 MHz 64 Kb 10 Kb nrf51822_y5_mbug y5 nRF51822 mbug NRF51822 16 MHz 256 Kb 16 Kb Frameworks Framework arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding. Frameworks 239 . PlatformIO Documentation. For more detailed information please visit vendor site. Release 3. Contents • Framework arduino – Platforms – Boards * 4DSystems * Adafruit * Aiyarafun * April Brother * Arduboy * Arduino * BQ 4. interactive objects. spaces or physical experiences.3.1 makerlab.

Release 3. Contents .PlatformIO Documentation.1 * BitWizard * Digilent * Digistump * Doit * DycodeX * ESPert * ESPino * Electronic SweetPeas * Engduino * EnviroDIY * Espressif * Fubarino * Generic * Generic ATTiny * Hornbill * Intel * LeafLabs * LightUp * Linino * LowPowerLab * MakerAsia * Mcudude * Microduino * MikroElektronika * NodeMCU * Noduino * Olimex * OpenBCI * OpenEnergyMonitor * PONTECH * PanStamp * Pinoccio * Pololu Corporation * Punch Through * Quirkbot 240 Chapter 4.3.

PlatformIO Documentation. Release 3.3.mx * ubIQio 4. Frameworks 241 .9.1 * RFduino * RedBearLab * RepRap * SODAQ * SainSmart * Sanguino * SeeedStudio * SparkFun * SparkFun Electronics * SweetPea * Teensy * ThaiEasyElec * The Things Network * TinyCircuits * UBW32 * WEMOS * WeMos * Wicked Device * chipKIT * element14 * makerlab.

Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. and all the tools needed to develop your embedded projects. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming.1 Platforms Name Description Platform Atmel AVR 8. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy).based ARM products based on the ARM Cortex-M0+. and Internet of Things applications. automotive. Platform Espressif Systems is a privately held fabless semiconductor company. power efficiency atmelavr and design flexibility. Platform mi. in a very small footprint. timsp430 mixed-signal processors designed for ultra-low power. low-voltage operation. Platform Espressif Systems is a privately held fabless semiconductor company. RISC-based. Platform MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit. PIC32 MCUs gives your application the processing power.and 32-bit MCUs deliver a unique combination of performance. Platform The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to ststm32 offer new degrees of freedom to MCU users. mobile.3. They provide wireless espressif8266 communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. multi-protocol. Platform ARC embedded processors are a family of 32-bit CPUs that are widely used in SoC devices for intel_arc32 storage. ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.PlatformIO Documentation. only a standard USB cable and a PC or Macintosh with a USB port. memory and peripherals your design needs! Platform The Nordic nRF51 Series is a family of highly flexible. ANT and proprietary 2. They provide wireless espressif32 communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. Contents .4GHz protocols such as Gazell. teensy capable of implementing many types of projects. digital signal processing. It offers a 32-bit product range that combines very high performance. 4DSystems ID Name Microcontroller Frequency Flash RAM picadillo_35t 4DSystems PICadillo 35T 32MX795F512L 80 MHz 512 Kb 128 Kb 242 Chapter 4. All programming is done via the USB port. and low-power. real-time capabilities. No special programmer is needed. Microchip’s 32-bit portfolio with the MIPS microAptiv or M4K core offer high performance crochippic32 microcontrollers. Platform Teensy is a complete USB-based microcontroller development system. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications. system-on-chip (SoC) nordicnrf51 devices for ultra-low power wireless applications. Release 3. Platform Atmel | SMART offers Flash. home. Cortex-M3 atmelsam and Cortex-M4 architectures. while maintaining full integration and ease of development.

5 MEGA32U4 Kb gemma Adafruit Gemma ATTINY85 8 MHz 8 Kb 0. 8 MHz 32 Kb 2.Fre.5 Kb 4. 16 MHz 32 Kb 2 Kb 5V/16MHz (USB) MEGA328P protrinket5ftdi Adafruit Pro Trinket AT. 16 MHz 32 Kb 2 Kb MEGA328P protrinket3 Adafruit Pro Trinket AT.5 Kb huzzah Adafruit HUZZAH ESP8266 ESP8266 80 MHz 4096 80 Kb Kb metro Adafruit Metro AT.5 Kb arduboy_devkit Arduboy DevKit ATMEGA32U4 16 MHz 32 Kb 2.5 Kb trinket5 Adafruit Trinket 5V/16MHz ATTINY85 16 MHz 8 Kb 0.1 Adafruit ID Name Microcon. 12 MHz 32 Kb 2 Kb 3V/12MHz (USB) MEGA328P protrinket3ftdi Adafruit Pro Trinket AT. Frameworks 243 .5 MEGA32U4 Kb feather32u4 Adafruit Feather AT. 12 MHz 32 Kb 2 Kb 3V/12MHz (FTDI) MEGA328P protrinket5 Adafruit Pro Trinket AT.9. Release 3. 8 MHz 32 Kb 2. 16 MHz 32 Kb 2 Kb 5V/16MHz (FTDI) MEGA328P trinket3 Adafruit Trinket 3V/8MHz ATTINY85 8 MHz 8 Kb 0. 8 MHz 32 Kb 2.5 MEGA32U4 Kb flora8 Adafruit Flora AT. PlatformIO Documentation.3.5 Kb Aiyarafun ID Name Microcontroller Frequency Flash RAM node32s Node32s ESP32 240 MHz 1024 Kb 112 Kb April Brother ID Name Microcontroller Frequency Flash RAM espea32 April Brother ESPea32 ESP32 240 MHz 1024 Kb 288 Kb Arduboy ID Name Microcontroller Frequency Flash RAM arduboy Arduboy ATMEGA32U4 16 MHz 32 Kb 2. Flash RAM troller quency Adafruit Circuit Playground adafruit_circuitplayground_m0 SAMD21G18A48 MHz 256 32 Express Kb Kb adafruit_feather_m0_usb Adafruit Feather M0 SAMD21G18A48 MHz 256 32 Kb Kb bluefruitmicro Adafruit Bluefruit Micro AT.

8 MHz) ATMEGA328P 8 MHz 32 Kb robotControl Arduino Robot Control ATMEGA32U4 16 MHz 32 Kb robotMotor Arduino Robot Motor ATMEGA32U4 16 MHz 32 Kb tian Arduino Tian SAMD21G18A 48 MHz 256 Kb uno Arduino Uno ATMEGA328P 16 MHz 32 Kb yun Arduino Yun ATMEGA32U4 16 MHz 32 Kb yunmini Arduino Yun Mini ATMEGA32U4 16 MHz 32 Kb zero Arduino Zero (Programming Port) SAMD21G18A 48 MHz 256 Kb zeroUSB Arduino Zero (USB Native Port) SAMD21G18A 48 MHz 256 Kb 244 Chapter 4.3.PlatformIO Documentation. 16 MHz) ATMEGA168 16 MHz 16 Kb pro16MHzatmega328 Arduino Pro or Pro Mini ATmega328 (5V.3V. 16 MHz) ATMEGA328P 16 MHz 32 Kb pro8MHzatmega168 Arduino Pro or Pro Mini ATmega168 (3.3V. Contents . 8 MHz) ATMEGA168 8 MHz 16 Kb pro8MHzatmega328 Arduino Pro or Pro Mini ATmega328 (3.1 Arduino ID Name Microcontroller Frequency Flash LilyPadUSB Arduino LilyPad USB ATMEGA32U4 8 MHz 32 Kb atmega328pb Atmel ATmega328PB ATMEGA328PB 16 MHz 32 Kb atmegangatmega168 Arduino NG or older ATmega168 ATMEGA168 16 MHz 16 Kb atmegangatmega8 Arduino NG or older ATmega8 ATMEGA8 16 MHz 8 Kb btatmega168 Arduino BT ATmega168 ATMEGA168 16 MHz 16 Kb btatmega328 Arduino BT ATmega328 ATMEGA328P 16 MHz 32 Kb chiwawa Arduino Industrial 101 ATMEGA32U4 16 MHz 32 Kb diecimilaatmega168 Arduino Duemilanove or Diecimila ATmega168 ATMEGA168 16 MHz 16 Kb diecimilaatmega328 Arduino Duemilanove or Diecimila ATmega328 ATMEGA328P 16 MHz 32 Kb due Arduino Due (Programming Port) AT91SAM3X8E 84 MHz 512 Kb dueUSB Arduino Due (USB Native Port) AT91SAM3X8E 84 MHz 512 Kb esplora Arduino Esplora ATMEGA32U4 16 MHz 32 Kb ethernet Arduino Ethernet ATMEGA328P 16 MHz 32 Kb fio Arduino Fio ATMEGA328P 8 MHz 32 Kb leonardo Arduino Leonardo ATMEGA32U4 16 MHz 32 Kb leonardoeth Arduino Leonardo ETH ATMEGA32U4 16 MHz 32 Kb lilypadatmega168 Arduino LilyPad ATmega168 ATMEGA168 8 MHz 16 Kb lilypadatmega328 Arduino LilyPad ATmega328 ATMEGA328P 8 MHz 32 Kb megaADK Arduino Mega ADK ATMEGA2560 16 MHz 256 Kb megaatmega1280 Arduino Mega or Mega 2560 ATmega1280 ATMEGA1280 16 MHz 128 Kb megaatmega2560 Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) ATMEGA2560 16 MHz 256 Kb micro Arduino Micro ATMEGA32U4 16 MHz 32 Kb miniatmega168 Arduino Mini ATmega168 ATMEGA168 16 MHz 16 Kb miniatmega328 Arduino Mini ATmega328 ATMEGA328P 16 MHz 32 Kb mkr1000USB Arduino MKR1000 SAMD21G18A 48 MHz 256 Kb mkrzero Arduino MKRZero SAMD21G18A 48 MHz 256 Kb mzeroUSB Arduino M0 SAMD21G18A 48 MHz 256 Kb mzeropro Arduino M0 Pro (Programming Port) SAMD21G18A 48 MHz 256 Kb mzeroproUSB Arduino M0 Pro (Native USB Port) SAMD21G18A 48 MHz 256 Kb nanoatmega168 Arduino Nano ATmega168 ATMEGA168 16 MHz 16 Kb nanoatmega328 Arduino Nano ATmega328 ATMEGA328P 16 MHz 32 Kb pro16MHzatmega168 Arduino Pro or Pro Mini ATmega168 (5V. Release 3.

9.5 Kb digix Digistump DigiX AT91SAM3X8E 84 MHz 512 28 Kb Kb Doit ID Name Microcontroller Frequency Flash RAM espduino ESPDuino (ESP-13 Module) ESP8266 80 MHz 4096 Kb 80 Kb 4. Frameworks 245 . Fre.5 byte buffer) Kb digispark-pro64Digistump Digispark Pro (16 MHz) (64 ATTINY167 16 MHz 16 Kb 0. Release 3.16 MHz) ATTINY85 16 MHz 8 Kb 0. PlatformIO Documentation. Flash RAM troller quency digispark-pro Digistump Digispark Pro (Default 16 MHz) ATTINY167 16 MHz 16 Kb 0.5 byte buffer) Kb digispark-tiny Digistump Digispark (Default .5 Kb digispark-pro32Digistump Digispark Pro (16 MHz) (32 ATTINY167 16 MHz 16 Kb 0.1 BQ ID Name Microcontroller Frequency Flash RAM zumbt328 BQ ZUM BT-328 ATMEGA328P 16 MHz 32 Kb 2 Kb BitWizard ID Name Microcontroller Frequency Flash RAM raspduino BitWizard Raspduino ATMEGA328P 16 MHz 32 Kb 2 Kb Digilent ID Name Microcontroller Frequency Flash RAM cerebot32mx4 Digilent Cerebot 32MX4 32MX460F512L 80 MHz 512 Kb 32 Kb cerebot32mx7 Digilent Cerebot 32MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_cmod Digilent chipKIT Cmod 32MX150F128D 40 MHz 128 Kb 32 Kb chipkit_dp32 Digilent chipKIT DP32 32MX250F128B 40 MHz 128 Kb 32 Kb chipkit_mx3 Digilent chipKIT MX3 32MX320F128H 80 MHz 128 Kb 16 Kb chipkit_pro_mx4 Digilent chipKIT Pro MX4 32MX460F512L 80 MHz 512 Kb 32 Kb chipkit_pro_mx7 Digilent chipKIT Pro MX7 32MX795F512L 80 MHz 512 Kb 128 Kb chipkit_uc32 Digilent chipKIT uC32 32MX340F512H 80 MHz 512 Kb 32 Kb chipkit_wf32 Digilent chipKIT WF32 32MX695F512L 80 MHz 512 Kb 128 Kb chipkit_wifire Digilent chipKIT WiFire 32MZ2048ECG100 200 MHz 2048 Kb 512 Kb mega_pic32 Digilent chipKIT MAX32 32MX795F512L 80 MHz 512 Kb 128 Kb openscope Digilent OpenScope 32MZ2048EFG124 200 MHz 2048 Kb 512 Kb uno_pic32 Digilent chipKIT UNO32 32MX320F128H 80 MHz 128 Kb 16 Kb Digistump ID Name Microcon.3.

5 Kb EnviroDIY ID Name Microcontroller Frequency Flash RAM mayfly EnviroDIY Mayfly ATMEGA1284P 8 MHz 128 Kb 16 Kb 246 Chapter 4.0 ESP8266 80 MHz 4096 Kb 80 Kb ESPino ID Name Microcontroller Frequency Flash RAM espino ESPino ESP8266 80 MHz 4096 Kb 80 Kb Electronic SweetPeas ID Name Microcontroller Frequency Flash RAM esp320 Electronic SweetPeas ESP320 ESP32 240 MHz 1024 Kb 288 Kb Engduino ID Name Microcontroller Frequency Flash RAM engduinov3 Engduino 3 ATMEGA32U4 8 MHz 32 Kb 2.0 ESP8266 80 MHz 4096 Kb 80 Kb espresso_lite_v2 ESPresso Lite 2.3.1 DycodeX ID Name Microcontroller Frequency Flash RAM espectro ESPrectro Core ESP8266 80 MHz 4096 Kb 80 Kb ESPert ID Name Microcontroller Frequency Flash RAM espresso_lite_v1 ESPresso Lite 1.PlatformIO Documentation. Contents . Release 3.

0 ESP8266 80 MHz 1024 80 Kb Kb phoenix_v2 Phoenix 2. 256k STM32F103RC 72 MHz 256 48 Flash) Kb Kb genericSTM32F103RESTM32F103RE (64k RAM. Fre. Flash RAM troller quency bluepill_f103c8 BluePill F103C8 STM32F103C8T6 72 MHz 64 Kb 20 Kb genericSTM32F103C8STM32F103C8 (20k RAM. 128k STM32F103CB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103R8STM32F103R8 (20k RAM.9. Flash RAM troller quency esp01 Espressif Generic ESP8266 ESP-01 ESP8266 80 MHz 512 Kb 80 Kb 512k esp01_1m Espressif Generic ESP8266 ESP-01 ESP8266 80 MHz 1024 80 Kb 1M Kb esp07 Espressif Generic ESP8266 ESP-07 ESP8266 80 MHz 4096 80 Kb Kb esp12e Espressif ESP8266 ESP-12E ESP8266 80 MHz 4096 80 Kb Kb esp32dev Espressif ESP32 Dev Module ESP32 240 MHz 1024 288 Kb Kb esp8285 Generic ESP8285 Module ESP8266 80 MHz 448 Kb 80 Kb esp_wroom_02 ESP-WROOM-02 ESP8266 80 MHz 4096 80 Kb Kb phoenix_v1 Phoenix 1.0 ESP8266 80 MHz 1024 80 Kb Kb wifinfo WifInfo ESP8266 80 MHz 448 Kb 80 Kb Fubarino ID Name Microcontroller Frequency Flash RAM fubarino_mini Fubarino Mini 32MX250F128D 48 MHz 128 Kb 32 Kb fubarino_sd Fubarino SD (1. Fre. 512k STM32F103RE 72 MHz 512 64 Flash) Kb Kb 4. 128k STM32F103RB 72 MHz 128 20 Flash) Kb Kb genericSTM32F103RCSTM32F103RC (48k RAM. 64 STM32F103R8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103RBSTM32F103RB (20k RAM. PlatformIO Documentation. Frameworks 247 . Release 3.3. 64k STM32F103C8 72 MHz 64 Kb 20 Flash) Kb genericSTM32F103CBSTM32F103CB (20k RAM.1 Espressif ID Name Microcon.5) 32MX795F512H 80 MHz 512 Kb 128 Kb Generic ID Name Microcon.

1 Generic ATTiny ID Name Microcontroller Frequency Flash RAM attiny13 Generic ATTiny13 ATTINY13 9 MHz 1 Kb 0.125 Kb attiny25 Generic ATTiny25 ATTINY25 8 MHz 2 Kb 0.5 Kb Hornbill ID Name Microcontroller Frequency Flash RAM hornbill32dev Hornbill ESP32 Dev ESP32 240 MHz 1024 Kb 288 Kb hornbill32minima Hornbill ESP32 Minima ESP32 240 MHz 1024 Kb 288 Kb Intel ID Name Microcontroller Frequency Flash RAM genuino101 Arduino/Genuino 101 ARCV2EM 32 MHz 192 Kb 80 Kb LeafLabs ID Name Microcontroller Frequency Flash RAM maple Maple STM32F103RB 72 MHz 128 Kb 17 Kb maple_mini_b20 Maple Mini Bootloader 2.5 Kb Linino ID Name Microcontroller Frequency Flash RAM one Linino One ATMEGA32U4 16 MHz 32 Kb 2.0625 Kb attiny2313 Generic ATTiny2313 ATTINY2313 8 MHz 2 Kb 0. Contents .125 Kb attiny4313 Generic ATTiny4313 ATTINY4313 8 MHz 4 Kb 0.3.PlatformIO Documentation.5 Kb LowPowerLab ID Name Microcontroller Frequency Flash RAM moteino LowPowerLab Moteino ATMEGA328P 16 MHz 32 Kb 2 Kb moteinomega LowPowerLab MoteinoMEGA ATMEGA1284P 16 MHz 128 Kb 16 Kb 248 Chapter 4.25 Kb attiny84 Generic ATTiny84 ATTINY84 8 MHz 8 Kb 0.125 Kb attiny24 Generic ATTiny24 ATTINY24 8 MHz 2 Kb 0.0 STM32F103CB 72 MHz 128 Kb 20 Kb maple_mini_origin Maple Mini Original STM32F103CB 72 MHz 128 Kb 17 Kb LightUp ID Name Microcontroller Frequency Flash RAM lightup LightUp ATMEGA32U4 8 MHz 32 Kb 2.25 Kb attiny45 Generic ATTiny45 ATTINY45 8 MHz 4 Kb 0.25 Kb attiny44 Generic ATTiny44 ATTINY44 8 MHz 4 Kb 0.5 Kb attiny85 Generic ATTiny85 ATTINY85 8 MHz 8 Kb 0. Release 3.

5V) AT.9.3.5V) ATMEGA328P 16 MHz 32 Kb 2 Kb 328p8m Microduino Core (Atmega328P@8M. Fre.3. Release 3. Frameworks 249 .5 (ATmega32U4@16M.1 MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb Mcudude ID Name Microcontroller Frequency Flash RAM mightycore1284 MightyCore ATmega1284 ATMEGA1284P 16 MHz 128 Kb 16 Kb mightycore16 MightyCore ATmega16 ATMEGA16 16 MHz 16 Kb 1 Kb mightycore164 MightyCore ATmega164 ATMEGA164P 16 MHz 16 Kb 1 Kb mightycore32 MightyCore ATmega32 ATMEGA32 16 MHz 32 Kb 2 Kb mightycore324 MightyCore ATmega324 ATMEGA324P 16 MHz 32 Kb 2 Kb mightycore644 MightyCore ATmega644 ATMEGA644P 16 MHz 64 Kb 4 Kb mightycore8535 MightyCore ATmega8535 ATMEGA16 16 MHz 8 Kb 0.5V) MEGA32U4 Kb 644pa16m Microduino Core+ (Atmega644PA@16M. 8 MHz 128 16 Kb (ATmega1284P@8M.3V) ATMEGA644P 8 MHz 64 Kb 4 Kb MikroElektronika ID Name Microcontroller Frequency Flash RAM clicker2 MikroElektronika Clicker 2 32MX460F512L 80 MHz 512 Kb 32 Kb NodeMCU ID Name Microcontroller Frequency Flash RAM nodemcu NodeMCU 0.3.9 (ESP-12 Module) ESP8266 80 MHz 4096 Kb 80 Kb nodemcuv2 NodeMCU 1.3V) ATMEGA168P 8 MHz 16 Kb 1 Kb 328p16m Microduino Core (Atmega328P@16M.3.3V) MEGA1284P Kb 168pa16m Microduino Core (Atmega168PA@16M.5V) ATMEGA168P 16 MHz 16 Kb 1 Kb 168pa8m Microduino Core (Atmega168PA@8M.3V) ATMEGA328P 8 MHz 32 Kb 2 Kb 32u416m Microduino Core USB AT.5V) ATMEGA644P 16 MHz 64 Kb 4 Kb 644pa8m Microduino Core+ (Atmega644PA@8M. PlatformIO Documentation. 16 MHz 128 16 Kb MEGA1284P Kb 1284p8m Microduino Core+ AT.0 (ESP-12E Module) ESP8266 80 MHz 4096 Kb 80 Kb 4. 16 MHz 32 Kb 2.3. Flash RAM troller quency 1284p16m Microduino Core+ (ATmega1284P@16M.5 Kb Microduino ID Name Microcon.

5 Kb 250 Chapter 4.3.1 Noduino ID Name Microcontroller Frequency Flash RAM quantum Noduino Quantum ESP32 240 MHz 1024 Kb 288 Kb Olimex ID Name Microcontroller Frequency Flash RAM modwifi Olimex MOD-WIFI-ESP8266(-DEV) ESP8266 80 MHz 2048 Kb 80 Kb pinguino32 Olimex PIC32-PINGUINO 32MX440F256H 80 MHz 256 Kb 32 Kb OpenBCI ID Name Microcontroller Frequency Flash RAM openbci OpenBCI 32bit 32MX250F128B 40 MHz 128 Kb 32 Kb OpenEnergyMonitor ID Name Microcontroller Frequency Flash RAM emonpi OpenEnergyMonitor emonPi ATMEGA328P 16 MHz 32 Kb 2 Kb PONTECH ID Name Microcontroller Frequency Flash RAM quick240_usb PONTECH quicK240 32MX795F512L 80 MHz 512 Kb 128 Kb usbono_pic32 PONTECH UAV100 32MX440F512H 80 MHz 512 Kb 32 Kb PanStamp ID Name Microcontroller Frequency Flash RAM panStampAVR PanStamp AVR ATMEGA328P 8 MHz 32 Kb 2 Kb panStampNRG PanStamp NRG 1.1 CC430F5137 12 MHz 32 Kb 4 Kb Pinoccio ID Name Microcontroller Frequency Flash RAM pinoccio Pinoccio Scout ATMEGA256RFR2 16 MHz 256 Kb 32 Kb Pololu Corporation ID Name Microcontroller Frequency Flash RAM a-star32U4 Pololu A-Star 32U4 ATMEGA32U4 16 MHz 32 Kb 2.PlatformIO Documentation. Contents . Release 3.

3V/8MHz AT.5 MEGA32U4 Kb Kb RepRap ID Name Microcontroller Frequency Flash RAM reprap_rambo RepRap RAMBo ATMEGA2560 16 MHz 256 Kb 8 Kb SODAQ ID Name Microcontroller Frequency Flash RAM sodaq_autonomo SODAQ Autonomo SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_explorer SODAQ ExpLoRer SAMD21J18A 48 MHz 256 Kb 32 Kb sodaq_galora SODAQ GaLoRa ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_mbili SODAQ Mbili ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_moja SODAQ Moja ATMEGA328P 8 MHz 32 Kb 2 Kb sodaq_ndogo SODAQ Ndogo ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_one SODAQ ONE SAMD21G18A 48 MHz 256 Kb 32 Kb sodaq_tatu SODAQ Tatu ATMEGA1284P 8 MHz 128 Kb 16 Kb sodaq_wdt SODAQ WDT SAMD21J18A 48 MHz 256 Kb 32 Kb 4. Release 3. PlatformIO Documentation.3.9. 8 MHz 32 2.5 MEGA32U4 Kb Kb blendmicro16 RedBearLab Blend Micro 3.5 Kb RFduino ID Name Microcontroller Frequency Flash RAM rfduino RFduino NRF51822 16 MHz 128 Kb 8 Kb RedBearLab ID Name Microcon. Frameworks 251 .5 (overclock) MEGA32U4 Kb Kb blendmicro8 RedBearLab Blend Micro 3.1 Punch Through ID Name Microcontroller Frequency Flash RAM lightblue-bean LightBlue Bean ATMEGA328P 8 MHz 32 Kb 2 Kb lightblue-beanplus LightBlue Bean+ ATMEGA328P 16 MHz 32 Kb 2 Kb Quirkbot ID Name Microcontroller Frequency Flash RAM quirkbot Quirkbot ATMEGA32U4 8 MHz 32 Kb 2. 16 MHz 32 2. Fre.3V/16MHz AT. Flash RAM troller quency blend RedBearLab Blend AT. 16 MHz 32 2.

Fre. 8 MHz 64 4 ATmega644PA (8 MHz) MEGA644P Kb Kb SeeedStudio ID Name Microcontroller Frequency Flash RAM cui32stem SeeedStudio CUI32stem 32MX795F512H 80 MHz 512 Kb 128 Kb 252 Chapter 4.PlatformIO Documentation. 16 MHz 64 4 (16 MHz) MEGA644 Kb Kb Sanguino ATmega644 or ATmega644A sanguino_atmega644_8m AT. Contents . 16 MHz 128 16 MEGA1284P Kb Kb sanguino_atmega644 Sanguino ATmega644 or ATmega644A AT. Release 3.3. Flash RAM troller quency Sanguino ATmega1284p (8MHz) sanguino_atmega1284_8m AT. 8 MHz 64 4 (8 MHz) MEGA644 Kb Kb sanguino_atmega644pSanguino ATmega644P or AT. 16 MHz 64 4 ATmega644PA (16 MHz) MEGA644P Kb Kb Sanguino ATmega644P or sanguino_atmega644p_8m AT. Flash RAM quency sainSmartDue SainSmart Due (Programming AT91SAM3X8E 84 MHz 512 32 Port) Kb Kb sainSmartDueUSB SainSmart Due (USB Native Port) AT91SAM3X8E 84 MHz 512 32 Kb Kb Sanguino ID Name Microcon.1 SainSmart ID Name Microcontroller Fre. 8 MHz 128 16 MEGA1284P Kb Kb Sanguino ATmega1284p (16MHz) sanguino_atmega1284p AT.

16 MHz 16 Kb 124 Dev Board MEGA128RFA1 Kb sparkfun_serial7seg SparkFun Serial 7-Segment ATMEGA328P 8 MHz 32 Kb 2 Kb Display thing SparkFun ESP8266 Thing ESP8266 80 MHz 512 80 Kb Kb thingdev SparkFun ESP8266 Thing Dev ESP8266 80 MHz 512 80 Kb Kb uview SparkFun MicroView ATMEGA328P 16 MHz 32 Kb 2 Kb SparkFun Electronics ID Name Microcontroller Frequency Flash RAM esp32thing SparkFun ESP32 Thing ESP32 240 MHz 1024 Kb 112 Kb SweetPea ID Name Microcontroller Frequency Flash RAM esp210 SweetPea ESP-210 ESP8266 80 MHz 4096 Kb 80 Kb 4.3V ATMEGA2560 8 MHz 256 8 Kb Kb sparkfun_megapro16MHz SparkFun Mega Pro ATMEGA2560 16 MHz 256 8 Kb 5V/16MHz Kb sparkfun_megapro8MHz SparkFun Mega Pro ATMEGA2560 8 MHz 256 8 Kb 3.5 Kb sparkfun_megamini SparkFun Mega Pro Mini 3.3V/8MHz Kb sparkfun_promicro16 SparkFun Pro Micro ATMEGA32U4 16 MHz 32 Kb 2. Release 3.3.5 Kb sparkfun_makeymakey SparkFun Makey Makey ATMEGA32U4 16 MHz 32 Kb 2. Fre.5 Kb sparkfun_redboard SparkFun RedBoard ATMEGA328P 16 MHz 32 Kb 2 Kb SparkFun SAMD21 Dev sparkfun_samd21_dev_usb SAMD21G18A 48 MHz 256 32 Breakout Kb Kb SparkFun SAMD21 Mini sparkfun_samd21_mini_usb SAMD21G18A 48 MHz 256 32 Breakout Kb Kb SparkFun ATmega128RFA1 sparkfun_satmega128rfa1 AT.3V/8MHz Kb sparkfun_qduinomini SparkFun Qduino Mini ATMEGA32U4 8 MHz 32 Kb 2. Frameworks 253 .5 3.3V/8MHz ATMEGA32U4 8 MHz 32 Kb 2.5 5V/16MHz Kb sparkfun_promicro8 SparkFun Pro Micro ATMEGA32U4 8 MHz 32 Kb 2.9.1 SparkFun ID Name Microcon. Flash RAM troller quency sparkfunBlynk SparkFun Blynk Board ESP8266 80 MHz 4096 80 Kb Kb SparkFun Digital Sandbox sparkfun_digitalsandbox ATMEGA328P 8 MHz 32 Kb 2 Kb sparkfun_fiov3 SparkFun Fio V3 3. PlatformIO Documentation.

5 Kb teensy20pp Teensy++ 2. Contents .2 MK20DX256 72 MHz 256 Kb 64 Kb teensy35 Teensy 3.1 Teensy ID Name Microcontroller Frequency Flash RAM teensy20 Teensy 2.0 MK20DX128 48 MHz 128 Kb 16 Kb teensy31 Teensy 3.5 MK64FX512 120 MHz 512 Kb 192 Kb teensy36 Teensy 3.1 / 3.3.0 AT90USB1286 16 MHz 128 Kb 8 Kb teensy30 Teensy 3.0 ATMEGA32U4 16 MHz 32 Kb 2.5 Kb TinyCircuits ID Name Microcontroller Frequency Flash RAM tinyduino TinyCircuits TinyDuino Processor Board ATMEGA328P 8 MHz 32 Kb 2 Kb tinylily TinyCircuits TinyLily Mini Processor ATMEGA328P 8 MHz 32 Kb 2 Kb UBW32 ID Name Microcontroller Frequency Flash RAM ubw32_mx460 UBW32 MX460 32MX460F512L 80 MHz 512 Kb 32 Kb ubw32_mx795 UBW32 MX795 32MX795F512L 80 MHz 512 Kb 128 Kb WEMOS ID Name Microcontroller Frequency Flash RAM lolin32 WEMOS LoLin32 ESP32 240 MHz 1024 Kb 288 Kb WeMos ID Name Microcontroller Frequency Flash RAM d1 WeMos D1(Retired) ESP8266 80 MHz 4096 Kb 80 Kb d1_mini WeMos D1 R2 & mini ESP8266 80 MHz 4096 Kb 80 Kb 254 Chapter 4. Release 3.6 MK66FX1M0 180 MHz 1024 Kb 256 Kb teensylc Teensy LC MKL26Z64 48 MHz 64 Kb 8 Kb ThaiEasyElec ID Name Microcontroller Frequency Flash RAM espinotee ThaiEasyElec ESPino ESP8266 80 MHz 4096 Kb 80 Kb The Things Network ID Name Microcontroller Frequency Flash RAM the_things_uno The Things Uno ATMEGA32U4 16 MHz 32 Kb 2.PlatformIO Documentation.

9. I2C. Frameworks 255 . Zigbee.1 Wicked Device ID Name Microcontroller Frequency Flash RAM wildfirev2 Wicked Device WildFire V2 ATMEGA1284P 16 MHz 128 Kb 16 Kb wildfirev3 Wicked Device WildFire V3 ATMEGA1284P 16 MHz 128 Kb 16 Kb chipKIT ID Name Microcontroller Frequency Flash RAM lenny chipKIT Lenny 32MX270F256D 40 MHz 128 Kb 32 Kb element14 ID Name Microcontroller Frequency Flash RAM chipkit_pi Element14 chipKIT Pi 32MX250F128B 40 MHz 128 Kb 32 Kb makerlab. It exposes a set of APIs to ease up development of applications. These APIs cover hardware buses such as GPIO. UART. Contents • Framework artik-sdk – Platforms – Boards * Samsung 4. and others. Websockets. PlatformIO Documentation. For more detailed information please visit vendor site. SPI.mx ID Name Microcontroller Frequency Flash RAM altair Altair ATMEGA256RFR2 16 MHz 256 Kb 32 Kb ubIQio ID Name Microcontroller Frequency Flash RAM ardhat ubIQio Ardhat ATMEGA328P 16 MHz 32 Kb 2 Kb Framework artik-sdk ARTIK SDK is a C/C++ SDK targeting Samsung ARTIK platforms. MQTT.3. Release 3. Bluetooth. and network protocols such as HTTP. connectivity links like Wi-Fi.

1 Platforms Name Description Platform Linux ARM is a Unix-like and mostly POSIX-compliant computer operating system (OS) linux_arm assembled under the model of free and open-source software development and distribution. Contents . Samsung ID Name Microcontroller Frequency Flash RAM artik_1020 Samsung ARTIK 1020 EXYNOS5422 1500 MHz 16777216 Kb 2097152 Kb artik_520 Samsung ARTIK 520 EXYNOS3250 1000 MHz 4194304 Kb 524288 Kb artik_530 Samsung ARTIK 530 S5P4418 1200 MHz 4194304 Kb 524288 Kb artik_710 Samsung ARTIK 710 S5P6818 1400 MHz 4194304 Kb 1048576 Kb Framework cmsis The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals. reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices. It simplifies software re-use. Using host OS (Mac OS X. Contents • Framework cmsis – Platforms – Boards * Armstrap * ST – Articles – Examples 256 Chapter 4. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. and middleware.3.PlatformIO Documentation. Linux ARM) you can build native application for Linux ARM platform. real-time operating systems. Release 3. For more detailed information please visit vendor site.

Armstrap ID Name Microcontroller Frequency Flash RAM armstrap_eagle1024 Armstrap Eagle 1024 STM32F417VGT6 168 MHz 1024 Kb 192 Kb armstrap_eagle2048 Armstrap Eagle 2048 STM32F427VIT6 168 MHz 2048 Kb 256 Kb armstrap_eagle512 Armstrap Eagle 512 STM32F407VET6 168 MHz 512 Kb 192 Kb ST ID Name Microcontroller Frequency Flash RAM disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_l152rb ST STM32LDISCOVERY STM32L152RBT6 32 MHz 128 Kb 16 Kb nucleo_f401re ST Nucleo F401RE STM32F401RET6 84 MHz 512 Kb 96 Kb Articles • Jan 11. 2016 . .STM NUCLEOF401RE TIMER IO See more Articles about us.David Mills. 4. PlatformIO Documentation. • Blink Framework energia Energia Wiring-based framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. and low-power. It offers a 32-bit product range that combines very high performance. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.1 Platforms Name Description Platform The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to ststm32 offer new degrees of freedom to MCU users.3.9. digital signal processing. real-time capabilities. Ph. Frameworks 257 . while maintaining full integration and ease of development. Examples All project examples are located in PlatformIO repository Examples for CMSIS framework. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs.D. low-voltage operation. buzzing buzzers and sensing sensors more quickly than ever before. Release 3.

timsp430 mixed-signal processors designed for ultra-low power. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Contents • Framework energia – Platforms – Boards * TI Platforms Name Description Platform MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit.1 For more detailed information please visit vendor site. and extensive software solutions. 258 Chapter 4. unparalleled connectivity peripherals. Contents . industry-leading analog integration.3.PlatformIO Documentation. advanced application functions. Platform Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with titiva scalable memory and package options. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications. RISC-based. Release 3.

Flash RAM quency lplm4f120h5qr TI LaunchPad (Stellaris) w/ lm4f120 LPLM4F120H5QR 80 MHz 256 32 (80MHz) Kb Kb lpmsp430f5529 TI LaunchPad MSP-EXP430F5529LP MSP430F5529 16 MHz 128 8 Kb Kb lpmsp430fr4133 TI LaunchPad MSP430FR4133 8 MHz 16 Kb 2 Kb MSP-EXP430FR4133LP lpmsp430fr5739 TI FraunchPad MSP430FR5739 16 MHz 16 Kb 0. PlatformIO Documentation.5 MSP-EXP430FR5739LP Kb lpmsp430fr5969 TI LaunchPad MSP430FR5969 8 MHz 64 Kb 2 Kb MSP-EXP430FR5969LP lpmsp430fr6989 TI LaunchPad MSP430FR6989 8 MHz 128 2 Kb MSP-EXP430FR6989LP Kb lpmsp430g2553 TI LaunchPad MSP430G2553 16 MHz 16 Kb 0.3. Release 3. Frameworks 259 . For more detailed information please visit vendor site.9. Official development framework for ESP32.5 MSP-EXP430G2553LP Kb lptm4c1230c3pm TI LaunchPad (Tiva C) w/ tm4c123 LPTM4C1230C3PM 80 MHz 256 32 (80MHz) Kb Kb lptm4c1294ncpdtTI LaunchPad (Tiva C) w/ tm4c129 LPTM4C1294NCPDT120 MHz 1024 256 (120MHz) Kb Kb Framework espidf Espressif IoT Development Framework. Contents • Framework espidf – Platforms – Boards * Aiyarafun * April Brother * Electronic SweetPeas * Espressif * Hornbill * MakerAsia * Noduino * SparkFun Electronics * WEMOS 4.1 TI ID Name Microcontroller Fre.

Contents . They provide wireless espressif32 communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.3.1 Platforms Name Description Platform Espressif Systems is a privately held fabless semiconductor company. Aiyarafun ID Name Microcontroller Frequency Flash RAM node32s Node32s ESP32 240 MHz 1024 Kb 112 Kb April Brother ID Name Microcontroller Frequency Flash RAM espea32 April Brother ESPea32 ESP32 240 MHz 1024 Kb 288 Kb Electronic SweetPeas ID Name Microcontroller Frequency Flash RAM esp320 Electronic SweetPeas ESP320 ESP32 240 MHz 1024 Kb 288 Kb Espressif ID Name Microcontroller Frequency Flash RAM esp32dev Espressif ESP32 Dev Module ESP32 240 MHz 1024 Kb 288 Kb Hornbill ID Name Microcontroller Frequency Flash RAM hornbill32dev Hornbill ESP32 Dev ESP32 240 MHz 1024 Kb 288 Kb hornbill32minima Hornbill ESP32 Minima ESP32 240 MHz 1024 Kb 288 Kb MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb 260 Chapter 4. Release 3. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.PlatformIO Documentation.

Contents • Framework libopencm3 – Platforms – Boards * ST * TI – Examples Platforms Name Description Platform The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to ststm32 offer new degrees of freedom to MCU users. 13xx.3.9.1 Noduino ID Name Microcontroller Frequency Flash RAM quantum Noduino Quantum ESP32 240 MHz 1024 Kb 288 Kb SparkFun Electronics ID Name Microcontroller Frequency Flash RAM esp32thing SparkFun ESP32 Thing ESP32 240 MHz 1024 Kb 112 Kb WEMOS ID Name Microcontroller Frequency Flash RAM lolin32 WEMOS LoLin32 ESP32 240 MHz 1024 Kb 288 Kb Framework libopencm3 The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex- M0(+)/M3/M4 microcontrollers. unparalleled connectivity peripherals. industry-leading analog integration. For more detailed information please visit vendor site. Release 3. It offers a 32-bit product range that combines very high performance. Frameworks 261 . Ti Tiva and Stellaris. and low-power. Energy Micro EFM32 and others. low-voltage operation. including ST STM32. advanced application functions. PlatformIO Documentation. while maintaining full integration and ease of development. NXP LPC 11xx. 15xx. 17xx parts. real-time capabilities. 4. Atmel SAM3. and extensive software solutions. digital signal processing. Platform Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with titiva scalable memory and package options.

1 Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. yet powerful enough to build complex projects. Flash RAM quency lplm4f120h5qr TI LaunchPad (Stellaris) w/ lm4f120 LPLM4F120H5QR 80 MHz 256 32 (80MHz) Kb Kb lptm4c1230c3pm TI LaunchPad (Tiva C) w/ tm4c123 LPTM4C1230C3PM 80 MHz 256 32 (80MHz) Kb Kb lptm4c1294ncpdtTI LaunchPad (Tiva C) w/ tm4c129 LPTM4C1294NCPDT120 MHz 1024 256 (120MHz) Kb Kb Examples All project examples are located in PlatformIO repository Examples for libOpenCM3 framework. • Blink Framework mbed The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise.PlatformIO Documentation.3. allowing you to code down to the metal if needed. It is built on the low-level ARM CMSIS APIs. In addition to RTOS. For more detailed information please visit vendor site. Contents • Framework mbed – Platforms – Boards 262 Chapter 4. a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community. Contents . ST ID Name Microcontroller Frequency Flash RAM disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_l152rb ST STM32LDISCOVERY STM32L152RBT6 32 MHz 128 Kb 16 Kb nucleo_f103rb ST Nucleo F103RB STM32F103RBT6 72 MHz 128 Kb 20 Kb TI ID Name Microcontroller Fre. Release 3. USB and Networking libraries.

1 * 96Boards * Atmel * BBC * CQ Publishing * Delta * Elektor Labs * Embedded Artists * Espotel * Freescale * GHI Electronics * Generic * JKSoft * Micromint * MikroElektronika * MultiTech * NGX Technologies * NXP * Nordic * Outrageous Circuits * RedBearLab * ST * SeeedStudio * Semtech * Silicon Labs * Smeshlink * Solder Splash Labs * Switch Science * Teensy * u-blox * y5 design – Articles – Examples 4. Release 3. PlatformIO Documentation.9. Frameworks 263 .3.

Silicon Labs EFM32 Gecko 32-bit microcontroller (MCU) family includes devices that offer conlabsefm32 flash memory configurations up to 256 kB. Cortex-M4 and Cortex-M7-based MCU series.4GHz protocols such as Gazell. teensy capable of implementing many types of projects. Platform Teensy is a complete USB-based microcontroller development system. static RAM memory. Contents . flash memory. Internally. short wake-up time from energy saving modes and a wide selection of peripherals. only a standard USB cable and a PC or Macintosh with a USB port. Platform Freescale Kinetis Microcontrollers is family of multiple hardware. and low-power. system-on-chip (SoC) nordicnrf51 devices for ultra-low power wireless applications. 32 kB of RAM and CPU speeds up to 48 MHz.PlatformIO Documentation. digital signal processing. or Cortex-M0. scalability and feature integration. debugging interface. the Gecko family features innovative low energy techniques. It offers a 32-bit product range that combines very high performance. Platform The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. Kinetis MCUs offer exceptional low-power performance. ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix. 96Boards ID Name Microcontroller Frequency Flash RAM b96b_f446ve 96Boards B96B-F446VE STM32F446VET6 168 MHz 512 Kb 128 Kb 264 Chapter 4.1 Platforms Name Description Platform Atmel | SMART offers Flash. Platform The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to ststm32 offer new degrees of freedom to MCU users.and software-compatible freescalekinetis ARM Cortex-M0+. in a very small footprint. low-voltage operation. No special programmer is needed. Based on the powerful ARM Cortex-M core. ANT and proprietary 2.3. making it ideal for battery operated applications and other systems requiring high performance and low-energy consumption. and various peripherals. real-time capabilities. nxplpc The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core. Cortex-M3. Platform The Nordic nRF51 Series is a family of highly flexible. All programming is done via the USB port. Cortex-M0+. while maintaining full integration and ease of development. atmelsam Cortex-M3 and Cortex-M4 architectures. Release 3. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy). multi-protocol. such as the Cortex-M4F. each microcontroller consists of the processor core.based ARM products based on the ARM Cortex-M0+. Platform sili.

3.9. Frameworks 265 . PlatformIO Documentation. Flash RAM troller quency lpc11u35 EA LPC11U35 QuickStart Board LPC11U35 48 MHz 64 Kb 10 Kb lpc4088 Embedded Artists LPC4088 QuickStart LPC4088 120 MHz 512 96 Board Kb Kb lpc4088_dm Embedded Artists LPC4088 Display LPC4088 120 MHz 512 96 Module Kb Kb Espotel ID Name Microcontroller Frequency Flash RAM elmo_f411re Espotel LoRa Module STM32F411RET6 100 MHz 512 Kb 128 Kb 4. Fre.1 Atmel ID Name Microcontroller Frequency Flash RAM samd21_xpro Atmel SAMD21-XPRO ATSAMD21J18A 48 MHz 256 Kb 32 Kb samd21g18a Atmel ATSAMW25-XPRO ATSAMD21G18A 48 MHz 256 Kb 32 Kb saml21_xpro_b Atmel SAML21-XPRO-B ATSAML21J18B 48 MHz 256 Kb 32 Kb samr21_xpro Atmel ATSAMR21-XPRO ATSAMR21G18A 48 MHz 256 Kb 32 Kb BBC ID Name Microcontroller Frequency Flash RAM bbcmicrobit BBC micro:bit NRF51822 16 MHz 256 Kb 16 Kb bbcmicrobit_b BBC micro:bit B(S130) NRF51822 16 MHz 256 Kb 16 Kb CQ Publishing ID Name Microcontroller Frequency Flash RAM lpc11u35_501 CQ Publishing TG-LPC11U35-501 LPC11U35 48 MHz 64 Kb 10 Kb Delta ID Name Microcontroller Frequency Flash RAM dfcm_nnn40 Delta DFCM-NNN40 NRF51822 32 MHz 256 Kb 32 Kb Elektor Labs ID Name Microcontroller Frequency Flash RAM elektor_cocorico CoCo-ri-Co! LPC812 30 MHz 16 Kb 4 Kb Embedded Artists ID Name Microcon. Release 3.

Flash RAM quency IBMEthernetKit Ethernet IoT Starter Kit MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_k20d50m Freescale Kinetis MK20DX128VLH5 48 MHz 128 Kb 16 Kb FRDM-K20D50M frdm_k22f Freescale Kinetis FRDM-K22F MK22FN512VLH12 120 MHz 512 Kb 128 Kb frdm_k64f Freescale Kinetis FRDM-K64F MK64FN1M0VLL12 120 MHz 1024 256 Kb Kb frdm_kl05z Freescale Kinetis FRDM-KL05Z MKL05Z32VFM4 48 MHz 32 Kb 4 Kb frdm_kl25z Freescale Kinetis FRDM-KL25Z MKL25Z128VLK4 48 MHz 128 Kb 16 Kb frdm_kl26z Freescale Kinetis FRDM-KL26Z MKL26Z128VLH4 48 MHz 128 Kb 16 Kb frdm_kl27z Freescale Kinetis FRDM-KL27Z MKL27Z64VLH4 48 MHz 64 Kb 16 Kb frdm_kl43z Freescale Kinetis FRDM-KL43Z MKL43Z256VLH4 48 MHz 256 Kb 32 Kb frdm_kl46z Freescale Kinetis FRDM-KL46Z MKL46Z256VLL4 48 MHz 256 Kb 32 Kb GHI Electronics ID Name Microcontroller Frequency Flash RAM oc_mbuino mBuino LPC11U24 50 MHz 32 Kb 10 Kb Generic ID Name Microcontroller Frequency Flash RAM bluepill_f103c8 BluePill F103C8 STM32F103C8T6 72 MHz 64 Kb 20 Kb JKSoft ID Name Microcontroller Frequency Flash RAM wallbot_ble JKSoft Wallbot BLE NRF51822 16 MHz 128 Kb 16 Kb Micromint ID Name Microcontroller Frequency Flash RAM lpc4330_m4 Bambino-210E LPC4330 204 MHz 8192 Kb 264 Kb lpc4337 LPCXpresso4337 LPC4337 204 MHz 1024 Kb 136 Kb MikroElektronika ID Name Microcontroller Frequency Flash RAM hexiwear Hexiwear MK64FN1M0VDC12 120 MHz 1024 Kb 256 Kb 266 Chapter 4. Release 3.1 Freescale ID Name MicrocontrollerFre. Contents .3.PlatformIO Documentation.

Frameworks 267 . PlatformIO Documentation.9. Release 3. Flash RAM troller quency blueboard_lpc11u24 NGX Technologies LPC11U24 48 MHz 32 8 Kb BlueBoard-LPC11U24 Kb NXP ID Name Microcontroller Frequency Flash RAM lpc11c24 NXP LPC11C24 LPC11C24 48 MHz 32 Kb 8 Kb lpc11u24 NXP mbed LPC11U24 LPC11U24 48 MHz 32 Kb 8 Kb lpc11u24_301 ARM mbed LPC11U24 (+CAN) LPC11U24 48 MHz 32 Kb 8 Kb lpc11u34_421 NXP LPC11U34 LPC11U34 48 MHz 64 Kb 8 Kb lpc11u37_501 NXP LPC11U37 LPC11U37 48 MHz 128 Kb 10 Kb lpc11u68 LPCXpresso11U68 LPC11U68 50 MHz 256 Kb 36 Kb lpc1549 NXP LPCXpresso1549 LPC1549 72 MHz 256 Kb 36 Kb lpc1768 NXP mbed LPC1768 LPC1768 96 MHz 512 Kb 64 Kb lpc2368 NXP LPC2368 LPC2368 72 MHz 512 Kb 58 Kb lpc2460 NXP LPC2460 LPC2460 72 MHz 64 Kb 16 Kb lpc812 NXP LPC800-MAX LPC812 30 MHz 16 Kb 4 Kb lpc824 LPCXpresso824-MAX LPC824 30 MHz 32 Kb 8 Kb micronfcboard MicroNFCBoard LPC11U34 48 MHz 64 Kb 10 Kb Nordic ID Name Microcontroller Frequency Flash RAM nrf51_dk Nordic nRF51-DK NRF51822 32 MHz 256 Kb 32 Kb nrf51_dongle Nordic nRF51-Dongle NRF51822 32 MHz 256 Kb 32 Kb nrf51_mkit Nordic nRF51822-mKIT NRF51822 16 MHz 128 Kb 16 Kb Outrageous Circuits ID Name Microcontroller Frequency Flash RAM mbuino Outrageous Circuits mBuino LPC11U24 48 MHz 32 Kb 8 Kb 4. Fre.1 MultiTech ID Name Microcontroller Frequency Flash RAM mts_dragonfly_f411re MTS Dragonfly STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f405rg MultiTech mDot STM32F411RET6 100 MHz 512 Kb 128 Kb mts_mdot_f411re MultiTech mDot F411 STM32F411RET6 100 MHz 512 Kb 128 Kb xdot_l151cc MultiTech xDot STM32L151CCU6 32 MHz 256 Kb 32 Kb NGX Technologies ID Name Microcon.3.

Release 3.PlatformIO Documentation.1 RedBearLab ID Name Microcontroller Frequency Flash RAM redBearLab RedBearLab nRF51822 NRF51822 16 MHz 256 Kb 16 Kb redBearLabBLENano RedBearLab BLE Nano NRF51822 16 MHz 256 Kb 32 Kb ST ID Name Microcontroller Frequency Flash RAM disco_f051r8 ST STM32F0DISCOVERY STM32F051R8T6 48 MHz 64 Kb 8 Kb disco_f100rb ST STM32VLDISCOVERY STM32F100RBT6 24 MHz 128 Kb 8 Kb disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f334c8 ST 32F3348DISCOVERY STM32F334C8T6 72 MHz 64 Kb 12 Kb disco_f401vc ST 32F401CDISCOVERY STM32F401VCT6 84 MHz 256 Kb 64 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_f429zi ST 32F429IDISCOVERY STM32F429ZIT6 180 MHz 2048 Kb 256 Kb disco_f469ni ST 32F469IDISCOVERY STM32F469NIH6 180 MHz 1024 Kb 384 Kb disco_f746ng ST 32F746GDISCOVERY STM32F746NGH6 216 MHz 1024 Kb 320 Kb disco_f769ni ST 32F769IDISCOVERY STM32F769NIH6 80 MHz 1024 Kb 512 Kb disco_l053c8 ST 32L0538DISCOVERY STM32L053C8T6 32 MHz 64 Kb 8 Kb disco_l476vg ST 32L476GDISCOVERY STM32L476VGT6 80 MHz 1024 Kb 128 Kb nucleo_f030r8 ST Nucleo F030R8 STM32F030R8T6 48 MHz 64 Kb 8 Kb nucleo_f031k6 ST Nucleo F031K6 STM32F031K6T6 48 MHz 32 Kb 4 Kb nucleo_f042k6 ST Nucleo F042K6 STM32F042K6T6 48 MHz 32 Kb 6 Kb nucleo_f070rb ST Nucleo F070RB STM32F070RBT6 48 MHz 128 Kb 16 Kb nucleo_f072rb ST Nucleo F072RB STM32F072RBT6 48 MHz 128 Kb 16 Kb nucleo_f091rc ST Nucleo F091RC STM32F091RCT6 48 MHz 256 Kb 32 Kb nucleo_f103rb ST Nucleo F103RB STM32F103RBT6 72 MHz 128 Kb 20 Kb nucleo_f207zg ST Nucleo F207ZG STM32F207ZGT6 120 MHz 1024 Kb 128 Kb nucleo_f302r8 ST Nucleo F302R8 STM32F302R8T6 72 MHz 64 Kb 16 Kb nucleo_f303k8 ST Nucleo F303K8 STM32F303K8T6 72 MHz 64 Kb 16 Kb nucleo_f303re ST Nucleo F303RE STM32F303RET6 72 MHz 512 Kb 64 Kb nucleo_f303ze ST Nucleo F303ZE STM32F303ZET6 72 MHz 512 Kb 64 Kb nucleo_f334r8 ST Nucleo F334R8 STM32F334R8T6 72 MHz 64 Kb 16 Kb nucleo_f401re ST Nucleo F401RE STM32F401RET6 84 MHz 512 Kb 96 Kb nucleo_f410rb ST Nucleo F410RB STM32F410RBT6 100 MHz 128 Kb 32 Kb nucleo_f411re ST Nucleo F411RE STM32F411RET6 100 MHz 512 Kb 128 Kb nucleo_f429zi ST Nucleo F429ZI STM32F429ZIT6 180 MHz 2048 Kb 256 Kb nucleo_f446re ST Nucleo F446RE STM32F446RET6 180 MHz 512 Kb 128 Kb nucleo_f446ze ST Nucleo F446ZE STM32F446ZET6 180 MHz 512 Kb 128 Kb nucleo_f746zg ST Nucleo F746ZG STM32F746ZGT6 216 MHz 1024 Kb 320 Kb nucleo_f767zi ST Nucleo F767ZI STM32F746ZGT6 216 MHz 2048 Kb 512 Kb nucleo_l011k4 ST Nucleo L011K4 STM32L011K4T6 32 MHz 16 Kb 2 Kb nucleo_l031k6 ST Nucleo L031K6 STM32L031K6T6 32 MHz 32 Kb 8 Kb nucleo_l053r8 ST Nucleo L053R8 STM32L053R8T6 48 MHz 64 Kb 8 Kb nucleo_l073rz ST Nucleo L073RZ STM32L073RZ 32 MHz 192 Kb 20 Kb nucleo_l152re ST Nucleo L152RE STM32L152RET6 32 MHz 512 Kb 80 Kb nucleo_l432kc ST Nucleo L432KC STM32L432KCU6 80 MHz 256 Kb 64 Kb nucleo_l476rg ST Nucleo L476RG STM32L476RGT6 80 MHz 1024 Kb 128 Kb 268 Chapter 4.3. Contents .

3.1 SeeedStudio ID Name Microcontroller Frequency Flash RAM seeedArchBLE Seeed Arch BLE NRF51822 16 MHz 128 Kb 16 Kb seeedArchGPRS Seeed Arch GPRS V2 LPC11U37 48 MHz 128 Kb 10 Kb seeedArchLink Seeed Arch Link NRF51822 16 MHz 256 Kb 16 Kb seeedArchMax Seeed Arch Max STM32F407VET6 168 MHz 512 Kb 192 Kb seeedArchPro Seeed Arch Pro LPC1768 96 MHz 512 Kb 64 Kb seeedTinyBLE Seeed Tiny BLE NRF51822 16 MHz 256 Kb 16 Kb xadow_m0 Seeed Xadow M0 LPC11U35 48 MHz 64 Kb 10 Kb Semtech ID Name Microcontroller Frequency Flash RAM mote_l152rc NAMote72 STM32L152RC 32 MHz 256 Kb 32 Kb Silicon Labs ID Name MicrocontrollerFre. Frameworks 269 . Release 3.9. PlatformIO Documentation. Flash RAM quency Silicon Labs EFM32GG-STK3700 (Giant efm32gg_stk3700 EFM32GG990F102448 MHz 1024 128 Gecko) Kb Kb Silicon Labs SLSTK3400A USB-enabled efm32hg_stk3400 EFM32HG322F64 24 MHz 64 Kb 8 Kb (Happy Gecko) Silicon Labs EFM32LG-STK3600 efm32lg_stk3600 EFM32LG990F256 48 MHz 256 32 (Leopard Gecko) Kb Kb Silicon Labs SLSTK3401A (Pearl Gecko) efm32pg_stk3401 EFM32PG1B200F256 40 MHz 256 32 Kb Kb Silicon Labs EFM32WG-STK3800 efm32wg_stk3800 EFM32WG990F25648 MHz 256 32 (Wonder Gecko) Kb Kb Silicon Labs EFM32ZG-STK3200 (Zero efm32zg_stk3200 EFM2ZG222F32 24 MHz 32 Kb 4 Kb Gecko) Smeshlink ID Name Microcontroller Frequency Flash RAM xbed_lpc1768 Smeshlink xbed LPC1768 LPC1768 96 MHz 512 Kb 32 Kb Solder Splash Labs ID Name Microcontroller Frequency Flash RAM dipcortexm0 Solder Splash Labs DipCortex M0 LPC11U24 50 MHz 32 Kb 8 Kb lpc1347 DipCortex M3 LPC1347 72 MHz 64 Kb 12 Kb 4.

Examples All project examples are located in PlatformIO repository Examples for MBED framework.PlatformIOmbedSTM32 Nucleomruby (Use mruby in the offline build for STM32 Nucleo board with mbed and PlatformIO.1 Switch Science ID Name Microcontroller Frequency Flash RAM hrm1017 Switch Science mbed HRM1017 NRF51822 16 MHz 256 Kb 16 Kb lpc1114fn28 Switch Science mbed LPC1114FN28 LPC1114FN28 48 MHz 32 Kb 4 Kb ssci824 Switch Science mbed LPC824 LPC824 30 MHz 32 Kb 8 Kb ty51822r3 Switch Science mbed TY51822r3 NRF51822 32 MHz 256 Kb 32 Kb Teensy ID Name Microcontroller Frequency Flash RAM teensy31 Teensy 3.Vittorio Zaccaria .PlatformIO (Use a custom board for PlatformIO.stastaka . Release 3. Ph. Japanese) • Nov 06.nocd5 .PlatformIO Documentation. 2015 . 2015 .Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation See more Articles about us.Using a cheap STM32 Nucleo to teach remote sensor monitoring • Sep 01.Thomas P.3.2 MK20DX256 72 MHz 256 Kb 64 Kb u-blox ID Name Microcontroller Frequency Flash RAM ublox_evk_odin_w2 u-blox EVK-ODIN-W2 STM32F439ZIY6 168 MHz 2048 Kb 256 Kb ubloxc027 u-blox C027 LPC1768 96 MHz 512 Kb 64 Kb y5 design ID Name Microcontroller Frequency Flash RAM lpc11u35_y5_mbug y5 LPC11U35 mbug LPC11U35 48 MHz 64 Kb 10 Kb nrf51822_y5_mbug y5 nRF51822 mbug NRF51822 16 MHz 256 Kb 16 Kb Articles • Dec 15. • Blink • DSP • HTTP Client • RTOS • Serial 270 Chapter 4. Japanese) • Oct 21.1 / 3.D. 2015 . Contents . . 2015 . Weldon.

Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.1 Framework pumbaa Pumbaa is Python on top of Simba. For more detailed information please visit vendor site. For more detailed information please visit vendor site. Frameworks 271 . MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb Framework simba Simba is an RTOS and build framework.3. designed for embedded devices with limited amount of RAM and code memory. Contents • Framework simba – Platforms – Boards 4. It aims to make embedded programming easy and portable. PlatformIO Documentation. They provide wireless espressif32 communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. Contents • Framework pumbaa – Platforms – Boards * MakerAsia Platforms Name Description Platform Espressif Systems is a privately held fabless semiconductor company.9. The implementation is a port of MicroPython. Release 3.

3. power efficiency atmelavr and design flexibility. Platform Espressif Systems is a privately held fabless semiconductor company. Release 3. Adafruit ID Name Microcontroller Frequency Flash RAM huzzah Adafruit HUZZAH ESP8266 ESP8266 80 MHz 4096 Kb 80 Kb 272 Chapter 4. They provide wireless espressif32 communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.based ARM products based on the ARM Cortex-M0+. Cortex-M3 atmelsam and Cortex-M4 architectures. Platform Espressif Systems is a privately held fabless semiconductor company. Contents . They provide wireless espres. communications and Wi-Fi chips which are widely used in mobile devices and the Internet of sif8266 Things applications. ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.1 * Adafruit * Arduino * Espressif * MakerAsia * NodeMCU – Examples Platforms Name Description Platform Atmel AVR 8. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal.PlatformIO Documentation. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming. Platform Atmel | SMART offers Flash.and 32-bit MCUs deliver a unique combination of performance.

9 (ESP-12 Module) ESP8266 80 MHz 4096 Kb 80 Kb nodemcuv2 NodeMCU 1.0 (ESP-12E Module) ESP8266 80 MHz 4096 Kb 80 Kb Examples All project examples are located in PlatformIO repository Examples for Simba framework. The idea is to save the user (the new user.3.1 Arduino ID Name Microcon. 16 MHz 32 2 Kb MEGA328P Kb Espressif ID Name Microcontroller Frequency Flash RAM esp01 Espressif Generic ESP8266 ESP-01 512k ESP8266 80 MHz 512 Kb 80 Kb esp01_1m Espressif Generic ESP8266 ESP-01 1M ESP8266 80 MHz 1024 Kb 80 Kb esp12e Espressif ESP8266 ESP-12E ESP8266 80 MHz 4096 Kb 80 Kb MakerAsia ID Name Microcontroller Frequency Flash RAM nano32 MakerAsia Nano32 ESP32 240 MHz 1024 Kb 288 Kb NodeMCU ID Name Microcontroller Frequency Flash RAM nodemcu NodeMCU 0. Flash RAM troller quency due Arduino Due (Programming Port) AT91SAM3X8E84 MHz 512 32 Kb Kb dueUSB Arduino Due (USB Native Port) AT91SAM3X8E84 MHz 512 32 Kb Kb megaatmega2560Arduino Mega or Mega 2560 ATmega2560 AT. Release 3. 4. For more detailed information please visit vendor site. 16 MHz 32 2 Kb MEGA328P Kb uno Arduino Uno AT. 16 MHz 256 8 Kb (Mega 2560) MEGA2560 Kb nanoatmega328 Arduino Nano ATmega328 AT. PlatformIO Documentation. in particular) having to deal directly with the registers. Frameworks 273 .9. Fre. • Blink Framework spl The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family.

It offers a 32-bit product range that combines very high performance. real-time capabilities. Contents . low-voltage operation. while maintaining full integration and ease of development.PlatformIO Documentation.3. Release 3. digital signal processing.1 Contents • Framework spl – Platforms – Boards * Armstrap * ST – Examples Platforms Name Description Platform The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to ststm32 offer new degrees of freedom to MCU users. and low-power. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Armstrap ID Name Microcontroller Frequency Flash RAM armstrap_eagle1024 Armstrap Eagle 1024 STM32F417VGT6 168 MHz 1024 Kb 192 Kb armstrap_eagle2048 Armstrap Eagle 2048 STM32F427VIT6 168 MHz 2048 Kb 256 Kb armstrap_eagle512 Armstrap Eagle 512 STM32F407VET6 168 MHz 512 Kb 192 Kb ST ID Name Microcontroller Frequency Flash RAM disco_f303vc ST STM32F3DISCOVERY STM32F303VCT6 72 MHz 256 Kb 48 Kb disco_f407vg ST STM32F4DISCOVERY STM32F407VGT6 168 MHz 1024 Kb 128 Kb disco_l152rb ST STM32LDISCOVERY STM32L152RBT6 32 MHz 128 Kb 16 Kb nucleo_f401re ST Nucleo F401RE STM32F401RET6 84 MHz 512 Kb 96 Kb Examples All project examples are located in PlatformIO repository Examples for SPL framework. • Blink 274 Chapter 4.

Raspberry Pi ID Name Microcon. • Blink • Serial 4. Frameworks 275 . Contents • Framework wiringpi – Platforms – Boards * Raspberry Pi – Examples Platforms Name Description Platform Linux ARM is a Unix-like and mostly POSIX-compliant computer operating system (OS) linux_arm assembled under the model of free and open-source software development and distribution. For more detailed information please visit vendor site.9. Boards Note: • You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer • For more detailed board information please scroll tables below by horizontal. Release 3. It’s designed to be familiar to people who have used the Arduino “wiring” system. Fre. Using host OS (Mac OS X. Flash RAM troller quency raspberrypi_1b Raspberry Pi 1 Model BCM2835 700 MHz 524288 Kb 524288 Kb B raspberrypi_2b Raspberry Pi 2 Model BCM2836 900 MHz 1048576 1048576 B Kb Kb raspberrypi_zero Raspberry Pi Zero BCM2835 1000 MHz 524288 Kb 524288 Kb Examples All project examples are located in PlatformIO repository Examples for WiringPi framework.1 Framework wiringpi WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi. PlatformIO Documentation. Linux ARM) you can build native application for Linux ARM platform.3.

6) framework-arduinoststm32 Arduino Wiring-based Framework (STM32 Core) Continued on next page 276 Chapter 4. It allows PlatformIO to have multiple development platforms which can use the same packages(toolchains. For this purpose PlatformIO uses own pre-configured platforms data: build scripts. Choose Packages for platform 2. the settings for the most popular embedded boards and etc. Name Description framework-arduinoavr Arduino Wiring-based Framework (AVR Core. These data are pre-built and packaged to the different packages.6) framework-arduinoespressif32 Arduino Wiring-based Framework (ESP32 Core) framework-arduinoespressif8266 Arduino Wiring-based Framework (ESP8266 Core) framework-arduinointel Arduino Wiring-based Framework (Intel ARC Core) framework-arduinomicrochippic32 Arduino Wiring-based Framework (PIC32 Core) framework-arduinomsp430 Arduino Wiring-based Framework (MSP430 Core) framework-arduinonordicnrf51 Arduino Wiring-based Framework (RFduino Core) framework-arduinosam Arduino Wiring-based Framework (SAM Core. you don’t need to create (or duplicate) own development platforms! Please use build_flags option. Note: If you want to change some build flags for the existing Development Platforms. uploader and etc. frameworks). 1.json – Build Script main. but have different/own build scripts.PlatformIO Documentation. Create Manifest File platform. Release 3. 1. Create Build Script main. Step-by-Step Manual 1.3. Finish with the Installation.py – Installation – Examples Packages PlatformIO has pre-built packages for the most popular operation systems: Mac OS. Contents .1 Custom Platform & Board Custom Development Platform PlatformIO was developed like a tool that may build the same source code for the different development platforms via single command platformio run without any dependent software or requirements. toolchains. Contents • Custom Development Platform – Packages – Manifest File platform.json 3. Linux (+ARM) and Windows.py 4.

PlatformIO Documentation.10. Release 3.1 Table 4. Custom Platform & Board 277 .3.7 – continued from previous page Name Description framework-arduinoteensy Arduino Wiring-based Framework framework-artik-sdk ARTIK SDK is a C/C++ SDK targeting Samsung ARTIK platforms framework-cmsis Vendor-independent hardware abstraction layer for the Cortex-M processor series framework-energiamsp430 Energia Wiring-based Framework (MSP430 Core) framework-energiativa Energia Wiring-based Framework (LM4F Core) framework-espidf Espressif IoT Development Framework framework-libopencm3 libOpenCM3 Framework framework-mbed mbed Framework framework-pumbaa Pumbaa Framework framework-simba Simba Framework framework-spl Standard Peripheral Library for STM32 MCUs framework-wiringpi GPIO Interface library for the Raspberry Pi ldscripts Linker Scripts sdk-esp8266 ESP8266 SDK tool-arduino101load Genuino101 uploader tool-avrdude AVRDUDE tool-bossac BOSSA CLI tool-espotapy ESP8266 OTA utility tool-esptool esptool-ck tool-esptoolpy Espressif ROM Bootloader utility tool-lm4flash Flash Programmer tool-micronucleus Micronucleus tool-mkspiffs Tool to build and unpack SPIFFS images tool-mspdebug MSPDebug tool-openocd OpenOCD tool-pic32prog pic32prog tool-rfdloader rfdloader tool-scons SCons software construction tool tool-sreccat Merging tool tool-stlink ST-Link tool-stm32duino STM32Duino Tools tool-teensy Teensy Loader toolchain-atmelavr avr-gcc toolchain-gccarmlinuxgnueabi GCC for Linux ARM GNU EABI toolchain-gccarmnoneeabi gcc-arm-embedded toolchain-gcclinux32 GCC for Linux i686 toolchain-gcclinux64 GCC for Linux x86_64 toolchain-gccmingw32 MinGW toolchain-icestorm Tools for analyzing and creating bitstream files for FPGA IceStorm toolchain-intelarc32 GCC for Intel ARC toolchain-iverilog Verilog simulation and synthesis tool toolchain-microchippic32 GCC for Microchip PIC32 toolchain-timsp430 msp-gcc toolchain-xtensa xtensa-gcc toolchain-xtensa32 xtensa32-gcc 4.

"homepage": "http://platformio. "version": ">=1. "engines": { "platformio": "~3.com".0".org/platforms/myplatform". "https://sourceforge.0" }. "framework-%FRAMEWORK_NAME_1%": { "type": "framework". "http://dl. "script": "builder/frameworks/%FRAMEWORK_NAME_1%.org/packages/manifest.0.6.git" }.json".gz".10607.net/projects/platformio-storage/files/packages/manifest. "optional": true.json".1 Manifest File platform.40803.3. ˓→0. { "framework-%FRAMEWORK_NAME_1%": [ { "url": "http://dl. "scons": ">=2.10607.0. "description": "My custom development platform".example. "packages": { "toolchain-gccarmnoneeabi": { "type": "toolchain".tar.0" }.0" }. "title": "My Platform".0.json/ ˓→download". "framework-%FRAMEWORK_NAME_N%": { "type": "framework".0".com/platformio/dl-packages/manifest.<2.0". "version": "~1.bintray. "repository": { "type": "git".com/platformio/platform-myplatform.platformio. "frameworks": { "%FRAMEWORK_NAME_1%": { "package": "framework-%FRAMEWORK_NAME_1%". 278 Chapter 4. "version": "1. Release 3. "sha1": "adce2cd30a830d71cb6572575bf08461b7b73c07".3.py" }. "license": "Apache-2.py" } }. "packageRepositories": [ "https://dl. Contents . "script": "builder/frameworks/%FRAMEWORK_NAME_N%.0". "version": "0.0. "%FRAMEWORK_NAME_N%": { "package": "framework-%FRAMEWORK_NAME_N%".40805. "optional": true. "url": "https://github. "url": "http://example.PlatformIO Documentation.com/packages/framework-%FRAMEWORK_NAME_1%-1. "system": "*" } ] } ].<1.json { "name": "myplatform".10607.

PlatformIO has own built-in firmware builder env... Please look into a base template of main.org/doc/production/HTML/scons-user.Append( BUILDERS=dict( ElfToBin=Builder( action=" ".BuildProgram with the deep libraries search.join([ "$OBJCOPY". CPPDEFINES=["DEFINE_1". LIBS=["additional". "flagN"]. "flag2".py.py test-builder. "libs".scons. CC="gcc". "flag2". CCFLAGS=["flag1". "DEFINE_N"]. "uploader"). UPLOADCMD="$UPLOADER $SOURCES" ) env. LINKFLAGS=["flag1".git" } } } Build Script main. DefaultEnvironment env = DefaultEnvironment() # A full list with the available variables # http://www.3.1 "version": "~1.Replace( AR="ar". "DEFINE=2".path import join from SCons.py Platform’s build script is based on a next-generation build tool named SCons. "optional": true. """ Build script for test.0" }.117.html#app-variables env. CXX="g++". "flagN"]. Builder. Default. ARFLAGS=[". "flag2".com/user/repo. OBJCOPY="objcopy". 4.Script import AlwaysBuild. ASFLAGS=["flag1". Release 3. RANLIB="ranlib".10. AS="gcc". "here"]. CXXFLAGS=["flag1". Custom Platform & Board 279 . "-O"."]. "version": "https://github. "flagN"]. "flagN"]. "tool-direct-vcs-url": { "type": "framework". "flag2". UPLOADER=join("$PIOPACKAGES_DIR". "tool-bar". PlatformIO Documentation.py """ from os.

You should see myplatform platform. Now.com/platformio/platformio-core/blob/develop/platformio/builder/tools/ ˓→platformio.ElfToBin(join("$BUILD_DIR".py # # Target: Build executable and linkable firmware # target_elf = env. Install myplatform platform via platformio platform install command.PlatformIO Documentation. "$TARGET"]). Custom Embedded Board PlatformIO has pre-built settings for the most popular embedded boards.3. 2.bin file # target_bin = env. Examples Please take a look at the source code of PlatformIO Development Platforms. target_elf) # # Target: Upload firmware # upload = env. "$SOURCES". Copy platform.Alias(["upload"].ini. Create myplatform directory in platforms 3. "$UPLOADCMD") AlwaysBuild(upload) # # Target: Define targets # Default(target_bin) Installation 1. Release 3. This list is available: • Embedded Boards Explorer (Web) 280 Chapter 4.BuildProgram() # # Target: Build the .bin" ) ) ) # The source code of "platformio-build-tool" is here # https://github.json and builder/main. you can use myplatform for the platform option in Project Configuration File platformio. 5. 4. "firmware"). Create platforms directory in home_dir if it doesn’t exist.py files to myplatform directory. suffix=".1 "binary". target_bin. Search available platforms via platformio platform search command. Contents .

"url": "http://example. PlatformIO Documentation. "name": "My Test Board". "maximum_size": 32256 }. "0x0013" ].10. "hwids": [ [ "0x1234". Custom Platform & Board 281 . "upload": { "maximum_ram_size": 2048. Create boards directory in home_dir if it doesn’t exist. 4. Release 3. All data is declared using JSON-style via associative array (name/value pairs). [ "0x4567".1 • platformio boards (CLI command) Nevertheless. PlatformIO allows to create own board or override existing board’s settings. "mcu": "%MCU_TYPE_HERE%" }. Contents • Custom Embedded Board – JSON Structure – Installation – Examples JSON Structure The key fields: • build data will be used by Development Platforms and Frameworks builders • frameworks is the list with supported Frameworks • platform name of Development Platforms • upload upload settings which depend on the platform { "build": { "extra_flags": "-DHELLO_PLATFORMIO". "frameworks": ["%LIST_WITH_SUPPORTED_FRAMEWORKS%"].com". "f_cpu": "16000000L".3. "0x0013" ] ]. "vendor": "MyCompany" } Installation 1.

Contents .ini. Release 3. No matter where are you now! Run a small and cross-platform PIO Remote™ Agent on a remote machine and you are able to list active devices (wireless + wired). 3. Examples Please take a look at the source code of PlatformIO Development Platforms and navigate to boards folder of the repository. or to start remote debugging session via Remote Serial Port Monitor. please put your board’s JSON files to boards_dir. You should see myboard board.2: (PlatformIO Plus) PIO Remote™ allows you to work remotely with devices from Anywhere In The World.3. Note: You can have custom boards per project. In this case. to process remote unit tests. Now.json file in this boards directory. Using PIO Remote™ you can share your devices with colleagues across your organization or friends.1 2. A registration is FREE. Tip: QUESTIONS? Chat with us! (chat button is located in the bottom right corner) Contents • PIO Remote™ – Features – Technology – Installation – Quick Start – User Guide (CLI) Features • Cloud IDE • Remote Device Manager • Remote Serial Port Monitor 282 Chapter 4. Create myboard.PlatformIO Documentation. you can use myboard for the board option in Project Configuration File platformio. In combination with Cloud IDE. to upload firmware (program). you can create awesome things at any time when inspiration comes to you. PIO Remote™ Your devices are always with you! New in version 3. You should have PIO Account to work with PIO Remote™. Search available boards via platformio boards command.

1 • Remote Firmware Updates • PIO Remote™ Share • Continuous Deployment • Continuous Delivery • Remote Unit Testing 4. PlatformIO Documentation. Release 3. PIO Remote™ 283 .11.3.

PlatformIO Documentation, Release 3.3.1

284 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

Technology

4.11. PIO Remote™ 285

PlatformIO Documentation, Release 3.3.1

PIO Remote™ is an own PlatformIO Plus technology for remote solutions without external dependencies to operation
system or its software based on client-server architecture. The Server component (PlatformIO Cloud) plays a role of
coupling link between PIO Remote™ Agent and Client (PIO Remote™ CLI, Cloud IDE, Continuous Integration,
SDKs, etc.). When you start PIO Remote™ Agent, it connects over the Internet with PlatformIO Cloud and listen for
the actions/commands which you can send in Client role from anywhere in the world.
PIO Remote™ is multi-agents and multi-clients system. A single agent can be shared with multiple clients, where
different clients can use the same agent. This approach allows to work with distributed hardware located in the different
places, networks, etc.
This technology allows to work with remote devices in generic form as you do that with local devices using PlatformIO
ecosystem. The only one difference is a prefix “remote” before each generic PlatformIO command. For example,
listing of local and remote devices will look like platformio device list and platformio remote device list.

Installation

PIO Remote™ is built into PlatformIO IDE for Atom. Please open PlatformIO IDE Terminal and run pio remote
--help command for usage (see PIO Remote™ CLI).
If you do not have PlatformIO IDE for Atom, or use Cloud IDE or a card-sized PC (Raspberry Pi, BeagleBoard, etc.),
please install PlatformIO Core.

Quick Start

1. Start PIO Remote™ Agent using platformio remote agent start command on a remote machine where devices
are connected physically or are accessible via network. PIO Remote™ Agent works on Windows, macOS,
Linux and Linux ARMv6+. It means that you can use desktop machine, laptop or credit card sized PC (Rasp-
berry Pi, BeagleBoard, etc).
You can share own devices/hardware with friends, team or other developers using platformio remote
agent start --share option.
2. Using host machine (PIO Remote™ CLI, Cloud IDE Terminal in a browser, SDKs, etc.), please authorize via
platformio account login command with the same credentials that you used on the previous step. Now, you can
use PIO Remote™ CLI commands to work with remote machine and its devices.
You don’t need to have networking or other access to remote machine where PIO Remote™ Agent is started.
If you use PIO Remote™ in pair with Continuous Integration or want automatically authorize, please set
PLATFORMIO_AUTH_TOKEN system environment variable instead of using platformio account login com-
mand.

Note: In case with Cloud IDE, your browser with Cloud IDE’s VM is a “host machine”. The machine where devices
are connected physically (your real PC) is called “remote machine” in this case. You should run PIO Remote™ Agent
here (not in Cloud IDE’s Terminal).

Note: Please use local IP as “upload port” when device is not connected directly to a remote machine where
PIO Remote™ Agent is started but supports natively Over-the-Air (OTA) updates. For example, Platform espres-
sif8266 and Over-the-Air (OTA) update. In this case, the final command for remote OTA update will look as
platformio remote run -t upload --upload-port 192.168.0.255 or platformio remote
run -t upload --upload-port myesp8266.local.

286 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

User Guide (CLI)

Unit Testing

New in version 3.0: (PlatformIO Plus)
Unit Testing (wiki) is a software testing method by which individual units of source code, sets of one or more MCU
program modules together with associated control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early in the development cycle.

Tip: QUESTIONS? Chat with us! (chat button is located in the bottom right corner)

Contents

• Unit Testing
– Demo
– Test Types

* Desktop
* Embedded
– Test Runner

* Local
* Remote
– Design
– Workflow
– API
– User Guide (CLI)
– Test “Blink” Project

* Project structure
* Source files
* Test results
– Examples

4.12. Unit Testing 287

PlatformIO Documentation, Release 3.3.1

Demo

Demo of Local & Embedded: Calculator.

Test Types

Desktop

PlatformIO wraps the test and main program (from src_dir) with their own PlatformIO Unit Testing Framework. It
then builds the final program using Platform native and runs tests on the host machine (desktop).

Note: PlatformIO does not install any toolchains automatically for Platform native and requires GCC toolchain to be
installed on your host machine. Please open Terminal and check that the gcc command is installed.

Embedded

PlatformIO wraps the test and main firmware (from src_dir) with their own PlatformIO Unit Testing Framework.
It then builds special firmware for the target device and uploads it. After uploading, PlatformIO connects to the

288 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

embedded device (board) using the configured test_port . Tests are then started and the results are collected for
display on the host machine.
Currently, PlatformIO Unit Testing Engine supports these embedded frameworks:
• Framework arduino
• Framework energia
• Framework mbed

Note: Please note that the PlatformIO Unit Testing Framework uses Serial/UART as a communication interface
between the PlatformIO Unit Test Engine and target device. If you use Serial in your project, please wrap/hide
Serial-based blocks with #ifndef UNIT_TEST macro.

Test Runner

Test Runner allows you to process specific environments or ignore tests using “Glob patterns”. You can also ignore
tests for specific environments using the test_ignore option from Project Configuration File platformio.ini.

Local

Allows you to run tests on a host machine or on target devices (boards) that are directly connected to the host machine.
In this case, need to use the platformio test command.

Remote

Allows you to run tests on a remote machine or remote target devices (boards) without having to depend on OS
software, extra software, SSH, VPN or opening network ports. Remote Unit Testing works in pair with PIO Remote™.
In this case, you need to use the special command platformio remote test.
PlatformIO supports multiple Continuous Integration systems where you can run unit tests on each integration stage.
See real PlatformIO Remote Unit Testing Example.

Design

The PlatformIO Unit Testing Engine design is based on a few isolated components:
1. Main Program. Contains the independent modules, procedures, functions or methods that will be the target
candidates (TC) for testing.
2. Unit Test. A small independent program that is intended to re-use TC from the main program and apply tests to
them.
3. Test Processor. The set of approaches and tools that will be used to apply tests for the environments from
Project Configuration File platformio.ini.

Workflow

1. Create PlatformIO project using the platformio init command. For Desktop Unit Testing (on the host machine),
you need to use Platform native.

4.12. Unit Testing 289

PlatformIO Documentation, Release 3.3.1

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter, extra scripting
; Upload options: custom port, speed and extra flags
; Library options: dependencies, extra library storages
;
; Please visit documentation for the other options and examples
; http://docs.platformio.org/en/stable/projectconf.html

;
; Embedded platforms
;

[env:uno]
platform = atmelavr
framework = arduino
board = uno

[env:nodemcu]
platform = espressif8266
framework = arduino
board = nodemcuv2

;
; Desktop platforms (Win, Mac, Linux, Raspberry Pi, etc)
; See http://platformio.org/platforms/native
;

[env:native]
platform = native

2. Place source code for the main program in the src directory.
3. Wrap main() or setup()/loop() methods in the main program with a UNIT_TEST guard:

/**
* Arduino Wiring-based Framework
*/
#ifndef UNIT_TEST
#include <Arduino.h>
void setup () {
// some code...
}

void loop () {
// some code...
}
#endif

/**
* Generic C/C++
*/
#ifndef UNIT_TEST
int main(int argc, char **argv) {
// setup code...

while (1) {
// loop code...

290 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

}
return 0
}
#endif

4. Create a test directory in the root of your project. See test_dir.
5. Write the test using API. Each test is a small independent program with its own main() or setup()/loop()
methods. Tests should start with UNITY_BEGIN() and finish with UNITY_END().

Warning: If your board does not support software reset via Serial.DTR/RTS, you should add >2 sec-
onds delay before UNITY_BEGIN()`. That time is needed to establish a ``Serial
communication between the host machine and target device.
delay(2000); // for Arduino framework
wait(2); // for ARM mbed framework
UNITY_BEGIN();

6. Place the test in the test directory. If you have more than one test, split them into sub-folders. For ex-
ample, test/test_1/*.[c,cpp,h], test_N/*.[c,cpp,h], etc. If there is no such directory in the
test``folder, then |PIOUTE| will treat the source code of ``test folder as SIN-
GLE test.
7. Run tests using the platformio test command.

API

Summary of the Unity Test API:
• Running Tests
– RUN_TEST(func, linenum)
• Ignoring Tests
– TEST_IGNORE()
– TEST_IGNORE_MESSAGE (message)
• Aborting Tests
– TEST_PROTECT()
– TEST_ABORT()
• Basic Validity Tests
– TEST_ASSERT_TRUE(condition)
– TEST_ASSERT_FALSE(condition)
– TEST_ASSERT(condition)
– TEST_ASSERT_UNLESS(condition)
– TEST_FAIL()
– TEST_FAIL_MESSAGE(message)
• Numerical Assertions: Integers

4.12. Unit Testing 291

actual. actual) – TEST_ASSERT_EQUAL_UINT(expected. actual) – TEST_ASSERT_EQUAL_UINT64(expected. actual) • String Assertions – TEST_ASSERT_EQUAL_STRING(expected. actual) – TEST_ASSERT_EQUAL_HEX8_ARRAY(expected. actual) • Numerical Assertions: Floats – TEST_ASSERT_FLOAT_WITHIN(delta. actual) – TEST_ASSERT_EQUAL_UINT32(expected. actual) – TEST_ASSERT_EQUAL_DOUBLE(expected. actual) – TEST_ASSERT_EQUAL_INT8(expected. len. actual) – TEST_ASSERT_BIT_LOW(mask. actual) – TEST_ASSERT_BITS_LOW(mask. actual. len) – TEST_ASSERT_EQUAL_STRING_MESSAGE(expected. actual) – TEST_ASSERT_EQUAL_HEX(expected. actual) – TEST_ASSERT_EQUAL_HEX32(expected. actual) – TEST_ASSERT_EQUAL_UINT8(expected.3. Contents . elements) – TEST_ASSERT_EQUAL(expected. actual) – TEST_ASSERT_EQUAL_HEX8(expected. expected. actual) – TEST_ASSERT_INT_WITHIN(delta. actual) – TEST_ASSERT_EQUAL_HEX64(expected. actual) • Numerical Assertions: Bitwise – TEST_ASSERT_BITS(mask. actual.1 – TEST_ASSERT_EQUAL_INT(expected. actual) – TEST_ASSERT_BITS_HIGH(mask. Release 3. message) – TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected.PlatformIO Documentation. actual) – TEST_ASSERT_EQUAL_INT16(expected. message) • Pointer Assertions – TEST_ASSERT_NULL(pointer) – TEST_ASSERT_NOT_NULL(pointer) 292 Chapter 4. actual. actual) – TEST_ASSERT_EQUAL_INT64(expected. expected. actual) – TEST_ASSERT_EQUAL_UINT16(expected. actual) – TEST_ASSERT_EQUAL_INT32(expected. actual) – TEST_ASSERT_EQUAL_STRING_LEN(expected. actual) – TEST_ASSERT_EQUAL_HEX16(expected. actual) – TEST_ASSERT_BIT_HIGH(mask. actual) – TEST_ASSERT_EQUAL_FLOAT(expected. expected.

Build options: build flags.platformio. PlatformIO Project Configuration File . len) User Guide (CLI) Test “Blink” Project 1.lib | .cpp file in it (the source code is located below).platformio. Release 3. http://docs. 3. PlatformIO Documentation.main.test .1 • Memory Assertions – TEST_ASSERT_EQUAL_MEMORY(expected.readme.cpp Source files • platformio.12.html [env:uno] platform = atmelavr framework = arduino board = uno [env:nodemcu] platform = espressif8266 framework = arduino board = nodemcu 4.src | . Upload options: custom port. extra library storages . Please visit documentation for the other options and examples . 4.test_main.ini .ini . Library options: dependencies. Run tests using platformio test command. Project structure project_dir . Create a test directory in the project (on the same level as src) and place test_main.3. extra scripting . . source filter.txt . actual. Unit Testing 293 .org/en/stable/projectconf.cpp . 2. . Please go to Quick Start and create the “Blink Project”. According to the Unit Testing Design it is the Main program. Wrap setup() and loop() methods of the main program in a UNIT_TEST guard. speed and extra flags .

Release 3. repeatedly. } void test_led_state_high(void) { digitalWrite(LED_BUILTIN. Contents . HIGH). } void loop() { // turn the LED on (HIGH is the voltage level) digitalWrite(LED_BUILTIN. } #endif // IMPORTANT LINE! • test/test_main.cpp /* * Blink * Turns on an LED on for one second.h" #ifndef UNIT_TEST // IMPORTANT LINE! void setup() { // initialize LED digital pin as an output.PlatformIO Documentation.h> #include <unity. 13).h> #ifdef UNIT_TEST // void setUp(void) { // // set stuff up here // } // void tearDown(void) { // // clean stuff up here // } void test_led_builtin_pin_number(void) { TEST_ASSERT_EQUAL(LED_BUILTIN. // wait for a second delay(1000). // wait for a second delay(1000).cpp #include <Arduino. */ #include "Arduino. pinMode(LED_BUILTIN. 294 Chapter 4.1 [env:teensy31] platform = teensy framework = arduino board = teensy31 • src/main. * then off for one second.3. LOW). HIGH). OUTPUT). // turn the LED off by making the voltage LOW digitalWrite(LED_BUILTIN.

} void setup() { // NOTE!!! Wait for >2 secs // if board doesn't support software reset via Serial..0 Verbose mode can be enabled via `-v. Unit Testing 295 . } else if (i == max_blinks) { UNITY_END(). } void test_led_state_low(void) { digitalWrite(LED_BUILTIN. } uint8_t i = 0. LOW). HIGH)..com) v0. // IMPORTANT LINE! RUN_TEST(test_led_builtin_pin_number). void loop() { if (i < max_blinks) { RUN_TEST(test_led_state_high). pinMode(LED_BUILTIN. Project does not have dependencies 4..3. Release 3. board: ˓→nodemcu. --verbose` option Collected 1 items ============================== [test::*] Building. RUN_TEST(test_led_state_low). // stop unit testing } } #endif Test results > platformio test -e nodemcu --verbose PlatformIO Plus (https://pioplus. i++. OUTPUT).DTR/RTS delay(2000).1 TEST_ASSERT_EQUAL(digitalRead(LED_BUILTIN).12. TEST_ASSERT_EQUAL(digitalRead(LED_BUILTIN). UNITY_BEGIN(). PlatformIO Documentation. delay(500). uint8_t max_blinks = 5.1. framework: arduino) -------------------------------------------------------------------------------------- ˓→-------------------------------------------------------------------------- Verbose mode can be enabled via `-v. delay(500).. --verbose` option Collected 34 compatible libraries Looking for dependencies. LOW). (1/3) ˓→============================== [Wed Sep 7 15:16:55 2016] Processing nodemcu (platform: espressif8266.

pioenvs/nodemcu/FrameworkArduino/umm_malloc/umm_malloc..elf Building ..... Release 3.bin Uploading 230064 bytes from .................pioenvs/nodemcu/src/main..........o Compiling .bin to flash at 0x00000000 ......pioenvs/nodemcu/UnityTestLib/unity.....elf Calculating size .....cpp:43:test_led_state_low [PASSED] 296 Chapter 4.....pioenvs/nodemcu/firmware.........o Compiling ..pioenvs/nodemcu/libUnityTestLib.o ....pioenvs/nodemcu/libFrameworkArduino.....elf text data bss dec hex filename 223500 2408 29536 255444 3e5d4 ........pioenvs/nodemcu/libFrameworkArduino.... framework: arduino) -------------------------------------------------------------------------------------- ˓→-------------------------------------------------------------------------- Verbose mode can be enabled via `-v.a Compiling ......a Linking ...elf text data bss dec hex filename 223500 2408 29536 255444 3e5d4 .. Compiling ...a Indexing .o Compiling ....bin ============================== [test::*] Uploading...pioenvs/nodemcu/firmware....pioenvs/nodemcu/firmware...pioenvs/nodemcu/test/output_export......o Compiling ..pioenvs/nodemcu/firmware.o Compiling ...............pioenvs/nodemcu/test/test_main.pioenvs/nodemcu/FrameworkArduino/IPAddress.o Archiving .....elf Calculating size ..pioenvs/nodemcu/libFrameworkArduinoVariant......pioenvs/nodemcu/firmware... Contents ..pioenvs/nodemcu/FrameworkArduino/FS.. --verbose` option Collected 34 compatible libraries Looking for dependencies..pioenvs/nodemcu/FrameworkArduino/MD5Builder.a Indexing .....pioenvs/nodemcu/firmware........pioenvs/nodemcu/libUnityTestLib..pioenvs/nodemcu/firmware..elf text data bss dec hex filename 223500 2408 29536 255444 3e5d4 .o Compiling ..elf Checking program size ..SLAB_USBtoUART Uploading ...a Indexing .........o Archiving ....a Compiling .........o Archiving . [ 35 ˓→% ] .............pioenvs/nodemcu/libFrameworkArduinoVariant....... (2/3) ˓→============================== [Wed Sep 7 15:17:01 2016] Processing nodemcu (platform: espressif8266.elf Looking for upload port.pioenvs/nodemcu/firmware. [ 100 ˓→% ] =============================== [test::*] Testing.....cpp:41:test_led_state_high [PASSED] test/test_main.pioenvs/nodemcu/FrameworkArduino/Esp...1 Compiling .. board: ˓→nodemcu.....pioenvs/nodemcu/FrameworkArduino/HardwareSerial... Auto-detected: /dev/cu... (3/3) ˓→=============================== If you don't see any output for the first 10 secs.pioenvs/nodemcu/firmware.... please reset board (press reset ˓→button) test/test_main. [ 71 ˓→% ] ....3...............pioenvs/nodemcu/firmware............pioenvs/nodemcu/firmware... Project does not have dependencies Linking ...PlatformIO Documentation.

Name or even repository URL. For example. You can use library ID. install and keep libraries up-to-date. The only one simple step is to define dependencies in Project Configuration File platformio.cpp:43:test_led_state_low [PASSED] test/test_main.. You do not need to install libraries manually. PlatformIO Documentation..cpp:41:test_led_state_high [PASSED] test/test_main. It makes it exceedingly simple to find.. Hg.cpp:43:test_led_state_low [PASSED] test/test_main. Library Manager PlatformIO Library Manager is a tool for managing libraries of PlatformIO Registry and VCS repositories (Git. [env:myenv] platform = . SVN).15 seconds ˓→================================ Examples • Embedded: Wiring Blink • Local & Embedded: Calculator • Labmet Weather Station • PlatformIO Remote Unit Testing Example For the other examples and source code please follow to PlatformIO Unit Testing Examples repository. framework = .ini.. There are 2 options how to find library: • Web Library Search • Command Line Interface You can manage different library storages using platformio lib --global or platformio lib --storage-dir options.3. lib_deps = 4.cpp:41:test_led_state_high [PASSED] test/test_main. PlatformIO Library Manager supports Semantic Versioning and its rules.cpp:43:test_led_state_low [PASSED] ----------------------- 11 Tests 1 Failures 0 Ignored ===================================== [TEST SUMMARY] ˓→===================================== test:*/env:nodemcu [PASSED] ================================ [PASSED] Took 38..13. If you change current working directory in terminal to project folder.cpp:41:test_led_state_high [PASSED] test/test_main.. Project dependencies PlatformIO Library Manager allows to specify project dependencies (lib_deps) that will be installed automatically per project before environment processing. board = . then platformio lib command will manage automatically dependency storage in libdeps_dir. Release 3. Library Manager 297 .1 test/test_main.

Library Dependency Finder has controls that can be set up in Project Configuration File platformio.PlatformIO Documentation. Contents .3.4 https://github.zip Please follow to platformio lib install for detailed documentation about possible values. Linter) Library Dependency Finder (LDF) New in version 3. Release 3..git https://github. Warning: If some libraries are not visible in PlatformIO IDE for Atom and Code Completion or Code Lint- ing does not work properly. These storages (folders) have priority and LDF operates in the next order: 1. please perform Menu: PlatformIO > Rebuild C/C++ Project Index (Autocomplete. lib_extra_dirs .1 13 PubSubClient ArduinoJson@~5.!=5.com/gioblu/PJON.6.com/me-no-dev/ESPAsyncTCP. directives.ini: • lib_deps • lib_extra_dirs • lib_ignore • lib_compat_mode • lib_ldf_mode Contents • Library Dependency Finder (LDF) – Storage – Dependency Finder Mode – Compatibility Mode – C/C++ Preprocessor conditional syntax Storage There are different storages where Library Dependency Finder looks for libraries..extra storages per build environment 298 Chapter 4.0. else. defined.com/adafruit/DHT-sensor-library/archive/master. it evaluates C/C++ Preprocessor con- ditional syntax (#ifdef.0 https://github. This approach allows signifi- cantly reduce total compilation time.git#v2. In spite of the fact that Library Dependency Finder is written in pure Python. and elif) without calling gcc -E. if. Library Dependency Finder is a core part of PlatformIO Build System that operates with the C/C++ source files and looks for #include .

5. Builds only the libraries that are specified in manifests (library. Release 3...h depends on “Bar” library (contains #include <bar.14..cpp depends on “Bar” library (contains #include <bar. lib_dir . cpp).json. For example.own/private library storage per project 3.h>) • #include <foo. Case 2 • lib_ldf_mode = chain • Foo/foo.h – Bar/bar.3. chain.h> is located in one of the project source files Here are nested includes (project file > foo. PlatformIO Documentation. SDKs. Does not process C/C++ Preprocessor conditional syntax. module. Case 3 • lib_ldf_mode = deep • Foo/foo. chain Parses ALL C/C++ source code of the project and follows only by nested includes (#include (default) .h) and LDF will find both li- braries “Foo” and “Bar”.1 2. Library storages built into frameworks. deep Parses ALL C/C++ source code of the project and parses ALL C/C++ source code of the each found dependency (recursively). libdeps_dir .) from the libraries.h> is located in one of the project source files In this case.h>) 4. Dependency Finder Mode Library Dependency Finder starts work from analyzing source files of the project (src_dir) and can work in the next modes: Mode Description off “Manual mode”. does not process source files of a project and dependencies. “home_dir/lib” . Does not evaluates C/C++ Preprocessor conditional syntax. there are 2 libraries: • Library “Foo” with files: – Foo/foo.cpp depends on “Bar” library (contains #include <bar.h – Foo/foo.ini. chain+ The same behavior as for the chain but evaluates C/C++ Preprocessor conditional syntax. Library Dependency Finder (LDF) 299 .json) or using lib_deps option.project dependency storage used by Library Manager 4. deep+ The same behavior as for the deep but evaluates C/C++ Preprocessor conditional syntax.. LDF will not find “Bar” library because it doesn’t know about CPP file (Foo/foo. The mode can be changed using lib_ldf_mode option in Project Configuration File platformio.cpp • Library “Bar” with files: – Bar/bar.h > bar.global storage per all projects.h>) • #include <foo..cpp Case 1 • lib_ldf_mode = chain • Foo/foo. A difference between chain/chain+ and deep/deep+ modes.

cpp that depends on #include <bar.json library.h>. then LDF check compatibility of this library with real build environment. It allows developers to keep project in own structure and define: • location of source code • examples list • compatible frameworks and platforms • library dependencies • advanced build settings 300 Chapter 4. platformio.h" #endif #if PROJECT_VERSION < 10 // this include will be ignored because does not satisfy condition above #include "my_old.json). else. then it parses all sources from “Foo” library and finds Foo/foo.1 • #include <foo. Available compatibility modes: • 0 . module. Contents . Compatibility Mode Compatibility mode allows to control strictness of Library Dependency Finder. Release 3. C/C++ Preprocessor conditional syntax In spite of the fact that Library Dependency Finder is written in pure Python.h #ifdef PROJECT_VERSION // include common file for the project #include "my_common. For example.default .properties. it evaluates C/C++ Preprocessor condi- tional syntax (#ifdef. defined.json is a manifest file of development library. if. If library contains one of manifest file (library. LDF finds “Foo” library. Secondly.checks for the compatibility with framework from build environment • 2 . and elif) without calling gcc -E.json.3. library.does not check for compatibility (is not recommended) • 1 .h" #endif library.ini.ini [env:myenv] build_flags = -D MY_PROJECT_VERSION=13 mylib.h> is located in one of the project source files Firstly.checks for the compatibility with framework and platform from build environment. This mode can be changed using lib_compat_mode option in Project Configuration File platformio. it will parse all sources from “Bar” library and this operation continues until all dependencies will not be parsed.PlatformIO Documentation.

The allowable fields (names from pairs) are described below. library. • Should be slug style for simplicity.json should be represented in JSON-style via associative array (name/value pairs).3.15. PlatformIO Documentation. Length: 50 A name of the library. Contents • library.json manifest to extract source code from developer’s location and keeps a cleaned library in own Library Registry.json – name – description – keywords – authors – repository – version – license – downloadUrl – homepage – export * include * exclude – frameworks – platforms – dependencies – examples – build * flags * unflags * srcFilter * extraScript * libArchive * libLDFMode name Required | Type: String | Max.json 301 . • Must be unique.1 PlatformIO Library Crawler uses library. consistency and compatibility. An order doesn’t matter. Example: Arduino-SPI 4. Release 3. A data in library.

digits and dash (but not start/end with them). "email": "me@john-smith. Release 3. Describe the hardware devices (sensors.1 • Title Case. keywords Required | Type: String | Max. { "name": "Andrew Smith". Aa-z. "url": "http://www.PlatformIO Documentation. Contents . authors Required if repository field is not defined | Type: Object or Array An author contact information • name Full name (Required) • email • url An author’s contact page • maintainer Specify “maintainer” status Examples: "authors": { "name": "John Smith".com". can contain a-z. A list from the keywords can be specified with separator . description Required | Type: String | Max. • Consecutive dashes are not allowed..com".. Length: 255 Used for search by keyword. Length: 255 The field helps users to identify and search for your library with a brief description. The keyword should be lowercased.john-smith/contact" }. can contain digits and dashes (but not start/end with them).3. "email": "me@andrew-smith. "email": "me@john-smith.andrew-smith/contact". "authors": [ { "name": "John Smith". Helps to make your library easier to discover without people needing to know its name. "maintainer": true 302 Chapter 4. boards and etc. "url": "http://www.com".john-smith/contact" } . "url": "http://www.) which are suitable with it.

then default branch will be used. default branch will be used.com/foo/bar. The field consists of the next items: • type the only “git”.3. The repository is hosted on GitHub or Bitbucket. PlatformIO Documentation. digits. This field will be ignored if tag/release exists with the value of version. PlatformIO Library Registry Crawler will use the latest source code from repository and link it with specified version. dots or dash. Case 2 version and repository fields are defined and repository does not contain tag/release with value of version. library. If repository branch is not specified. Case 1 version and repository fields are defined. Length: 20 A version of the current library source code. Case 3 version field is not defined and repository field is defined. Can contain a-z. PlatformIO Library Registry Crawler will lookup for release tag named as value of version or with v prefix (you do not need to pass this v prefix to the version field). In other case. 4. Only GitHub-based repository is supported now. “hg” or “svn” are supported • url • branch if is not specified. Release 3.json 303 . PlatformIO Library Registry Crawler will use the VCS revision from the latest commit as “current version”. Also. repository Required if downloadUrl field is not defined | Type: Object The repository in which the source code can be found. "url": "https://github. We recommend to use version field and specify the real release version and make appropriate tag in the repository. users will receive updates for library with each new commit to repository.1 } ] Note: You can omit authors field and define repository field. Semantic Versioning IS RECOM- MENDED. the library will not be updated until you change the version. then default branch will be used. If repository branch is not specified. Example: "repository": { "type": "git". if you push new commits to repository and do not update version field. 13 (SVN) or first 10 chars of SHA digest e4564b7da4 (Git). In this case PlatformIO Library Registry Crawler will use information from GitHub API Users.15. For example.git" } version Required if repository field is not defined | Type: String | Max.

git" }.0" downloadUrl Required if repository field is not defined | Type: String It is the HTTP URL to the archived source code of library. homepage Optional | Type: String | Max.0".gz". Example with fixed release/tag on GitHub: "version": "1. Note: downloadUrl has higher priority than repository.1 Note: PlatformIO Library Registry Crawler updates library only if: • the version is changed • library.0. Release 3.PlatformIO Documentation.com/foo/bar/archive/v1. "url": "https://github.0.zip or .0" license Optional | Type: String A license of the library.0" See more library. Contents . "version": "1. "include": "bar-1.0.gz). Length: 255 Home page of library (if is different from repository url). 304 Chapter 4.0.tar. "downloadUrl": "https://github.json is modified Example: "repository": { "type": "git". It should end with the type of archive (.com/foo/bar.0. Ideally you should pick one that is OSI approved.json Examples. You can check the full list of SPDX license IDs. "license": "Apache-2.3.tar.

This option is useful if need to exclude extra data (test code. It allows to reduce size of the final archive. "*/*/*. then PlatformIO Library Registry Crawler will recognize it like a “relative path inside repository/archive to library source code”. Example: "export": { "include": [ "dir/*. 4.h" ] } Pattern Meaning Pattern Meaning * matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any character not in seq See more library. PDFs. then PlatformIO Library Registry Crawler firstly will apply exclude filter and then include only directories/files which match with include patterns.json Examples.15. library. PlatformIO Documentation. "dir/examples/*".json 305 . etc).3. Release 3. "include": "some/child/dir/LibrarySourceCodeHere" If include field is a type of Array. docs. See example below where the only source code from the relative directory LibrarySourceCodeHere will be included. exclude Optional | Type: String or Array | Glob Pattern Exclude the directories and files which match with exclude patterns.1 export Optional | Type: Object Explain PlatformIO Library Crawler which content from the repository/archive should be exported as “source code” of the library.[ch]pp". Possible options: • include • exclude include Optional | Type: String or Array | Glob Pattern If include field is a type of String. images.

Release 3. If the library is compatible with the all frameworks.any version with the same major and minor versions. 306 Chapter 4.any version greater than 0.1. They will be installed automatically with platformio lib install command.2 .x.0.1.any version greater than 0. <.1. If the library is compatible with the all platforms.0 and less than 0.0 .2 . then you can use * symbol: "platforms": "*" dependencies Optional | Type: Array or Object A list of dependent libraries.0 The rest possible values including VCS repository URLs are documented in platformio lib install command.1.1.1. >=.2 . and <= are also possible • >0. Contents . and an equal or greater patch version • >0. "authors": [ "Jhon Smith".2.<0.PlatformIO Documentation.2 .1 frameworks Optional | Type: String or Array A list with compatible frameworks.<minor>.2.x versions • ~0. then you can use * symbol: "frameworks": "*" platforms Optional | Type: String or Array A list with compatible platforms.!=0. The available platform types are defined in Development Platforms section.0.any compatible version (exact version for 0.<patch>) and can take any of the following forms: • 0. Use only this exact version • ^0.1.2. Example: "dependencies": [ { "name": "Library-Foo".3.an exact version number.0.3. The available framework types are defined in the Development Platforms section. not equal to 0.3. Allowed requirements for dependent library: • name | Type: String • version | Type: String • authors | Type: String or Array • frameworks | Type: String or Array • platforms | Type: String or Array The version supports Semantic Versioning ( <major>.

"version": "~1.3.1 "Andrew Smith" ] }. "[Ee]xamples/*/*.3" }. "[Ee]xamples/*.c".pde" ] build Optional | Type: Object Specify advanced settings. "version": "https://github.ino". "[Ee]xamples/*/*/*. "[Ee]xamples/*/*/*.pde".cpp".15. Release 3. "[Ee]xamples/*/*/*.ino".c".json Examples.cpp".3" } ] A short definition of dependencies is allowed: "dependencies": { "mylib": "1. { "name": "Library-Bar". "[Ee]xamples/*/*/*.3". "[Ee]xamples/*/*. "lib-from-repo": "githubuser/package" } See more library. { "name": "lib-from-repo". "[Ee]xamples/*. Possible options: • flags • unflags • srcFilter 4.ino".git#1. library.c". PlatformIO Documentation.com/user/package. "[Ee]xamples/*/*.cpp".2.json 307 . "[Ee]xamples/*/*. examples Optional | Type: String or Array | Glob Pattern A list of example patterns. This field is predefined with default value: "examples": [ "[Ee]xamples/*.2.2. options and flags for the build system.pde". "[Ee]xamples/*.

compilation. Contents . srcFilter Optional | Type: String or Array Specify which source files should be included/excluded from build process. More details extra_script. assembly and linking processes. Extra includes for C preprocessor 308 Chapter 4. See Dependency Finder Mode for details.1. More details build_unflags. Release 3. libArchive Optional | Type: Boolean Archive object files to Static Library. extraScript Optional | Type: String Launch extra script before build process. libLDFMode Optional | Type: Integer Specify Library Dependency Finder Mode. More details src_filter. Examples 1.PlatformIO Documentation. Custom macros/defines "build": { "flags": "-D MYLIB_REV=0. More details build_flags.1 • extraScript • libArchive • libLDFMode flags Optional | Type: String or Array Extra flags to control preprocessing. unflags Optional | Type: String or Array Remove base/initial flags which were set by development platform.2 -DRELEASE" } 2. This is default behavior of PlatformIO Build System ("libArchive": true).3.

you can post a request on PlatformIO community.Append( CPPDEFINES=["HELLO=WORLD".16.1 "build": { "flags": [ "-I inc". "-I inc/target_x13" ] } 3.3.py Import('env') # print env. Extend PlatformIO Build System with own extra script "build": { "extraScript": "generate_headers.py" } generate_headers. h) at the top level of the library "build": { "srcFilter": [ "+<*. "DEBUG"]. Contents • Creating Library 4. "+<*. Force to use C99 standard instead of C11 "build": { "unflags": "-std=gnu++11".c>". Creating Library 309 . In case a more urgent update is required. PlatformIO Documentation. Build source files (c.2.cpp>". Release 3. The only one require- ment is library’s manifest file . "inc/devices"] ) # some python code that generates header files "on-the-fly" Creating Library PlatformIO Library Manager doesn’t have any requirements to a library source code structure.Dump() env.h>" ] } 5. It can be located inside your library or in the another location where PlatformIO Library Registry Crawler will have HTTP access.3".library. cpp. "+<*. "TAG=1. CPPPATH=["inc". "flags": "-std=c99" } 4.json. Updates to existing libraries are done every 24 hours.

bus. temperature". ˓→DS1822. "url": "https://github. Example. 1-wire. Release 3. then you need to specify only these fields in the library. "url": "http://www. sensor. "keywords": "onewire. { "name": "Tim Newsome". "authors": [ { "name": "Miles Burton". 310 Chapter 4. "repository": { "type": "git". "email": "miles@mnetcs. you need to specify include option of export field to relative path to your library’s source code. DS1820)".com/milesburton/Arduino-Temperature-Control-Library.com". Contents . "description": "Arduino Library for Dallas Temperature ICs (DS18B20. like authors with an actual information from GitHub. You can hold a lot of libraries (split into separated folders) inside one of the repository/archive.3.git" }. "maintainer": true }. DS18S20. DallasTemperature: { "name": "DallasTemperature".1 – Source Code Location * At GitHub * Under VCS (SVN/GIT) * Self-hosted – Register – Examples Source Code Location There are a several ways how to share your library with the whole world (see examples). At GitHub Recommended If a library source code is located at GitHub.com".milesburton.json: • name • version (is not required.PlatformIO Documentation. but highly recommended for new Library Manager) • keywords • description • repository PlatformIO Library Registry Crawler will populate the rest fields. In this case.

"email": "rob. Release 3. "frameworks": "arduino" }.com/u/andrew.com/p/xbee-arduino/" }. "platforms": "atmelavr" } 4. "authors": "Paul Stoffregen". "url": "https://code. "dependencies": { "name": "OneWire". protocol. "frameworks": "arduino". "platforms": "*" } Under VCS (SVN/GIT) PlatformIO Library Registry Crawler can operate with a library source code that is under VCS control.rapp@gmail. "url": "https://code.json will look like: • name • keywords • description • authors • repository Example: { "name": "XBee". "authors": { "name": "Andrew Rapp". radio". "repository": { "type": "git".1 "email": "nuisance@casualhacker.net" }. { "name": "Guil Barros".16.com" }. "email": "gfbarros@bappos. "email": "andrew.7. "frameworks": "arduino".com" } ].rapp@gmail.3.com/" }. "description": "Arduino library for communicating with XBees in API mode".tillaart@gmail. The list of required fields in the library.7". Creating Library 311 .google.google. "version": "3. { "name": "Rob Tillaart".com". PlatformIO Documentation. "keywords": "xbee.

PlatformIO Documentation, Release 3.3.1

Self-hosted

You can manually archive (Zip, Tar.Gz) your library source code and host it in the Internet. Then you should specify
the additional fields, like version and downloadUrl. The final list of required fields in the library.json will look like:
• name
• keywords
• description
• authors
• version
• downloadUrl

{
"name": "OneWire",
"keywords": "onewire, 1-wire, bus, sensor, temperature, ibutton",
"description": "Control devices (from Dallas Semiconductor) that use the One Wire
˓→protocol (DS18S20, DS18B20, DS2408 and etc)",

"authors":
{
"name": "Paul Stoffregen",
"url": "http://www.pjrc.com/teensy/td_libs_OneWire.html"
},
"version": "2.2",
"downloadUrl": "http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip",
"export": {
"include": "OneWire"
},
"frameworks": "arduino",
"platforms": "atmelavr"
}

Register

The registration requirements:
• A library must adhere to the library.json specification.
• There must be public HTTP access to the library library.json file.
Now, you can register your library and allow others to install it.

Examples

Command:

$ platformio lib register http://my.example.com/library.json

• GitHub + fixed release
• Dependencies by author and framework
• Multiple libraries in the one repository

312 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

Cloud & Standalone IDE

Cloud IDE

Cloud9

Cloud9 combines a powerful online code editor with a full Ubuntu workspace in the cloud. Workspaces are powered
by Docker Ubuntu containers that give you full freedom over your environment, including sudo rights. Do a git push,
compile SASS, see server output, and Run apps easily with the built-in Terminal and Runners.

Tip: QUESTIONS? Chat with us! (chat button is located in the bottom right corner)

Contents

• Cloud9
– Demo
– Integration
– Quick Start
– PlatformIO Build System
– Remote Device Manager
– Remote Firmware Uploading
– Remote Serial Port Monitor
– Multi-Project workspace

Note:
1. Please make sure to read PIO Remote™ guide first.
2. You need PIO Account if you don’t have it. Registration is FREE.
3. You should have a running PIO Remote™ Agent on a remote machine where hardware devices are connected
physically or accessible for the remote operations. See PIO Remote Quick Start for details.

4.17. Cloud & Standalone IDE 313

PlatformIO Documentation, Release 3.3.1

Demo

Integration

1. Sign in to Cloud9. A registration is FREE and gives you for FREE 1 private workspace (where you can host
multiple PlatformIO Projects) and unlimited public workspaces.
2. Create a new workspace using Blank template

314 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

3. Install PlatformIO Core using Cloud IDE Terminal. Paste a next command

sudo python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/
˓→develop/scripts/get-platformio.py)"

4.17. Cloud & Standalone IDE 315

PlatformIO Documentation, Release 3.3.1

4. Log in to PIO Account using platformio account login command.

Quick Start

Let’s create our first PlatformIO-based Cloud9 Project
1. Initialize new PlatformIO-based Project. Run a next command in Cloud IDE Terminal:
platformio init --board <ID>

# initialize project for Arduino Uno
platformio init --board uno

To get board ID please use platformio boards command or Embedded Boards Explorer.
2. Create new source file named main.cpp in src folder using Project Tree (left side). Please make right click
on src folder, then “New File” and insert a next content:
#include <Arduino.h>

int i = 0;

void setup() {
Serial.begin(9600);
Serial.println("Hello Cloud9!");
}

void loop() {

316 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

/* serial echo */
while (Serial.available()) {
Serial.write(Serial.read());
}

i++;
Serial.println(i);
delay(100);
}

3. If you prefer to work with PlatformIO Core CLI, then you can process project using Cloud IDE Terminal and
the next commands:
• platformio run - build project locally (using Cloud IDE’s virtual machine)
• pio run -t clean - clean project
• pio remote run -t upload - upload firmware (program) to a remote device
• platformio remote device list - list available remote devices
• platformio remote device monitor - Remote Serial Port Monitor

4.17. Cloud & Standalone IDE 317

PlatformIO Documentation, Release 3.3.1

If you are interested in better integration with Cloud9 and GUI, please read guide below where we will explain
how to create custom Build System for PlatformIO and own Runners.

PlatformIO Build System

Cloud9 allows to create own build system and use hotkey or command (Menu: Run > Build) to build a project.
Let’s create PlatformIO Build System that will be used for C/C++/H/INO/PDE files by default. Please click on Menu:
Run > Build System > New Build System and replace all content with the next:

{
"cmd" : ["pio", "run", "-d", "$file"],
"info" : "Building $project_path/$file_name",
"selector": "^.*\\.(cpp|c|h|hpp|S|ini|ino|pde)$"
}

Save new Build System and give a name PIOBuilder. Now, you can select it as default Build System using Menu:
Run > Build System > PIOBuilder.

Remote Device Manager

Remote Device Manager works in pair with PIO Remote™. You can list remote devices that are connected to host
machine where PIO Remote™ Agent is started or are visible for it.
Let’s create New Run Configuration (shortcut) that will be used for Remote Device Manager. Please click on Menu:
Run > Run Configurations > Manage..., then “Add New Config” and specify the next values:
• First Blank Input: a name of runner. Please set it to “PIO: Remote Devices”
• Command: set to pio remote device list
• Runner: set to “Shell command”

318 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

Remote Firmware Uploading

Remote Firmware Uploading works in pair with PIO Remote™. You can deploy firmware (program) to any devices
which are visible for PIO Remote™ Agent.
Let’s create New Run Configuration (shortcut) that will be used for Remote Firmware Uploading. Please click on
Menu: Run > Run Configurations > Manage..., then “Add New Config” and specify the next values:
• First Blank Input: a name of runner. Please set it to “PIO: Remote Upload”
• Command: set to pio remote run -t upload
• Runner: set to “Shell command”

4.17. Cloud & Standalone IDE 319

PlatformIO Documentation. Contents .3. Release 3.1 320 Chapter 4.

.ini | .17.main. then “Add New Config” and specify the next values: • First Blank Input: a name of runner. You can read or send data to any device that is connected to host machine where PIO Remote™ Agent is started.txt | . Please set it to “PIO: Remote Serial Monitor” • Command: set to pio remote device monitor • Runner: set to “Shell command” Multi-Project workspace You can have multiple PlatformIO-based Projects in the same workspace.readme. Please click on Menu: Run > Run Configurations > Manage. Let’s create New Run Configuration (shortcut) that will be used for Remote Serial Port Monitor. Cloud & Standalone IDE 321 .1 Remote Serial Port Monitor Remote Serial Port Monitor works in pair with PIO Remote™.src | . PlatformIO Documentation. To list active agents please use this command platformio remote agent list.platformio. Release 3.lib | | .project-A | .. We recommend a next folders structure: .3.ino 4..

ini .h In this case. making development more productive and fun.txt . Registration is FREE. Contents . you need to create 2 “New Run Configuration” for Remote Firmware Uploading with using the next commands: • pio remote run --project-dir project-A -t upload for Project-A • pio remote run -d project-B -t upload for Project-B See documentation for platformio remote run --project-dir option. All the features you will need for any coding task are built into Codeanywhere.PlatformIO Documentation. 3. Please make sure to read PIO Remote™ guide first.lib | . You should have a running PIO Remote™ Agent on a remote machine where hardware devices are connected physically or accessible for the remote operations. Tip: QUESTIONS? Chat with us! (chat button is located in the bottom right corner) Contents • Codeanywhere – Demo – Integration – Quick Start – Run Button – Remote Device Manager – Remote Firmware Uploading – Remote Serial Port Monitor – Multi-Project workspace Note: 1. See PIO Remote Quick Start for details. Codeanywhere Codeanywhere is a Cross Platform Cloud IDE and it has all the features of Desktop IDE but with additional features only a cloud application can give you! Codeanywhere is very flexible and you can set up your workflow any way you want it.1 . You need PIO Account if you don’t have it.readme. The elegant development environment will let you focus on building great applications quicker.cpp . 322 Chapter 4. Release 3.main.src .platformio.3. 2.project-B .main.

4. PlatformIO Documentation.3. In Connection Wizard create new Container: • Name set to “PlatformIO” • Stack search for Python stack (not Python3) that is based on Ubuntu OS.1 Demo Integration 1. • Click on “Create” button. Open Dashboard Projects 3. 2.17. Release 3. A registration is FREE and gives you unlimited private projects within the one Container. Sign in to Codeanywhere. Create a new Project and open it. Cloud & Standalone IDE 323 .

Release 3.PlatformIO Documentation.githubusercontent. Contents .1 4.com/platformio/platformio/ ˓→develop/scripts/get-platformio. Open SSH-Terminal tab (right click on Container (PlatformIO) > SSH Terminal) and install PlatformIO Core using a next command sudo python -c "$(curl -fsSL https://raw.3.py)" 324 Chapter 4.

2. Release 3. Log in to PIO Account using platformio account login command. please refresh Project Tree using right-click on Container Name (PlatformIO) > Refresh. 4.3. Run a next command in a Cloud IDE SSH Terminal: platformio init --board <ID> # initialize project for Arduino Uno platformio init --board uno To get board ID please use platformio boards command or Embedded Boards Explorer. Cloud & Standalone IDE 325 . Please make right click on src folder. Quick Start Let’s create our first PlatformIO-based Codeanywhere Project 1. PlatformIO Documentation. Create new source file named main.begin(9600). If you do not see created project. Initialize new PlatformIO-based Project.h> int i = 0.cpp in src folder using Project Tree (left side).1 5. then “Create File” and insert a next content: #include <Arduino. void setup() { Serial.17.

Contents .write(Serial. } 3.available()) { Serial. Release 3. If you prefer to work with PlatformIO Core CLI. } void loop() { /* serial echo */ while (Serial.println("Hello Codeanywhere!").build project locally (using Cloud IDE’s virtual machine) 326 Chapter 4. then you can process project using Cloud IDE SSH Terminal and the next commands: • platformio run .read()).1 Serial.PlatformIO Documentation. Serial.println(i). delay(100).3. } i++.

Now.clean project • pio remote run -t upload . PlatformIO Documentation. We recommend to hide “Hidden Files”. Cloud & Standalone IDE 327 .1 • pio run -t clean . Let’s add “PlatformIO Build Project” command: 1. You can assign any PlatformIO command to this button. Open “Project Config” via right click on Container Name (PlatformIO) > Config 2.3.upload firmware (program) to a remote device • platformio remote device list . Save configuration file. try to click on “Run Project” button.list available remote devices • platformio remote device monitor .17. Set commands field to "commands": [ "pio run" ] 3. You can do that via Cloud IDE Menu: View > Show Hidden Files. Run Button Codeanywhere provides a quick “Run Project” button where you can specify own command. 4. Release 3.Remote Serial Port Monitor 4.

1 328 Chapter 4.3. Release 3.PlatformIO Documentation. Contents .

17. Open Cloud IDE SSH Terminal 2. You can list remote devices that are connected to host machine where PIO Remote™ Agent is started or are visible for it. Paste this command pio remote device list Remote Firmware Uploading Remote Firmware Uploading works in pair with PIO Remote™. PlatformIO Documentation. 1.1 Remote Device Manager Remote Device Manager works in pair with PIO Remote™. Cloud & Standalone IDE 329 . You can deploy firmware to any devices which are visible for PIO Remote™ Agent. Open Cloud IDE SSH Terminal 2. Paste this command pio remote run -t upload 4.3. Release 3. 1.

Open Cloud IDE SSH Terminal 2. You can read or send data to any device that is connected to host machine where PIO Remote™ Agent is started.1 Remote Serial Port Monitor Remote Serial Port Monitor works in pair with PIO Remote™. Release 3. 1. Paste this command pio remote device monitor 330 Chapter 4.3. Contents . To list active agents please use this command platformio remote agent list.PlatformIO Documentation.

txt .cpp . We recommend a next folders structure: .main. you need to use -d. 4.readme. Release 3.17.main. Cloud & Standalone IDE 331 .platformio.ini .project-A | .lib | | .readme.main.ini | .1 Multi-Project workspace You can have multiple PlatformIO-based Projects in the same workspace.src | .project-B . --project-dir option for platformio run or platformio remote run commands: • pio remote run --project-dir project-A -t upload build Project-A • pio remote run --project-dir project-A -t upload remote firmware uploading using Project-A • pio remote run -d project-B -t upload remote firmware (program) uploading using Project-B See documentation for platformio remote run --project-dir option.txt | .h In this case.lib | .src .3.platformio. PlatformIO Documentation.ino .

Contents . frameworks or tools. Please make sure to read PIO Remote™ guide first. 2.3. The workspace server comes with a RESTful webservice and provides high flexibility. Registration is FREE.1 Eclipse Che Codeanywhere is an open-source Java based developer workspace server and cloud integrated development environ- ment (IDE) which provides a remote development platform for multi-user purpose.PlatformIO Documentation. Release 3. It also contains a SDK which can be used to create plug-ins for languages. You need PIO Account if you don’t have it. You should have a running PIO Remote™ Agent on a remote machine where hardware devices are connected physically or accessible for the remote operations. See PIO Remote Quick Start for details. 3. 332 Chapter 4. Tip: QUESTIONS? Chat with us! (chat button is located in the bottom right corner) Contents • Eclipse Che – Demo – Integration – Quick Start – Multi-Project workspace Note: 1.

Sign in to Codenvy (based on Eclipse Che). A registration is FREE and gives you unlimited private projects.3. PlatformIO Documentation. Release 3.1 Demo Integration 1. Open Workspaces tab 4. 2. Cloud & Standalone IDE 333 .17.

Set “Name” to “Arduino Blink” and press “Create”. 4. please log in to PIO Account using platformio account login command. Release 3. • Name set to “PlatformIO” • Stack search for PLATFORMIO • Click on “Create” button.PlatformIO Documentation. Contents . then “Open”. then switch to “Runtime” tab.1 3. Click on “Add Workspace”. Quick Start Let’s create our first PlatformIO-based Codenvy Project 1.3. Click on Menu: Workspace > Create New Project and select platformio-arduino-blink sample. 334 Chapter 4. Using opened Terminal.

17. Cloud & Standalone IDE 335 .1 2. Now you can use dropdown Commands menu and process project with “run” command 4. PlatformIO Documentation.3. Release 3.

1 3. Release 3.clean project 336 Chapter 4. then you can process project using Cloud IDE Terminal and the next commands: • platformio run .build project locally (using Cloud IDE’s virtual machine) • pio run -t clean . If you prefer to work with PlatformIO Core CLI. Contents .PlatformIO Documentation.3.

Cloud & Standalone IDE 337 . Standalone IDE CLion The CLion is a cross-platform C/C++ IDE for Linux.ini | .src .platformio.src | .lib | .1 • pio remote run -t upload .readme.txt .17. --project-dir option for platformio run or platformio remote run commands: • pio remote run --project-dir project-A -t upload build Project-A • pio remote run --project-dir project-A -t upload remote firmware uploading using Project-A • pio remote run -d project-B -t upload remote firmware (program) uploading using Project-B See documentation for platformio remote run --project-dir option.project-B . you need to use -d. code quality assurance.platformio. OS X.lib | | .ino .project-A | . automated refactorings.upload firmware (program) to a remote device • platformio remote device list .ini . The initial version will support the GCC and Clang compilers and GDB debugger.main.cpp . We recommend a next folders structure: . PlatformIO Documentation. integrated version control systems. project manager.readme. Release 3.Remote Serial Port Monitor Multi-Project workspace You can have multiple PlatformIO-based Projects in the same workspace. Refer to the CLion Documentation page for more detailed information.list available remote devices • platformio remote device monitor .h In this case. 4.main.txt | . Clion includes such features as a smart editor.3.main. and Windows integrated with the CMake build system.

Release 3. Contents .PlatformIO Documentation.3.ino files are not supported · Convert Arduino file to C++ manually – Articles / Manuals – Examples * “Blink” Project 338 Chapter 4.1 Contents • CLion – Integration – Known issues * Arduino .

Rebuild C/C++ Index for the Project. *.17. Allows to fix code completion and code linting issues.Build project without auto-uploading • PLATFORMIO_UPLOAD .ino and . generate project for Arduino UNO platformio init --ide clion --board uno Then: 1.c.hpp) to src directory 2. Open source file from src directory 4. Warning: The libraries which are added. see Upload using Pro- grammer • PLATFORMIO_UPLOADFS .cpp.ini and automatically rebuild C/C++ Project Index. PlatformIO Documentation. To fix it please run PLATFORMIO_REBUILD_PROJECT_INDEX target. installed or used in the project after generating process will not be reflected in IDE.1 Integration Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide clion --board <ID> # For example. Cloud & Standalone IDE 339 .Unit Testing • PLATFORMIO_PROGRAM . see marks on the screenshot below): • PLATFORMIO_BUILD . *. Build project (DO NOT RUN): Menu: Run > Build. *.pde) because they are not valid C/C++ based source files: 4. Import this project via Menu: File > Import Project and specify root directory where is located Project Configuration File platformio.ino files are not supported and how to resolve it.Build and upload (if no errors) • PLATFORMIO_CLEAN .Clean compiled objects • PLATFORMIO_TEST .Upload files to file system SPIFFS. Warning: See know issue: Arduino . There are 6 predefined targets for building (NOT FOR RUNNING. You need to install extra plugin named File Watchers via “Clion: Preferences > Plugins” to enable this feature.Build and upload using external programmer (if no errors). Release 3.h. see Uploading files to file system SPIFFS • PLATFORMIO_UPDATE .ino files are not supported CLion uses “CMake” tool for code completion and code linting. Place source files (*.Update installed platforms and libraries via platformio update • PLATFORMIO_REBUILD_PROJECT_INDEX . it doesn’t support Arduino files (*. As result. PlatformIO Project Generator created “File Watchers” configuration to monitor changes in platformio.3. Known issues Arduino .ini 3.

Using PlatformIO to get started with Arduino in CLion IDE • Nov 09. Convert Arduino file to C++ manually For example. Declare each custom function (excluding built-in. Release 3.JetBrains CLion Blog .Michał Seroczyński . Contents . Add #include <Arduino.h> 2.ino file: void function setup () { someFunction(13). } void function loop() { delay(1000). Examples 340 Chapter 4. void function setup () { someFunction(13). Missing includes such as #include <Arduino. The final Demo. we have the next Demo.1 1. 2015 .ÁLvaro García Gómez . } void someFunction(int num) { } Articles / Manuals • Dec 01. } void function loop() { delay(1000).PlatformIO Documentation. 2015 . such as setup and loop) before it will be called. } void someFunction(int num) { } Let’s convert it to Demo.C++ Annotated: Fall 2015.h> void someFunction(int num). Spanish) See more Articles about us. Function declarations are omitted.3.Programar con Arduino “The good way” (Programming with Arduino “The good way”.cpp: #include <Arduino.cpp: 1.h> at the top of the source file 2. Arduino Support in CLion using PlatformIO • Nov 22. 2015 .

Release 3.1 “Blink” Project Source code of CLion “Blink” Project.17. Cloud & Standalone IDE 341 . open-source cross-platform IDE that supports multiple compilers including GCC. It is developed in C++ using wxWidgets as the GUI toolkit.3. and Fortran. PlatformIO Documentation. Clang and Visual C++. its capabilities and features are defined by the provided plugins. Currently. C++. CodeBlocks IDE can be downloaded from here. Using a plugin architecture. Code::Blocks is oriented towards C. Contents • CodeBlocks – Integration Integration Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide codeblocks --board <ID> 4. CodeBlocks Code::Blocks is a free.

342 Chapter 4. registers. Release 3. etc. including memory. . macro definition browser. generate project for Arduino UNO platformio init --ide codeblocks --board uno Then: 1.PlatformIO Documentation. visual debugging tools. various source knowledge tools. *. code editor with syntax highlighting. Features include: support for project creation and managed build for various toolchains.. standard make build. Contents . include browser. source code refactoring and code generation. call graph. such as type hierarchy. 3. Add new files to src directory (*.. 2. *.ino.cpp. source navigation.3. Upload firmware using Menu: Build > Run Warning: The libraries which are added. folding and hyperlink navigation.) via Menu: File > New > File. Eclipse The Eclipse CDT (C/C++ Development Tooling) Project provides a fully functional C and C++ Integrated Develop- ment Environment based on the Eclipse platform.c. installed or used in the project after generating process wont be reflected in IDE.1 # For example. Open this project via Menu: File > Open. Build project using Menu: Build > Build 4.. and disassembly viewers. To fix it you need to reinitialize project using platformio init (repeat it).

Contents • Eclipse – Integration 4. Release 3. PlatformIO Documentation.17. Cloud & Standalone IDE 343 .1 Refer to the CDT Documentation page for more detailed information.3.

• PlatformIO: Test . right click on the project Project > Refresh (F5) or restart Eclipse IDE. Import this project via Menu: File > Import.) 3..cpp. Allows to fix code completion and code linting issues. Refresh Project. If you have some problems with unresolved includes. To fix it please run PlatformIO: Rebuild C/C++ Project Index target and right click on the project and Project > Refresh (F5). Rebuild Eclipse Project Index: Menu: Project > C/C++ Index > Rebuild 3. then 1.Build project without auto-uploading • PlatformIO: Clean . generate project for Arduino UNO platformio init --ide eclipse --board uno Then: 1.Rebuild C/C++ Index for the Project.. 344 Chapter 4. Warning: The libraries which are added. Rebuild PlatformIO Project Index: PlatformIO: Rebuild C/C++ Project Index target 2.ino.PlatformIO Documentation.1 – Live Integration – Articles / Manuals – Examples * “Blink” Project Integration Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide eclipse --board <ID> # For example. > General > Existing Projects into Workspace > Next and specify root directory where is located Project Configuration File platformio. installed or used in the project after generating process wont be reflected in IDE.Build and upload (if no errors) • PlatformIO: Upload using Programmer see Upload using Programmer • PlatformIO: Upload SPIFFS image see Uploading files to file system SPIFFS • PlatformIO: Update platforms and libraries . Contents .c. defines.Clean compiled objects.. etc.Update installed platforms and libraries via platformio update • PlatformIO: Rebuild C/C++ Project Index . etc. Open source file from src directory (*.3. *.Unit Testing • PlatformIO: Upload . Release 3. *. Build project using Menu: Project > Build Project or pre-configured Make Targets (see screen- shot below): • PlatformIO: Build .ini 2.

2015 . otherwise the CDT Cross GCC Built-in Compiler Settings provider will not be available (check the Providers tab in Project > Properties > C/C++ General > Preprocessor Include Paths. for a marked entry named CDT Cross GCC Built-in Compiler Settings).Learning Arduino GitHub Repository • June 20.1 Warning: The C/C++ GCC Cross Compiler Support package must be installed in Eclipse. Release 3. Macros etc. Ph.Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO See a full list with Articles about us. Examples 4. 2016 .D.17. toolchain related includes cannot be resolved.Thomas P.D. PlatformIO Documentation.PlatformIO: a cross-platform IoT solution to build them all! • Sep 01.Ivan Kravets. Ph. Ph. Cloud & Standalone IDE 345 . / Eclipse Virtual IoT Meetup . 2015 .Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation • Jul 11. .D.Ivan Kravets. If this provider is not available. 2014 .TrojanC . . Weldon. Live Integration Eclipse Virtual IoT Meetup: PlatformIO: a cross-platform IoT solution to build them all! Articles / Manuals • May 05.3.

Contents . Emacs GNU Emacs is an extensible.3.PlatformIO Documentation. Refer to the Emacs Documentation page for more detailed information. It can be installed from the MELPA repository using M-x package-install. customizable text editor . Contents • Emacs – Integration * PlatformIO-Mode * Project Generator Integration PlatformIO-Mode An Emacs minor mode has been written to facilitate building and uploading from within Emacs.and more. See the MELPA Getting Started page for more infor- mation. At its core is an interpreter for Emacs Lisp.1 “Blink” Project Source code of Eclipse “Blink” Project. Setup instructions and an example config can be found at the Github page. 346 Chapter 4. a dialect of the Lisp programming language with extensions to support text editing. Release 3.

It provides out-of-the-box code analyzers and editors for working with the latest Java 8 technologies–Java SE 8. The IDE also has a range of new tools for HTML5/JavaScript. Java SE Embedded 8. PlatformIO Documentation. KnockoutJS. (C-c i c) • platformio_upload .Build and upload using external programmer (if no errors. 4. installed or used in the project after generating process wont be reflected in IDE.Build project without auto-uploading.3. (C-c i s) • platformio_update . Cloud & Standalone IDE 347 . (C-c i p) • platformio_spiffs_upload .Upload files to file system SPIFFS (see Uploading files to file system SPIFFS). (C-c i b) • platformio_clean . in particular for Node.Build and upload (if no errors). install the C/C++ development plugins).Clean compiled objects.17. • platformio_build . (C-c i u) • platformio_programmer_upload . (C-c i d) Warning: The libraries which are added. enhancements that further improve its support for Maven and Java EE with PrimeFaces. NetBeans IDE can be downloaded from here.1 Code completion can optionally be provided by installing irony-mode Project Generator Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide emacs --board <ID> There are 6 predefined targets for building. and Java ME Embedded 8. and AngularJS. Release 3. see Up- load using Programmer). Just make sure you download the C/C++ version (or if you already use NetBeans. NetBeans NetBeans is a Java-based integrated development environment (IDE). To fix it you need to reinitialize project using platformio init (repeat it).js. and improvements to PHP and C/C++ support.Update installed platforms and libraries.

Release 3. Contents .PlatformIO Documentation.3.1 Contents • NetBeans – Integration – Articles / Manuals 348 Chapter 4.

installed or used in the project after generating process wont be reflected in IDE. 4.) via right-click on src folder in the “Projects” pane 3. PlatformIO Documentation. *.. Open this project via Menu: File > Open Project. Upload firmware using Menu: Run > Run Project Warning: The libraries which are added. 2016 . project manager. The editor includes such fea- tures as syntax highlighting for various languages. Add new files to src directory (*. Cloud & Standalone IDE 349 .1 Integration Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide netbeans --board <ID> # For example.ino.3. To fix it you need to reinitialize project using platformio init (repeat it).How to Integrate PlatformIO with Netbeans See the full list with Articles about us. Release 3. etc. *.c.17. Qt Creator The Qt Creator is an open source cross-platform integrated development environment. 2. integrated version control systems.. Articles / Manuals • Feb 22.Grzegorz Hołdys . rapid code navigation tools and code autocompletion.cpp. Build project using Menu: Run > Build Project 4. generate project for Arduino UNO platformio init --ide netbeans --board uno Then: 1.

Contents .PlatformIO Documentation. See FAQ: Program “platformio” not found in PATH. Contents • Qt Creator – Integration * Project Generator * Manual Integration · Setup New Project · First program in Qt Creator · Conclusion – Examples * “Blink” Project Integration Note: Please verify that folder where is located platformio program is added to PATH (wiki) environment variable. Release 3. 350 Chapter 4.1 Refer to the Qt-creator Manual page for more detailed information.3.

ini 2.1 Project Generator Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide qtcreator --board <ID> # For example. Import project via File > Open File or Project and select platformio. Remove all items from Clean Steps. Select default desktop kit and click on Configure Project (Projects mode. *. Release 3. Switch to Edit mode (left panel) and open source file from src directory (*. Set General > Build directory to the project directory where is located Project Configuration File platformio.pro from the folder where is located Project Configuration File platformio. left panel) 3. click on Build Steps > Add Build Step > Custom Process Step and set: • Command: platformio • Arguments: -f -c qtcreator run • Working directory: %{buildDir} 5. Build project: Menu: Build > Build All.c. PlatformIO Documentation. Mac echo $PATH # Windows echo %PATH% 7.cpp.17. Cloud & Standalone IDE 351 . Remove all items from Build Steps. etc. click on Clean Steps > Add Clean Step > Custom Process Step and set: • Command: platformio • Arguments: -f -c qtcreator run --target clean • Working directory: %{buildDir} 6. generate project for Arduino UNO platformio init --ide qtcreator --board uno Then: 1. 4.ino. Update PATH in Build Environment > PATH > EDIT with the result of this command (paste in Ter- minal): # Linux.ini 4.) 8.3. *.

1 Warning: The libraries which are added. Manual Integration Setup New Project First of all. then select project with Empty Qt 352 Chapter 4. Release 3. To fix it you need to reinitialize project using platformio init (repeat it). Contents .3. let’s create new project from Qt Creator Start Page: New Project or us- ing Menu: File > New File or Project. installed or used in the project after generating process wont be reflected in IDE.PlatformIO Documentation.

Cloud & Standalone IDE 353 . Create in.3.17.1 Project type (Other Project > Empty Qt Project). Release 3. On the next steps select any available kit and click Finish button. fill Name. 4. PlatformIO Documentation.

3. Contents .PlatformIO Documentation.1 Secondly. Release 3. we need to delete default build and clean steps and configure project with PlatformIO Build System (click on Projects label on left menu or Ctrl+5 shortcut): 354 Chapter 4.

17. change project file by adding path to directories with header files. PlatformIO Documentation.3.1 Thirdly. Cloud & Standalone IDE 355 . Please edit project file to match the following contents: win32 { HOMEDIR += $$(USERPROFILE) } else { HOMEDIR += $$(HOME) } INCLUDEPATH += "$${HOMEDIR}/.platformio/packages/toolchain-atmelavr/avr/include" 4.platformio/packages/framework-arduinoavr/cores/arduino" INCLUDEPATH += "$${HOMEDIR}/. Release 3.

Contents . In the console.c must be located in the src directory. The main “C” source file named main.c using Menu: New File or Project > General > Text File: 356 Chapter 4. Let’s create new text file named main.3. Release 3.PlatformIO Documentation.1 First program in Qt Creator Simple “Blink” project will consist from two files: 1. navigate to the root of your project folder and initialize platformio project with platformio init 2.

// set the LED off delay(1000). 4.3. // wait for a second } 3.17.c. HIGH). // set the LED on delay(1000). Cloud & Standalone IDE 357 . LOW). PlatformIO Documentation. Release 3.1 Copy the source code which is described below to file main.h" #define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on ˓→the board itself void setup() { pinMode(WLED. // set pin as output } void loop() { digitalWrite(WLED. Locate the project configuration file named platformio. OUTPUT).ini at the root of the project directory and open it. #include "Arduino. // wait for a second digitalWrite(WLED.

Upload options: custom port. PlatformIO Project Configuration File . . extra library storages . http://docs. Release 3. extra scripting .1 Edit the content to match the code described below. . source filter. . Contents . Please visit documentation for the other options and examples .PlatformIO Documentation. speed and extra flags .3. Examples 358 Chapter 4.org/en/stable/projectconf.html [env:arduino_uno] platform = atmelavr framework = arduino board = uno Conclusion Taking everything into account.platformio. Library options: dependencies. Build options: build flags. we can build project with shortcut Ctrl+Shift+B or using Menu: Build > Build All.

Project Generator Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide sublimetext --board <ID> # For example. Its functionality is extendable with plugins.3. Sublime Text The Sublime Text is a cross-platform text and source code editor.17. Refer to the Sublime Text Documentation page for more detailed information. Release 3. PlatformIO Documentation.1 “Blink” Project Source code of Qt Creator “Blink” Project. Cloud & Standalone IDE 359 . Please visit official Deviot page for the further installation steps and documentation. generate project for Arduino UNO platformio init --ide sublimetext --board uno 4. with a Python application programming interface (API). Most of the extending packages have free-software licenses and are community-built and maintained. It is based on PlatformIO Core and will automatically install it for you. Contents • Sublime Text – Integration * Deviot Plugin * Project Generator * Manual Integration · Initial configuration · Command Hotkeys · First program in Sublime Text · Conclusion – Examples * “Blink” Project Integration Deviot Plugin We are glad to inform you about awesome Sublime Text plugin for IoT development named Deviot. Sublime Text lacks graphical setting dialogues and is entirely configured by editing text files. Sublime Text is proprietary software.

"sublimetext". "run". "--target". sublime-project from the folder where is located Project Configuration File platformio. "sublimetext". etc. "variants": [ { "name": "Clean". and select platformio.Build project without auto-uploading • PlatformIO . "sublimetext".ini 2. "cmd": ["platformio".Test . Manual Integration Note: Please verify that folder where is located platformio program is added to PATH (wiki) environment variable. "-c". Contents . "-f". Release 3. "--target". Initial configuration First of all. we need to create “New Build System” with name “PlatformIO” from Menu: Tools > Build System > New Build System and fill it like described below: { "cmd": ["platformio". "run"]. "-f". "run".1 Then: 1.Upload using Programmer see Upload using Programmer • PlatformIO . "-c".Update installed platforms and libraries via platformio update..3.. Open source file from src directory (*.Update platforms and libraries . "cmd": ["platformio". "clean ˓→"] }. "-c".) 4.. "working_dir": "${project_path:${folder}}". Select PlatformIO as build system: Menu: Tools > Build System > PlatformIO 3. { "name": "Upload". Also. ˓→"upload"] } ] } 360 Chapter 4.Clean .. See FAQ: Program “platformio” not found in PATH. Build project: Menu: Tools > Build.ino. *.Upload . "-f".PlatformIO Documentation. (ST3) • PlatformIO .Clean compiled objects. *.Build and upload (if no errors) • PlatformIO .Upload SPIFFS image see Uploading files to file system SPIFFS • PlatformIO . • PlatformIO . Import project via Menu: Project > Open Project. you can access to all pre-configured targets via Menu: Tools > Builds With.cpp.c.Build .Unit Testing • PlatformIO .

Cloud & Standalone IDE 361 . 4. Release 3. we can use the necessary commands from Menu: Tools > Command Palette or with Ctrl+Shift+P (Windows/Linux) Cmd+Shift+P (Mac) shortcut. we need to select “PlatformIO” Build System from a list: After that.17.1 Secondly.3. PlatformIO Documentation.

Contents .1 Command Hotkeys Sublime Text allows to bind own hotkey per command.PlatformIO Documentation. Release 3.User: 362 Chapter 4.3. Let’s setup them for PlatformIO commands using shortcut Menu: Preferences > Key-Bindings .

OUTPUT). Let’s create new file named main. PlatformIO Documentation. "args": {"variant": "Clean"} }.c using Menu: File > New File or shortcut Ctrl+N (Windows/Linux) Cmd+N (Mac) with the next contents: #include "Arduino.17. "command": "build". "command": "build".3.h" #define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on ˓→the board itself void setup() { pinMode(WLED. Release 3. Cloud & Standalone IDE 363 . "args": {"variant": "Upload"} } ] First program in Sublime Text Simple “Blink” project will consist from two files: 1.c must be located in the src directory. { "keys": ["f12"]. Main “C” source file named main. the final code will look like: [ { "keys": ["f11"]. // set pin as output } 4.1 We are going to use these shortcuts: • F11 for clean project • F12 for upload firmware to target device In this case.

http://docs. Examples “Blink” Project Source code of Sublime Text “Blink” Project.platformio.ini must be located in the project root directory. VIM VIM is an open-source. source filter.1 void loop() { digitalWrite(WLED. Release 3. Build options: build flags. Please visit documentation for the other options and examples . HIGH). powerful and configurable text editor.3. . speed and extra flags . PlatformIO Project Configuration File . // wait for a second } 2. . extra scripting . . clean project with shortcut F11 and upload firmware to target with shortcut F12.html [env:arduino_uno] platform = atmelavr framework = arduino board = uno Conclusion Taking everything into account. we can open project directory in Sublime Text using Menu: File > Open Folder and build it with shortcut Ctrl+B (Windows/Linux) or Cmd+B (Mac). // wait for a second digitalWrite(WLED. extra library storages . Library options: dependencies. Project Configuration File named platformio. Copy the source code which is described below to it. Contents . 364 Chapter 4.org/en/stable/projectconf. // set the LED off delay(1000).PlatformIO Documentation. LOW). // set the LED on delay(1000). Upload options: custom port. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface.

Cloud & Standalone IDE 365 . 4. See FAQ: Program “platformio” not found in PATH.1 Contents • VIM – Integration * “Neomake-PlatformIO” Plugin · Manual – Articles / Manuals Integration Note: Please verify that folder where is located platformio program is added to PATH (wiki) environment variable. Release 3. PlatformIO Documentation.3.17.

Now. • Upload .Syntastic Put to the project directory Makefile wrapper with contents: # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: platformio -f -c vim run upload: platformio -f -c vim run --target upload clean: platformio -f -c vim run --target clean program: platformio -f -c vim run --target program uploadfs: platformio -f -c vim run --target uploadfs update: platformio -f -c vim update Pre-defined targets: • Build . make firmware and upload it. try to add this line nnoremap <C-b> :make<CR> to ~/. Contents .vimrc 366 Chapter 4.PlatformIO Documentation.3. Release 3. in VIM cd /path/to/this/project and press Ctrl+B or Cmd+B (Mac). Manual Recommended bundles: • Syntax highlight .Build and upload (if no errors) • Upload using Programmer see Upload using Programmer • Upload SPIFFS image see Uploading files to file system SPIFFS • Update platforms and libraries . PlatformIO should compile your source code from the src directory.Clean compiled objects.Arduino-syntax-file • Code Completion .Build project without auto-uploading • Clean .YouCompleteMe (see configuration example by Anthony Ford Plat- formIO/YouCompleteMe Integration) • Syntax checking .1 “Neomake-PlatformIO” Plugin Please visit neomake-platformio for the further installation steps and documentation.Update installed platforms and libraries via platformio update. Note: If hotkey doesn’t work for you.

Refer to the Visual Studio Documentation page for more detailed information. PlatformIO Documentation.1 Articles / Manuals • Arduino : vim + platformio (Arduino development at the command line: VIM + PlatformIO. Japanese) See a full list with Articles about us. Contents • Visual Studio – Integration * Project Generator * Manual Integration · Setup New Project 4. Release 3. Visual Studio includes a code editor supporting IntelliSense (the code completion component) as well as code refactoring. Cloud & Standalone IDE 367 . Visual Studio The Microsoft Visual Studio (Free) is an integrated development environment (IDE) from Microsoft.17.3.

cpp. Release 3. Build project: Menu: Build > Build Solution. Project Generator Choose board ID using platformio boards or Embedded Boards Explorer command and generate project via platformio init --ide command: platformio init --ide sublimetext --board <ID> # For example.ino.c.ini 2.3. Contents .PlatformIO Documentation. fill Project name. generate project for Arduino UNO platformio init --ide visualstudio --board uno Then: 1.1 · First program in Visual Studio · Conclusion – Examples * “Blink” Project – Known issues * IntelliSense Errors Integration Note: Please verify that folder where is located platformio program is added to PATH (wiki) environment variable. then select project with Makefile type (Visual C++ > General > Makefile Project). Warning: The libraries which are added. Manual Integration Setup New Project First of all.) 3. See FAQ: Program “platformio” not found in PATH. Solution name. 368 Chapter 4. etc. let’s create new project from Visual Studio Start Page: Start > New Project or using Menu: File > New > Project. *. Import this project via Menu: File > Open > Project/Solution and specify root directory where is located Project Configuration File platformio. To fix it you need to reinitialize project using platformio init (repeat it). installed or used in the project after generating process wont be reflected in IDE. *. Location fields and press OK button. Open source file from src directory (*.

we need to configure project with PlatformIO Build System: 4. Cloud & Standalone IDE 369 .17. Release 3. PlatformIO Documentation.3.1 Secondly.

1 If we want to use native AVR programming. an Arduino Uno is based on the ATmega328 MCU. 370 Chapter 4. For example. Release 3.3. In this case We will add new definition __AVR_ATmega328__. Contents . we have to specify additional preprocessor symbol (“Preprocessor defini- tions” field) about your MCU.PlatformIO Documentation.

1 Release Configuration is the same as Debug.3. so on the next step we check “Same as Debug Configuration” and click “Finish” button. Release 3. Cloud & Standalone IDE 371 . PlatformIO Documentation. 4.17.

platformio\packages\toolchain-atmelavr\avr\include $(HOMEDRIVE)$(HOMEPATH)\.PlatformIO Documentation.1 Thirdly. Release 3.platformio\packages\framework-arduinoavr\cores\arduino 372 Chapter 4. Contents . we need to add directories with header files using project properties (right click on the project name or Alt-Enter shortcut) and add two directories to Configuration Properties > NMake > Include Search Path: $(HOMEDRIVE)$(HOMEPATH)\.3.

Main “C++” source file named main.17.1 First program in Visual Studio Simple “Blink” project will consist from two files: 1. Let’s create new file named main.3. Cloud & Standalone IDE 373 .cpp using Menu: File > New File or shortcut Ctrl+N: 4.cpp must be located in the src directory. PlatformIO Documentation. Release 3.

#include "Arduino. // set the LED off delay(1000). // wait for a second digitalWrite(WLED. LOW). Contents .ini must be located in the project root directory. OUTPUT). HIGH). Project Configuration File named platformio. // set pin as output } void loop() { digitalWrite(WLED. Release 3.PlatformIO Documentation.cpp. // set the LED on delay(1000). // wait for a second } 2.h" #define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on ˓→the board itself void setup() { pinMode(WLED.1 Copy the source code which is described below to file main.3. 374 Chapter 4.

org/en/stable/projectconf. Build options: build flags. . extra library storages . Examples 4. PlatformIO Documentation. . extra scripting . PlatformIO Project Configuration File . http://docs.17.html [env:arduino_uno] platform = atmelavr framework = arduino board = uno Conclusion Taking everything into account. speed and extra flags .platformio. . Cloud & Standalone IDE 375 . Upload options: custom port.3. source filter. we can build project with shortcut Ctrl+Shift+B or using Menu: Build > Build Solution. Release 3. Library options: dependencies.1 Copy the source code which is described below to it. Please visit documentation for the other options and examples .

In this case. TypeScript and Node.PlatformIO Documentation.3. However.1 “Blink” Project Source code of Visual Studio “Blink” Project. Release 3. See details in issue #543 Visual Studio Code Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows. Contents . Nevertheless. you can provide an IntelliSense-friendly definition of problematic GCC constructs and make sure that the GCC will ignore such definitions or disable IntelliSense error reporting at all. macOS and Linux. these errors does not have any influence on PlatformIO Build System. IntelliSense does not understand GCC-specific definitions. It means that you can ignore them and rely on PlatformIO Build System messages which will be shown in output console after build.js and has a rich 376 Chapter 4. Known issues IntelliSense Errors VS Studio does not allow to specify for project other toolchain which will be used by IntelliSense. It comes with built-in support for JavaScript.

18. in software engineering.yml to the root directory of the GitHub repository. wiki) is the practice. by sending an email containing the build results (showing success or failure). it will try to build the project using platformio ci command. of merging all developer working copies with a shared mainline several times a day. Contents • AppVeyor – Integration – Examples Integration Put appveyor. This includes commits to all branches. not just to the master branch. 4. which is a YAML format text file. Release 3. AppVeyor automatically detects when a commit has been made and pushed to a GitHub repository that is using AppVeyor.1 ecosystem of extensions for other languages (such as C++. When that process has completed. AppVeyor will also build and run pull requests. platformio ci command is intended to be used in combination with the build servers and the popular Continuous Integration Software. AppVeyor AppVeyor is an open-source hosted. PHP. and locate them more easily. AppVeyor is configured by adding a file named appveyor. and each time this happens. PlatformIO Documentation.3. it will notify a developer in the way it has been configured to do so — for example.NET and Unity) Refer to the VSCode Documentation page for more detailed information. It can be configured to build project on a range of different Development Platforms. you can detect errors quickly. Python. to the root directory of the GitHub repository. or by posting a message on an IRC channel. Go) and runtimes (such as . Contents • Visual Studio Code – Integration Integration Please install VSCode extension for PlatformIO.yml. distributed continuous integration service used to build and test projects hosted at GitHub on Windows family systems. Continuous Integration 377 . C#. By integrating regularly. Continuous Integration Continuous Integration (CI.

cmd: SET PATH=%PATH%. not just to the master branch. Circle CI is configured by adding a file named circle. and testing to GitHub repositories.cmd: git submodule update --init --recursive . by sending an email containing the build results (showing success or failure). The appveyor. it will notify a developer in the way it has been configured to do so — for example.git C:\spi4teensy test_script: .c" . Circle CI will also build and run pull requests.cmd: platformio ci --board=<ID_1> --board=<ID_2> --board=<ID_N> For more details as for PlatformIO build process please look into platformio ci command. Contents .cmd: pip install -U platformio .PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.cmd: pip install -U platformio test_script: .PlatformIO Documentation.cmd: platformio ci --lib=".yml configuration file: build: off environment: matrix: . to the root directory of the GitHub repository.ino" . Examples 1.yml. When that process has completed. Integration for USB_Host_Shield_2. which is a YAML format text file.C:\Python27\Scripts .PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino" .C:\Python27\Scripts .PLATFORMIO_CI_SRC: "path\\to\\source\\file. Circle CI automatically detects when a commit has been made and pushed to a GitHub repository that is using Circle CI. deployment. and each time this happens.cmd: git clone https://github.3. Release 3.ino" install: . 378 Chapter 4.com/xxxajk/spi4teensy3.PLATFORMIO_CI_SRC: "path\\to\\source\\directory" install: .PLATFORMIO_CI_SRC: "path\\to\\source\\file.1 build: off environment: matrix: . or by posting a message on an IRC channel.0 project." --lib="C:\\spi4teensy" --board=uno -- ˓→board=teensy31 --board=due Circle CI Circle CI is a hosted cloud platform that provides hosted continuous integration.cmd: git submodule update --init --recursive .cmd: SET PATH=%PATH%. This includes commits to all branches. It can be configured to build project on a range of different Development Platforms. it will try to build the project using platformio ci command.

Release 3.platformio ci path/to/test/directory --board=<ID_1> --board=<ID_2> --board= ˓→<ID_N> For more details as for PlatformIO build process please look into platformio ci. Continuous Integration 379 . please use --lib=".ino --board=<ID_1> --board=<ID_2> --board=<ID_N> ." option for platformio ci command script: .platformio ci path/to/test/file.3.1 Contents • Circle CI – Integration * Project as a library * Library dependecies · Install dependent library using Library Manager · Manually download dependent library and include in build process via --lib option * Custom Build Flags * Advanced configuration – Examples Integration Please make sure to read Circle CI Getting Started guide first." --board=<ID_1> --board=<ID_2> --board=<ID_N> Library dependecies There 2 options to test source code with dependent libraries: 4.sudo pip install -U platformio test: override: . PlatformIO Documentation.18.c --board=<ID_1> --board=<ID_2> --board=<ID_ ˓→N> .platformio ci examples/file.platformio ci --lib=". Project as a library When project is written as a library (where own examples or testing code use it). dependencies: pre: # Install the latest stable PlatformIO .

platformio ci path/to/test/file.PlatformIO Documentation.zip -d /tmp/ test: override: . Instead of --board option. Advanced configuration PlatformIO allows to configure multiple build environments for the single source code using Project Configuration File platformio.c --project-conf=/path/to/platoformio.wget https://github.c --lib="/tmp/OneWire-master" --board=<ID_1> ˓→ --board=<ID_2> --board=<ID_N> Custom Build Flags PlatformIO allows to specify own build flags using PLATFORMIO_BUILD_FLAGS environment machine: environment: PLATFORMIO_BUILD_FLAGS: -D SPECIFIC_MACROS -I/extra/inc For the more details.platformio lib -g install 1 test: override: .com/PaulStoffregen/OneWire/archive/master.sudo pip install -U platformio # download library to the temporary directory . please use platformio ci --project-conf test: override: .3.ini.zip -O /tmp/ ˓→onewire_source.platformio ci path/to/test/file.zip .unzip /tmp/onewire_source.ini 380 Chapter 4.c --board=<ID_1> --board=<ID_2> --board=<ID_ ˓→N> Manually download dependent library and include in build process via --lib option dependencies: pre: # Install the latest stable PlatformIO .platformio ci path/to/test/file. Contents . please follow to available build flags/options.sudo pip install -U platformio # OneWire Library with ID=1 http://platformio.1 Install dependent library using Library Manager dependencies: pre: # Install the latest stable PlatformIO . Release 3.org/lib/show/1/OneWire .

zip -d /tmp test: override: .platformio ci examples/acm/acm_terminal --board=uno --board=teensy31 -- ˓→board=due --lib=". Release 3.0/tree/master 2.zip -d /tmp .com/Rodot/Gamebuino/archive/master. platformio lib -g install 416 417 test: override: ."~/.zip . they will be cached .yml • Build History: https://circleci.platformio ci examples/adk/demokit_20 --board=uno --board=teensy31 -- ˓→board=due --lib=".platformio platform install atmelavr atmelsam teensy # # Libraries from PlatformIO Library Registry: # # http://platformio..com/gh/ivankravets/USB_Host_Shield_2.zip -O /tmp/jeelib.platformio ci examples/Xbox/XBOXUSB --board=uno --board=teensy31 -- ˓→board=due --lib=".platformio ci examples/adk/adk_barcode --board=uno --board=teensy31 -- ˓→board=due --lib="..ino --lib="." --lib="/tmp/jeelib- ˓→master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 4.0/blob/master/circle." # .sudo pip install -U platformio # pre-install PlatformIO development platforms. .platformio ci examples/backSoon/backSoon.unzip /tmp/jeelib.18.1 Examples 1.wget https://github." .com/ivankravets/USB_Host_Shield_2.sudo pip install -U platformio # download dependent libraries .wget https://github.zip . Continuous Integration 381 ." . PlatformIO Documentation.zip -O /tmp/ ˓→ gamebuino.platformio ci examples/adk/ArduinoBlinkLED --board=uno --board=teensy31 -- ˓→board=due --lib=".platformio" pre: .3.unzip /tmp/gamebuino." • Configuration file: https://github.org/lib/show/416/TinyGPS # http://platformio.com/jcw/jeelib/archive/master." . Dependency on external libraries dependencies: pre: # Install the latest stable PlatformIO . Custom build flags dependencies: cache_directories: .org/lib/show/417/SPI4Teensy3 .

.platformio ci examples/twitter/twitter. It can be configured to build project on a range of different Development Platforms.platformio ci examples/getStaticIP/getStaticIP.ino --lib=".platformio ci examples/getDHCPandDNS/getDHCPandDNS." --lib="/tmp/ ˓→jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 • Configuration file: hhttps://github. Drone automatically detects when a commit has been made and pushed to a GitHub repository that is using Drone. Drone is configured by modifying settings in your project control panel. by sending an email containing the build results (showing success or failure)." --lib="/tmp/jeelib- ˓→master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 .ino --lib=".. not just to the master branch.ino --lib=". Release 3.ino --lib="." --lib="/tmp/ ˓→jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 # . it will try to build the project using platformio ci command.com/gh/ivankravets/ethercard/tree/master Drone Drone is a hosted continuous integration service.platformio ci examples/webClient/webClient. Contents .1 .3. When that process has completed..platformio ci examples/udpListener/udpListener. and deploy as you make changes to your code to GitHub and BitBucket repositories. This includes commits to all branches." -- ˓→lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" -- ˓→board=uno --board=megaatmega2560 . It enables you to conveniently set up projects to automatically build. it will notify a developer in the way it has been configured to do so — for example.ino --lib=". test.ino --lib=".ino --lib=".com/ivankravets/ethercard/blob/master/circle." --lib="/tmp/ ˓→jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 . Contents • Drone – Integration – Examples Integration Please fill all fields for your project in the Drone control panel: Environment Variables: 382 Chapter 4.yaml • Build History: https://circleci.platformio ci examples/udpClientSendOnly/udpClientSendOnly. Drone will also build and run pull requests. and each time this happens." --lib="/tmp/ ˓→jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 .PlatformIO Documentation." --lib="/ ˓→tmp/jeelib-master" --lib="/tmp/Gamebuino-master/libraries/tinyFAT" --board=uno -- ˓→board=megaatmega2560 .platformio ci examples/etherNode/etherNode.

4.3.18.c PLATFORMIO_CI_SRC=path/to/source/file. PlatformIO Documentation.1 PLATFORMIO_CI_SRC=path/to/source/file. Continuous Integration 383 .ino PLATFORMIO_CI_SRC=path/to/source/directory Commands: pip install -U platformio platformio ci --board=<ID_1> --board=<ID_2> --board=<ID_N> For more details as for PlatformIO build process please look into platformio ci command. Release 3.

ino Commands: pip install -U platformio wget https://github.ino PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps. Contents .com/xxxajk/spi4teensy3/archive/master.yml configuration file: Environment Variables: PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.1 Examples 1.zip -O /tmp/spi4teensy3.PlatformIO Documentation. Integration for USB_Host_Shield_2." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 - ˓→-board=due 384 Chapter 4.zip unzip /tmp/spi4teensy3.zip -d /tmp platformio ci --lib=".0 project.3. Release 3. The circle.

to the root directory of the GitHub repository or you can use your Travis CI configuration file .yml. it will try to build the project using platformio ci command. Continuous Integration 385 . and each time this happens.yml. and testing to GitHub and BitBucket repositories. deployment. This includes commits 4.3. Release 3.18.travis. which is a YAML format text file. Shippable’s continuous integration service is built using Docker. Shippable is configured by adding a file named shippable.1 Shippable Shippable is a hosted cloud platform that provides hosted continuous integration. PlatformIO Documentation. Shippable automatically detects when a commit has been made and pushed to a GitHub repository that is using Ship- pable.

0 project.yml or . by sending an email containing the build results (showing success or failure).yml or .zip ."2. When that process has completed.1 to all branches. Release 3.com/xxxajk/spi4teensy3/archive/master.PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps.travis.wget https://github. language: python python: ." --lib="/tmp/spi4teensy3-master" --board=uno -- ˓→board=teensy31 --board=due 386 Chapter 4.c .7" env: . Examples 1.3. Contents . Integration for USB_Host_Shield_2. not just to the master branch.unzip /tmp/spi4teensy3.ino .PLATFORMIO_CI_SRC=path/to/source/file.PLATFORMIO_CI_SRC=path/to/source/directory install: . or by posting a message on an IRC channel."2.platformio ci --board=<ID_1> --board=<ID_2> --board=<ID_N> For more details as for PlatformIO build process please look into platformio ci command. it will notify a developer in the way it has been configured to do so — for example.PlatformIO Documentation.PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.zip -O /tmp/ ˓→spi4teensy3.ino install: .yml to the root directory of the GitHub repository.ino . The shippable. Shippable will also build and run pull requests.pip install -U platformio .zip -d /tmp script: . It can be configured to build project on a range of different Development Platforms. Contents • Shippable – Integration – Examples Integration Please put shippable.travis.platformio ci --lib=".PLATFORMIO_CI_SRC=path/to/source/file.7" env: .yml configuration file: language: python python: .pip install -U platformio script: .

See Defining Variables in Repository Set- tings guide. PlatformIO Documentation. it will notify a developer in the way it has been configured to do so — for example. Travis CI is an open-source hosted.travis. which is a YAML format text file. PlatformIO is written in Python and is recommended to be run within Travis CI Python isolated environment: 4. Contents • Travis CI – Integration – Project as a library – Library dependencies * Install dependent library using Library Manager * Manually download dependent library and include in build process via --lib option – Custom Build Flags – Advanced configuration – Unit Testing – Examples Integration Please make sure to read Travis CI Getting Started and general build configuration guides first. This includes commits to all branches. Release 3. Travis CI is configured by adding a file named . not just to the master branch. it will try to build the project using platformio ci command.yml.3.18. Travis CI automatically detects when a commit has been made and pushed to a GitHub repository that is using Travis CI. by sending an email containing the build results (showing success or failure). Travis CI will also build and run pull requests. Note: If you are going to use PlatformIO Unit Testing or PIO Remote™ you will need to define PLATFORMIO_AUTH_TOKEN environment variable in project settings. When that process has completed. to the root directory of the GitHub repository. Continuous Integration 387 . or by posting a message on an IRC channel. It can be configured to build project on a range of different Development Platforms.1 Travis CI Travis CI officially supports PlatformIO for Embedded Builds. distributed continuous integration service used to build and test projects hosted at GitHub. and each time this happens.

PlatformIO Documentation, Release 3.3.1

language: python
python:
- "2.7"

# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"

env:
- PLATFORMIO_CI_SRC=path/to/test/file.c
- PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/test/directory

install:
- pip install -U platformio

script:
- platformio ci --board=<ID_1> --board=<ID_2> --board=<ID_N>

Then perform steps 1, 2 and 4 from http://docs.travis-ci.com/user/getting-started/
For more details as for PlatformIO build process please look into platformio ci.

Project as a library

When project is written as a library (where own examples or testing code use it), please use --lib="." option for
platformio ci command

script:
- platformio ci --lib="." --board=<ID_1> --board=<ID_2> --board=<ID_N>

Library dependencies

There 2 options to test source code with dependent libraries:

Install dependent library using Library Manager

install:
- pip install -U platformio

#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/lib/show/1/OneWire
- platformio lib -g install 1

Manually download dependent library and include in build process via --lib option

388 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

install:
- pip install -U platformio

# download library to the temporary directory
- wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/
˓→onewire_source.zip

- unzip /tmp/onewire_source.zip -d /tmp/

script:
- platformio ci --lib="/tmp/OneWire-master" --board=<ID_1> --board=<ID_2> --board=
˓→<ID_N>

Custom Build Flags

PlatformIO allows to specify own build flags using PLATFORMIO_BUILD_FLAGS environment

env:
- PLATFORMIO_CI_SRC=path/to/test/file.c PLATFORMIO_BUILD_FLAGS="-D SPECIFIC_
˓→MACROS_PER_TEST_ENV -I/extra/inc"

- PLATFORMIO_CI_SRC=examples/file.ino
- PLATFORMIO_CI_SRC=path/to/test/directory

install:
- pip install -U platformio
- export PLATFORMIO_BUILD_FLAGS="-D GLOBAL_MACROS_FOR_ALL_TEST_ENV"

For the more details, please follow to available build flags/options.

Advanced configuration

PlatformIO allows to configure multiple build environments for the single source code using Project Configuration
File platformio.ini.
Instead of --board option, please use platformio ci --project-conf

script:
- platformio ci --project-conf=/path/to/platoformio.ini

Unit Testing

See PlatformIO Remote Unit Testing Example.

Examples

1. Custom build flags

language: python
python:
- "2.7"

# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:

4.18. Continuous Integration 389

PlatformIO Documentation, Release 3.3.1

directories:
- "~/.platformio"

env:
- PLATFORMIO_CI_SRC=examples/acm/acm_terminal
- PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-
˓→DWIICAMERA"

- PLATFORMIO_CI_SRC=examples/ftdi/USBFTDILoopback
- PLATFORMIO_CI_SRC=examples/Xbox/XBOXUSB
# - ...

install:
- pip install -U platformio

#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/lib/show/416/TinyGPS
# http://platformio.org/lib/show/417/SPI4Teensy3
- platformio lib -g install 416 417

script:
- platformio ci --board=uno --board=teensy31 --board=due --lib="."

• Configuration file: https://github.com/felis/USB_Host_Shield_2.0/blob/master/.travis.yml
• Build History: https://travis-ci.org/felis/USB_Host_Shield_2.0
2. Dependency on external libraries

language: python
python:
- "2.7"

# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"

env:
- PLATFORMIO_CI_SRC=examples/backSoon/backSoon.ino
- PLATFORMIO_CI_SRC=examples/etherNode/etherNode.ino
# -

install:
- pip install -U platformio

- wget https://github.com/jcw/jeelib/archive/master.zip -O /tmp/jeelib.zip
- unzip /tmp/jeelib.zip -d /tmp

- wget https://github.com/Rodot/Gamebuino/archive/master.zip -O /tmp/gamebuino.
˓→ zip
- unzip /tmp/gamebuino.zip -d /tmp

script:
- platformio ci --lib="." --lib="/tmp/jeelib-master" --lib="/tmp/Gamebuino-master/
˓→libraries/tinyFAT" --board=uno --board=megaatmega2560

390 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

• Configuration file: https://github.com/jcw/ethercard/blob/master/.travis.yml
• Build History: https://travis-ci.org/jcw/ethercard
3. Dynamic testing of the boards
language: python
python:
- "2.7"

# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"

env:
- PLATFORMIO_CI_SRC=examples/TimeArduinoDue PLATFORMIO_CI_EXTRA_ARGS="--board=due"
- PLATFORMIO_CI_SRC=examples/TimeGPS
- PLATFORMIO_CI_SRC=examples/TimeNTP
- PLATFORMIO_CI_SRC=examples/TimeTeensy3 PLATFORMIO_CI_EXTRA_ARGS="--
˓→board=teensy31"

# - ...

install:
- pip install -U platformio
- rm -rf ./linux

#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/lib/show/416/TinyGPS
- platformio lib -g install 416 421 422

script:
- platformio ci --lib="." --board=uno --board=teensy20pp $PLATFORMIO_CI_EXTRA_ARGS

• Configuration file: https://github.com/ivankravets/Time/blob/master/.travis.yml
• Build History: https://travis-ci.org/ivankravets/Time
4. Advanced configuration with extra project options and libraries
language: python
python:
- "2.7"

# Cache PlatformIO packages using Travis CI container-based infrastructure
sudo: false
cache:
directories:
- "~/.platformio"

env:
- PLATFORMIO_CI_SRC=examples/Boards_Bluetooth/Adafruit_Bluefruit_LE
- PLATFORMIO_CI_SRC=examples/Boards_Bluetooth/Arduino_101_BLE PLATFORMIO_CI_EXTRA_
˓→ARGS="--board=genuino101"

- PLATFORMIO_CI_SRC=examples/Boards_USB_Serial/Blue_Pill_STM32F103C PLATFORMIO_CI_
˓→EXTRA_ARGS="--board=bluepill_f103c8 --project-option='framework=arduino'"

- PLATFORMIO_CI_SRC=examples/Export_Demo/myPlant_ESP8266 PLATFORMIO_CI_EXTRA_ARGS=
˓→"--board=nodemcuv2 --project-option='lib_ignore=WiFi101'"

4.18. Continuous Integration 391

PlatformIO Documentation, Release 3.3.1

# - ...

install:
- pip install -U platformio

#
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/lib/show/44/Time
# http://platformio.org/lib/show/419/SimpleTimer
#
# http://platformio.org/lib/show/17/Adafruit-CC3000
# http://platformio.org/lib/show/28/SPI4Teensy3
# http://platformio.org/lib/show/91/UIPEthernet
# http://platformio.org/lib/show/418/WildFireCore
# http://platformio.org/lib/show/420/WildFire-CC3000
# http://platformio.org/lib/show/65/WiFlyHQ
# http://platformio.org/lib/show/19/Adafruit-DHT
# http://platformio.org/lib/show/299/WiFi101
# http://platformio.org/lib/show/259/BLEPeripheral
# http://platformio.org/lib/show/177/Adafruit_BluefruitLE_nRF51

- platformio lib -g install 17 28 91 418 419 420 65 44 19 299 259 177 https://
˓→github.com/vshymanskyy/BlynkESP8266.git https://github.com/cmaglie/FlashStorage.git
˓→https://github.com/michael71/Timer5.git

script:
- make travis-build

• Configuration file: https://github.com/blynkkk/blynk-library/blob/master/.travis.yml
• Build History: https://travis-ci.org/blynkkk/blynk-library

Articles about us

Note: If you’ve written article about PlatformIO and would like it listed on this page, please edit this page.

Here are recent articles/reviews about PlatformIO:

2017

• Feb 23, 2017 - Bastiaan Visee - Using PlatformIO for your Arduino projects
• Jan 12, 2017 - Tiest van Gool - OTA: PlatformIO and ESP8266

2016

• Dec 13, 2016 - Dr. Patrick Mineault - Multi-Arduino projects with PlatformIO
• Dec 08, 2016 - Cuong Tran Viet - PlatformIO is a solution
• Nov 10, 2016 - PiGreek - PlatformIO the new Arduino IDE ?!

392 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

• Oct 31, 2016 - Ricardo Quesada - Retro Challenge: announcing Commodore Home
• Oct 3, 2016 - Xose Pérez - Using the new Bean Loader CLI from PlatformIO
• Sep 20, 2016 - The Linux Foundation - 21 Open Source Projects for IoT
• Sep 19, 2016 - Doc Walker - How to automatically test build Arduino libraries
• Sep 18, 2016 - Kadda Sahnine - LoRaWAN network practice with Objenious, PlatformIO and Node-RED
• Sep 13, 2016 - Xose Pérez MQTT LED Matrix Display
• Sep 12, 2016 - Pedro Minatel - OTA – Como programar o ESP8266 pelo WiFi no platformIO (OTA program-
ming for ESP8266 via Wi-Fi using PlatformIO, Portuguese)
• Sep 2, 2016 - Xose Pérez ESP8266: Optimizing files for SPIFFS with Gulp
• Aug 28, 2016 - Tom Parker Using the BBC micro:bit with PlatformIO
• Aug 24, 2016 - Primal Cortex Cloud based continuous integration and delivery for IOT using PlatformIO
• Aug 18, 2016 - Primal Cortex - Installing PlatformIO on Arch Linux
• Aug 14, 2016 - Rodrigo Castro - PlataformIO o comó usar Arduino con ATOM (Spanish)
• Jul 27, 2016 - Francesco Azzola - Arduino Alternative IDE: PlatformIO IoT integrated platform
• Jul 26, 2016 - Embedded Systems Laboratory - PlatformIO IDE Arduino ESP8266 (Get started with Plat-
formIO IDE for Arduino board and ESP8266, Thai)
• Jul 15, 2016 - Jaime - ESP8266 Mobile Rick Roll Captive Portal
• Jul 5, 2016 - Ivan Kravets, Ph.D. - Explore the new development instruments for Arduino with PlatformIO
ecosystem
• Jul 5, 2016 - Belinda - Monte Bianco Arduino Developer Summit
• Jul 1, 2016 - Tam Hanna - Mikrocontroller-Gipfel in den Alpen: Arduino Developer Summit, Tag eins (Micro-
controller peaks in the Alps: Arduino Developer Summit, Day One, German)
• Jun 14, 2016 - Glyn Hudson - OpenEnergyMonitor Part 2/3: Firmware Continuous Test & Build
• Jun 13, 2016 - Daniel Eichhorn - New Weather Station Demo on Github
• Jun 12, 2016 - Glyn Hudson - OpenEnergyMonitor Part 1/3: PlatformIO open-source embedded development
ecosystem
• Jun 12, 2016 - Uli Wolf - Nutzung von PlatformIO im Atom Editor zur Entwicklung von Arduino Code (Use
PlatformIO and Atom Editor to develop Arduino code, German)
• Jun 3, 2016 - Daniel Eichhorn - ESP8266: Continuous Delivery Pipeline – Push To Production
• May 30, 2016 - Ron Moerman - IoT Development with PlatformIO
• May 29, 2016 - Chris Synan - Reverse Engineer RF Remote Controller for IoT!
• May 26, 2016 - Charlie Key - 7 Best Developer Tools To Build Your NEXT Internet of Things Application
• May 22, 2016 - Pedro Minatel - Estação meteorológica com ESP8266 (Weather station with ESP8266, Por-
tuguese)
• May 16, 2016 - Pedro Minatel - Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266,
Portuguese)
• May 11, 2016 - Jo Vandeginste - Using PlatformIO to compile for Jeelabs’ Jeenode Micro
• May 08, 2016 - Radoslaw Bob - Touch controlled buzzer (Nodemcu ESP8266)
• May 06, 2016 - Jean Roux - The IoT building blocks I use for my home-automation projects

4.19. Articles about us 393

PlatformIO Documentation, Release 3.3.1

• May 05, 2016 - Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup - PlatformIO: a cross-platform IoT solution
to build them all!
• May 01, 2016 - Pedro Minatel - PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO - An alternative to
the Arduino IDE, Portuguese)
• Apr 23, 2016 - Al Williams - Hackaday: Atomic Arduino (and Other) Development
• Apr 16, 2016 - Sathittham Sangthong - [PlatformIO] PlatformIO Arduino IDE (Let’s play together with
PlatformIO IDE [alternative to Arduino IDE], Thai)
• Apr 15, 2016 - Daniel Eichhorn - ESP8266: Offline Debugging with the Platformio Environment
• Apr 11, 2016 - Matjaz Trcek - Top 5 Arduino integrated development environments
• Apr 06, 2016 - Aleks - PlatformIO ausprobiert (Tried PlatformIO, German)
• Apr 02, 2016 - Diego Pinto - Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you
dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese)
• Mar 30, 2016 - Brandon Cannaday - Getting Started with PlatformIO and ESP8266 NodeMcu
• Mar 29, 2016 - Pablo Peñalve - PlatformIO + Geany + Raspberry PI, Spanish
• Mar 24, 2016 - NAzT - PlatformIO Arduino Library (PlatformIO and advanced development for Arduino
Library, Thai)
• Mar 16, 2016 - Jakub Skořepa - Instalace PlatformIO (PlatformIO IDE Installation, Czech)
• Mar 12, 2016 - Peter Marks - PlatformIO, the Arduino IDE for programmers
• Mar 12, 2016 - Richard Arthurs - Getting Started With PlatformIO
• Mar 07, 2016 - Joran Jessurun - Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch)
• Mar 05, 2016 - brichacek.net - PlatformIO – otevřený ekosystém pro vývoj IoT (PlatformIO – an open source
ecosystem for IoT development, Czech)
• Mar 04, 2016 - Ricardo Vega - Programa tu Arduino desde Atom (Program your Arduino from Atom, Spanish)
• Feb 28, 2016 - Alex Bloggt - PlatformIO vorgestellt (Introduction to PlatformIO IDE, German)
• Feb 25, 2016 - NutDIY - PlatformIO Blink On Nodemcu Dev Kit V1.0 (Thai)
• Feb 23, 2016 - Ptarmigan Labs - ESP8266 Over The Air updating – what are the options?
• Feb 22, 2016 - Grzegorz Hołdys - How to Integrate PlatformIO with Netbeans
• Feb 19, 2016 - Embedds - Develop easier with PlatformIO ecosystem
• Feb 13, 2016 - Robert Cudmore - Programming an arduino with PlatformIO
• Jan 24, 2016 - Sergey Prilukin - How to use IntelliJ IDEA to develop and upload software for micro controllers
like Arduino
• Jan 16, 2016 - Dani Eichhorn - ESP8266 Arduino IDE Alternative: PlatformIO
• Jan 11, 2016 - David Mills, Ph.D. - STM NUCLEOF401RE TIMER IO
• Jan 05, 2016 - Julien Rodrigues - Internet Of Things: The IDE scandal

2015

• Dec 22, 2015 - Jan Penninkhof - Over-the-Air ESP8266 programming using PlatformIO
• Dec 15, 2015 - stastaka - PlatformIO (Use a custom board for PlatformIO, Japanese)

394 Chapter 4. Contents

PlatformIO Documentation, Release 3.3.1

• Dec 08, 2015 - Piotr Król - Using PlatformIO with TI MSP430 LunchPads
• Dec 01, 2015 - Michał Seroczyński - Push Notification from Arduino Yún with motion sensor
• Dec 01, 2015 - JetBrains CLion Blog - C++ Annotated: Fall 2015. Arduino Support in CLion using PlatformIO
• Dec 01, 2015 - Tateno Yuichi - ESP8266 CUI (Develop a ESP8266 in CUI, Japanese)
• Nov 29, 2015 - Keith Hughes - Using PlatformIO for Embedded Projects
• Nov 22, 2015 - Michał Seroczyński - Using PlatformIO to get started with Arduino in CLion IDE
• Nov 09, 2015 - ÁLvaro García Gómez - Programar con Arduino “The good way” (Programming with Arduino
“The good way”, Spanish)
• Nov 06, 2015 - nocd5 - PlatformIOmbedSTM32 Nucleomruby (Use mruby in the offline build for STM32
Nucleo board with mbed and PlatformIO, Japanese)
• Oct 21, 2015 - Vittorio Zaccaria - Using a cheap STM32 Nucleo to teach remote sensor monitoring
• Oct 18, 2015 - Nico Coetzee - First Arduino I2C Experience with PlatformIO
• Oct 10, 2015 - Floyd Hilton - Programming Arduino with Atom
• Oct 01, 2015 - Mistan - Compile and Upload Arduino Sketch with PlatformIO for Raspberry Pi Running Arch
Linux
• Sep 30, 2015 - Jay Wiggins - PlatformIO Investigation
• Sep 01, 2015 - Thomas P. Weldon, Ph.D. - Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and
Software Installation
• Aug 08, 2015 - Josh Glendenning - Armstrap Eagle and PlatformIO
• Aug 01, 2015 - Russell Davis - PlatformIO on the Raspberry Pi
• Jul 25, 2015 - DinoTools - Erste Schritte mit PlatformIO (Getting Started with PlatformIO, German)
• Jul 20, 2015 - Eli Fatsi - Arduino Development in Atom Editor
• Jul 14, 2015 - ElbinarIO - Programar para Arduino y otros microcontroladores desde la linea de comandos
(Program Arguino and other microcontrollers from the command line, Spanish)
• Jul 11, 2015 - TrojanC - Learning Arduino GitHub Repository
• Jul 07, 2015 - Sho Hashimoto - PlatformIOArduino(Arduino development in PlatformIO, Japanese)
• Jun 02, 2015 - Alejandro Guirao Rodríguez - Discovering PlatformIO: The RaspberryPi / Arduino combo kit
is a winner option when prototyping an IoT-style project
• May 17, 2015 - S.S - Arduino : vim + platformio (Arduino development at the command line: VIM + Plat-
formIO, Japanese)
• May 11, 2015 - IT Hare - From Web Developer to Embedded One: Interview with Ivan Kravets, The Guy
Behind PlatformIO. Part II
• May 4, 2015 - IT Hare - From Web Developer to Embedded One: Interview with Ivan Kravets, The Guy Behind
PlatformIO. Part I
• Apr 17, 2015 - Michael Ball - PlatformIO - A Cross-Platform Code Builder and Missing Library Manager
• Mar 23, 2015 - Atmel - Cross-board and cross-vendor embedded development with PlatformIO
• Mar 22, 2015 - Mark VandeWettering - Discovered a new tool for embedded development: PlatformIO
• Feb 25, 2015 - Hendrik Putzek - Use your favourite IDE together with Arduino

4.19. Articles about us 395

DistributionNotFound” * Miscellaneous · Serial does not work with panStampAVR board * Building · ARM toolchain: cc1plus: error while loading shared libraries · Archlinux: libncurses. 2014 .Ivan Kravets.D.D. Ph. Contents . Release 3.so. Contents • Frequently Asked Questions – General * What is PlatformIO? * What is . 2014 .Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO • Jun 17. Ph.3.pioenvs directory * Command completion in Terminal · Bash completion · ZSH completion – Install Python Interpreter – PlatformIO IDE – Before/Pre and After/Post build actions – Troubleshooting * Installation · [Errno 1] Operation not permitted · Windows AttributeError: ‘module’ object has no attribute ‘packages’ · Program “platformio” not found in PATH · Windows UnicodeDecodeError: ‘ascii’ codec can’t decode byte · PlatformIO: command not found || An error “pkg_resources. . .1 2014 • Oct 7.Integration of PlatformIO library manager to Arduino and Energia IDEs • Jun 20.D. .5: cannot open shared object file · Monitoring a serial port breaks upload 396 Chapter 4.How was PlatformIO born or why I love Python World Frequently Asked Questions Note: We have a big database with Frequently Asked Questions in our Community Forums. Please have a look at it.Ivan Kravets. Ph.Ivan Kravets.PlatformIO Documentation. 2014 .

Release 3. please Download the latest Python 2.bashrc: eval "$(_PLATFORMIO_COMPLETE=source platformio)" eval "$(_PLATFORMIO_COMPLETE=source pio)" ZSH completion To enable zsh completion please run these commands: autoload bashcompinit && bashcompinit eval "$(_PLATFORMIO_COMPLETE=source platformio)" eval "$(_PLATFORMIO_COMPLETE=source pio)" Note: For permanent command completion you need to place commands above to ~/.3.zshrc file. To enable Bash completion for platformio subcommands you need to put into your . 4. exe to Path feature on the “Customize” stage. Frequently Asked Questions 397 .1 General What is PlatformIO? Please refer to What is PlatformIO? What is .x and install it.7. Windows Users. PlatformIO Documentation. Command completion in Terminal Bash completion Bash completion support will complete subcommands and parameters.20.bashrc or ~/. otherwise python command will not be available. Install Python Interpreter PlatformIO Core is written in Python that is installed by default on the all popular OS except Windows. DON’T FORGET to select Add python.pioenvs directory Please refer to envs_dir.

See features of ex- tra_script option for Project Configuration File platformio.PlatformIO Documentation. 398 Chapter 4. Contents . Release 3.1 PlatformIO IDE Please refer to PlatformIO IDE Frequently Asked Questions. Before/Pre and After/Post build actions PlatformIO Build System has rich API that allows to attach different pre-/post actions (hooks).ini. Troubleshooting Installation [Errno 1] Operation not permitted Answered in issue #295.3.

4.20. see issue #272. PlatformIO Documentation.3. PlatformIO: command not found || An error “pkg_resources. Unix Users: You can make “symlinks” from platformio program to the bin directory which is included in $PATH. which platformio is equal to /usr/local/bin/platformio. Release 3. Building ARM toolchain: cc1plus: error while loading shared libraries See related answers for error while loading shared libraries. Program “platformio” not found in PATH Where is platformio binary installed? Run this command in Terminal # for Unix which platformio echo $PATH Windows OS where platformio echo %PATH% For example. For example.1 Windows AttributeError: ‘module’ object has no attribute ‘packages’ Answered in issue #252. Windows UnicodeDecodeError: ‘ascii’ codec can’t decode byte Answered in issue #143. then PATH (wiki) should con- tain /usr/local/bin directory.DistributionNotFound” Please upgrade SetupTools package: [sudo] pip uninstall setuptools [sudo] pip install setuptools # Then re-install PlatformIO [sudo] pip uninstall platformio [sudo] pip install platformio Miscellaneous Serial does not work with panStampAVR board Answered in issue #144. Frequently Asked Questions 399 .

PlatformIO Documentation. Monitoring a serial port breaks upload Answered in issue #384.1 Archlinux: libncurses.7.git") • Produce less noisy output when -s/--silent options are used for platformio init and platformio run com- mands (issue #850) • Use C++11 by default for CLion IDE based projects (pull #873) • Escape project path when Glob matching is used • Do not overwrite project configuration variables when system environment variables are set • Handle dependencies when installing non-registry package/library (VCS. month) • List built-in libraries based on development platforms with a new pio lib builtin command • Show detailed info about a library using pio lib show command (issue #430) • List supported frameworks. local folder) (issue #913) • Fixed package installing with VCS branch for Python 2.5: cannot open shared object file Answered in issue #291. archive. Release Notes PlatformIO 3.3.0) 3.16.3.0 3. Contents . --monitor-rts and --monitor-dtr to pio test command (allows to avoid automatic board’s auto-reset when gathering test results) • Added support for templated methods in *.3 (issue #885) • Development platform Atmel AVR 400 Chapter 4.cpp converter (pull #858) • Package version as “Repository URL” in manifest of development version ("version": "https:// github. Release 3. week. SDKs with a new pio platform frameworks command • Visual Studio Code extension for PlatformIO (issue #619) • Added new options --no-reset.com/user/repo.3.0 (2017-03-27) • PlatformIO Library Registry statistics with new pio lib stats command – Recently updated and added libraries – Recent and popular keywords – Featured libraries (today.1 (2017-05-27) • Hotfix for recently updated Python Requests package (2.so.ino to *.

3. Release 3.6/rev137 • Development platform Lattice iCE40 – Improved path management for Windows – Custom uploader using $UPLOAD build variable (issue #6) – Updated toolchain-icestorm to 1. SparkFun Serial 7-Segment Display.v files in “iverilog” builder) • Development platform Linux ARM – Added support for Samsung ARTIK boards (520. PlatformIO Documentation. SparkFun Qduino Mini. Peripherals UART.3.3. Storage SDCard • Development platform Freescale Kinetis – Added support for ARM mbed events library – Updated ARM mbed OS to 5. Atmel ATSAMW25-XPRO boards – Added support for ARM mbed events library – Updated ARM mbed OS to 5. Release Notes 401 .3.1.6/rev137 • Development platform Silicon Labs EFM32 – Added support for ARM mbed events library 4.1 – New boards: EnviroDIY Mayfly. 1020) and ARTIK SDK (issue #353) • Development platform Nordic nRF51 – Added support for ARM mbed events library – Updated ARM mbed OS to 5. SparkFun ATmega128RFA1 Dev Board. Hornbill ESP32 Minim – Updated Arduino Core – Updated ESP-IDF framework to the latest v2.0 (loaed all vlib/*. Coap Server.6/rev137 • Development platform NXP LPC – Added support for LPCXpresso4337 and y5 LPC11U35 mbug boards – Added support for ARM mbed events library – Updated ARM mbed OS to 5.21.17 – Fixed ISO C99 warning for EnviroDIY Mayfly board – Fixed firmware uploading to Arduino Leonardo • Development platform Atmel SAM – Added support for Adafruit Circuit Playground Express.0 Release Candidate 1 – New ESP IDF examples: BLE.0 (added -C option to “time” target) – Updated toolchain-iverilog to 1.6. 530. Arduino MKRZero.6/rev137 – Updated Arduino SAM & SAMD Core to 1. Generic ATTiny2313 and ATTiny4313 – Set fuse bits with new target named fuses (issue #865) – Updated Arduino Core to 1. The Things Uno.6.10.11 • Development platform Espressif 32 – Added support for Simba & Pumbaa Frameworks – Added new boards: Node32s.3. 710. Hornbill ESP32 Dev.

1 (2016-12-07) • Changed default LDF Mode from chain+ to chain 3. etc.3. u-blox EVK-ODIN-W2. ST Nucleo F303ZE.3. NAMote72. #elif.) (issue #837) • Added new LDF Modes: chain+ and deep+ and set chain+ as default • Added global lib_extra_dirs option to [platformio] section for Project Configuration File “plat- formio. Contents .6/rev137 – Updated Arduino Core to v1.ini” (issue #515) • Unix shell-style wildcards for upload_port (issue #839) • Refactored Library Dependency Finder (LDF) C/C++ Preprocessor for conditional syntax (#ifdef.0. MTS Dragonfly. Release 3. #define.3. #else.0 (2016-12-07) • PIO Remote™.35 • Development platform TI TIVA – Updated Energia Core to 1.6/rev137 • Development platform ST STM32 – Added support for new boards: Espotel LoRa Module. Your devices are always with you! – Over-The-Air (OTA) Device Manager – OTA Serial Port Monitor – OTA Firmware Updates – Continuous Deployment – Continuous Delivery • Integration with Cloud IDEs – Cloud9 – Codeanywhere – Eclipse Che • PIO Account and PLATFORMIO_AUTH_TOKEN environment variable for CI systems (issue #808.2.ini” (is- sue #792) • Custom boards per project with boards_dir option in Project Configuration File “platformio.6/rev137 • Development platform Teensy – Added support for ARM mbed events library – Updated ARM mbed OS to 5.2. MultiTech xDot – Added support for ARM mbed events library – Updated ARM mbed OS to 5. issue #467) • Inject system environment variables to configuration settings in Project Configuration File “platformio.3.2 3. #if.1 – Updated ARM mbed OS to 5.PlatformIO Documentation.ini” (issue #842) 402 Chapter 4.

1.21.1 4.2 – Updated Arduino Core for LightBlue Bean/LightBlue Bean+ boards – Handle “micronucleus” tool base on upload protocol (issue #18) – Fixed programming of ATtiny boards when “micronucleus” uploader is used (issue #13) • Development platform Atmel SAM – Added support for SODAQ SAMD boards (issue #796) – Updated ARM mbed OS to 5. Release Notes 403 .1.4/rev126 • Development platform Microchip PIC32 – Add support for MikroElektronika Clicker 2 board – Updated ChipKIT Core to v1.4/rev126 – Fixed issue with uploading to Arduino Zero on programming USB port (issue #805) • Development platform Espressif 32 – Initial support for Espressif IDF and Arduino for ESP32 • Development platform Espressif 8266 – Added support for ESPrectro board – Additional target “buildfs” to accompany “uploadfs” (issue #6) • Development platform Freescale Kinetis – Updated ARM mbed OS to 5.3. PlatformIO Documentation.1 • Enabled caching by default for API requests and Library Manager (see enable_cache setting) • Native integration with VIM/Neovim using neomake-platformio plugin • Changed a default exit combination for Device Monitor from Ctrl+] to Ctrl+C • Improved detecting of ARM mbed media disk for uploading • Improved Project Generator for CLion IDE when source folder contains nested items • Improved handling of library dependencies specified in library.9.rules checker for Linux OS • Development platform Atmel AVR – Added support for SODAQ AVR boards (issue #796) – Added support for Pololu A-Star boards (issue #804) – Added support for Altair board (issue #15) – Added support for ATmega328PB MCUs – Updated Atmel AVR toolchain to GCC 4.3.json manifest (issue #814) • Improved Library Dependency Finder (LDF) for circular dependencies • Show vendor version of a package for platformio platform show command (issue #838) • Fixed unable to include SSH user in lib_deps repository url (issue #830) • Fixed merging of ”.gitignore” files when re-initialize project (issue #848) • Fixed issue with PATH auto-configuring for upload tools • Fixed 99-platformio-udev. Release 3.

1 – Updated Microchip PIC32 GCC-based toolchain and “pic32prog” tool • Development platform Nordic nRF51 – Added BBC micro:bit B(S130) board (issue #3) – Updated ARM mbed OS to 5. please use lib_deps instead • Return valid exit code from plaformio test command • Fixed Project Generator for CLion IDE using Windows OS (issue #785) • Fixed SSL Server-Name-Indication for Python < 2.4/rev126 • Development platform ST STM32 – Added support for Maple Mini Original and Maple Mini Bootloader 2.1.4/rev126 – Use serial protocol by default for STM32Duino-based boards (issue #14) – Fixed linker error “undefined reference to _sbrk” for STM32Duino (issue #10) • Development platform Teensy – Updated Arduino Framework for Teensy to v131 – Updated ARM mbed OS to 5.1.4/rev126 – Added support for Teensy Audio feature (build_flags = -D USB_AUDIO) • Development platform TI MSP430 – Upgrade development platform with the latest GCC toolchains and Energia framework (issue #1.7. issue #3) 3.1.4/rev126 • Development platform Silicon Labs EFM32 – Updated ARM mbed OS to 5. Contents .0 (2016-09-19) • New! Dynamic variables/templates for Project Configuration File “platformio. Release 3.1.1.PlatformIO Documentation. issue #2.4/rev126 – Fixed “undefined reference to _sbrk’” error for RFDuino (‘issue #1) • Development platform NXP LPC – Updated ARM mbed OS to 5.1.3.9 (issue #774) • Development platform Espressif 8266 – Add support for SparkFun Blynk Board – Created staging branch to work with development version of Arduino Framework 404 Chapter 4.ini” (issue #705) • Summary about processed environments (issue #777) • Implemented LocalCache system for API and improved a work in off-line mode • Improved Project Generator when custom --project-option is passed to platformio init command • Deprecated lib_force option.0 (issue #22) – Added support for new boards: ST 32F769IDISCOVERY – Updated ARM mbed OS to 5.

ST Nucleo F429ZI. mBuino. y5 nRF51822 mbug. LPCXpresso824-MAX. Supported boards: BluePill F103C8. PlatformIO’s Global or Custom (issue #475) – Install library by name (issue #414) 4. NXP LPC11C24. Generic STM32F103RE. Switch Science mbed LPC824 • Development platform ST STM32 – New Arduino framework for ST STM32 . EA LPC11U35 QuickStart Board. Smeshlink xbed LPC1768. Hexiwear • Development platform Nordic nRF51 – Added support for new boards: Seeed Arch BLE. ST Nucleo F446ZE. LPCXpresso11U68.1 (2016-09-08) • Disabled temporary SSL for PlatformIO services (issue #772) 3. FRDM-KL27Z. ST Nucleo F746ZG. ST Nucleo L432KC. isolated build scripts (issue #479) – Embedded Board compatibility with more than one development platform (issue #456) • Library Manager 3. NXP LPC11U34. Bambino-210E.21. Seeed Xadow M0. MicroNFCBoard. development platforms and dependent packages – Custom package repositories – External embedded board configuration files.0. DipCor- tex M3. Generic STM32F103R8. Generic STM32F103RB.STM32Duino. ST Nucleo L011K4. NXP LPC11U37.json” and open source development platforms – Semantic Versioning for platform commands.3. Switch Science mbed TY51822r3.0 (2016-09-07) • PlatformIO Plus – Local and Embedded Unit Testing (issue #408. Release 3.5 and 3. Generic STM32F103RC. FRDM-KL43Z. NXP LPC2460. Olimexino STM32 – Added support for new ARM mbed based boards: ST 32F746GDISCOVER. Seeed Arch GPRS V2.0 – Project dependencies per build environment using lib_deps option (issue #413) – Semantic Versioning for library commands and dependencies (issue #410) – Multiple library storages: Project’s Local. CoCo-ri-Co!.0. issue #519) • Decentralized Development Platforms – Development platform manifest “platform. PlatformIO Documentation. Release Notes 405 . NXP LPC800-MAX.1 • Development platform Freescale Kinetis – Added support for new boards: FRDM-KL26Z. MultiTech mDot. Seeed Arch Link. JKSoft Wallbot BLE • Development platform NXP LPC – Added support for new boards: ARM mbed LPC11U24 (+CAN). ST Nucleo F207ZG. NXP LPC2368. Generic STM32F103C8. ST Nucleo F767ZI.6 boards – Updated Arduino Framework for Teensy to v130 3. Seeed Arch Max • Development platform Teensy – Added support for Teensy 3.

3. Hg. source filters and build script from library.json (issue #289) – Allowed to disable library archiving (*. ARM mbed code registry.ar) (issue #719) – Show detailed build information about dependent libraries (issue #617) – Support for the 3rd party manifests (Arduino IDE “library. SVN) (issue #498) – Strict search for library dependencies (issue #588) – Allowed library. • Print human-readable information when processing environments without -v.properties” and ARM mbed “module. Contents .1 – Depend on a library using VCS URL (GitHub.json to specify sources other than PlatformIO’s Repository (issue #461) – Search libraries by headers/includes with platformio lib search --header option • New Intelligent Library Build System – Library Dependency Finder that interprets C/C++ Preprocessor conditional macros with deep search be- havior – Check library compatibility with project environment before building (issue #415) – Control Library Dependency Finder for compatibility using lib_compat_mode option – Custom library storages/directories with lib_extra_dirs option (issue #537) – Handle extra build flags. Now.29 (issue #2) 406 Chapter 4. --project-option. issue #765) • Added license field to library. Git. Release 3.PlatformIO Documentation.json”) • Removed enable_prompts setting.6 • Development platform Atmel SAM – Fixed missing analog ports for Adafruit Feather M0 Bluefruit (issue #2) • Development platform Nordic nRF51 – Added support for BBC micro:bit board (issue #709) • Development platform ST STM32 – Added support for BluePill F103C8 board (pull #2) • Development platform Teensy – Updated Arduino Framework to v1. --verbose option (issue #721) • Improved INO to CPP converter (issue #659.ini (issue #740) • Fixed wrong line number for INO file when #warning directive is used (issue #742) • Stopped supporting Python 2. all PlatformIO CLI is non-blocking! • Switched to SSL PlatformIO API • Renamed platformio serialports command to platformio device • Build System: Attach custom Before/Pre and After/Post actions for targets (issue #542) • Allowed passing custom project configuration options to platformio ci and platformio init com- mands using -O.json (issue #522) • Warn about unknown options in project configuration file platformio.

DISK. Phoenix 1.11. Release 3.21.2. MIDI.11. DISK_SDFLASH. etc) (issue #710) • Fixed missing trailing \ for the source files list when generate project for Qt Creator IDE (issue #711) • Split source files to HEADERS and SOURCES when generate project for Qt Creator IDE (issue #713) 2.gitignore file when re-generate/update project data • Ignore [platformio] section from custom project configuration file when platformio ci –project-conf com- mand is used • Fixed missed --boot flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Ar- duino Due.0 2.0 & 2.) (issue #722) • Switched to built-in GCC LwIP library for Espressif development platform • Added support for local --echo for Serial Port Monitor (issue #733) • Updated udev rules for the new STM32F407DISCOVERY boards (issue #731) • Implemented firmware merging with base firmware for Nordic nRF51 development platform (issue #500.0. WifInfo • Added support for Arduino M0 Pro board (issue #472) • Added support for Arduino MKR1000 board (issue #620) 4. Release Notes 407 .3.2 (2016-08-02) • Improved support for Microchip PIC32 development platform and ChipKIT boards (issue #438) • Added support for Pinoccio Scout board (issue #52) • Added support for Teensy USB Features (HID.11.1 PlatformIO 2. PlatformIO Documentation. SERIAL_HID.0 (2016-06-28) • New ESP8266-based boards: Generic ESP8285 Module. issue #533) • Fixed Project Generator for ESP8266 and ARM mbed based projects (resolves incorrect linter errors) • Fixed broken LD Script for Element14 chipKIT Pi board (issue #725) • Fixed firmware uploading to Atmel SAMD21-XPRO board using ARM mbed framework (issue #732) 2. M0 Pro and Tian boards (issue #472) • Added support for Microchip chipKIT Lenny board • Updated Microchip PIC32 Arduino framework to v1.1 (2016-07-12) • Added support for Arduino M0. etc.1 • Documented uploading of EEPROM data (from EEMEM directive) • Added Rebuild C/C++ Project Index target to CLion and Eclipse IDEs • Improved project generator for CLion IDE • Added udev rules for OpenOCD CMSIS-DAP adapters (issue #718) • Auto-remove project cache when PlatformIO is upgraded • Keep user changes for .

10.6 (issue #695) • Improved a check of program size before uploading to the board • Fixed issue with ARM mbed framework -u _printf_float and -u _scanf_float when parsing $LINKFLAGS • Fixed issue with ARM mbed framework and extra includes for the custom boards.4 (2016-06-04) • Show udev warning only for the Linux OS while uploading firmware 408 Chapter 4. Contents . Release 3.3.1 • Added support for Adafruit Feather M0.0 • Better removing unnecessary flags using build_unflags option (issue #698) • Fixed issue with platformio init --ide command for Python 2.0. the game system the size of a credit card • Updated ARM mbed framework package to v121 • Check program size before uploading to the board (issue #689) • Improved firmware uploading to Arduino Leonardo based boards (issue #691) • Fixed issue with -L relative/path when parsing build_flags (issue #688) 2.6 2.10.0 (2016-06-13) • Added support for emonPi. such as Seeeduino Arch Pro 2. SparkFun SAMD21 and SparkFun SAMD21 Mini Breakout boards (issue #520) • Updated Arduino ESP8266 core for Espressif platform to 2.PlatformIO Documentation. the OpenEnergyMonitor system (issue #687) • Added support for SPL framework for STM32F0 boards (issue #683) • Added support for Arduboy DevKit.9.2 (2016-06-15) • Added support for ST Nucleo L031K6 board to ARM mbed framework • Process build_unflags option for ARM mbed framework • Updated Intel ARC32 Arduino framework to v1.10.10.3.3 (2016-06-15) • Fixed issue with platformio init --ide command 2.1 (2016-06-13) • Re-submit a package to PyPI 2.

ATmega324.1 2. ATTiny45 and ATTiny85 (issue #636) • Added support for MightyCore boards: ATmega1284. ATmega644.ino to .2 (2016-06-02) • Simplified Continuous Integration with AppVeyor (issue #671) • Automatically add source directory to CPPPATH of Build System • Added support for Silicon Labs SLSTK3401A (Pearl Gecko) and MultiTech mDot F411 ARM mbed based boards • Added support for MightyCore ATmega8535 board (issue #585) • Added stlink as the default uploader for STM32 Discovery boards (issue #665) • Use HTTP mirror for Package Manager in a case with SSL errors (issue #645) • Improved firmware uploading to Arduino Leonardo/Due based boards • Fixed bug with env_default when pio run -e is used • Fixed issue with src_filter option for Windows OS (issue #652) • Fixed configuration data for TI LaunchPads based on msp430fr4133 and msp430fr6989 MCUs (issue #676) • Fixed issue with ARM mbed framework and multiple definition errors on FRDM-KL46Z board (issue #641) • Fixed issue with ARM mbed framework when abstract class breaks compile for LPC1768 (issue #666) 2.1 (2016-04-30) • Handle prototype pointers while converting *.Org boards: Arduino Leonardo ETH.cpp (issue #639) 2. ATmega32. Release Notes 409 .9. the game system the size of a credit card • Updated 99-platformio-udev. Release 3.3 (2016-06-03) • Added support for Arduboy.21. Arduino Yun Mini.9.rules for Linux OS • Refactored firmware uploading to the embedded boards with SAM-BA bootloader 2.0 (2016-04-28) • Project generator for CodeBlocks IDE (issue #600) • New Lattice iCE40 FPGA development platform with support for Lattice iCEstick FPGA Evaluation Kit and BQ IceZUM Alhambra FPGA (issue #480) • New Intel ARC 32-bit development platform with support for Arduino/Genuino 101 board (issue #535) • New Microchip PIC32 development platform with support for 20+ different PIC32 based boards (issue #438) • New RTOS and build Framework named Simba (issue #412) • New boards for ARM mbed framework: ST Nucleo F410RB. Arduino Industrial 101 and Linino One (issue #472) • Added support for Generic ATTiny boards: ATTiny13. AT- mega16 and ATmega8535 (issue #585) 4. ATmega164.9. ATTiny24.9. ST Nucleo L073RZ and BBC micro:bit • Added support for Arduino.3. PlatformIO Documentation. ATTiny25.

1 • Added support for TI MSP430 boards: TI LaunchPad w/ msp430fr4133 and TI LaunchPad w/ msp430fr6989 • Updated Arduino core for Espressif platform to 2.cpp (issue #610) • Forced -std=gnu++11 for Atmel SAM development platform (issue #601) • Don’t check OS type for ARM mbed-enabled boards and ST STM32 development platform before uploading to disk (issue #596) • Fixed broken compilation for Atmel SAMD based boards except Arduino Due (issue #598) • Fixed firmware uploading using serial port with spaces in the path • Fixed cache system when project’s root directory is used as src_dir (issue #635) 2.3. Contents .8.ino to *.0 (issue #544) 410 Chapter 4.PlatformIO Documentation. Release 3.5 (issue #366) • PlatformIO Library Registry in JSON format! Implemented --json-output and --page options for plat- formio lib search command (issue #604) • Allowed to specify default environments env_default which should be processed by default with platformio run command (issue #576) • Allowed to unflag(remove) base/initial flags using build_unflags option (issue #559) • Allowed multiple VID/PID pairs when detecting serial ports (issue #632) • Automatically add -DUSB_MANUFACTURER with vendor’s name (issue #631) • Automatically reboot Teensy board after upload when Teensy Loader GUI is used (issue #609) • Refactored source code converter from *.2.5 (2016-03-07) • Project generator for NetBeans IDE (issue #541) • Created package for Homebrew Mac OS X Package Manager: brew install platformio (issue #395) • Updated Arduino core for Espressif platform to 2.8.1.0 (issue #627) • Updated native SDK for ESP8266 to 1.hex files (issue #568) • Updated the support for Sanguino Boards (issue #586) • Better handling of used boards when re-initialize/update project • Improved support for non-Unicode user profiles for Windows OS • Disabled progress bar for download operations when prompts are disabled • Fixed multiple definition errors for ST STM32 development platform and ARM mbed framework (issue #571) • Fixed invalid board parameters (reset method and baudrate) for a few ESP8266 based boards • Fixed “KeyError: ‘content-length”’ in PlatformIO Download Manager (issue #591) 2.6 (2016-03-22) • Launched PlatformIO Community Forums (issue #530) • Added support for ARM mbed-enabled board Seed Arch Max (STM32F407VET6) (issue #572) • Improved DNS lookup for PlatformIO API • Updated Arduino Wiring-based framework to the latest version for Atmel AVR/SAM development platforms • Updated “Teensy Loader CLI” and fixed uploading of large .

8.0.8.ino to *.3 (2016-02-02) • Better integration of PlatformIO Builder with PlatformIO IDE Linter • Fixed issue with removing temporary file while converting *.8.cpp • Fixed missing dependency (mbed framework) for Atmel SAM development platform (issue #487) 2.cpp (issue #506) 2.21.8.2 (2016-01-29) • Corrected RAM size for NXP LPC1768 based boards (issue #484) • Exclude only test and tests folders from build process • Reverted -Wl.ini when initializing project otherwise cre- ate base src directory (issue #536) • Fixed issue with incorrect handling of user’s build flags where the base flags were passed after user’s flags to GCC compiler (issue #528) • Fixed issue with Project Generator when optional build flags were passed using system environment variables: PLATFORMIO_BUILD_FLAGS or PLATFORMIO_BUILD_SRC_FLAGS • Fixed invalid detecting of compiler type (issue #550) • Fixed issue with updating package which was deleted manually by user (issue #555) • Fixed incorrect parsing of GCC -include flag (issue #552) 2. PlatformIO Documentation.ini which allows to specify custom flash chip frequency for Espressif development platform (issue #501) • Added board_flash_mode option to Project Configuration File platformio.-whole-archive hook for ST STM32 and mbed 2.3. ESP-WROOM-02. SparkFun ESP8266 Thing Dev.1 • Added support for the ESP8266 ESP-07 board to Espressif (issue #527) • Improved handling of String-based CPPDEFINES passed to extra build_flags (issue #526) • Generate appropriate project for CLion IDE and CVS (issue #523) • Use src_dir directory from Project Configuration File platformio.ino to *.ini which allows to specify cus- tom flash chip mode for Espressif development platform • Handle new environment variables PLATFORMIO_UPLOAD_PORT and PLATFORMIO_UPLOAD_FLAGS (issue #518) • Fixed issue with CPPDEFINES which contain space and break PlatformIO IDE Linter (IDE issue #34) • Fixed unable to link C++ standard library to Espressif platform build (issue #503) • Fixed issue with pointer (char* myfunc()) while converting from *. Release 3. ESPresso Lite 1.4 (2016-02-17) • Added support for the new ESP8266-based boards (ESPDuino. ThaiEasyElec ESPino) to Espressif development platform • Added board_f_flash option to Project Configuration File platformio. Release Notes 411 .1 (2016-01-29) • Fixed a bug with Project Initialization in PlatformIO IDE 4.0 & 2.

Update installed platforms and libraries (issue #427) • Updated Teensy Arduino Framework to 1. Eclipse IDE.PlatformIO Documentation.1 2.7. VIM): Build.7 • Documented firmware uploading for Atmel AVR development platform using Programmers: AVR ISP. Release 3. Sublime Text.1 (2016-01-06) • Initial support for Arduino Zero board (issue #356) • Added support for completions to Atom text editor using . pip install platformio rocks! • Implemented uploading files to file system of ESP8266 SPIFFS (including OTA) (issue #382) • Added support for the new Adafruit boards Bluefruit Micro and Feather (issue #403) • Added support for RFDuino (issue #319) • Project generator for Emacs text editor (pull #404) • Updated Arduino framework for Atmel AVR development platform to 1. Emacs.6. PlatformIO does not require SCons to be installed in your system.2 (issue #429) • Fixed CMakeLists. Upload SPIFFS image.txt add_executable has only one source file (issue #421) 2.3.8. Clean.clang_complete • Generate default targets for supported IDE (CLion. AVRISP mkII.0 (2016-01-29) • PlatformIO IDE for Atom (issue #470) • Added pio command line alias for platformio command (issue #447) • Added SPL-Framework support for Nucleo F401RE board (issue #453) • Added upload_resetmethod option to Project Configuration File platformio.27 (issue #434) • Fixed uploading of EEPROM data using uploadeep target for Atmel AVR development platform • Fixed project generator for CLion IDE (issue #422) • Fixed package shasum validation on Mac OS X 10. Significantly simplified installation process of PlatformIO. Parallel Programmer and Arduino as ISP • Fixed issue with current Python interpreter for Python-based tools (issue #417) 412 Chapter 4. USBtinyISP.0 (2015-12-30) Happy New Year! • Moved SCons to PlatformIO packages. Upload. Contents .ini which allows to specify custom upload reset method for Espressif development platform (issue #444) • Allowed to force output of color ANSI-codes or to disable progress bar even if the output is a pipe (not a tty) using Environment variables (issue #465) • Set 1Mb SPIFFS for Espressif boards by default (issue #458) • Exclude test* folder by default from build process • Generate project for IDEs with information about installed libraries • Fixed builder for mbed framework and ST STM32 platform 2. USBasp.7. Upload using Programmer.11.

custom Flash Size.2 (2015-12-21) • Removed SCons from requirements list.flash. Release Notes 413 .21. PlatformIO will try to install it automatically.0.0 4.travis.0 (2015-12-08) • Improved code builder for parallel builds (up to 4 times faster than before) • Generate . Moved common configuration for ESP8266 MCU to esp8266.ini (issue #368) • Improved PlatformIO installation on the Mac OS X El Capitan 2. Adafruit HUZZAH ESP8266. otherwise users need to install it manually • Fixed ChunkedEncodingError when SF connection is broken (issue #356) 2. SweetPea ESP-210.6.3. WeMos D1. Olimex MOD-WIFI-ESP8266(-DEV). Release 3.ld (issue #379) • Improved documentation for Espressif development platform: OTA update.1 (2015-12-18) • Added support for the new ESP8266-based boards (SparkFun ESP8266 Thing.9 & 1.0 (2015-12-15) • Install only required packages depending on build environment (issue #308) • Added support for Raspberry Pi WiringPi framework (issue #372) • Implemented Over The Air (OTA) upgrades for Espressif development platform. ESPino.gitignore files for embedded projects by default (issue #354) • Removed prompt with “auto-uploading” from platformio init command and added --enable-auto-uploading option (issue #352) • Fixed incorrect behaviour of platformio serialports monitor in pair with PySerial 3.6.6. WeMos D1 mini) to Espressif development platform • Created public platformio-pkg-ldscripts repository for LD scripts.1 2.6. Upload Speed and CPU frequency • Fixed reset method for Espressif NodeMCU (ESP-12E Module) (issue #380) • Fixed issue with code builder when build path contains spaces (issue #387) • Fixed project generator for Eclipse IDE and “duplicate path entries found in project path” (issue #383) 2.common.yml CI and . NodeMCU 0. (issue #365) • Updated CMSIS framework and added CMSIS support for Nucleo F401RE board (issue #373) • Added support for Espressif ESP8266 ESP-01-1MB board (ready for OTA) • Handle upload_flags option in platformio.5. PlatformIO Documentation.3 (2015-12-21) • Restored support for Espressif ESP8266 ESP-01 1MB board (ready for OTA) • Fixed invalid ROM size for ESP8266-based boards (issue #396) 2.

3. ST 32F469IDISCOVERY.PlatformIO Documentation.ini (issue #313) • Fixed firmware uploading for nordicrf51 development platform (issue #316) • Fixed installation on Mac OS X El Capitan (issue #312) • Fixed project generator for CLion IDE under Windows OS with invalid path to executable (issue #326) • Fixed empty list with serial ports on Mac OS X (isge #294) • Fixed compilation error TWI_Disable not declared for Arduino Due board (issue #329) 2. ST 32L476GDISCOVERY. Atmel SAML21-XPRO-B.lock” error for Windows • Fixed relative include path for preprocessor using build_flags (issue #271) 2.json.0 (2015-12-01) • Added support for the new boards: Atmel ATSAMR21-XPRO. Release 3. Atmel SAMD21- XPRO. Contents .0 (issue #307) • Updated Arduino AVR/SAM frameworks to 1. ST Nucleo F031K6.4 (2015-10-13) • Full support of CLion IDE including code auto-completion (issue #132) • PlatformIO command completion in Terminal for bash and zsh • Added support for ubIQio Ardhat board (pull #302) • Install SCons automatically and avoid error: option --single-version-externally-managed not recognized (issue #279) • Use Teensy CLI Loader for upload of .0 (issue #345) • Added to FAQ explanation of Can not compile a library that compiles without issue with Arduino IDE (issue #331) • Fixed ESP-12E flash size (pull #333) • Fixed configuration for LowPowerLab MoteinoMEGA board (issue #335) • Fixed “LockFailed: failed to create appstate.6.3.4. ST Nucleo F042K6.1 2.5 (2015-11-18) • Added support of libOpenCM3 framework for Nucleo F103RB board (issue #309) • Added support for Espressif ESP8266 ESP-12E board (NodeMCU) (issue #310) • Added support for pySerial 3.hex files on Mac OS X (issue #306) • Fixed missing framework-mbed package for teensy platform (issue #305) 414 Chapter 4.4. ST Nucleo F303K8 and ST Nucleo L476RG • Updated Arduino core for Espressif platform to 2.1 (2015-12-01) • Restored PLATFORMIO macros with the current version 2.6 (issue #321) • Upload firmware using external programmer via platformio run –target program target (issue #311) • Fixed handling of upload port when board option is not specified in platformio.3.0.

1 2.21. linux_x86_64. linux_i686. Release 3.3.2 (2015-09-10) • Allowed to use ST-Link uploader for mbed-based projects • Explained how to use lib directory from the PlatformIO based project in readme. windows_x86 development platforms (issue #263) • Added PlatformIO Demo page to documentation • Simplified installation process of PlatformIO (issue #274) • Significantly improved Project Generator which allows to integrate with the most popular IDE • Added short -h help option for PlatformIO and sub-commands • Updated mbed framework • Updated tool-teensy package for Teensy platform (issue #268) • Added FAQ answer when Program “platformio” not found in PATH (issue #272) • Generate “readme. linux_arm.3.1 (2015-09-06) • Fixed critical issue when platformio init –ide command hangs PlatformIO (issue #283) 2. Release Notes 415 .txt which will be auto- matically generated using platformio init command (issue #273) • Found solution for “pip/scons error: option –single-version-externally-managed not recognized” when install PlatformIO using pip package manager (issue #279) • Fixed firmware uploading to Arduino Leonardo board using Mac OS (issue #287) • Fixed SConsNotInstalled error for Linux Debian-based distributives 2.3. PlatformIO Documentation.3.0 (2015-09-05) • Added native.3.3 (2015-10-02) • Added support for LightBlue Bean board (pull #292) • Added support for ST Nucleo F446RE board (pull #293) • Fixed broken lock file for “appstate” storage (issue #288) • Fixed ESP8266 compile errors about RAM size when adding 1 library (issue #296) 2.txt” for project “lib” directory (issue #273) • Use toolchain’s includes pattern include* for Project Generator (issue #277) • Added support for Adafruit Gemma board to atmelavr platform (pull #256) • Fixed includes list for Windows OS when generating project for Eclipse IDE (issue #270) • Fixed AttributeError: 'module' object has no attribute 'packages' (issue #252) 4.

3.0 (2015-07-01) • Allowed to exclude/include source files from build process using src_filter (issue #240) • Launch own extra script before firmware building/uploading processes (issue #239) • Specify own path to the linker script (ld) using build_flags option (issue #233) • Specify library compatibility with the all platforms/frameworks using * symbol in library.5 version for atmelsam platform (issue #251) • Updated sdk-esp8266 package for espressif platform • Fixed incorrect arguments handling for platformio serialports monitor command (issue #248) 2.1. Contents .1 (2015-06-09) • Automatically detect upload port using VID:PID board settings (issue #231) • Improved detection of build changes • Avoided LibInstallDependencyError when more than 1 library is found (issue #229) 416 Chapter 4. Espressif and Teensy cores.2.2 (2015-06-21) • Fixed broken link to SCons installer 2.2. Release 3.1 2.2. Espres- sif ESP8266 SDK (issue #246) • Fixed stk500v2_command(): command failed (issue #238) • Fixed IDE project generator when board is specified (issue #242) • Fixed relative path for includes when generating project for IDE (issue #243) • Fixed ESP8266 native SDK exception (issue #245) 2. Framework mbed. SAM.1.json • Added support for new embedded boards: ST 32L0538DISCOVERY and Delta DFCM-NNN40 to Framework mbed • Updated packages for Framework Arduino (AVR.PlatformIO Documentation.2 (2015-07-30) • Integration with Atom IDE • Support for off-line/unpublished/private libraries (issue #260) • Disable project auto-clean while building/uploading firmware using platformio run –disable-auto-clean option (issue #255) • Show internal errors from “Miniterm” using platformio serialports monitor command (issue #257) • Fixed platformio serialports monitor –help information with HEX char for hotkeys (issue #253) • Handle “OSError: [Errno 13] Permission denied” for PlatformIO installer script (issue #254) 2.1 (2015-07-17) • Project generator for CLion IDE (issue #132) • Updated tool-bossac package to 1.

ini (issue #148) 4.0.4 version (issue #212) • Handle Atmel AVR Symbols when initialising project for IDE (issue #216) • Fixed bug with converting *.21.1 2.im room (issue #174) • Global -f. Release Notes 417 .6.ino to *. Release 3. • Use include directories from toolchain when initialising project for IDE (issue #210) • Added support for new WildFire boards from Wicked Device to atmelavr platform • Updated Arduino Framework to 1.0 (2015-06-03) • Added Silicon Labs EFM32 siliconlabsefm32 development platform (issue #226) • Integrate PlatformIO with Circle CI and Shippable CI • Described in documentation how to create/register own board for PlatformIO • Disabled “nano.2 (2015-05-27) • Fixed libraries order for “Library Dependency Finder” under Linux OS 2.0.cpp • Fixed failing with platformio init --ide eclipse without boards (issue #217) 2.0 (2015-05-22) Made in Paradise • PlatformIO as Continuous Integration (CI) tool for embedded projects (issue #108) • Initialise PlatformIO project for the specified IDE (issue #151) • PlatformIO CLI 2.specs” for ARM-based platforms (issue #219) • Fixed “ConnectionError” when PlatformIO SF Storage is off-line • Fixed resolving of C/C++ std libs by Eclipse IDE (issue #220) • Fixed firmware uploading using USB programmer (USBasp) for atmelavr platform (issue #221) 2.3.ini (issue #134) • Specify libraries which are compatible with build environment using lib_use option in platformio. PlatformIO Documentation. This information will be used by PlatformIO-API. --force option which will force to accept any confirmation prompts (issue #152) • Run project with platformio run –project-dir option without changing the current working directory (issue #192) • Control verbosity of platformio run command via -v/--verbose option • Add library dependencies for build environment using lib_install option in platformio.1 (2015-05-27) • Handle new environment variable PLATFORMIO_BUILD_FLAGS • Pass to API requests information about Continuous Integration system.0: “platform” related commands have been moved to platformio platforms subcom- mand (issue #158) • Created PlatformIO gitter.1.0.

RepRap.6. LowPowerLab.1 (issue #183) • Added GDB as alternative uploader to ststm32 platform (issue #175) • Added examples with preconfigured IDE projects (issue #154) • Fixed firmware uploading under Linux OS for Arduino Leonardo board (issue #178) • Fixed invalid “mbed” firmware for Nucleo F411RE (issue #185) • Fixed parsing of includes for PlatformIO Library Dependency Finder (issue #189) • Fixed handling symbolic links within source code directory (issue #190) • Fixed cancelling any previous definition of name. issue #131) • Added integration instructions for Visual Studio and Sublime Text IDEs 418 Chapter 4.3. TinyCircuits to atmelavr platform • Upgraded Arduino Framework to 1. BQ. LightUp.0 (2015-05-15) • Added support of Framework mbed for Teensy 3.4. issue #170) • Fixed exceptions with PlatformIO auto-updates when Internet connection isn’t active 1.0 1. RedBear- Lab.PlatformIO Documentation. Release 3.3.0 (2015-03-27) • Moved PlatformIO source code and repositories from Ivan Kravets account to PlatformIO Organisation (issue #138) • Added support for new Arduino based boards by SparkFun.1 (issue #179) • Disabled automatic updates by default for platforms.22 version (issue #162.5. Sanguino to atmelavr platform (issue #127. either built in or provided with a -D option (issue #191) 1.1 • Add more boards to PlatformIO project with platformio init –board command (issue #167) • Choose which library to update (issue #168) • Specify platformio init –env-prefix when initialise/update project (issue #182) • Added new Armstrap boards (issue #204) • Updated SDK for espressif development platform to v1.0 (2015-04-11) • Added espressif development platform with ESP01 board • Integrated PlatformIO with AppVeyor Windows based Continuous Integration system (issue #149) • Added support for Teensy LC board to teensy platform • Added support for new Arduino based boards by SparkFun. Quirkbot. Contents .3 version (issue #156) • Upgraded Energia Framework to 0101E0015 version (issue #146) • Upgraded Arduino Framework with Teensy Core to 1. packages and libraries (issue #171) • Fixed bug with creating copies of source files (issue #177) PlatformIO 1.

1 • Improved handling of multi-file *. Arduino Robot Motor and Arduino Yun 4. STM32F303xx. Release 3. SeeedStudio. FAT. issue #140) 1. Arduino Robot Control.21. Switch Science • Added nxplpc development platform with supported boards from CQ Publishing. PlatformIO Documentation. DSP.ino/pde sketches (issue #130) • Fixed wrong insertion of function prototypes converting *.2.x (issue #72) • Added new Arduino boards to atmelavr platform: Arduino NG. Arduino BT. USB.1 (2015-02-27) PlatformIO 1. NXP.1.x & 3. Ethernet. Outrageous Circuits. NGX Tech- nologies.recommended for production • Changed development status from beta to Production/Stable • Added support for ARM-based credit-card sized computers: Raspberry Pi. BeagleBone and CubieBoard • Added atmelsam development platform with supported boards: Arduino Due and Digistump DigiX (issue #71) • Added ststm32 development platform with supported boards: Discovery kit for STM32L151/152. STM32F407/417 lines and libOpenCM3 Framework (issue #73) • Added teensy development platform with supported boards: Teensy 2. Arduino Esplora. Release Notes 419 .0.ino/pde files when converting to *.ino/pde (issue #137. Solder Splash Labs.0 . Arduino Ethernet. Embedded Artists.0 (2015-03-20) • Added full support of mbed framework including libraries: RTOS.cpp (issue #100) 1. Switch Science. Nordic. • Added freescalekinetis development platform with Freescale Kinetis Freedom boards • Added nordicnrf51 development platform with supported boards from JKSoft.3. u-blox • Added support for ST Nucleo boards to ststm32 development platform • Created new Frameworks page in documentation and added to PlatformIO Web Site (issue #115) • Introduced online Embedded Boards Explorer • Automatically append define -DPLATFORMIO=%version% to builder (issue #105) • Renamed stm32 development platform to ststm32 • Renamed opencm3 framework to libopencm3 • Fixed uploading for atmelsam development platform • Fixed re-arranging the *. RedBearLab.0 (2015-03-05) • Implemented PLATFORMIO_* environment variables (issue #102) • Added support for SainSmart boards to atmelsam development platform • Added Project Configuration option named envs_dir • Disabled “prompts” automatically for Continuous Integration systems (issue #103) • Fixed firmware uploading for atmelavr boards which work within usbtiny protocol • Fixed uploading for Digispark board (issue #106) 1.

10.6 stable version • Fixed an issue with the libraries that are git repositories (issue #49) • Fixed handling of assembly files (issue #58) • Fixed compiling error if space is in user’s folder (issue #56) • Fixed AttributeError: ‘module’ object has no attribute ‘disable_warnings’ when a version of requests package is less then 2. #55) • Added src_dir option to [platformio] section of platformio. #50. Contents .1 (2015-01-02) • Added --json-output option to platformio list.3.0 • Fixed bug with invalid process’s “return code” when PlatformIO has internal error (issue #81) • Several bug fixes.PlatformIO Documentation.10.0 0.0 (2015-01-01) Happy New Year! • Implemented platformio boards command (issue #11) • Added support of Engduino boards for atmelavr platform (issue #38) • Added --board option to platformio init command which allows to initialise project with the specified em- bedded boards (issue #21) 420 Chapter 4.ini which allows to redefine location to project’s source directory (issue #83) • Added --json-output option to platformio boards and platformio search commands which allows to return the output in JSON format (issue #42) • Allowed to ignore some libs from Library Dependency Finder via lib_ignore option • Improved platformio run command: asynchronous output for build process. Release 3.10.2 (2015-01-06) • Fixed an issue with --json-output (issue #42) • Fixed an exception during platformio upgrade under Windows OS (issue #45) 0.1 • Added support for Adafruit boards to atmelavr platform: Adafruit Flora and Adafruit Trinkets (issue #65) • Added support for Digispark boards to atmelavr platform: Digispark USB Development Board and Digispark Pro (issue #47) • Covered code with tests (issue #2) • Refactored Library Dependency Finder (issues #48.4. timing and detailed information about environment configuration (issue #74) • Output compiled size and static memory usage with platformio run command (issue #59) • Updated framework-arduino AVR & SAM to 1. increased stability and performance improvements PlatformIO 0. platformio serialports list and platformio lib list commands which allows to return the output in JSON format (issue #42) • Fixed missing auto-uploading by default after platformio init command 0.

3. Added new option --project-dir where you can specify another path to directory where new project will be initialized (issue #31) • Added Migration Manager which simplifies process with upgrading to a major release • Added Telemetry Service which should help us make PlatformIO better • Implemented PlatformIO AppState Manager which allow to have multiple .json with the new fields: frameworks.platformio states.21.9.) • Renamed author field to authors and allowed to setup multiple authors per library in library.8.2 (2014-12-10) • Replaced “dark blue” by “cyan” colour for the texts (issue #33) • Added new setting enable_prompts and allowed to disable all PlatformIO prompts (useful for cloud com- pilers) (issue #34) • Fixed compilation bug on Windows with installed MSVC (issue #18) 0.0 (2014-12-01) • Implemented platformio settings command • Improved platformio init command.json 4.1 • Added example with uploading firmware via USB programmer (USBasp) for atmelavr MCUs (issue #35) • Automatic detection of port on platformio serialports monitor (issue #37) • Allowed auto-installation of platforms when prompts are disabled (issue #43) • Fixed urllib3’s SSL warning under Python <= 2. uninstall. update and etc. • Refactored Package Manager • Download Manager: fixed SHA1 verification within Cygwin Environment (issue #26) • Fixed bug with code builder and built-in Arduino libraries (issue #28) 0.9.7.2 (issue #39) • Fixed bug with Arduino USB boards (issue #40) 0. PlatformIO Documentation. Release Notes 421 .9. Release 3.0 (2014-10-19) • Avoided trademark issues in library. platforms and dependencies (issue #17) • Switched logic from “Library Name” to “Library Registry ID” for all platformio lib commands (install.1 (2014-12-05) • Ask user to install platform (when it hasn’t been installed yet) within platformio run and platformio show commands • Improved main documentation • Fixed “OSError: [Errno 2] No such file or directory” within platformio run command when PlatformIO isn’t installed properly • Fixed example for Eclipse IDE with Tiva board (issue #32) • Upgraded Eclipse Project Examples to latest Luna and PlatformIO releases 0.

util (issue #9) • Fixed bug with auto-conversation from Arduino *.1 • Added option to specify “maintainer” status in authors field • New filters/options for platformio lib search command: --framework and --platform 0. Contents .4. Release 3.1 (2014-10-06) • Fixed bug with order for includes in conversation from INO/PDE to CPP • Automatic detection of port on upload (issue #15) • Fixed lib update crashing when no libs are installed (issue #19) 0.3. ELF and etc.0 (2014-09-24) • Implemented new [platformio] section for Configuration File with home_dir option (issue #14) • Implemented Library Manager (issue #6) 0.6.7.cpp for Arduino/Energia frameworks (issue #7) • Added Arduino example with external library (Adafruit CC3000) • Implemented platformio upgrade command and “auto-check” for the latest version (issue #8) • Fixed an issue with “auto-reset” for Raspduino board • Fixed a bug with nested libs building 0.) • Allowed to skip default packages via platformio install –skip-default-package option • Added tools for Raspberry Pi platform 422 Chapter 4.0 (2014-07-31) • Implemented platformio serialports command • Allowed to put special build flags only for src files via src_build_flags environment option • Allowed to override some of settings via system environment variables such as: PLATFORMIO_SRC_BUILD_FLAGS and PLATFORMIO_ENVS_DIR • Added --upload-port option for platformio run command • Implemented (especially for SmartAnthill) platformio run -t uploadlazy target (no dependencies to framework libs.0 (2014-08-04) • Improved nested lookups for libraries • Disabled default warning flag “-Wall” • Added auto-conversation from *.cpp 0.0 (2014-08-09) • Implemented platformio serialports monitor (issue #10) • Fixed an issue ImportError: No module named platformio.PlatformIO Documentation.ino to valid *.ino to *.5.7.

0.0 (2014-06-13) • Birth! First alpha release Migrating from 2.x to v3. For a broader overview.1. PlatformIO Documentation. see what is new in the v3. Contents • Migrating from 2.x to v3. Release 3.22.0 – Major PlatformIO CLI changes – What is new * Development Platforms * Library Manager and Intelligent Build System * Command Line Interface * Project Configuration File platformio.x to 3.0 release announcement. Use this section as a general guide to upgrading from v2.0 (2014-06-15) • Resolved issue #1 “Build referred libraries” • Renamed project’s “libs” directory to “lib” • Added arduino-internal-library example • Changed to beta status 0.3.2.1 (2014-06-21) • Fixed auto-installer for Windows OS (bug with %PATH% customisations) 0.3.x with emphasis on major changes.x.x to 3. and what is been removed.0 (2014-06-21) • Allowed to pass multiple “SomePlatform” to install/uninstall commands • Added “IDE Integration” section to README with Eclipse project examples • Created auto installer script for PlatformIO (issue #3) • Added “Super-Quick” way to Installation section (README) • Implemented “build_flags” option for environments (issue #4) 0.1 • Added support for Microduino and Raspduino boards in atmelavr platform 0.x to 3. what is new.0 Guidance on how to upgrade from PlatformIO v2.ini 4. Migrating from 2.0 423 .3. PlatformIO 3 is not backwards compatible with v2.

json • espressif development platform has been renamed to Platform espressif8266 • PlatformIO 3. isolated build scripts • Embedded Board compatibility with more than one development platform Library Manager and Intelligent Build System • Powerful and super-fast Library Dependency Finder (LDF) that interprets C/C++ Preprocessor conditional macros with deep search behavior • Project dependencies per build environment using projectconf_lib_deps option • Depend on a library using VCS URL (GitHub. Use PlatformIO 3. Now. Release 3.0.x automatically.x platformio platforms platformio platform platformio serialports platformio device platformio settings set enable_prompts false Removed! Now. See Custom Development Platform guide for details.x PlatformIO 3. What is new Development Platforms We have introduced Manifest File platform. all PlatformIO 3. LD scripts. Git.0 CLI is 100% non-blocking! PlatformIO 2.PlatformIO Documentation. board configs.x commands for the new projects.x and v3. You can fork it. • Manifest File platform.0 Platform Manager • Custom package repositories • External embedded board configuration files.0 with sub-processing without any risk! This table shows the CLI changes between v2. package requirements) are located in own repository. we recommend to use PlatformIO 3.0 decentralized architecture.ini Major PlatformIO CLI changes Note: PlatformIO 3.3. platform related things (build scrips. PlatformIO 2. modify or create custom. Hg. Nevertheless.1 – What is removed * Command Line Interface * Project Configuration File platformio. Contents .x development platforms according Plat- formIO 3.x commands will be converted to PlatformIO 3. SVN) • Install library by name • Strict search for library dependencies 424 Chapter 4.x is 100% non-blocking! You do not need to use --force option or setup special PLATOFMRIO_SETTING_ENABLE_PROMPTS environment. ARM mbed code registry.0 open source development plat- forms. Here is the full list with PlatformIO 3.json and ported PlatformIO 2.

ar) • Show detailed build information about dependent libraries (Library Dependency Graph) • Support for the 3rd party manifests (Arduino IDE “library. PlatformIO’s Global or Custom • Allowed library. only check for new version --only-check platformio run By default.json”) • Build System: Attach custom Before/Pre and After/Post actions for targets using extra_script Command Line Interface We have added new commands and changed some existing ones.properties” and ARM mbed “module. only check for new version --only-check platformio platform New PlatformIO 3.0 Library Manager! Semantic Versioning. source filters and build script from library. prints only human-readable information when processing environments platformio run --verbose Print detailed processing information platformio settings set force_verbose true Force verbose output when processing environments (globally) platformio test PlatformIO Plus Unit Testing platformio update Do not update.x to 3. Here are the new or updated commands and options.ini --project-option platformio ci --verbose Print detailed information about build process platformio init Pass custom option from Project Configuration File platformio. PlatformIO Documentation. VCS support and external URL support. Migrating from 2.0 425 . platformio platform update Update only platform packages --only-packages platformio platform update Do not update.json • Allowed to disable library archiving (*. Command Description platformio boards Returns all supported boards by PlatformIO platformio boards Returns currently installed boards --installed platformio ci Pass custom option from Project Configuration File platformio.ini --project-option platformio lib --global Manage PlatformIO Global Library Storage platformio lib --storage-dir Manage Custom Library Storage platformio lib install New PlatformIO 3. Release 3. only check for new version --only-check 4.0 Platform Manager! Semantic Versioning.3. VCS support and external URL support platformio lib install Suppress progress reporting when install library --silent platformio lib install Allow to make a choice for all prompts when install library --interactive platformio lib search Search library by specific header file name (include) --header platformio lib update Do not update.22.json to specify sources other than PlatformIO’s Repository • Check library compatibility with project environment before building • Control Library Dependency Finder for compatibility using lib_compat_mode option • Custom library storages/directories with lib_extra_dirs option • Handle extra build flags.1 • Multiple library storages: Project’s Local.

x it was global library formio storage 426 Chapter 4.PATCH). Release 3.ini We have added new options and changed some existing ones. lib_dir Changed: Project’s own/private libraries. env lib_extra_dirs A list with extra directories/storages where Library Dependency Finder (LDF) will look for dependencies env lib_ldf_mode This option specifies how does Library Dependency Finder (LDF) should analyze dependencies (#include directives) env lib_compat_modeLibrary compatibility mode allows to control strictness of Library Dependency Finder (LDF) env test_ignore Ignore tests where the name matches specified patterns What is removed Command Line Interface The following commands have been dropped or changed in v3. Sec. Here are the new or updated options. test_dir Directory where Unit Testing engine will look for the tests formio env lib_deps Specify project dependencies that should be installed automatically to libdeps_dir before environment processing. Command Description platformio init Use platformio init --project-option instead of it with –enable-auto-uploading targets = upload value Project Configuration File platformio.3. env platform PlatformIO 3.PlatformIO Documentation.0.0 allows to use specific version of platform using Semantic Versioning (X.1 Project Configuration File platformio. Description tion plat.Z=MAJOR. libdeps_dir Internal storage where Library Manager will install project dependencies formio plat. Option Description tion plat.0. where in PlatformIO 2. Section Op.MINOR.Y.ini The following options have been dropped or changed in v3. Contents .

com: Develop easier with PlatformIO ecosystem 427 . Bibliography [Embedds] Embedds.

3. Release 3.1 428 Bibliography .PlatformIO Documentation.

–env-prefix 110 platformio-init command line option. 85 option. 136 platformio-account-show command line option. 92 platformio-remote-device-monitor command line platformio-platform-list command line option. 134 platformio command line option. 58 platformio-init command line option. 58 option. 58 platformio-platform-update command line option. 50 –disable-auto-clean platformio-boards command line option. 55 platformio-device-monitor command line option. 71 platformio-device-monitor command line option. 58 –monitor-rts platformio-remote-device-monitor command line platformio-test command line option. 63 –dtr platformio-lib-list command line option. -f platformio-test command line option. 91 –echo platformio-platform-frameworks command line op- platformio-device-monitor command line option. 61 –keep-build-dir –eol platformio-ci command line option. 83. 55 platformio-lib-install command line option. 58 tion. 111 platformio-platform-search command line option. 77 platformio-remote-device-monitor command line platformio-lib-show command line option. 123 platformio-lib-builtin command line option. 46 –page –help. 112 platformio-remote-device-monitor command line –exclude option. 112 –no-reset –force. 135 platformio-device-monitor command line option. 111 platformio-remote-device-list command line option. 135 option. 98 option. –encoding 100 platformio-device-monitor command line option. platformio-remote-device-monitor command line 105 option. 115 platformio-device-list command line option. 111 platformio-lib-update command line option. 112 platformio-boards command line option. 54 –monitor-dtr –exit-char platformio-test command line option. 56 platformio-run command line option. 60 platformio-remote-device-monitor command line –installed option. 77 –parity 429 . 58 –menu-char platformio-remote-device-monitor command line platformio-device-monitor command line option. 51 –build-dir –interactive platformio-ci command line option. 46 —quiet –ide platformio-device-monitor command line option. 51 platformio-remote-run command line option. 58 platformio-lib-search command line option. Index Symbols platformio command line option. 68 –core-packages –json-output platformio-update command line option. 112 platformio-ci command line option. -h platformio-lib-search command line option.

46 option. -f. 57 -l. 60 platformio-remote-device-monitor command line -P. 134 platformio-test command line option. –project-option platformio-lib-search command line option. –board platformio-account-token command line option. 114 –storage platformio-remote-test command line option. 47 platformio-run command line option. 111 platformio-ci command line option. –storage-dir platformio-test command line option. 62 –upload-port -d. –rtscts 105 platformio-device-monitor command line option. 119 platformio-remote-device-monitor command line platformio-update command line option. –author platformio-account-login command line option. 123 -e. –filter 49 platformio-device-monitor command line option. –keyword –xonxoff platformio-lib-search command line option. 63 platformio-run command line option. –environment platformio-test command line option. –framework platformio-platform-install command line option. 134 -i. 134 -k. 55 –rts platformio-init command line option. 117 platformio-lib-builtin command line option. 48 platformio-lib-search command line option. 117 108 platformio-run command line option. –header –without-package platformio-lib-search command line option. 111 –with-package -f. 136 option. 117 platformio-remote-test command line option. -u platformio-remote-test command line option. platformio-remote-test command line option. 51 platformio-ci command line option. 57 platformio-init command line option. 112 option. –project-dir –skip-default platformio-init command line option. –project-conf option. 60 platformio-device-monitor command line option. 123 –test-port platformio-test command line option. 134 platformio-lib command line option. –lib platformio-remote-device-monitor command line platformio-ci command line option. 134 platformio-remote-run command line option. 95 -i.3. 62 platformio-test command line option. 57 -c. 122 platformio-account-login command line option. 95 platformio-lib-search command line option. 114 –username. 95 platformio-remote-run command line option. 58 –version platformio-remote-device-monitor command line platformio command line option. 134 platformio-remote-test command line option. –name -O. 118 platformio-lib command line option. 111 -d. 57 platformio-remote-device-monitor command line platformio-remote-device-monitor command line option. 111 –regenerate -b. 55 –password. 54 option. 111 -n. –baud platformio-device-monitor command line option. –only-check platformio-remote-device-monitor command line platformio-lib-update command line option. 76 platformio-device-monitor command line option. 55 430 Index . Release 3. 118 platformio-test command line option. –ignore –without-uploading platformio-remote-test command line option. –working-dir platformio-remote-run command line option. 91 option. 77 platformio-platform-install command line option. 76 platformio-ci command line option. 58 platformio-device-monitor command line option.1 platformio-device-monitor command line option. –global platformio-remote-test command line option. 48 platformio-test command line option. 117 -d. 57 platformio-remote-update command line option. 60 platformio-platform-install command line option. 134 platformio-account-register command line option. 76 –raw -b. -p -a. 117 platformio-account-forgot command line option.PlatformIO Documentation. 76 –without-building -g. 111 platformio-platform-update command line option. 114 platformio-remote-agent-start command line option.

286. 160 –exclude. 160 -O. -p. 162 105 PLATFORMIO_SETTING_CHECK_PLATFORMS_INTERVAL. 160 -b. –only-packages PLATFORMIO_SETTING_CHECK_PLATFORMIO_INTERVAL. platformio-boards command line option 387 –installed. 54 PLATFORMIO_LIB_DIR. 49 platformio-account-show command line option E –json-output. 152. 161 -P. 123. 114 –version. 161 –json-output. 144. 160 platformio-remote-agent-start command line option. 77 PLATFORMIO_SETTING_ENABLE_SSL. 50 environment variable platformio-account-token command line option CI. 48 platformio-run command line option. 160 -l. 58 PLATFORMIO_SETTING_AUTO_UPDATE_PLATFORMS. 57 162 platformio-remote-device-monitor command line PLATFORMIO_SETTING_FORCE_VERBOSE. platformio-platform-update command line option. 115. PLATFORMIO_SETTING_CHECK_LIBRARIES_INTERVAL. -p. Release 3. 161. 144. 143. 380. 51 PLATFORMIO_AUTH_TOKEN. 161 108 PLATFORMIO_UPLOAD_PORT. 48 platformio-remote-test command line option. 46 platformio-run command line option. 135 –username. 55 PLATFORMIO_HOME_DIR. –project-conf. 48. 111 55. 55 platformio-account-login command line option platformio-remote-run command line option. –force-remote PLATFORMIO_SRC_BUILD_FLAGS. 152. –lib. –target –help. 108 162 -p. -u. option. -f. –verbose –username. -h. 142. 151. 118 –username. PLATFORMIO_UPLOAD_FLAGS. 56 PLATFORMIO_REMOTE_AGENT_DIR. 51 PLATFORMIO_BUILD_FLAGS. –echo. 144. 55 PLATFORMIO_EXTRA_SCRIPT. 123 –force. 47 platformio-ci command line option. –share PLATFORMIO_TEST_DIR. 55 PLATFORMIO_FORCE_COLOR. 161 -s.1 platformio-remote-agent-start command line option. 162 -p. 160 –keep-build-dir. 51 PLATFORMIO_BOARDS_DIR. 117 PLATFORMIO_SRC_FILTER. 160 –regenerate.—quiet. 115 PLATFORMIO_SRC_DIR. –verbose. 160 –json-output. platformio-device-monitor command line option. 46 -t. PlatformIO Documentation. 58 –eol. 61 P platformio-lib-install command line option. 160. 143. 160 -v. 135. 144. 161 platformio-device-list command line option PLATFORMIO_LIBDEPS_DIR. 55 PLATFORMIO_LIB_EXTRA_DIRS. –platform 162 platformio-lib-search command line option. –board. 58 Index 431 .3. 154. 55 PLATFORMIO_ENVS_DIR. 118. 58 161 –dtr. 156. 123 platformio-account-register command line option platformio-test command line option. 123 platformio-account-forgot command line option -v. 114 –password. 46 platformio-remote-run command line option. 161 -s. 54 PLATFORMIO_DISABLE_PROGRESSBAR. 161 platformio-remote-run command line option. 55 PLATFORMIO_DATA_DIR. 160 platformio-remote-test command line option. -u. –port PLATFORMIO_SETTING_ENABLE_TELEMETRY. 68 platformio command line option platformio-run command line option. 150. –project-option. platformio-ci command line option 389 –build-dir. 162 -r. 145. 58 162 –encoding. –silent platformio-init command line option. 161 platformio-device-monitor command line option PLATFORMIO_SETTING_AUTO_UPDATE_LIBRARIES. 50. 149. -u.

–silent. 123 platformio-platform-search command line option -t.1 –exit-char. 118 -p. 95 –upload-port. 118 platformio-platform-frameworks command line option platformio-remote-update command line option –json-output. 108 –rts. 91 -r. 71 -d. 61 –echo. 91 -v.3. 117 -k. –storage-dir. –global.PlatformIO Documentation. –filter. –only-packages. 123 –with-package. 105 –menu-char. 112 -s. –environment. –working-dir. –project-dir. 114 –json-output. 112 -b. 76 platformio-remote-test command line option -i. 77 -t. –project-dir. 111 -g. –only-check. 92 -c. –platform. 77 –without-uploading. –project-option. 123 platformio-platform-update command line option platformio-test command line option –json-output. 117 –json-output. 110 -f. 108 –xonxoff. 61 –parity. 60 –eol. 111 –storage. –share. –name. 57 platformio-remote-device-list command line option -b. 135 432 Index . 63 -f. 95 -d. –port. 58 -c. –verbose. 111 –env-prefix. 60 –encoding. –project-dir. –environment. 111 -O. 63 -b. –verbose. –baud. 123 –without-package. –only-check. –force-remote. 95 –disable-auto-clean. 58 -p. 68 platformio-remote-run command line option -s. 119 platformio-platform-install command line option platformio-run command line option –skip-default. –silent. 117 –json-output. –environment. –ignore. 57 —quiet. 60 –menu-char. 122 –json-output. 62 –rtscts. 114 platformio-lib-search command line option -e. 112 platformio-init command line option –dtr. –target. 60 –exit-char. –only-check. 111 –ide. 68 –disable-auto-clean. 114 -f. –name. 117 -n. –keyword. –baud. 57 –json-output. 57 platformio-remote-agent-start command line option –raw. –force-remote. –port. 98 -s. 117 platformio-lib-update command line option -i. 83. 123 platformio-platform-list command line option -e. 115 –page. 114 –json-output. 100 -v. 105 –monitor-dtr. 108 –rtscts. 111 –json-output. 57 -n. 77 –test-port. 111 platformio-lib-builtin command line option –xonxoff. –target. –filter. 76 –upload-port. 57 -s. 58 platformio-remote-device-monitor command line option -p. 58 -d. 85 -e. 77 -r. 117 -c. –silent. Release 3. –author. –framework. 105 –parity. 112 -d. 62 –rts. 118 platformio-lib-show command line option -d. –header. 111 –interactive. –board. –project-dir. 76 -v. 114 -a. 123 –json-output. 111 platformio-lib-install command line option -p. –verbose. 112 -d. 115 platformio-lib-list command line option –upload-port. 76 –without-building. 111 platformio-lib command line option –raw.

286. 143 PLATFORMIO_SETTING_FORCE_VERBOSE. 134 –upload-port. 151 PLATFORMIO_TEST_DIR. 123. 144 PLATFORMIO_DISABLE_PROGRESSBAR. 135 PLATFORMIO_SRC_BUILD_FLAGS. 154 PLATFORMIO_LIBDEPS_DIR. 135 platformio-update command line option –core-packages. 149. 135 –no-reset. 160 PLATFORMIO_ENVS_DIR. 50. 152 Index 433 . 134 –test-port. 145 PLATFORMIO_BUILD_FLAGS. 136 -c. 118. 136 PLATFORMIO_AUTH_TOKEN. 152 PLATFORMIO_UPLOAD_PORT. 143 PLATFORMIO_LIB_EXTRA_DIRS. 144 PLATFORMIO_UPLOAD_FLAGS. 134 –without-uploading.3. –ignore. 134 -v. 48. –environment. Release 3. 142 PLATFORMIO_LIB_DIR. 144 PLATFORMIO_EXTRA_SCRIPT. 115. 134 -i.1 –monitor-rts. 380. 134 -e. 150 PLATFORMIO_SRC_DIR. 55. 389 PLATFORMIO_DATA_DIR. 144 PLATFORMIO_SRC_FILTER. –only-check. –verbose. 387 PLATFORMIO_BOARDS_DIR. –project-dir. 134 -d. PlatformIO Documentation. 134 –without-building. 156 PLATFORMIO_HOME_DIR.