ESP32 Zephyr setup

Note

TL;DR - Guide covering Zephyr RTOS development — including board setup, driver integration, and build system configuration for Espressif ESP32, STM32, and TI CC3220SF platforms. - Part of Amarula Solutions’ IoT firmware documentation.

This tutorial shows you have to set up the ESP32 Wrover development board for use with zephyr on Linux.

First time board configuration

The first time the board is used you should set the correct jumper configuration for using JTAG. This only needs to be done once per board. See the figure for the correct jumper settings.

../../../../_images/wrover.jpg

ESP32 Tools

Follow steps 1, 2 and 3 from espressif to install the required tools, download the sdk, and install the ESP32 toolchain.

Zephyr Tools

Follow these steps to download and set up zephyr and its build tools. Since version 3.1.0, Xtensa toolchain is included in the unified SDK.

Wifi and Bluetooth

Proprietary Wi-Fi and Bluetooth binaries are no longer bundled in the core repository; they must be retrieved as binary blobs using the command:

west blobs fetch hal_espressif

Run this command just after the “Install the Zephyr SDK” step in the Getting Started Guide.

Build and run

In order to build and run Zephyr on the board use the following commands:

cd ~/zephyrproject/zephyr
west build -b esp32_devkitc_wroom/esp32/procpu samples/hello_world
west flash

If needed, also run

west packages pip --install

After the build succeeds, open the serial monitor with

west espressif monitor

Expected output:

***** Booting Zephyr OS vx.x.x-xxx-gxxxxxxxxxxxx *****
Hello World! esp32_devkitc_wroom

Tip

Need Zephyr RTOS support for your IoT product? Amarula Solutions provides Zephyr BSP development, driver porting, sensor integration, and CI/CD pipelines for Zephyr-based embedded projects. Contact our IoT team