Introducing the EFZ-ESP32S3
The board is here. We built the one this course always needed โ an ESP32-S3 with every peripheral a Zephyr lesson touches already on it, flashed and debugged over a single USB-C cable. Meet the EFZ-ESP32S3.

Why we built our own boardโ
You can learn a lot on a dev kit. But a dev kit is a bare chip on a breakout โ the moment a lesson needs a sensor, a microphone, an SD card, or a screen, you're on a breadboard with jumper wires, and half the time you spend debugging is debugging the wiring, not the firmware.
We wanted the opposite: a board where the hardware is never the variable. Where "read the sensor" means read the sensor, not "wire up the sensor, hope the pull-ups are right, then read it." So we designed one.
What's on itโ
The EFZ-ESP32S3 is a bare ESP32-S3 (dual-core Xtensa LX7, Wi-Fi + Bluetooth LE) with 8 MB of external flash โ and the parts every lesson in the course actually uses, soldered on and already described in the devicetree:
- ๐ก๏ธ SHT30 temperature + humidity sensor (IยฒC)
- ๐๏ธ MPU-6500 6-axis IMU with an interrupt line (IยฒC)
- ๐ A WS2812 RGB LED, plus two plain LEDs and three buttons
- ๐ An NTC thermistor on the ADC
- ๐๏ธ An INMP441 microphone and a MAX98357A speaker amp (IยฒS audio)
- ๐พ A microSD slot (4-bit SDIO, FAT)
- ๐ฅ๏ธ A TFT display connector on the back
- ๐ Broken-out IยฒC / UART / SPI headers for your own wiring
Everything is powered, flashed, and debugged over one USB-C cable โ the ESP32-S3's native USB Serial/JTAG is the console, so there's no separate programmer to buy.
The part we're proudest ofโ
It's not a feature on the silkscreen. It's that every example in the course runs on this board, and we verified every one of them on it โ the real console output, the real errors, the real fixes on the lesson pages are from this hardware, not from a simulator or a hand-wave. The board has upstream-style Zephyr board support (hardware model v2), so west build -b efz_esp32s3/esp32s3/procpu just works, from your first Blinky to a signed, field-updatable image.
That's the whole point of EmbeddedFun: real code, real hardware, real results. The EFZ-ESP32S3 is what makes the "real hardware" part true.
Who it's forโ
- Engineers learning Zephyr who want to follow the course on the exact board it was written for โ no wiring, no guesswork.
- Teachers and workshops who need a kit where every student's hardware is identical.
- Tinkerers who want a capable ESP32-S3 board with sensors, audio, storage, and a screen, ready to hack on.
Board resourcesโ
Everything you need to build on it, or build your own board from it:
- ๐ Schematic (PDF) โ download the full EFZ-ESP32S3 schematic (9 sheets). Also linked from the Boards section.
- ๐งฉ Zephyr board support โ the devicetree, pinctrl and Kconfig for the board:
boards/embeddedfun/efz_esp32s3(hardware model v2,-b efz_esp32s3/esp32s3/procpu). - ๐ Full spec, pin map & errata โ Meet the EFZ-ESP32S3: every peripheral, its pins, the strapping pins and the gotchas.
- ๐ป Code & samples โ the course's verified samples live in
samples/efz_samples; every one runs on this board. - ๐ GitHub โ huunghiaspkt.
It's hereโ
The boards have arrived, and every lesson on this site has been run on one.
Want one? Watch the GitHub repo and keep an eye on the Build Diary โ details on how to get your hands on an EFZ-ESP32S3 will be posted here first.
In the meantime, everything the board does, you can read end to end in Zephyr Training โ and it all runs, verified, on the board you see above.
