Skip to content

Zephyr RTOS on ESP32

Marek Matej edited this page Jan 11, 2024 · 4 revisions

Zephyr on ESP32

ESP32 is a popular family of low-cost and connected SoCs. It is popular amongst hobbyists, and it is also used in commercial applications.

History

  • The first ESP32 support on Zephyr RTOS was available in 2017 on Zephyr v1.9.0. Only a basic set of peripherals was supported (I2C, GPIO, UART), and applications could only run from SRAM.
  • Espressif started to contribute to the work in 2021.
  • hal_espressif is based on the modified version of ESP-IDF
  • The IDF versions used in the Zephyr were: v4.3, v4.4, v5.1
  • Recent versions of hal_espressif are made with an emphasis on more flexible updates and new SoC support

Current development status

The complete support status is tracked in the following GitHub issue:

https://github.com/zephyrproject-rtos/zephyr/issues/29394

Getting started guide:

Generic Zephyr started guide can be used to set up the development environment, with only a few ESP32-specific steps.

https://docs.zephyrproject.org/latest/develop/getting_started/index.html

After the "Install the Zephyr SDK" step, fetch and update the binary blobs needed to build the WiFi applications:

$ west blobs fetch hal_espressif

More information can be obtained from the ESP32 based board documentation.

Here are a few examples of boards maintained by the Espressif Systems:

  • esp32_devkitc_wroom
  • esp32_devkitc_wrover
  • esp32s2_saola
  • esp32s3_devkitm
  • esp32c3_devkit
  • ...

To get a complete list of ESP32 based boards take look here:

https://docs.zephyrproject.org/latest/boards/xtensa/index.html

https://docs.zephyrproject.org/latest/boards/riscv/index.html

Further information

Don't hesitate and check out the Discord channel to get in touch with ESP32 Zephyr developers!