.. _platformio:

Using with PlatformIO
#####################

.. image:: img/platformio-logo.png
  :target: https://platformio.org/?utm_source=docs.zephyrproject.org

.. contents::
    :local:

What is PlatformIO?
*******************

`PlatformIO <https://platformio.org/?utm_source=docs.zephyrproject.org>`__
is a cross-platform embedded development environment with
Zephyr support maintained by its developers.

Since Zephyr support within PlatformIO is not maintained by the Zephyr Project,
please report any issues with PlatformIO directly to its developers in
`the official PlatformIO repositories <https://github.com/platformio>`_.

A detailed overview of the PlatformIO ecosystem and its philosophy can be
found in `the official PlatformIO documentation <https://docs.platformio.org/en/latest/what-is-platformio.html?utm_source=docs.zephyrproject.org>`_.

Installation
************

* `PlatformIO IDE <https://platformio.org/platformio-ide?utm_source=docs.zephyrproject.org>`_
  is a toolset for embedded C/C++ development available on Windows, macOS and Linux
  platforms
* `PlatformIO Core (CLI) <https://docs.platformio.org/en/latest/core/index.html?utm_source=docs.zephyrproject.org>`_
  is a command-line tool that consists of multi-platform build system, platform and
  library managers and other integration components. It can be used with a variety of
  code development environments and allows integration with cloud platforms and web
  services

Configuration
*************

Please go through `the official PlatformIO configuration guide for Zephyr project <https://docs.platformio.org/en/latest/frameworks/zephyr.html?utm_source=docs.zephyrproject.org#configuration>`_.

Tutorials
*********

- `Zephyr and Nordic nRF52-DK: debugging, unit testing, project analysis
  <https://docs.platformio.org/en/latest/tutorials/nordicnrf52/zephyr_debugging_unit_testing_inspect.html?utm_source=docs.zephyrproject.org>`_
- `Developing Zephyr RTOS embedded applications on PlatformIO and simulating on Antmicro Renode
  <https://www.zephyrproject.org/developing-zephyr-rtos-embedded-applications-on-platformio-and-simulating-on-antmicro-renode/>`_

Project Examples
****************

Please check `the official examples for various development platforms <https://docs.platformio.org/en/latest/frameworks/zephyr.html?utm_source=docs.zephyrproject.org#examples>`_

Next Steps
**********

Here are some useful links for exploring the PlatformIO ecosystem:

- Try `other platforms <https://docs.platformio.org/en/latest/frameworks/zephyr.html?utm_source=docs.zephyrproject.org#platforms>`_
  that support Zephyr project
- Learn more about `integrations with other IDEs/Text Editors <https://docs.platformio.org/en/latest/integration/ide/index.html?utm_source=docs.zephyrproject.org>`_
- Get help from `PlatformIO community <https://community.platformio.org/?utm_source=docs.zephyrproject.org>`_
