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
The generic Zephyr Getting 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 Wi-Fi applications:
$ west blobs fetch hal_espressif
More information can be obtained from the ESP32 based boards’ 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 a 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!
If you enjoyed this article, don’t forget to subscribe to the Zephyr newsletter to receive insightful quarterly updates about all things Zephyr! You can also follow us on Twitter and LinkedIn.