Getting Started with ESP-IDF

From Embedded Workshop
Jump to navigation Jump to search

ESP-IDF is a development environment for ESP32 processors to build larger projects
By default, an ESP-IDF project will utilize FreeRTOS to manage multiple components to build a system.

Hardware

All development boards utilize a "board on board" process
The ESP32 board is mounted to a development board
The ESP32 board has WiFi circuitry and external SPI Flash

FreeRTOS

Each "component" may create its own thread / task
Priorities are used to define/manage what's important
By default, heap memory is used to create a thread / task as well as its stack space

Logging System

A logging system is already implemented into each component, and is expected to be used to build the project.
Message levels:
* Verbose
* Debug
* Informational
* Warning
* Error

ESP-IDF Installation

Visual Studio Code works well, with an ESP-IDF extension, to setup, build, flash, monitor, and debug a project.
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html
https://dl.espressif.com/dl/esp-idf/

I'll try to make this install as painless as possible, but many parts and steps are involved...
* ESP-IDF from github - The latest release is 5.0
  I recommend using the "offline" installer.  It provides more installation options.
  I prefer to have the ESP-IDF package install at C:/Espressif
* Python - Used to script many features/functions
* Visual Studio Code
* Visual Studio Code Extension for ESP-IDF
* Build tools

Download Offline Installer

Choose the 5.0 offline installer from the list:   https://dl.espressif.com/dl/esp-idf/
Select Language
Accept Agreement
  At this point, the installer will check your host machine's environment and flag any problems it finds.
  (For many problems, the installer provides a "fix".  "Apply Fixes" if necessary.)
Select installation folder.  I prefer "C:\Espressif"


Frequently Asked Questions

Currently, Google is my best friend.  Just form a search that begins with "ESP-IDF", and you'll find an answer.
https://docs.espressif.com/projects/espressif-esp-faq/en/latest/

Resources

The ESP-IDF environment is TONs of documentation.
https://docs.espressif.com/projects/esp-idf/en/v4.4.3/esp32/get-started/index.html