<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>EmbeddedFun Blog</title>
        <link>https://embeddedfun.org/blog</link>
        <description>EmbeddedFun Blog</description>
        <lastBuildDate>Thu, 01 Oct 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Introducing the EFZ-ESP32S3]]></title>
            <link>https://embeddedfun.org/blog/introducing-efz-esp32s3</link>
            <guid>https://embeddedfun.org/blog/introducing-efz-esp32s3</guid>
            <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[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.]]></description>
            <content:encoded><![CDATA[<p><strong>The board is here.</strong> 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 <strong>EFZ-ESP32S3</strong>.</p>
<!-- -->
<p><img decoding="async" loading="lazy" alt="EFZ-ESP32S3 — front and back" src="https://embeddedfun.org/assets/images/efz-front-back-7f6ec280868dfa6875261a9701bd92b5.jpg" width="1400" height="932" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-we-built-our-own-board">Why we built our own board<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#why-we-built-our-own-board" class="hash-link" aria-label="Direct link to Why we built our own board" title="Direct link to Why we built our own board" translate="no">​</a></h2>
<p>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.</p>
<p>We wanted the opposite: a board where <strong>the hardware is never the variable.</strong> Where "read the sensor" means <em>read the sensor</em>, not "wire up the sensor, hope the pull-ups are right, then read it." So we designed one.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-on-it">What's on it<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#whats-on-it" class="hash-link" aria-label="Direct link to What's on it" title="Direct link to What's on it" translate="no">​</a></h2>
<p>The EFZ-ESP32S3 is a bare <strong>ESP32-S3</strong> (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:</p>
<ul>
<li class="">🌡️ <strong>SHT30</strong> temperature + humidity sensor (I²C)</li>
<li class="">🎛️ <strong>MPU-6500</strong> 6-axis IMU with an interrupt line (I²C)</li>
<li class="">🌈 A <strong>WS2812 RGB</strong> LED, plus two plain LEDs and three buttons</li>
<li class="">📈 An <strong>NTC thermistor</strong> on the ADC</li>
<li class="">🎙️ An <strong>INMP441</strong> microphone and a <strong>MAX98357A</strong> speaker amp (I²S audio)</li>
<li class="">💾 A <strong>microSD</strong> slot (4-bit SDIO, FAT)</li>
<li class="">🖥️ A <strong>TFT display</strong> connector on the back</li>
<li class="">🔌 Broken-out <strong>I²C / UART / SPI</strong> headers for your own wiring</li>
</ul>
<p>Everything is powered, flashed, and debugged over <strong>one USB-C cable</strong> — the ESP32-S3's native USB Serial/JTAG is the console, so there's no separate programmer to buy.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-part-were-proudest-of">The part we're proudest of<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#the-part-were-proudest-of" class="hash-link" aria-label="Direct link to The part we're proudest of" title="Direct link to The part we're proudest of" translate="no">​</a></h2>
<p>It's not a feature on the silkscreen. It's that <strong>every example in the course runs on this board, and we verified every one of them on it</strong> — 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 <strong>Zephyr board support</strong> (hardware model v2), so <code>west build -b efz_esp32s3/esp32s3/procpu</code> just works, from your first Blinky to a signed, field-updatable image.</p>
<p>That's the whole point of EmbeddedFun: <em>real code, real hardware, real results.</em> The EFZ-ESP32S3 is what makes the "real hardware" part true.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="who-its-for">Who it's for<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#who-its-for" class="hash-link" aria-label="Direct link to Who it's for" title="Direct link to Who it's for" translate="no">​</a></h2>
<ul>
<li class=""><strong>Engineers learning Zephyr</strong> who want to follow the course on the exact board it was written for — no wiring, no guesswork.</li>
<li class=""><strong>Teachers and workshops</strong> who need a kit where every student's hardware is identical.</li>
<li class=""><strong>Tinkerers</strong> who want a capable ESP32-S3 board with sensors, audio, storage, and a screen, ready to hack on.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="board-resources">Board resources<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#board-resources" class="hash-link" aria-label="Direct link to Board resources" title="Direct link to Board resources" translate="no">​</a></h2>
<p>Everything you need to build on it, or build your own board from it:</p>
<ul>
<li class="">📐 <strong>Schematic (PDF)</strong> — <a href="https://embeddedfun.org/schematics/EFZ-ESP32S3-V1-schematic.pdf" target="_blank" rel="noopener noreferrer" class="">download the full EFZ-ESP32S3 schematic</a> (9 sheets). Also linked from the <a class="" href="https://embeddedfun.org/docs/boards">Boards</a> section.</li>
<li class="">🧩 <strong>Zephyr board support</strong> — the devicetree, pinctrl and Kconfig for the board: <a href="https://github.com/huunghiaspkt/zephyr/tree/main/boards/embeddedfun/efz_esp32s3" target="_blank" rel="noopener noreferrer" class=""><code>boards/embeddedfun/efz_esp32s3</code></a> (hardware model v2, <code>-b efz_esp32s3/esp32s3/procpu</code>).</li>
<li class="">📋 <strong>Full spec, pin map &amp; errata</strong> — <a class="" href="https://embeddedfun.org/docs/boards/efz-esp32s3">Meet the EFZ-ESP32S3</a>: every peripheral, its pins, the strapping pins and the gotchas.</li>
<li class="">💻 <strong>Code &amp; samples</strong> — the course's verified samples live in <a href="https://github.com/huunghiaspkt/zephyr/tree/main/samples/efz_samples" target="_blank" rel="noopener noreferrer" class=""><code>samples/efz_samples</code></a>; every one runs on this board.</li>
<li class="">🐙 <strong>GitHub</strong> — <a href="https://github.com/huunghiaspkt" target="_blank" rel="noopener noreferrer" class="">huunghiaspkt</a>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="its-here">It's here<a href="https://embeddedfun.org/blog/introducing-efz-esp32s3#its-here" class="hash-link" aria-label="Direct link to It's here" title="Direct link to It's here" translate="no">​</a></h2>
<p>The boards have arrived, and every lesson on this site has been run on one.</p>
<p>Want one? <strong>Watch the <a href="https://github.com/huunghiaspkt" target="_blank" rel="noopener noreferrer" class="">GitHub repo</a></strong> and keep an eye on the <a class="" href="https://embeddedfun.org/blog">Build Diary</a> — details on how to get your hands on an EFZ-ESP32S3 will be posted here first.</p>
<p>In the meantime, everything the board does, you can read end to end in <a class="" href="https://embeddedfun.org/docs/zephyr-training/how-to-start/what-is-zephyr">Zephyr Training</a> — and it all runs, verified, on the board you see above.</p>]]></content:encoded>
            <category>hardware</category>
            <category>zephyr</category>
            <category>announcement</category>
        </item>
    </channel>
</rss>