Provided by: platformio_4.3.4-2_all bug

NAME

       platformio - PlatformIO Documentation

       A place where Developers and Teams have true Freedom! No more hardware or software lock-ins!

       • Open source, maximum permissive Apache 2.0 license

       • Cross-platform IDE and Unified Debugger

       • Static Code Analyzer and Remote Unit Testing

       • Multi-platform and Multi-architecture Build System

       • Firmware File Explorer and Memory Inspection.

       Social: Twitter | LinkedIn | Facebook | Bintray | Community

CONTENTS

   What is PlatformIO?
       A place where Developers and Teams have true Freedom! No more hardware or software lock-ins!

   ContentsAwardsPhilosophyTechnologiesProblematicHow does it work?

       PlatformIO  is  a  cross-platform, cross-architecture, multiple framework, professional tool for embedded
       systems engineers and for software developers who write applications for embedded products.

   Awards
       PlatformIO was nominated for the year's best Software and Tools in the 2015/16 IoT Awards.

       A native PlatformIO IDE extension for Microsoft ide_vscode editor is the  most  rated/reviewed  extension
       with over 800 five-star reviews in the whole Microsoft Marketplace. It also was installed by over 750,000
       unique developers around the world.

   Philosophy
       PlatformIO's  unique  philosophy  in  the  embedded  market  provides developers with a modern integrated
       development environment (ide) that works cross-platform, supports  many  different  software  development
       kits  (SDKs) or frameworks, and includes sophisticated debugging (piodebug), unit testing (unit_testing),
       automated code analysis (piocheck), and remote management (pioremote).  It  is  architected  to  maximize
       flexibility  and choice by developers, who can use either graphical or command line editors (piocore), or
       both.

       PlatformIO is a must-have tool for professional embedded systems engineers who develop solutions on  more
       than  one  specific platform. In addition, by having a decentralized architecture, PlatformIO offers both
       new and existing developers a quick  integration  path  for  developing  commercial-ready  products,  and
       reduces the overall time-to-market.

       And it runs on any one of your favorite modern operating systems (macOS, MS Windows, Linux, FreeBSD).

   Technologies
       PlatformIO  applies the latest scalable and flexible software technology to the embedded market – an area
       traditionally served by complex software tools that experienced hardware engineers have learned over time
       (often painfully so). Instead, with PlatformIO, users can be hobbyists or professionals. They can  import
       the  classic  Arduino  "Blink"  sketch  or  develop   a  sophisticated low-level embedded C program for a
       commercial product. Example code for any supported framework can be compiled and  uploaded  to  a  target
       platform in minutes.

       The  build  system  structure  automatically  tags software dependencies and applies them using a modular
       hierarchy that takes away the usual complexity and pain. Developers no longer have to manually  find  and
       assemble  an environment of toolchains, compilers, and library dependencies to develop applications for a
       specific target. With PlatformIO, clicking the compile button will bring in  all  necessary  dependencies
       automatically.  It's  analogous  to  if you were a furniture designer, and your CAD program had a "build"
       button that caused a robot to fetch all the necessary pieces and fasteners and correctly assemble them.

       piocore is a unique, developed-from-scratch  build  system  that  removes  the  usual  pain  of  software
       integration,  packaging,  and  library  dependencies  that developers encounter when they move beyond the
       bounds of a specific SDK or example embedded  application.  It  can  be  used  with  a  variety  of  code
       development  environments  and  allows  easy  integration  with numerous cloud platforms and web services
       feeds. The user experiences no barriers to getting started quickly: no license fees, no legal  contracts.
       The  user  maintains  full  flexibility  of  the  build environment because the tools are open source and
       permissively licensed (no permission needed to modify them, and no requirement to share changes.)

   Problematic
       • The main problem which repulses people from the embedded  world  is  a  complicated  process  to  setup
         development  software  for  a specific MCU/board: toolchains, proprietary vendor's IDE (which sometimes
         isn't free) and what is more, to get a computer with OS where that software is supported.

       • Multiple hardware platforms (MCUs, boards) require different toolchains, IDEs, etc, and,  respectively,
         spending time on learning new development environments.

       • Finding proper libraries and code samples showing how to use popular sensors, actuators, etc.

       • Sharing  embedded  projects between team members, regardless of an operating system they prefer to work
         with.

   How does it work?
       Without going too deep into PlatformIO implementation details, work cycle of the project developed  using
       PlatformIO is as follows:

       • Users choose board(s) interested in projectconf

       • Based on this list of boards, PlatformIO downloads required toolchains and installs them automatically.

       • Users  develop  code  and  PlatformIO  makes sure that it is compiled, prepared and uploaded to all the
         boards of interest.

   PlatformIO IDE
       PlatformIO IDE is the next-generation integrated development environment for IoT.

       • Cross-platform build system without external dependencies to the OS software:

            • 800+ boards

            • 35+ platforms

            • 20+ frameworks

       • piodebug

       • pioremote

       • unit_testing

       • 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 piocore and CLI tool (pio, platformio)

       • Built-in piohome.

                                                         ----

       We provide official packages (plugins, extensions) for the most popular IDEs and text editors.

       NOTE:
          In our experience, ide_vscode offers better system performance, and users have found it easier to  get
          started

   PlatformIO for VSCode
       Visual  Studio  Code  is  a lightweight but powerful source code editor which runs on your desktop and is
       available for Windows, macOS and Linux. It comes with built-in support  for  JavaScript,  TypeScript  and
       Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Python, PHP, Go) and
       runtimes (such as .NET and Unity).

       Install PlatformIO for VSCode / Get started .SS PlatformIO for CLion

       The  CLion  is a cross-platform C/C++ IDE for Linux, OS X, and Windows. CLion includes such features as a
       smart editor, code generation, code quality assurance, automated refactorings, on-the-fly code  analysis,
       project manager, integrated version control systems and debugger.

       Install PlatformIO for CLion / Get started .SS PlatformIO Core (CLI)

       PlatformIO Core (CLI tool) is a heart of whole PlatformIO ecosystem and consists of

       • Multi-platform Build System

       • Development platform and package managers

       • librarymanager

       • ldf

       • Serial Port Monitor

       • Integration components (ide and ci).

       PlatformIO  Core  is  written  in  Python  and  works  on  Windows,  macOS,  Linux, FreeBSD and ARM-based
       credit-card sized computers (Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK, etc.).

       PlatformIO Core provides a rich and documented Command Line Interface (CLI).  The other  PlatformIO-based
       software  and IDEs are based on PlatformIO Core CLI, such as pioide. In other words, they wrap PlatformIO
       Core with own GUI.

       NOTE:
          Please note that you do not need to install PlatformIO Core if you are going to use pioide. PlatformIO
          Core is built into PlatformIO IDE and you will be able to use it within PlatformIO IDE Terminal.

          If you need PlatformIO Core commands outside PlatformIO IDE, please piocore_install_shell_commands.

   Demo
   Contents"Blink Project"Used in demoPlatform ManagerUsed in demoLibrary ManagerUsed in demoOver-the-Air update for ESP8266Used in demo

   Blink Project
       [image]

   Used in demo
       1. Source code of Wiring Blink Example

       2. cmd_run command

       3. platformio run -t upload command.

   Platform Manager
       [image]

   Used in demo
       1. userguide_platform

       2. cmd_platform_list command

       3. platformio platform search avr command

       4. platformio platform show teensy command

       5. cmd_platform_update command.

   Library Manager
       [image]

   Used in demo
       1. cmd_lib

       2. platformio lib search 1-wire command

       3. platformio lib install 54 command

       4. platformio lib search -f mbed command

       5. platformio lib search -k rf command

       6. platformio lib search radiohead command

       7. platformio lib install 124 --version "1.40" command

       8. platformio lib show 124 command

       9. cmd_lib_update command.

   Over-the-Air update for ESP8266
       .SS Used in demo

       1. cmd_run command

       2. platformio run -t upload command.

   Installation
       NOTE:
          Please note that you do not need to install piocore if you are going to use pioide. piocore  is  built
          into PlatformIO IDE and you will be able to use it within PlatformIO IDE Terminal.

          If you need piocore outside PlatformIO IDE, please Install Shell Commands.

       PlatformIO  Core  is  written  in  Python  and  works  on  Windows,  macOS,  Linux, FreeBSD and ARM-based
       credit-card sized computers (Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK, etc.).

       • System requirementsInstallation MethodsInstaller ScriptSuper-Quick (Mac / Linux)Local Download (Mac / Linux / Windows)Python Package ManagermacOS HomebrewVirtual EnvironmentPrerequisitesCreatingDevelopment VersionInstall Shell CommandsUnix and Unix-likeMethod 1Method 2WindowsUninstall PIO Core and dependent packagesIntegration with custom applications (extensions, plugins)PrerequisitePython InterpreterInstaller ScriptWorkflowStep 1. Where is PlatformIO Core installed?Step 2. Install PlatformIO CoreTroubleshooting

   System requirements
       Operating System
              Windows, macOS, Linux, FreeBSD, Linux ARMv6+

       Python Interpreter
              Python 3.5+ (Python 2.7 is not recommended, support for it will be removed in the next  releases).
              See detailed instruction on how to faq_install_python for Windows.

       Terminal Application
              All  commands below should be executed in Command-line application (Terminal). For macOS and Linux
              OS - Terminal application, for Windows OS – cmd.exe application.

       Access to Serial Ports (USB/UART)
              Windows Users: Please check that you have correctly installed USB driver from board manufacturer

              Linux Users:

              • Please install faq_udev_rules

              • Raspberry Pi users, please read this article Enable serial port on Raspberry Pi.

   Installation Methods
       Please choose ONE of the following methods:

       • Installer ScriptSuper-Quick (Mac / Linux)Local Download (Mac / Linux / Windows)Python Package ManagermacOS HomebrewVirtual EnvironmentPrerequisitesCreating

   Installer Script
       WARNING:
          PlatformIO DOES NOT require administrative/sudo permissions. Please install using default user account
          WITHOUT EXTRA PERMISSIONS.

   Super-Quick (Mac / Linux)
       To install or upgrade PlatformIO Core paste that at a Terminal prompt:

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

          # or using `curl`

          curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -o get-platformio.py
          python3 get-platformio.py

          # or using `wget`

          wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py
          python3 get-platformio.py

   Local Download (Mac / Linux / Windows)
       To install or upgrade PlatformIO Core, download (save as...)   get-platformio.py  script.  Then  run  the
       following:

          # change directory to folder where is located downloaded "get-platformio.py"
          cd /path/to/dir/where/is/located/get-platformio.py/script

          # run it
          python get-platformio.py

       On Windows OS it may look like:

          # change directory to folder where is located downloaded "get-platformio.py"
          cd C:\path\to\dir\where\is\located\script\get-platformio.py

          # run it
          python.exe get-platformio.py

       NOTE:
          If  you  need  to  have  access  to  platformio  or platformio.exe commands from other applications or
          terminal in your OS, please Install Shell Commands.

   Python Package Manager
       WARNING:
          We recommend using this method ONLY FOR ci use cases or where your have full  permissions  to  install
          PlatformIO Core into the global scope of your OS.

          For  personal  using, and avoiding maintenance and upgrade issues, we HIGHLY RECOMMEND using Installer
          Script which installs PlatformIO Core into an isolated virtual environment and does  not  affect  your
          OS.

       The  latest  stable version of PlatformIO Core may be installed or upgraded via Python Package Manager (‐
       pip) as follows:

          pip install -U platformio

   macOS Homebrew
       The latest stable version of PlatformIO may be installed or upgraded via macOS Homebrew Packages  Manager
       (brew) as follows:

          brew install platformio

   Virtual Environment
       PlatformIO  Core may be installed into isolated Python environment. This method is very good if you don't
       want to install PlatformIO Core Python's dependencies (packages) into your global  system  scope.  pioide
       uses this method to install PlatformIO Core.

       Default and recommended environment folder is "projectconf_pio_core_dir/penv".  You can print environment
       folder path using the next command in your system terminal:

          python -c "import os; print(os.path.join(os.getenv('PLATFORMIO_CORE_DIR', os.path.join(os.path.expanduser('~'), '.platformio')), 'penv'))"

          ######################## Examples
          # Windows
          # C:\Users\UserName\.platformio\penv

          # Linux
          # ~/.platformio/penv
          # /home/username/.platformio/penv

          # macOS
          # ~/.platformio/penv
          # /Users/username/.platformio/penv

   Prerequisites
       1. Please  remove  existing  PlatformIO  Core environment folder if exists.  See above command how to get
          path to environment folder.

       2. Please check that you have a valid Python interpreter running  a  next  command  in  system  terminal.
          Python 2.7.9+ or Python 3.5+ is recommended.

             python --version

             # or, for Unix (Linux, Mac), you can use `python2` or `python3` aliases
             python2 --version
             python3 --version

          WARNING:
             Windows Users: If you already tried to install pioide and did not get success, please open system's
             Control  Panel  >  Installed Programs, and check if PlatformIO IDE tried to install an own isolated
             Python 2.7 version. Please uninstall it. Also is good to uninstall all Python interpreters  from  a
             system and install manually the latest Python using faq_install_python guide.

       3. Make  sure  virtualenv  --help command exists in a system, otherwise, please install it manually using
          pip install virtualenv or pip2 install virtualenv command.

          If  pip  (Python  Package  Manager)  does  not  exists,  you  have  to  install   it   manually.   See
          https://pip.pypa.io/en/stable/installing/

   Creating
       1. Create  a  folder which contains all the necessary executables to use the packages that PIO Core would
          need using virtualenv command:

             virtualenv /path/to/.platformio/penv

             # If you want to use a custom Python interpreter
             virtualenv --python=/path/to/custom/python /path/to/.platformio/penv

             # EXAMPLES
             # Windows
             virtualenv C:\Users\UserName\.platformio\penv
             virtualenv --python=C:\Python27\python.exe  C:\Users\UserName\.platformio\penv

             # Unix (Linux, Mac)
             virtualenv ~/.platformio/penv
             virtualenv -p python3 ~/.platformio/penv

       2. Activate virtual environment

             # Windows
             C:\Users\UserName\.platformio\penv\Scripts\activate

             # Unix (Linux, Mac)
             source /path/to/.platformio/penv/bin/activate
             # or
             . /path/to/.platformio/penv/bin/activate

       3. Install PIO Core into virtual environment

             pip install -U platformio

       If you plan to use PIO Core commands outside virtual environment, please Install Shell Commands.

   Development Version
       WARNING:
          If you use pioide, please enable development version:

          • ide_atom: "Menu PlatformIO: Settings > PlatformIO IDE > Use development version of PlatformIO Core"

          • ide_vscode: Set platformio-ide.useDevelopmentPIOCore to true in ide_vscode_settings.

       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.zip

       If you want to be up-to-date with the latest develop version of PlatformIO, then you need  to  re-install
       PlatformIO each time you see a new commits in PlatformIO GitHub repository (branch: develop) like so:

          pip install -U https://github.com/platformio/platformio-core/archive/develop.zip

       Or:

          pio upgrade --dev

       To revert to the latest stable version:

          pip uninstall platformio
          pip install -U platformio

   Install Shell Commands
       piocore consists of 2 standalone tools in a system:

       • platformio or pio (short alias) - piocore_userguide

       • piodebuggdb - alias of cmd_debug

       If  you  have  pioide  already  installed, you do not need to install piocore separately. Just link these
       tools with your shell:

       • Unix and Unix-likeMethod 1Method 2Windows

   Unix and Unix-like
       In Unix and Unix-like systems, there are multiple ways to achieve this.

   Method 1
       You can export PlatformIO executables' directory to the PATH environmental  variable.  This  method  will
       allow  you  to  execute platformio commands from any terminal emulator as long as you're logged in as the
       user PlatformIO is installed and configured for.

       If you use Bash as your default shell, you can do it by editing either ~/.profile or ~/.bash_profile  and
       adding the following line:

          export PATH=$PATH:~/.platformio/penv/bin

       If  you use Zsh, you can either edit ~/.zprofile and add the code above, or for supporting both, Bash and
       Zsh, you can first edit ~/.profile and add the code above, then edit ~/.zprofile and  add  the  following
       line:

          emulate sh -c '. ~/.profile'

       After everything's done, just restart your session (log out and log back in) and you're good to go.

       If you don't know the difference between the two, check out this page.

   Method 2
       You  can  create  system-wide symlinks. This method is not recommended if you have multiple users on your
       computer because the symlinks will be broken for other users and they will  get  errors  while  executing
       PlatformIO commands. If that's not a problem, open your system terminal app and paste these commands (MAY
       require administrator access sudo):

          ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio
          ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
          ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb

       After that, you should be able to run PlatformIO from terminal. No restart is required.

   Windows
       Please read one of these instructions How do I set or change the PATH system variable?

       You     need     to     edit     system     environment     variable     called     Path    and    append
       C:\Users\UserName\.platformio\penv\Scripts; path in the beginning of a list (please replace UserName with
       your account name).

   Uninstall PIO Core and dependent packages
       • Uninstall PIO Core tool

                # uninstall standalone PIO Core installed via `pip`
                pip uninstall platformio

                # uninstall Homebrew's PIO Core (only macOS users if you installed it via Homebrew before)
                brew uninstall platformio

       • Dependent packages, global libraries are installed to projectconf_pio_core_dir folder (in  user's  HOME
         directory). Just remove it.

   Integration with custom applications (extensions, plugins)
       We  recommend  using  PlatformIO  Core  Installer  Script  when  you  integrate  PlatformIO  Core into an
       application, such as extension or plugin for IDE. Examples that use this installer are:

       • platformio-node-helpers, is used by PlatformIO IDE for VSCode and PlatformIO IDE for Atom

   Prerequisite
   Python Interpreter
       PlatformIO Core Installer Script is written in Python and is compatible with Python 2.7+ and Python 3.5+.
       We highly recommend using Python 3.

       Python is installed by default on the most popular Unix OS (macOS,  Linux,  FreeBSD).   If  there  is  no
       Python on a user machine (you can check running python --version), we have 2 options:

       1. Ask the user to install Python 3 using our guide faq_install_python

       2. You  can automatically Download Portable Python 3 and unpack it in a cache folder of your application.
          Later, you can use unpacked_protable_python_dir/python.exe  for the installer script.

   Installer Script
       There are 2 options on how to work with PlatformIO Core Installer Script:

       1. Bundle get-platformio.py file into your application

       2. Download get-platformio.py file on demand.

       In both cases, you will need to have get-platformio.py script on the end-user machine.  You can  copy  or
       download it to a cache/temporary folder.

       A list of arguments and options for the installer script is available via

          python get-platformio.py --help

   Workflow
       We  will  describe  a  simple  workflow  on  how  to  automatically  install piocore for end-user of your
       application/extension. We assume that get-platformio.py script is already copied/downloaded and exists on
       the end-user machine. See above how to get it.

   Step 1. Where is PlatformIO Core installed?
       You should check the PlatformIO Core installation state each time when the user starts your  application.
       You need to call the Installer Script with check core arguments:

          python get-platformio.py check core

       This  command  returns  0  "exit  code"  when  PlatformIO Core is already installed and is ready for use,
       otherwise, the non-zero code of subprocess will be returned and you need to install PlatformIO Core  (see
       Step #2 below).

       If  you  need  to  have  full  information  about  PlatformIO  Core  installation  state, please run with
       --dump-state option and specify a folder or a full path where to save data in JSON format:

          get-platformio.py check core --dump-state tmpdir/pioinstaller-state.json

       Now,  read  JSON  file  and  use  platformio_exe  binary  to  call  PlatforIO   Core   using   CLI   (see
       piocore_userguide). You can also export penv_bin_dir into system environment PATH variable and platformio
       command will be available without a full path.

       Example of pioinstaller-state.json run on macOS:

          {
            "cache_dir": "/Users/Freedom/.platformio/.cache",
            "core_dir": "/Users/Freedom/.platformio",
            "core_version": "4.3.1",
            "installer_version": "0.2.0",
            "is_develop_core": false,
            "penv_bin_dir": "/Users/Freedom/.platformio/penv/bin",
            "penv_dir": "/Users/Freedom/.platformio/penv",
            "platformio_exe": "/Users/Freedom/.platformio/penv/bin/platformio",
            "python_exe": "/Users/Freedom/.platformio/penv/bin/python",
            "system": "darwin_x86_64"
          }

   Step 2. Install PlatformIO Core
       To  install  PlatformIO  Core  into  the  virtual environment in an automatic mode, please call installer
       script without any arguments:

          python get-platformio.py

       Available options:

       • --verbose, verbose output

       • --dev, install the latest development version of PlatformIO Core

       • --ignore-python, a path to Python to be ignored (multiple options and unix wildcards are allowed)

       More options are available at python get-platformio.py --help.

       Installer Script will return exit code 0 on success, otherwise non-zero code and error explanation.

       Next time just use again python get-platformio.py check core as described in Step #1 (see above).

   Troubleshooting
       NOTE:
          Linux OS: Don't forget to install  "udev"  rules  file  99-platformio-udev.rules  (an  instruction  is
          located in the file).

          Windows OS: Please check that you have correctly installed USB driver from board manufacturer

       For further details, frequently questions, known issues, please refer to faq.

       If    you    find    any   issues   with   PlatformIO   Core   Installer   Script,   please   report   to
       https://github.com/platformio/platformio-core-installer/issues

   Quick Start
       This tutorial introduces you to the basics of piocore Command Line Interface (CLI) workflow and shows you
       a creation process of a simple cross-platform “Blink” Project. After finishing you will  have  a  general
       understanding of how to work with the multiple development platforms and embedded boards.

   Setting Up the Project
       piocore  provides  special  cmd_project_init  command  for  configuring  your projects.  It allows one to
       initialize new empty project or update existing with the new data.

       What is more, cmd_project_init can  be  used  for  ide.  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.

       This  tutorial  is  based  on  the  next  popular  embedded  boards  and  development   platforms   using
       framework_arduino:
                    ┌────────────────────────┬───────────────────────────────┬───────────────────┐
                    │ Platform               │ Board                         │ Framework         │
                    ├────────────────────────┼───────────────────────────────┼───────────────────┤
                    │ platform_atmelavr      │ board_atmelavr_uno            │ framework_arduino │
                    ├────────────────────────┼───────────────────────────────┼───────────────────┤
                    │ platform_espressif8266 │ board_espressif8266_nodemcuv2 │ framework_arduino │
                    ├────────────────────────┼───────────────────────────────┼───────────────────┤
                    │ platform_teensy        │ board_teensy_teensy31         │ framework_arduino │
                    └────────────────────────┴───────────────────────────────┴───────────────────┘

   Board Identifier
       cmd_project_init  command  requires to specify board identifier ID. It can be found using boards catalog,
       Boards Explorer or cmd_boards command. For example, using cmd_boards let's try to find Teensy boards:

          > platformio boards teensy

          Platform: teensy
          ---------------------------------------------------------------------------
          ID                    MCU            Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          teensy20              atmega32u4     16MHz     31K    2.5K  Teensy 2.0
          teensy30              mk20dx128      48MHz     128K   16K   Teensy 3.0
          teensy31              mk20dx256      72MHz     256K   64K   Teensy 3.1 / 3.2
          teensylc              mkl26z64       48MHz     62K    8K    Teensy LC
          teensy20pp            at90usb1286    16MHz     127K   8K    Teensy++ 2.0

       According  to  the  table  above  the  ID  for  board_teensy_teensy31  is  teensy31.  Also,  the  ID  for
       board_atmelavr_uno is uno and for board_espressif8266_nodemcuv2 is nodemcuv2.

   Initialize Project
       PlatformIO  ecosystem  contains  big  database with pre-configured settings for the most popular embedded
       boards. It helps you to  forget  about  installing  toolchains,  writing  build  scripts  or  configuring
       uploading  process.  Just  tell  PlatformIO  the  Board ID and you will receive full working project with
       pre-installed instruments for the professional development.

       1. Create empty folder where you are going  to  initialize  new  PlatformIO  project.  Then  open  system
          Terminal and change directory to it:

             # create new directory
             > mkdir path_to_the_new_directory

             # go to it
             > cd path_to_the_new_directory

       2. Initialize project for the boards mentioned above (you can specify more than one board at time):

             > platformio project init --board uno --board nodemcuv2 --board teensy31

             The current working directory *** will be used for the new project.
             You can specify another project directory via
             `platformio project init -d %PATH_TO_THE_PROJECT_DIR%` command.

             The next files/directories will be created in ***
             platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
             src - Put your source files here
             lib - Put here project specific (private) libraries
             Do you want to continue? [y/N]: y
             Project has been successfully initialized!
             Useful commands:
             `platformio run` - process/build project from the current directory
             `platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
             `platformio run --target clean` - clean project (remove compiled files)

       Congrats! You have just created the first PlatformIO based Project with the next structure:

       • projectconf

       • src directory where you should place source code (*.h, *.c, *.cpp, *.S, *.ino, etc.)

       • lib  directory  can  be used for the project specific (private) libraries.  More details are located in
         lib/README file.

       • Miscellaneous files for VCS and ci support.

       NOTE:
          If you need to add new board to the existing project please use cmd_project_init again.

       The result of just generated platformio.ini:

          ; 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
          ; https://docs.platformio.org/page/projectconf.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, we need to create main.cpp file and place it to  src  folder  of  our  newly  created  project.  The
       contents of src/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);

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

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

       The final Project structure:

          project_dir
          ├── lib
          │   └── README
          ├── platformio.ini
          └── src
              └── main.cpp

   Process Project
       piocore  provides  special  cmd_run  command  to  process  project. If you call it without any arguments,
       PlatformIO Build System will process  all  project  environments  (which  were  created  per  each  board
       specified above). Here are a few useful commands:

       • platformio run. Process (build) all environments specified in projectconf

       • platformio  run  --target  upload.  Build  project  and upload firmware to the all devices specified in
         projectconf

       • platformio run --target clean. Clean project (delete compiled objects)

       • platformio run -e uno. Process only uno environment

       • platformio run -e uno -t upload. Build project only for uno and upload firmware.

       Please follow to platformio run --target documentation for the other targets.

       Finally, demo which demonstrates building project and uploading firmware to Arduino Uno: [image]

   Further ReadingProject examples

       • piocore_userguide for piocore commands

   CLI Guide
   ContentsCLI GuideUsageOptionsCommands

   Usage
          pio [OPTIONS] COMMAND
          platformio [OPTIONS] COMMAND

          # "pio" is the alias of "platformio" command

   Options
       --no-ansi

       Do not print ANSI control characters.

       See also PLATFORMIO_NO_ANSI and PLATFORMIO_FORCE_ANSI environment variables.

       --version

       Show the version of PlatformIO

       --help, -h

       Show help for the available options and commands

          $ platformio --help
          $ platformio COMMAND --help

   Commands
   platformio account
       CLI helper command for pioaccount.

       To print all available commands and options use:

          pio account --help
          platformio account --help
          platformio account COMMAND --help

   platformio account forgot
   Contentsplatformio account forgotUsageDescriptionOptions

   Usage
          platformio account forgot [OPTIONS]
          pio account forgot [OPTIONS]

   Description
       Allows you  to  reset  password  for  pioaccount  using  username  or  email  which  were  specified  for
       registration.

   Options
       --username, -u

       Username or email. You can omit this option and enter username or email in Forgot Wizard later.

   platformio account login
   Contentsplatformio account loginUsageDescriptionOptions

   Usage
          platformio account login [OPTIONS]
          pio account login [OPTIONS]

   Description
       Log  in  to  pioaccount.  If  you are not able to provide authentication credentials manually you can use
       PLATFORMIO_AUTH_TOKEN. This is very useful for ci systems and pioremote operations.

   Options
       --username, -u

       Username or email. You can omit this option and enter username or email in Login Wizard later.

       --password, -p

       You can omit this option and enter securely password in Login Wizard later.

   platformio account logout
   Contentsplatformio account logoutUsageDescription

   Usage
          platformio account logout
          pio account logout

   Description
       Log out of pioaccount.

   platformio account password
   Contentsplatformio account passwordUsageDescription

   Usage
          platformio account password
          pio account password

   Description
       Change password for pioaccount.

   platformio account register
   Contentsplatformio account registerUsageDescriptionOptions

   Usage
          platformio account register [OPTIONS]
          pio account register [OPTIONS]

   Description
       Create a new pioaccount.

   Options
       You can omit these options and enter them later in Register Wizard.

       --username, -u

       A username. You can use  it  later  for  cmd_account_login,  cmd_account_update,  and  cmd_account_forgot
       commands.

       The  username must contain at least 4 characters including single hyphens, and cannot begin or end with a
       hyphen.

       --email, -e

       An email. Please enter existing email, you will receive a confirmation letter.

       --password, -p

       A password.  You  will  need  it  for  cmd_account_login,  cmd_account_password,  cmd_account_token,  and
       cmd_account_update commands.

       --firstname

       A first name.

       --lastname

       A last name.

   platformio account show
   Contentsplatformio account showUsageDescriptionOptions

   Usage
          platformio account show
          pio account show

   Description
       Show detailed information about pioaccount:

       • Active subscriptions

       • Available packages and services

   Options
       --json-output

       Return the output in JSON format

   platformio account token
   Contentsplatformio account tokenUsageDescriptionOptions

   Usage
          platformio account token
          pio account token

   Description
       Get  or  regenerate Personal Authentication Token. It is very useful for ci systems, pioremote operations
       where you are not able to authorize manually.

       PlatformIO handles Personal Authentication Token from environment variable PLATFORMIO_AUTH_TOKEN.

   Options
       --regenerate
              If this option is specified a new authentication token will be generated.

       --json-output

       Return the output in JSON format

   platformio account update
   Contentsplatformio account updateUsageDescriptionOptions

   Usage
          platformio account update [OPTIONS]
          pio account update [OPTIONS]

   Description
       Update pioaccount profile.

   Options
       You can omit these options and enter them later in update Wizard.

       --username, -u

       A username that must contain at least 4 characters including single hyphens, and cannot begin or end with
       a hyphen.

       --email, -e

       An email. Please enter existing email, you will receive a confirmation letter.

       --firstname

       A first name.

       --lastname

       A last name.

       --current-password

       A current password to confirm this operation.

   platformio boards
   Contentsplatformio boardsUsageDescriptionOptionsExamples

   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. Show all available pre-configured embedded boards

          $ platformio boards

          Platform: atmelavr
          ---------------------------------------------------------------------------
          ID                    MCU           Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          btatmega168           atmega168     16MHz     14K    1K    Arduino BT ATmega168
          btatmega328           atmega328p    16MHz     28K    2K    Arduino BT ATmega328
          diecimilaatmega168    atmega168     16MHz     14K    1K    Arduino Duemilanove or Diecimila ATmega168
          diecimilaatmega328    atmega328p    16MHz     30K    2K    Arduino Duemilanove or Diecimila ATmega328
          esplora               atmega32u4    16MHz     28K    2K    Arduino Esplora
          ethernet              atmega328p    16MHz     31K    2K    Arduino Ethernet
          ...

       2. Filter Arduino-based boards

          $ platformio boards arduino

          Platform: atmelavr
          ---------------------------------------------------------------------------
          ID                    MCU           Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          btatmega168           atmega168     16MHz     14K    1K    Arduino BT ATmega168
          btatmega328           atmega328p    16MHz     28K    2K    Arduino BT ATmega328
          diecimilaatmega168    atmega168     16MHz     14K    1K    Arduino Duemilanove or Diecimila ATmega168
          diecimilaatmega328    atmega328p    16MHz     30K    2K    Arduino Duemilanove or Diecimila ATmega328
          esplora               atmega32u4    16MHz     28K    2K    Arduino Esplora
          ethernet              atmega328p    16MHz     31K    2K    Arduino Ethernet
          ...

       3. Filter mbed-enabled boards

          $ platformio boards mbed

          Platform: freescalekinetis
          ---------------------------------------------------------------------------
          ID                    MCU            Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          frdm_k20d50m          mk20dx128vlh5  48MHz     128K   16K   Freescale Kinetis FRDM-K20D50M
          frdm_k22f             mk22fn512vlh12 120MHz    512K   128K  Freescale Kinetis FRDM-K22F
          ...

          Platform: nordicnrf51
          ---------------------------------------------------------------------------
          ID                    MCU            Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          wallBotBLE            nrf51822       16MHz     128K   16K   JKSoft Wallbot BLE
          nrf51_dk              nrf51822       32MHz     256K   32K   Nordic nRF51-DK
          ...

          Platform: nxplpc
          ---------------------------------------------------------------------------
          ID                    MCU            Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          blueboard_lpc11u24    lpc11u24       48MHz     32K    8K    BlueBoard-LPC11U24
          dipcortexm0           lpc11u24       50MHz     32K    8K    DipCortex M0
          lpc11u35              lpc11u35       48MHz     64K    10K   EA LPC11U35 QuickStart Board
          ...

          Platform: ststm32
          ---------------------------------------------------------------------------
          ID                    MCU            Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          disco_f401vc          stm32f401vct6  84MHz     256K   64K   32F401CDISCOVERY
          nucleo_f030r8         stm32f030r8t6  48MHz     64K    8K    ST Nucleo F030R8
          ...

       4. Filter boards which are based on ATmega168 MCU

          $ platformio boards atmega168

          Platform: atmelavr
          ---------------------------------------------------------------------------
          ID                    MCU           Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          btatmega168           atmega168     16MHz     14K    1K    Arduino BT ATmega168
          diecimilaatmega168    atmega168     16MHz     14K    1K    Arduino Duemilanove or Diecimila ATmega168
          miniatmega168         atmega168     16MHz     14K    1K    Arduino Mini ATmega168
          atmegangatmega168     atmega168     16MHz     14K    1K    Arduino NG or older ATmega168
          nanoatmega168         atmega168     16MHz     14K    1K    Arduino Nano ATmega168
          pro8MHzatmega168      atmega168     8MHz      14K    1K    Arduino Pro or Pro Mini ATmega168 (3.3V, 8 MHz)
          pro16MHzatmega168     atmega168     16MHz     14K    1K    Arduino Pro or Pro Mini ATmega168 (5V, 16 MHz)
          lilypadatmega168      atmega168     8MHz      14K    1K    LilyPad Arduino ATmega168
          168pa16m              atmega168p    16MHz     15K    1K    Microduino Core (Atmega168PA@16M,5V)
          168pa8m               atmega168p    8MHz      15K    1K    Microduino Core (Atmega168PA@8M,3.3V)

       5. Show boards by platform_timsp430

          $ platformio boards timsp430

          Platform: timsp430
          ---------------------------------------------------------------------------
          ID                    MCU           Frequency  Flash   RAM    Name
          ---------------------------------------------------------------------------
          lpmsp430fr5739        msp430fr5739  16MHz     15K    1K    FraunchPad w/ msp430fr5739
          lpmsp430f5529         msp430f5529   16MHz     128K   1K    LaunchPad w/ msp430f5529 (16MHz)
          lpmsp430f5529_25      msp430f5529   25MHz     128K   1K    LaunchPad w/ msp430f5529 (25MHz)
          lpmsp430fr5969        msp430fr5969  8MHz      64K    1K    LaunchPad w/ msp430fr5969
          lpmsp430g2231         msp430g2231   1MHz      2K     128B   LaunchPad w/ msp430g2231 (1MHz)
          lpmsp430g2452         msp430g2452   16MHz     8K     256B   LaunchPad w/ msp430g2452 (16MHz)
          lpmsp430g2553         msp430g2553   16MHz     16K    512B   LaunchPad w/ msp430g2553 (16MHz)

   platformio check
       Helper command for piocheck.

   Contentsplatformio checkUsageDescriptionOptionsExamples

   Usage
          platformio check [OPTIONS]
          pio check [OPTIONS]

   Description
       Perform static analysis check on PlatformIO based project. By default check_tool_cppcheck  analysis  tool
       is used.

       More details about PlatformIO piocheck.

   Options
       -e, --environment

       Process specified environments.

       --pattern

       You  can specify which source files or folders should be included/excluded from check process. By default
       only projectconf_pio_src_dir and projectconf_pio_include_dir are checked. Multiple --pattern options  and
       GLOB Patterns are allowed.

       Example: platformio check --pattern="tests" --pattern="src/*.cpp"

       --flags

       Specify  additional  flags  that  need  to  be  passed  to  the  analysis  tool. If multiple tools set in
       projectconf_check_tool option, the flags are passed to all of them.  Individual flags for each  tool  can
       be added using a special suffix with the tool name.
                                  ┌─────────────────┬─────────────────────────────┐
                                  │ Flag            │ Meaning                     │
                                  ├─────────────────┼─────────────────────────────┤
                                  │ --addon=<addon> │ Execute addon. i.e. cert.   │
                                  ├─────────────────┼─────────────────────────────┤
                                  │ -D<ID>          │ Define preprocessor symbol. │
                                  └─────────────────┴─────────────────────────────┘

       Multiple --flags options are allowed.

       Example: platformio check --flags "-DDEBUG cppcheck: --std=c++11 --platform=avr8"

       --severity

       Specify the check_severity types which will be reported by the check_tools.  Possible values described in
       check_severity section. Multiple --severity options are allowed.

       Example: platformio check --severity=high

       -d, --project-dir

       Specify  the  path  to  project  directory.  By  default,  --project-dir  is equal to the current working
       directory (CWD).

       -c, --project-conf

       Process project with a custom projectconf.

       --json-output

       Return the output in JSON format.

       --fail-on-defect

       Fail (exit with non-zero code) if there is a defect found with specified severity. By default  exit  code
       is  the same as the exit code returned by a tool selected for performing check. Possible values described
       in check_severity section. Multiple --fail-on-defect options are allowed.

       Example: platformio check --fail-on-defect=low --fail-on-defect=medium

       -s, --silent

       Suppress progress reporting and show only defects with high severity.  See check_severity.

       -v, --verbose

       Show detailed information when processing environments.

       This option can also be set globally using  setting_force_verbose  setting  or  by  environment  variable
       PLATFORMIO_SETTING_FORCE_VERBOSE.

   Examples
       For the examples please follow to piocheck page.

   platformio ci
   Contentsplatformio ciUsageDescriptionOptionsExamples

   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. In a nutshell,  using  SRC  and  platformio  ci  --lib  contents  PlatformIO  initializes  via
       cmd_project_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 cmd_run command.

       platformio ci command accepts multiple SRC arguments, platformio ci --lib  and  platformio  ci  --exclude
       options  which can be a path to directory, file or Glob Pattern.  Also, 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  ci
       page.

       NOTE:
          platformio  ci  command  is  useful  for library developers. It allows one to build different examples
          without creating own project per them. Also, is possible to upload firmware to the target  device.  In
          this case, you need to pass additional option --project-option="targets=upload". What is more, you can
          specify  custom  upload  port  using  --project-option="upload_port=<port>" option.  See platformio ci
          --project-option for details.

   Options
       -l, --lib

       Source code which will be copied to <BUILD_DIR>/lib directly.

       If platformio ci --lib is a path to file (not  to  directory),  then  PlatformIO  will  create  temporary
       directory within <BUILD_DIR>/lib and copy the rest files into it.

       --exclude

       Exclude directories and/-or files from platformio ci --build-dir. The path must be relative to PlatformIO
       project within platformio ci --build-dir.

       For example, exclude from project src directory:

       • examples folder

       • *.h files from foo folder

          platformio ci --exclude=src/examples --exclude=src/foo/*.h [SRC]

       -b, --board

       Build project with automatically pre-generated environments based on board settings.

       For more details please look into platformio project init --board.

       --build-dir

       Path  to  directory  where  PlatformIO  will  initialise new project. By default it's temporary directory
       within your operating system.

       NOTE:
          This directory will be removed at the end of build process.  If  you  want  to  keep  it,  please  use
          platformio ci --keep-build-dir.

       --keep-build-dir

       Don't remove platformio ci --build-dir after build process.

       -c, --project-conf

       Build project using pre-configured projectconf.

       -O, --project-option

       Pass additional options from projectconf to cmd_project_init command.  For example, automatically install
       dependent  libraries  platformio  ci  --project-option="lib_deps=ArduinoJSON"  or ignore specific library
       platformio ci --project-option="lib_ignore=SomeLib".

       NOTE:
          Use multiple --project-option to pass multiple options to projectconf. One option  per  one  argument.
          For      example,      platformio      ci      --project-option="build_unflags     =     -std=gnu++11"
          --project-option="build_flags = -std=c++14"

       -v, --verbose

       Shows detailed information when processing environments.

       This option can also be set globally using  setting_force_verbose  setting  or  by  environment  variable
       PLATFORMIO_SETTING_FORCE_VERBOSE.

   Examples
       For the others examples please follow to ci page.

   platformio debug
       Helper command for piodebug.

   Contentsplatformio debugUsageDescriptionOptionsExamples

   Usage
          platformio debug [OPTIONS]
          pio debug [OPTIONS]

          # A binary shortcut for "platformio debug --interface=gdb" command
          piodebuggdb [GDB OPTIONS]

   Description
       Prepare PlatformIO project for debugging or launch debug server.

   Options
       -e, --environment

       Debug specified environments.

       You   can   also   specify   which   environments   should   be  used  for  debugging  by  default  using
       projectconf_pio_default_envs option from projectconf.

       -d, --project-dir

       Specify the path to a project directory.  By  default,  --project-dir  is  equal  to  a  current  working
       directory (CWD).

       -c, --project-conf

       New in version 4.0.

       Process project with a custom projectconf.

       --interface

       PIO Debugging Interface. Valid values:

       • gdb - GDB: The GNU Project Debugger

       -v, --verbose

       Shows detailed information when processing environments.

       This  option  can  also  be  set  globally using setting_force_verbose setting or by environment variable
       PLATFORMIO_SETTING_FORCE_VERBOSE.

   Examples
       1. Prepare a project for debugging

          > platformio debug

          [Sun Apr 30 01:34:01 2017] Processing mzeropro (platform: atmelsam; debug_extra_cmds: b main.cpp:26; board: mzeropro; framework: arduino)
          -----------------------------------------------------------------------------------------------
          Verbose mode can be enabled via `-v, --verbose` option
          Collected 26 compatible libraries
          Looking for dependencies...
          Project does not have dependencies
          Compiling .pio/build/mzeropro/src/main.o
          Compiling .pio/build/mzeropro/FrameworkArduinoVariant/variant.o
          Compiling .pio/build/mzeropro/FrameworkArduino/IPAddress.o
          Compiling .pio/build/mzeropro/FrameworkArduino/Print.o
          Archiving .pio/build/mzeropro/libFrameworkArduinoVariant.a
          Indexing .pio/build/mzeropro/libFrameworkArduinoVariant.a
          ...
          Compiling .pio/build/mzeropro/FrameworkArduino/wiring_analog.o
          Compiling .pio/build/mzeropro/FrameworkArduino/wiring_digital.o
          Compiling .pio/build/mzeropro/FrameworkArduino/wiring_private.o
          Compiling .pio/build/mzeropro/FrameworkArduino/wiring_shift.o
          Archiving .pio/build/mzeropro/libFrameworkArduino.a
          Indexing .pio/build/mzeropro/libFrameworkArduino.a
          Linking .pio/build/mzeropro/firmware.elf
          Calculating size .pio/build/mzeropro/firmware.elf
          Building .pio/build/mzeropro/firmware.bin
          text       data     bss     dec     hex filename
          11512       256    1788   13556    34f4 .pio/build/mzeropro/firmware.elf
          =========================== [SUCCESS] Took 7.82 seconds ===========================

       2. Launch GDB instance and load initial configuration per a project

          > platformio debug --interface=gdb -x .pioinit

          ...
          Loading section .text, size 0x2c98 lma 0x4000
          Loading section .ramfunc, size 0x60 lma 0x6c98
          Loading section .data, size 0x100 lma 0x6cf8
          Start address 0x47b0, load size 11768
          Transfer rate: 4 KB/sec, 3922 bytes/write.
          target halted due to debug-request, current mode: Thread
          xPSR: 0x81000000 pc: 0x000028f4 msp: 0x20002c00
          target halted due to debug-request, current mode: Thread
          xPSR: 0x81000000 pc: 0x000028f4 msp: 0x20002c00
          Breakpoint 2 at 0x413a: file src/main.cpp, line 26.

   Device Manager CLI
       To print all available commands and options use:

          pio device --help
          platformio device --help
          platformio device COMMAND --help

   platformio device list
   Contentsplatformio device listUsageDescriptionOptionsExamples

   Usage
          platformio device list [OPTIONS]
          pio device list [OPTIONS]

   Description
       List available devices.  Default is set to --serial and all available Serial Ports will be shown.

   Options
       --serial

       List available Serial Ports, default.

       --logical

       List available logical devices.

       --mdns

       List multicast DNS services.

       --json-output

       Return the output in JSON format.

   Examples
       1. 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.uart-1CFF4676258F4543
          ----------
          Hardware ID: USB VID:PID=451:f432 SNR=1CFF4676258F4543
          Description: Texas Instruments MSP-FET430UIF

       2. Windows OS

          $ 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)

       3. List multicast DNS services and logical devices

          $ platformio device list --mdns --logical
          Multicast DNS Services
          ======================

          PlatformIO._bttremote._tcp.local.
          ------------------------------
          Type: _bttremote._tcp.local.
          IP: ...
          Port: 62941
          Properties: ...

          Time for PlatformIO._adisk._tcp.local.
          ---------------------------------
          Type: _adisk._tcp.local.
          IP: 192.168.0.1
          Port: 9
          Properties: ...

          PlatformIO._ssh._tcp.local.
          ------------------------
          Type: _ssh._tcp.local.
          IP: ...
          Port: 22

          PlatformIO._sftp-ssh._tcp.local.
          -----------------------------
          Type: _sftp-ssh._tcp.local.
          IP: ...
          Port: 22

          Logical Devices
          ===============
          /
          -
          Name:

          /Volumes/PIO
          -------------
          Name: PIO

          /Volumes/PLUS
          --------------
          Name: PLUS

   platformio device monitor
   Contentsplatformio device monitorUsageDescriptionOptionsFiltersCapture output to a fileDevice Monitor Filter APIExamples

   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. However it inherits these
       features from the terminal it is run. For example on GNU/Linux running from an xterm it will support  the
       escape  sequences  of  the  xterm. On Windows the typical console window is dumb and does not support any
       escapes. When ANSI.sys is loaded it supports some escapes.

       Miniterm  supports  RFC  2217  remote  serial  ports  and  raw  sockets  using  URL  Handlers   such   as
       rfc2217://<host>:<port> respectively socket://<host>:<port> as port argument when invoking.

       To control monitor please use these "hot keys":

       • Ctrl+C Quit

       • Ctrl+T Menu

       • Ctrl+T followed by Ctrl+H Help

   Options
       -p, --port

       Port, a number or a device name, or valid URL Handlers.

       Can be customized in projectconf using projectconf_monitor_port option.

       URL Handlersrfc2217://<host>:<port>[?<option>[&<option>...]]socket://<host>:<port>[?logging={debug|info|warning|error}]loop://[?logging={debug|info|warning|error}]hwgrep://<regexp>[&skip_busy][&n=N]spy://port[?option[=value][&option[=value]]]alt://port?class=<classname>

       -b, --baud

       Set baud rate, default 9600.

       Can be customized in projectconf using projectconf_monitor_speed option.

       --parity

       Set parity (None, Even, Odd, Space, Mark), one of [N, E, O, S, M], default N

       --rtscts

       Enable RTS/CTS flow control, default Off

       --xonxoff

       Enable software flow control, default Off

       --rts

       Set initial RTS line state (0 or 1).

       Can be customized in projectconf using projectconf_monitor_rts option.

       --dtr

       Set initial DTR line state (0 or 1).

       Can be customized in projectconf using projectconf_monitor_dtr option.

       --echo

       Enable local echo, default Off

       --encoding

       Set the encoding for the serial port (e.g. hexlify, Latin1, UTF-8), default UTF-8.

       -f, --filter

       Add text transformation. See available filters at Filters.

       --eol

       End of line mode (CR, LF or CRLF), default CRLF

       NEW: Available in Miniterm/PySerial 3.0

       --raw

       Do not apply any encodings/transformations

       --exit-char

       ASCII code of special character that is used to exit the application, default 3 (DEC, Ctrl+C).

       For example, to use Ctrl+] run platformio device monitor --exit-char 29.

       --menu-char

       ASCII code of special character that is used to control miniterm (menu), default 20 (DEC)

       ---quiet

       Diagnostics: suppress non-error messages, default Off

       -d, --project-dir

       Specify  the  path  to project directory. By default, --project-dir is equal to current working directory
       (CWD).

       -e, --environment

       Process specified environments.

       You can also specify which environments should be processed by default using projectconf_pio_default_envs
       option from projectconf.

   Filters
       New in version 4.3.

       A list of filters that can be applied for monitor output using  platformio  device  monitor  --filter  or
       projectconf and projectconf_monitor_filters options.  option.
                        ┌───────────────────────────┬────────────────────────────────────────┐
                        │ Name                      │ Description                            │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ default                   │ Remove typical terminal control codes  │
                        │                           │ from input                             │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ colorize                  │ Apply  different  colors for received  │
                        │                           │ and echo                               │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ debug                     │ Print what is sent and received        │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ direct                    │ Do-nothing:    forward    all    data  │
                        │                           │ unchanged                              │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ hexlify                   │ Show  a hexadecimal representation of  │
                        │                           │ the  data   (code   point   of   each  │
                        │                           │ character)                             │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ log2file                  │ Log      data      to      a     file  │
                        │                           │ "platformio-device-monitor-%date%.log" │
                        │                           │ located  in   the   current   working  │
                        │                           │ directory                              │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ nocontrol                 │ Remove all control codes, incl. CR+LF  │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ printable                 │ Show  decimal  code  for all non-ASCII │
                        │                           │ characters and  replace  most  control │
                        │                           │ codes                                  │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ time                      │ Add  timestamp  with  milliseconds for │
                        │                           │ each new line                          │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ send_on_enter             │ Send a text to device on ENTER         │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ esp32_exception_decoder   │ Custom filter for platform_espressif32 │
                        │                           │ which decodes crash exception          │
                        ├───────────────────────────┼────────────────────────────────────────┤
                        │ esp8266_exception_decoder │ Custom           filter            for │
                        │                           │ platform_espressif8266  which  decodes │
                        │                           │ crash exception                        │
                        └───────────────────────────┴────────────────────────────────────────┘

   Capture output to a file
       New in version 4.3.

       You need to use a log2file filter from Filters:

          $ platformio device monitor -f log2file -f default

       or using projectconf and projectconf_monitor_filters

          [env:log_output_to_file]
          ...
          platform = ...
          monitor_filters = log2file, default

   Device Monitor Filter API
       piocore provides an API to extend device monitor with a custom filter declared  in  "monitor"  folder  of
       platforms. See examples:

       • https://github.com/platformio/platform-espressif32/tree/develop/monitorhttps://github.com/platformio/platform-espressif8266/tree/develop/monitor

   Examples
       1. Show available options for monitor

          $ platformio device monitor --help
          Usage: platformio device monitor [OPTIONS]

          Options:
            -p, --port TEXT       Port, a number or a device name
            -b, --baud INTEGER    Set baud rate, default=9600
            --parity [N|E|O|S|M]  Set parity, default=N
            --rtscts              Enable RTS/CTS flow control, default=Off
            --xonxoff             Enable software flow control, default=Off
            --rts [0|1]           Set initial RTS line state, default=0
            --dtr [0|1]           Set initial DTR line state, default=0
            --echo                Enable local echo, default=Off
            --encoding TEXT       Set the encoding for the serial port (e.g. hexlify,
                                  Latin1, UTF-8), default: UTF-8
            -f, --filter TEXT     Add filters / text transformation
            --eol [CR|LF|CRLF]    End of line mode, default=CRLF
            --raw                 Do not apply any encodings/transformations
            --exit-char INTEGER   ASCII code of special character that is used to exit
                                  the application, default=29 (DEC)
            --menu-char INTEGER   ASCII code of special character that is used to
                                  control miniterm (menu), default=20 (DEC)
            --quiet               Diagnostics: suppress non-error messages, default=Off
            -h, --help            Show this message and exit.

       2. Communicate with serial device and print help inside terminal

          $ platformio device monitor

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

   platformio home
       Helper command for piohome.

   Contentsplatformio homeUsageDescriptionOptionsExamples

   Usage
          platformio home
          pio home

   Description
       Launch piohome Web-server.

   Options
       --port

       Web-server HTTP port, default is 8008.

       --host

       Web-server  HTTP  host,  default  is 127.0.0.1.  You can open PIO Home for inbound connections using host
       0.0.0.0.

       --no-open

       Do not automatically open PIO Home in a system Web-browser.

       --shutdown-timeout

       Automatically shutdown server on timeout (in seconds) when no clients are connected.  Default is 0  which
       means never auto shutdown.

   Examples
          > platformio home

            ___I_
           /\-_--\   PlatformIO Home
          /  \_-__\
          |[]| [] |  http://127.0.0.1:8008
          |__|____|_______________________

          Open PIO Home in your browser by this URL => http://127.0.0.1:8008
          PIO Home has been started. Press Ctrl+C to shutdown.

   Library Manager CLI
   Usage
          platformio lib [OPTIONS] COMMAND

          # To print all available commands and options use
          platformio lib --help
          platformio lib COMMAND --help

   Options
       -d, --storage-dir

       Manage  custom  library  storage.  It  can  be  used later for the projectconf_lib_extra_dirs option from
       projectconf.  Multiple options are allowed.

       -g, --global

       Manage global PlatformIO's library storage ( "projectconf_pio_core_dir/lib")  where  ldf  will  look  for
       dependencies by default.

       -e, --environment

       Manage  libraries  for  the  specific  project  build  environments  declared  in  projectconf. Works for
       --storage-dir which is valid PlatformIO project.

   Demo
       [image]

   Commands
   platformio lib builtin
   Contentsplatformio lib builtinUsageDescriptionOptionsExamples

   Usage
          platformio lib builtin [OPTIONS]
          pio lib builtin [OPTIONS]

   Description
       List built-in libraries based on installed platforms and their frameworks, SDKs, etc.

   Options
       --storage

       List libraries from specified storages. For example, framework-arduinoavr.

       --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. For Arduino/Genuino Yún, Yún Shield and TRE only.

          Version: 1.6.1
          Homepage: http://www.arduino.cc/en/Reference/YunBridgeLibrary
          Keywords: communication
          Compatible frameworks: arduino
          Compatible platforms: *
          Authors: Arduino

          EEPROM
          ======
          Enables reading and writing to the permanent board storage.

          Version: 2.0
          Homepage: http://www.arduino.cc/en/Reference/EEPROM
          Keywords: data, storage
          Compatible frameworks: arduino
          Compatible platforms: atmelavr
          Authors: Arduino, Christopher Andrews

          ...

          framework-arduinosam
          ********************

          Audio
          =====
          Allows playing audio files from an SD card. For Arduino DUE only.

          Version: 1.0
          Homepage: http://arduino.cc/en/Reference/Audio
          Keywords: signal, input, output
          Compatible frameworks: arduino
          Compatible platforms: atmelsam
          Authors: Arduino

          ...

          framework-arduinoespressif32
          ****************************

          SPI
          ===
          Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. For all Arduino boards, BUT Arduino DUE.

          Version: 1.0
          Homepage: http://arduino.cc/en/Reference/SPI
          Keywords: signal, input, output
          Compatible frameworks: arduino
          Compatible platforms:
          Authors: Hristo Gochkov

          ...

          framework-arduinoespressif8266
          ******************************

          ArduinoOTA
          ==========
          Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download.

          Version: 1.0
          Keywords: communication
          Compatible frameworks: arduino
          Compatible platforms: espressif8266
          Authors: Ivan Grokhotkov and Miguel Angel Ajo

          DNSServer
          =========
          A simple DNS server for ESP8266.

          Version: 1.1.0
          Keywords: communication
          Compatible frameworks: arduino
          Compatible platforms: espressif8266
          Authors: Kristijan Novoselić

          ...

          framework-arduinointel
          **********************

          Adafruit NeoPixel
          =================
          Arduino library for controlling single-wire-based LED pixels and strip.

          Version: 1.0.3
          Homepage: https://github.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.

          Version: 1.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.0
          Homepage: http://www.arduino.cc/en/Reference/EEPROM
          Keywords: data, storage
          Compatible frameworks: arduino
          Compatible platforms: intel_arc32
          Authors: Intel

          ...

          framework-arduinomicrochippic32
          *******************************

          Firmata
          =======
          Enables the communication with computer apps using a standard serial protocol. For all Arduino boards.

          Version: 2.4.4
          Homepage: https://github.com/firmata/arduino
          Keywords: device, control
          Compatible frameworks: arduino
          Compatible platforms: *
          Authors: Firmata Developers

          framework-arduinoteensy
          ***********************

          Adafruit CC3000 Library
          =======================
          Library code for Adafruit's CC3000 WiFi breakouts.

          Version: 1.0.1
          Homepage: https://github.com/adafruit/Adafruit_CC3000_Library
          Keywords: communication
          Compatible frameworks: arduino
          Compatible platforms: *
          Authors: Adafruit

          ...

          framework-energiamsp430
          ***********************

          AIR430BoostEuropeETSI
          =====================
          Library for the CC110L Sub-1GHz radio BoosterPack for use in Europe

          Version: 1.0.0
          Homepage: http://energia.nu/reference/libraries/
          Keywords: communication
          Compatible frameworks: arduino
          Compatible platforms:
          Authors: Energia

          ...

          framework-energiativa
          *********************

          aJson
          =====
          An Arduino library to enable JSON processing with Arduino

          Keywords: json, rest, http, web
          Compatible frameworks: arduino
          Compatible platforms: atmelavr

   platformio lib install
   Contentsplatformio lib installUsageDescriptionStorage OptionsOptionsVersion controlGitMercurialSubversionExamples

   Usage
          platformio lib [STORAGE_OPTIONS] install [OPTIONS] [LIBRARY...]
          pio lib [STORAGE_OPTIONS] install [OPTIONS] [LIBRARY...]

          # install all project dependencies declared via "lib_deps"
          # (run it from a project root where is located "platformio.ini")
          platformio lib install [OPTIONS]

          # install project dependent library
          # (run it from a project root where is located "platformio.ini")
          platformio lib install [OPTIONS] [LIBRARY...]

          # install dependencies for the specific project build environment
          # (run it from a project root where is located "platformio.ini")
          platformio lib -e myenv install [OPTIONS] [LIBRARY...]
          platformio lib -d /path/to/platformio/project -e myenv install [OPTIONS] [LIBRARY...]

          # install to global storage
          platformio lib --global install [OPTIONS] [LIBRARY...]
          platformio lib -g install [OPTIONS] [LIBRARY...]

          # install to custom storage
          platformio lib --storage-dir /path/to/dir install [OPTIONS] [LIBRARY...]
          platformio lib -d /path/to/dir1 -d /path/to/dir2 install [OPTIONS] [LIBRARY...]

          # [LIBRARY...] forms
          platformio lib [STORAGE_OPTIONS] install (with no args, 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 pioide  and  Code  Completion  or  Code  Linting  does  not  work
          properly, please perform

          • Atom: "Menu: PlatformIO > Rebuild C/C++ Project Index (Autocomplete, Linter)"

          • VSCode: "Menu: View > Command Palette... > PlatformIO: Rebuild C/C++ Project Index"

   Description
       Install a library, and any libraries that it depends on using:

       1. Library id or name from PlatformIO Library Registry

       2. Custom folder, repository or archive.

       The  version  supports  Semantic  Versioning ( <major>.<minor>.<patch>) and can take any of the following
       forms:

       • 1.2.3 - an exact version number. Use only this exact version

       • ^1.2.3 - any compatible version (exact version for 1.x.x versions)

       • ~1.2.3 - any version with the same major and minor versions, and an equal or greater patch version

       • >1.2.3 - any version greater than 1.2.3. >=, <, and <= are also possible

       • >0.1.0,!=0.2.0,<0.3.0 - any version greater than 0.1.0, not equal to 0.2.0 and less than 0.3.0

       PlatformIO supports installing from local directory or archive. Need to use file:// prefix  before  local
       path. Also, directory or archive should contain .library.json manifest (see library_config).

       • file:///local/path/to/the/platform/dirfile:///local/path/to/the/platform.zipfile:///local/path/to/the/platform.tar.gz

   Storage Options
       See base options for cmd_lib.

   Options
       --save

       Save installed libraries into the projectconf dependency list (projectconf_lib_deps).

       You  can  save  libraries  for  the  specific  project  environment  using  -e, --environment option from
       platformio lib command. For example, platformio lib -e myenv install [LIBRARY...].

       -s, --silent

       Suppress progress reporting

       --interactive

       Allow one to make a choice for all prompts

       -f, --force

       Reinstall/redownload library if it exists

   Version control
       PlatformIO supports installing from Git, Mercurial and Subversion, and detects the type of VCS using  url
       prefixes: "git+", "hg+", or "svn+".

       NOTE:
          PlatformIO requires a working VCS command on your path: git, hg or svn.

   Git
       The supported schemes are: git, git+https and git+ssh. Here are the supported forms:

       • user/library (short version for GitHub repository)

       • https://github.com/user/library.git

       • git+git://git.server.org/my-library

       • git+https://git.server.org/my-library

       • git+ssh://git.server.org/my-library

       • git+ssh://user@git.server.org/my-library

       • [user@]host.xz:path/to/repo.git

       Passing branch names, a commit hash or a tag name is possible like so:

       • https://github.com/user/library.git#master

       • git+git://git.server.org/my-library#master

       • git+https://git.server.org/my-library#v1.0

       • git+ssh://git.server.org/my-library#7846d8ad52f983f2f2887bdc0f073fe9755a806d

   Mercurial
       The supported schemes are: hg+http, hg+https and hg+ssh. Here are the supported forms:

       • https://developer.mbed.org/users/user/code/library/ (install ARM mbed library)

       • hg+hg://hg.server.org/my-library

       • hg+https://hg.server.org/my-library

       • hg+ssh://hg.server.org/my-library

       Passing branch names, a commit hash or a tag name is possible like so:

       • hg+hg://hg.server.org/my-library#master

       • hg+https://hg.server.org/my-library#v1.0

       • hg+ssh://hg.server.org/my-library#4cfe2fa00668

   Subversion
       The supported schemes are: svn, svn+svn, svn+http, svn+https and svn+ssh. Here are the supported forms:

       • svn+svn://svn.server.org/my-library

       • svn+https://svn.server.org/my-library

       • svn+ssh://svn.server.org/my-library

       You can also give specific revisions to an SVN URL, like so:

       • svn+svn://svn.server.org/my-library#13

   Examples
       1. Install the latest version of library to a global storage using ID or NAME

          > platformio lib -g install 4

          Library Storage: /storage/dir/...
          LibraryManager: Installing id=4
          Downloading  [####################################]  100%
          Unpacking  [####################################]  100%
          IRremote @ 2.2.1 has been successfully installed!

          # repeat command with name
          > platformio lib -g install IRRemote

          Library Storage: /storage/dir/...
          Looking for IRRemote library in registry
          Found: https://platformio.org/lib/show/4/IRremote
          LibraryManager: Installing id=4
          IRremote @ 2.2.1 is already installed

       2. Install specified version of a library to a global storage

          > platformio lib -g install ArduinoJson@5.6.7

          Library Storage: /storage/dir/...
          Looking for ArduinoJson library in registry
          Found: https://platformio.org/lib/show/64/ArduinoJson
          LibraryManager: Installing id=64 @ 5.6.7
          Downloading  [####################################]  100%
          Unpacking  [####################################]  100%
          ArduinoJson @ 5.6.7 has been successfully installed!

       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: https://platformio.org/lib/show/54/DallasTemperature
          LibraryManager: Installing id=54
          Downloading  [####################################]  100%
          Unpacking  [####################################]  100%
          DallasTemperature @ 3.7.7 has been successfully installed!
          Installing dependencies
          Looking for OneWire library in registry
          Found: https://platformio.org/lib/show/1/OneWire
          LibraryManager: Installing id=1
          Downloading  [####################################]  100%
          Unpacking  [####################################]  100%
          OneWire @ 8fd2ebfec7 has been successfully installed!

       4. Install ARM mbed library to the global storage

          > platformio lib -g install https://developer.mbed.org/users/simon/code/TextLCD/

          Library Storage: /storage/dir/...
          LibraryManager: Installing TextLCD
          Mercurial Distributed SCM (version 3.8.4)
          (see https://mercurial-scm.org for more information)

          Copyright (C) 2005-2016 Matt Mackall and others
          This is free software; see the source for copying conditions. There is NO
          warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
          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, 0 files merged, 0 files removed, 0 files unresolved
          TextLCD @ 308d188a2d3a has been successfully installed!

       5. Install from archive using URL

          > platformio lib -g install  https://github.com/adafruit/DHT-sensor-library/archive/master.zip

          Library Storage: /storage/dir/...
          LibraryManager: Installing master
          Downloading  [####################################]  100%
          Unpacking  [####################################]  100%
          DHT sensor library @ 1.2.3 has been successfully installed!

   platformio lib list
   Contentsplatformio lib listUsageDescriptionStorage OptionsOptionsExamples

   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 cmd_lib.

   Options
       --json-output

       Return the output in JSON format

   Examples
          > platformio lib -g list

          Library Storage: /storage/dir/...

          Adafruit Unified Sensor
          =======================
          #ID: 31
          Required for all Adafruit Unified Sensor based libraries.

          Version: 1.0.2
          Keywords: sensors
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: Adafruit

          ArduinoJson
          ===========
          #ID: 64
          An elegant and efficient JSON library for embedded systems

          Version: 5.8.0
          Keywords: web, json, http, rest
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: Benoit Blanchon

          ArduinoJson
          ===========
          #ID: 64
          An elegant and efficient JSON library for embedded systems

          Version: 5.6.7
          Keywords: web, json, http, rest
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: Benoit Blanchon

          ArduinoJson
          ===========
          #ID: 64
          An elegant and efficient JSON library for embedded systems

          Version: 5.7.2
          Keywords: web, json, http, rest
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: Benoit Blanchon

          Blynk
          =====
          #ID: 415
          Build a smartphone app for your project in minutes. Blynk allows creating IoT solutions easily. It supports  WiFi, BLE, Bluetooth, Ethernet, GSM, USB, Serial. Works with many boards like ESP8266, ESP32, Arduino UNO, Nano, Due, Mega, Zero, MKR100, Yun, Raspberry Pi, Particle, Energia, ARM mbed, Intel Edison/Galileo/Joule, BBC micro:bit, DFRobot, RedBearLab, Microduino, LinkIt ONE ...

          Version: 0.4.3
          Homepage: http://blynk.cc
          Keywords: control, gprs, protocol, communication, app, bluetooth, serial, cloud, web, usb, m2m, ble, 3g, smartphone, http, iot, device, sensors, data, esp8266, mobile, wifi, ethernet, gsm
          Compatible frameworks: energia, wiringpi, arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, linux_arm, microchippic32, nordicnrf51, teensy, timsp430, titiva
          Authors: Volodymyr Shymanskyy

          Bounce2
          =======
          #ID: 1106
          Debouncing library for Arduino or Wiring

          Version: 2.1
          Keywords: input, signal, output, bounce
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: Thomas O Fredericks

          Homie
          =====
          #ID: 555
          ESP8266 framework for Homie, a lightweight MQTT convention for the IoT

          Version: 1.5.0
          Keywords: home, mqtt, iot, esp8266, 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.1.1
          License: GPL-3.0
          Keywords: manager, wifi, scan
          Compatible frameworks: arduino
          Compatible platforms: espressif8266
          Authors: Xose Perez

          LiquidCrystal
          =============
          #ID: 136
          LiquidCrystal Library is faster and extensable, compatible with the original LiquidCrystal library

          Version: 1.3.4
          Keywords: lcd, hd44780
          Compatible frameworks: arduino
          Compatible platforms: atmelavr
          Authors: F Malpartida

          TextLCD
          =======
          hg+https://developer.mbed.org/users/simon/code/TextLCD/

          Version: 308d188a2d3a
          Keywords: uncategorized

          Time
          ====
          #ID: 44
          Time keeping library

          Version: 1.5
          Homepage: http://playground.arduino.cc/Code/Time
          Keywords: week, rtc, hour, year, month, second, time, date, day, minute
          Compatible frameworks: arduino
          Compatible platforms:
          Authors: Michael Margolis, Paul Stoffregen

          Timezone
          ========
          #ID: 76
          Arduino library to facilitate time zone conversions and automatic daylight saving (summer) time adjustments

          Version: 510ae2f6b6
          Keywords: zone, time
          Compatible frameworks: arduino
          Compatible platforms: atmelavr
          Authors: Jack Christensen

          U8g2
          ====
          #ID: 942
          Monochrome LCD, OLED and eInk Library. Display controller: SSD1305, SSD1306, SSD1322, SSD1325, SSD1327, SSD1606, SH1106, T6963, RA8835, LC7981, PCD8544, PCF8812, UC1604, UC1608, UC1610, UC1611, UC1701, ST7565, ST7567, NT7534, ST7920, LD7032, KS0108. Interfaces: I2C, SPI, Parallel.

          Version: 2.11.4
          Homepage: https://github.com/olikraus/u8g2
          Keywords: display
          Compatible frameworks: arduino
          Compatible platforms: atmelavr, atmelsam, espressif8266, intel_arc32, microchippic32, nordicnrf51, teensy, timsp430
          Authors: oliver

          USB-Host-Shield-20
          ==================
          #ID: 59
          Revision 2.0 of MAX3421E-based USB Host Shield Library

          Version: 1.2.1
          License: GPL-2.0
          Keywords: usb, spp, mass storage, pl2303, acm, ftdi, xbox, host, hid, wii, buzz, ps3, bluetooth, adk, ps4
          Compatible frameworks: spl, arduino
          Compatible platforms: atmelavr, atmelsam, teensy, nordicnrf51, ststm32
          Authors: Oleg Mazurov, Alexei Glushchenko, Kristian Lauszus, Andrew Kroll

   platformio lib register
   Contentsplatformio lib registerUsageDescriptionExamples

   Usage
          platformio lib register [MANIFEST_URL]
          pio lib register [MANIFEST_URL]

   Description
       Register new library in PlatformIO Library Registry.

       PlatformIO Library Registry supports the next library manifests:

       • PlatformIO library_config

       • Arduino library.properties

       • ARM mbed yotta module.json.

   Examples
          platformio lib register https://raw.githubusercontent.com/bblanchon/ArduinoJson/master/library.json
          platformio lib register https://raw.githubusercontent.com/adafruit/DHT-sensor-library/master/library.properties
          platformio lib register https://raw.githubusercontent.com/ARMmbed/ble/master/module.json

   platformio lib search
   Contentsplatformio lib searchUsageDescriptionOptionsExamples

   Usage
          platformio lib search [OPTIONS] [QUERY]
          pio lib search [OPTIONS] [QUERY]

   Description
       Search for library in PlatformIO Library Registry by library_config fields in the boolean mode.

       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.
                              ─────────────────────────────────────────────────────────
                                -               A  leading  or  trailing  minus  sign
                                                indicates that this word must not  be
                                                present  in any of the libraries that
                                                are returned.
                              ─────────────────────────────────────────────────────────
                                (no operator)   By default (when neither + nor  -  is
                                                specified), the word is optional, but
                                                the  libraries  that  contain  it are
                                                rated higher.
                              ─────────────────────────────────────────────────────────
                                > <             These  two  operators  are  used   to
                                                change  a  word's contribution to the
                                                relevance value that is assigned to a
                                                library. The > operator increases the
                                                contribution  and  the   <   operator
                                                decreases it.
                              ─────────────────────────────────────────────────────────
                                ( )             Parentheses    group    words    into
                                                subexpressions. Parenthesized  groups
                                                can be nested.
                              ─────────────────────────────────────────────────────────
                                ~               A  leading  tilde  acts as a negation
                                                operator,    causing    the    word's
                                                contribution    to    the   library's
                                                relevance to  be  negative.  This  is
                                                useful  for  marking "noise" words. A
                                                library containing  such  a  word  is
                                                rated  lower  than others, but is not
                                                excluded altogether, as it  would  be
                                                with the - operator.
                              ─────────────────────────────────────────────────────────
                                *               The asterisk serves as the truncation
                                                (or  wildcard)  operator.  Unlike the
                                                other operators, it  is  appended  to
                                                the  word to be affected. Words match
                                                if they begin with the word preceding
                                                the * operator.
                              ─────────────────────────────────────────────────────────
                                "               A  phrase  that  is  enclosed  within
                                                double  quote  (") characters matches
                                                only  libraries  that   contain   the
                                                phrase literally, as it was typed.
                              ┌───────────────┬───────────────────────────────────────┐
                              │               │                                       │
--

AUTHOR

       PlatformIO

COPYRIGHT

       2014-present, PlatformIO

4.3                                               Aug 21, 2021                                     PLATFORMIO(1)