..  Copyright (c) 2014-present PlatformIO <contact@platformio.org>
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

.. _tutorials:

Tutorials and Examples
======================

Official
--------

Tutorials
~~~~~~~~~

.. toctree::
    :maxdepth: 1

    espressif32/arduino_debugging_unit_testing
    espressif32/espidf_debugging_unit_testing_analysis
    ststm32/stm32cube_debugging_unit_testing
    nordicnrf52/arduino_debugging_unit_testing
    nordicnrf52/zephyr_debugging_unit_testing_inspect
    core/unit_testing_blink
    riscv/riscv_asm_video_tutorial

Project Examples
~~~~~~~~~~~~~~~~

Pre-configured projects with source code are located in
`PlatformIO Examples <https://github.com/platformio/platformio-examples>`_
repository.

Community
---------

Books
~~~~~

* `Developing IoT Projects with ESP32: Automate your home or business with inexpensive Wi-Fi devices <https://www.amazon.com/Developing-IoT-Projects-ESP32-inexpensive-ebook-dp-B093CCWGDP/dp/B093CCWGDP/>`_ (using the PlatformIO with :ref:`framework_espidf`)

Tutorials
~~~~~~~~~

* `PlatformIO DIY Projects & Tutorials at Hackster.io <https://www.hackster.io/platformio/projects?utm_source=platformio.org&utm_medium=docs>`_

Video Tutorials
~~~~~~~~~~~~~~~

* `Getting Started with PlatformIO <https://www.youtube.com/watch?v=JmvMvIphMnY>`_ - **HIGHLY RECOMMENDED FOR BEGINNERS**
* `PlatformIO Video Collection on YouTube <https://www.youtube.com/playlist?list=PLLnAiBnVrkALvk_IJhDBAQQuDozkj6C34>`_
* `Next-generation IDE for your RISC-V Product in 20 Minutes by CEO of PlatformIO <https://www.youtube.com/watch?v=0eYDKION0Bs>`_
* `Use the PlatformIO Debugger on the ESP32 Using an ESP-prog <https://www.hackster.io/brian-lough/use-the-platformio-debugger-on-the-esp32-using-an-esp-prog-f633b6>`_
* `RISC-V ASM Tutorial <https://www.youtube.com/playlist?list=PL6noQ0vZDAdh_aGvqKvxd0brXImHXMuLY>`_
* `PlatformIO for Arduino, ESP8266, and ESP32 Tutorial <https://www.youtube.com/watch?v=0poh_2rBq7E>`_
* `Free Inline Debugging for ESP32 and Arduino Sketches <https://www.youtube.com/watch?v=psMqilqlrRQ>`__
* `PlatformIO или прощай, Arduino IDE <https://www.youtube.com/watch?v=OGCyKncOyNU>`_
* `Отладка ESP32 в PlatformIO <https://www.youtube.com/watch?v=rreMOwEJcII>`_
* `A Better Arduino IDE - Getting Started with PlatformIO <https://www.youtube.com/watch?v=EIkGTwLOD7o>`_
* `PlatformIO - Using External Libraries <https://www.youtube.com/watch?v=EBlHNBNHESQ>`_

Projects
~~~~~~~~

* `arendst/tasmota <https://github.com/arendst/tasmota/>`_ - an alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX
* `MarlinFirmware/Marlin <https://github.com/MarlinFirmware/Marlin>`_ - an optimized firmware for RepRap 3D printers based on the Arduino platform
* `scottbez1/smartknob <https://github.com/scottbez1/smartknob>`_ - a haptic input knob with software-defined endstops and virtual detents
* `esphome/esphome <https://github.com/esphome/esphome>`_ - a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems
* `xoseperez/espurna <https://github.com/xoseperez/espurna>`_ - a home automation firmware for ESP8266-based devices
* `1technophile/OpenMQTTGateway <https://github.com/1technophile/OpenMQTTGateway>`_ - MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA
* `cyberman54/ESP32-Paxcounter <https://github.com/cyberman54/ESP32-Paxcounter>`_ - Wifi & BLE driven passenger flow metering with cheap ESP32 boards.
