Collection · 11 entries · updated 29 Oct 2026

Flash an ESP32 from Claude Code

The tools and write-ups that get Claude Code building, flashing and reading serial output on ESP32 boards, then changing the code based on what the board printed. Watch the first video to see the whole loop, pick one flashing tool, then add a serial broker and a camera, and the agent can check its own work. The short write-ups near the end cover traps that cost their authors hours. Most tools here are Claimed; the builds at the bottom show the loop working on boards.

Entries in this collection

  1. 57 d ago

    1 of 11Start here to see the loop: 3 unlabeled ESP32 boards, no manuals, and Claude Code identifies each one over USB and flashes firmware that suits it.

    BuildBB-0188youtube.com

    Claude Code identifies three unlabeled ESP32 boards and writes firmware for each

    Creator Magic plugged three unlabeled ESP32 boards into a Mac one at a time and had Claude Code identify each over USB. Claude then wrote different firmware for each: a sea-conditions display, a Bluetooth audio spectrum analyzer and an e-paper sound picture. The 23-minute video shows all three running and a display offset Claude diagnosed from a photo.

    Shown working
  2. 6 mo ago

    2 of 11Espressif's own MCP server, built into idf.py in ESP-IDF v6.0: set the target, build, flash and list serial ports. The post shows a build but no flash run, so check that step yourself.

    ToolBB-0024developer.espressif.com

    ESP-IDF Tools MCP server: build and flash ESP32 projects from an agent

    Espressif added a stdio MCP server to idf.py in ESP-IDF v6.0 for agents in Cursor, Claude Code and VS Code. Its tools set the chip target, build, flash and clean a project, and read-only resources report build status and connected serial ports. The post, by Marek Fiala, has screenshots of a target change and a build but no flash run.

  3. 5 mo ago

    3 of 1111 tools for an edit, build, flash and observe loop with ESP-IDF. The serial monitor runs in the background and steps aside while flashing. After each change, the agent can search the device output.

    ToolBB-0028github.com9 starsPython

    esp32-ai-loop-mcp-server: an edit, build, flash and observe loop for ESP-IDF

    esp32-ai-loop-mcp-server gives Claude Code 11 tools to build an ESP-IDF project, flash it to an ESP32 and read the serial output. The serial monitor runs in a background thread, writes to a log file and releases the port while flashing. The agent searches the log after each change. The README shows an example session but no captured device logs.

  4. 43 d ago

    4 of 11The PlatformIO route for Arduino-framework projects: build, flash, monitor and decode ESP32 crashes and core dumps. Its flash-and-verify tool checks the boot log for expected lines. We have not seen board captures.

    ToolBB-0209github.com5 starsPython

    platformio.mcp: PlatformIO build, flash and serial tools for coding agents

    platformio.mcp exposes PlatformIO to coding agents as 40 MCP tools in a Python server. Besides builds and serial or OTA flashing, it decodes ESP32 and Cortex-M crash backtraces, reads core dumps, checks partition tables and runs GDB sessions. Its flash-and-verify tool reads the boot log until an expected line or a crash appears. The README shows no board captures.

  5. 2 mo ago

    5 of 11An esptool replacement that reports in NDJSON with a fixed exit code per failure class, and flags panics, watchdog resets and brownouts on the monitor. The author says it was validated end to end on an ESP32-P4.

    ToolBB-0148developer.espressif.com5 starsRust

    esparagus: an ESP32 flasher that reports to coding agents in NDJSON

    esparagus is a Rust port of esptool that reports to programs instead of people. It emits NDJSON events, a JSON report of suggested next steps and a fixed exit code per failure class. A monitor watches the boot log for crashes and reboot loops. Sylwester Sosnowski reports full bench validation only on an ESP32-P4.

  6. 3 mo ago

    6 of 11Fixes a common fight in this loop: the monitor holding the port when the flasher needs it. The daemon records everything and lends the port to the flasher; its demo board is a Realtek Ameba, not an ESP32.

    ToolBB-0139github.com1 starRust

    SerialWarden: a serial-port broker shared by terminals, flashers and agents

    SerialWarden runs a daemon that owns a board's serial port and records everything, while people and agents attach as clients. Agents connect over MCP and their writes wait for approval in the web UI, while flash tools borrow the port on a lease. The README's demo GIF runs on a Realtek Ameba board, with a stand-in script for the lease.

  7. 3 mo ago

    7 of 11A camera pointed at the display the agent is changing. In the demo Claude flashes an ESP32 over OTA and fixes a display bug its own tests missed.

    ToolBB-0134github.comCurator pick51 starsShell

    claude-code-eyes: a camera skill so Claude Code can check real hardware

    claude-code-eyes grabs one frame from an Android IP Webcam, a Raspberry Pi camera or any snapshot URL and hands it to Claude Code. Version 1.1 added lens zoom for reading small markings. The README's demo shows Claude flashing an ESP32 over OTA and fixing a display bug its tests missed.

  8. 46 d ago

    8 of 11The 4 firmware traps one agent hit on an M5Stack Cardputer-Adv, written down as a skill: qio flash mode, a blocking Serial.begin, the port reset and an old esptool.

    ToolBB-0203github.com0 starsPython

    Cardputer-Adv agent skill: four firmware traps from one hardware session

    cardputer-adv-skill gives Claude Code or Codex the build and flash procedure for M5Stack Cardputer-Adv firmware with PlatformIO and M5Unified. Its README lists four traps: qio flash mode never boots, Serial.begin blocks without a host, opening the port resets the chip, and esptool 4.5.1 cannot sync. The author says every claim was measured on hardware.

    Claimed
  9. 2 mo ago

    9 of 11Why you still check pins yourself: with vague prompts, Sonnet put a display line on strapping pin GPIO2 in 3 of 6 runs. Name the exact board and compile before flashing.

    Magic SmokeBB-0176xda-developers.com

    XDA tests Claude Sonnet 5 and Opus 5 on ESP32 strapping-pin choices

    XDA's Adam Conway ran the same ESP32 wiring prompt 15 times across Claude Sonnet 5 and Opus 5. With a vague prompt, Sonnet put a display's DC line on strapping pin GPIO2 in 3 of 6 runs, twice after naming the rule. Opus never did, though one run misstated the rule. He writes that naming the exact board helped both.

  10. 55 d ago

    10 of 11An answer to an e-paper screen the agent cannot see: test firmware sends the rendered canvas back over USB and compares it byte for byte with golden images.

    BuildBB-0192github.comBuild of the week

    Tide & Wind Tracker: byte-exact hardware-in-the-loop tests for e-paper

    Tide & Wind Tracker shows tides and wind on an M5Stack PaperColor and tests its e-paper rendering on the ESP32-S3 itself. Test firmware renders fixtures sent over USB and returns the canvas bytes for comparison with golden images. Claude Code iterated against those tests while a person approved every change. The README has a photo of it running.

    Shown working
  11. 18 d ago

    11 of 11The closed loop at full size: Claude Code writes firmware from a spec, flashes ESP32 boards on a Raspberry Pi testbench and tests Wi-Fi, MQTT, BLE and RF until everything passes. Skills and testbench code are open source.

    GuideBB-0236youtube.comCurator pick

    Andreas Spiess: an agent takes ESP32 firmware from spec to passing tests on real boards

    Andreas Spiess's 18-minute video shows Claude Code taking ESP32 firmware from a written specification to passing tests on a Raspberry Pi testbench. The agent writes and builds the firmware, flashes it to boards on the bench, runs tests over Wi-Fi, MQTT, BLE and RF, and fixes failures until the tests pass. The skills and testbench code are open source.

    Shown working

All collections