<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Omar Morceli</title>
    <description>The latest articles on DEV Community by Omar Morceli (@omar_morceli_f63c462605cf).</description>
    <link>https://dev.to/omar_morceli_f63c462605cf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3991068%2F70f77fdd-e318-4f9b-b2e9-a1a45c54f3f7.jpg</url>
      <title>DEV Community: Omar Morceli</title>
      <link>https://dev.to/omar_morceli_f63c462605cf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/omar_morceli_f63c462605cf"/>
    <language>en</language>
    <item>
      <title>We built an AI coding agent specifically for ESP-IDF — because general agents can't debug firmware</title>
      <dc:creator>Omar Morceli</dc:creator>
      <pubDate>Thu, 18 Jun 2026 17:21:38 +0000</pubDate>
      <link>https://dev.to/omar_morceli_f63c462605cf/we-built-an-ai-coding-agent-specifically-for-esp-idf-because-general-agents-cant-debug-firmware-d3b</link>
      <guid>https://dev.to/omar_morceli_f63c462605cf/we-built-an-ai-coding-agent-specifically-for-esp-idf-because-general-agents-cant-debug-firmware-d3b</guid>
      <description>&lt;p&gt;I'm one of the people building &lt;strong&gt;Adsum IoT Coder&lt;/strong&gt;, an open-source VS Code agent purpose-built for embedded firmware. We just shipped ESP32 (ESP-IDF) support, and I want to explain why a general-purpose coding agent — even a very good one — structurally can't do this job, and who this is actually for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a generic agent can't do this
&lt;/h2&gt;

&lt;p&gt;General coding agents are trained to read and write source code. Embedded firmware bugs mostly don't live in the source. They live at &lt;strong&gt;runtime&lt;/strong&gt; — in a boot log, a crash backtrace, a BLE handshake that times out, a peripheral that misbehaves only on real silicon. A generic agent can suggest plausible fixes from reading your &lt;code&gt;.c&lt;/code&gt; files, but it never looks at what your board is actually doing, because it has no concept of "the board" as a thing to observe.&lt;/p&gt;

&lt;p&gt;Adsum is built around the opposite assumption: the agent should read the board, not just the code. It captures live logs from your hardware and works the loop embedded engineers actually use — scaffold, build, flash, observe, fix — instead of doing a single source-level guess.&lt;/p&gt;

&lt;p&gt;We didn't want to just assert this, so we built an open benchmark, &lt;strong&gt;IoT-FirmwareDebugBench v0.1&lt;/strong&gt;. Both agents ran the &lt;em&gt;same model&lt;/em&gt; (Claude Haiku 4.5) on real nRF52 hardware, isolating the architecture as the only variable. Result: Adsum closed 5/6 bugs vs. 3/6 for a leading general agent, using about 3.8x fewer tokens on average. Full methodology and per-task results — including the one task it failed — are in the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you're doing ESP32 in the Arduino framework&lt;/strong&gt; and you've started hitting its ceiling — real BLE control, RTOS behavior, power management — the usual next step is ESP-IDF, and the usual experience is that ESP-IDF is a wall. This agent is built to make that jump survivable: it helps you scaffold, build, and debug ESP-IDF projects without already knowing the whole SDK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're already an ESP-IDF developer&lt;/strong&gt;, this isn't a generic assistant that happens to know some embedded terms — it's tuned specifically for the ESP-IDF build/flash/debug loop and for reading what your chip is doing at runtime. The goal is to cut the time you spend chasing a bug that only shows up on hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No signup, no API key, no card — there's a free tier and a built-in 30-second demo that runs with &lt;strong&gt;no board attached&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open source under Apache-2.0.&lt;/li&gt;
&lt;li&gt;Supports ESP32 / S3 / C6 (ESP-IDF) and Nordic nRF52/53/54 (nRF Connect SDK), BLE + Wi-Fi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://docs.adsumnetworks.com/introduction" rel="noopener noreferrer"&gt;https://docs.adsumnetworks.com/introduction&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/adsumnetworks/Adsum-IoT-Coder" rel="noopener noreferrer"&gt;https://github.com/adsumnetworks/Adsum-IoT-Coder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from anyone here doing ESP32 or nRF52 firmware work — especially where it breaks on a real project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo1ebdwsl4qio29avkba7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo1ebdwsl4qio29avkba7.png" alt=" " width="799" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>iot</category>
      <category>ai</category>
      <category>esp32</category>
      <category>arduino</category>
    </item>
  </channel>
</rss>
