Zephyr Basic
You can build and flash a Hello World. Now learn the three systems that underpin every real Zephyr application: Kconfig (what gets compiled), devicetree (what hardware exists), and the driver model (how you talk to it).
Prerequisites
- Completed How to Start — working west build
- ESP32 DK or equivalent supported board
What's in this section
| Page | What you'll learn |
|---|---|
| How to Find the API You Need | Quick lookup: GPIO, I2C, SPI, UART, ADC, PWM, threads, timers, semaphores |
| Meet the ESP32-S3-DevKitC | Espressif's dev kit — specs and board target |
| Meet the EFZ-ESP32S3 | The EmbeddedFun training board and its build target |
| Buttons & LEDs | Find LEDs and buttons in the devicetree, blink LED1, read every button |
| Console & Logging | Print with printk, then log with modules and levels |
| WS2812 RGB LED | Drive the built-in RGB LED using the Zephyr LED strip API |
| Threads | Run three threads at once: two blink the LEDs, a third prints what they report |
Core mental model
prj.conf → what is compiled
.overlay → what hardware exists
application code → what the firmware does
These three files are the skeleton of every Zephyr project. Master them here, apply them forever.
info
Devicetree is the part most engineers find confusing. The Common Mistakes page was written from real debugging sessions — read it before you need it.