EmbedFlow
Sign in
Firmware development with AI — by opencircuit.org

Build firmware for
the Arduino

Describe your idea in plain English. EmbedFlow writes the code, maps the wiring, and flashes it — straight from your browser.

NO CODE/ZERO INSTALL/WEB FLASH
>_
WHAT YOU GET BACK

Code and wiring, ready to flash.

Every generation hands back a compiling sketch and a pin-perfect wiring map — constrained to the exact board you picked.

Built for makers, tested on real silicon Flash over USB · no install
48
Boards supported
130+
Sensors & components
8
Chip families
100%
In-browser · zero install
01
Describe
Pick a board, say what it does
02
Generate
AI writes code + schematic
03
Preview
Simulate before you flash
04
Flash
Straight to your board over USB
Constrained to real pins

The AI only sees your board's actual GPIO map, peripherals and limits — no hallucinated pins.

Open board registry

Anyone with a kit can add & verify a board file. Coverage grows with the community.

Browser flashing

ESP & Pico flash straight from Chrome over USB. Everything else falls back to a download.

SUPPORTED HARDWARE

Start with a board you own

7 boards at launch — every one community-tested on real silicon.

Arduino UNO R4 WiFi Verified
Arduino UNO R4 WiFi
Arduino · Renesas RA4M1

Uno reborn — 32-bit Renesas MCU, on-board Wi-Fi + BLE, and a 12×8 LED matrix.

48MHz
CLOCK
32KB
RAM
256KB
FLASH
Web flash ~30s
ESP32 DevKit V1 Verified
ESP32 DevKit V1
Espressif · ESP32

The wifi+BLE workhorse. Golden path — flashes straight from the browser.

240MHz
CLOCK
520KB
RAM
4MB
FLASH
Web flash ~30s
Raspberry Pi Pico Verified
Raspberry Pi Pico
Raspberry Pi · RP2040

$4 dual-core M0+ with PIO. Drag-and-drop flashing over BOOTSEL.

133MHz
CLOCK
264KB
RAM
2MB
FLASH
Web flash ~30s
STM32 Nucleo-C031C6 Verified
STM32 Nucleo-C031C6
STMicro · STM32C0

ARM Cortex-M0+ with an on-board ST-LINK — nothing extra to wire.

48MHz
CLOCK
12KB
RAM
32KB
FLASH
ST-LINK ~30s
Teensy 4.0 Verified
Teensy 4.0
PJRC · IMXRT1062 (Cortex-M7)

600MHz M7 monster in a breadboard-friendly footprint. Flashes over USB.

600MHz
CLOCK
1MB
RAM
2MB
FLASH
Web flash ~30s
nRF52-DK Verified
nRF52-DK
Nordic · nRF52832 (Cortex-M4)

BLE + NFC dev kit with on-board debugger. The Bluetooth workhorse.

64MHz
CLOCK
64KB
RAM
512KB
FLASH
J-Link ~30s
Arduino Uno R3 Verified
Arduino Uno R3
Arduino · ATmega328P

The board every tutorial starts with. 5V classic — and fully simulatable.

16MHz
CLOCK
2KB
RAM
32KB
FLASH
Serial ~30s
Beyond code generation

Agentic AI firmware bench.

Five capabilities that pick up where code generation ends — reading your schematics and datasheets, sourcing your parts, and driving the real instruments on your bench. Every output is grounded in the source you gave it and checked against live data.

BOARD SYNTHESIS

Bring your own board.

Upload a schematic — PDF, PNG or JPG — and EmbedFlow reads it alongside the MCU datasheet to generate a PlatformIO board manifest and a matching Arduino pin variant, mapped to your board's exact pins, peripherals and clock. Your one-off hardware becomes a first-class target.

original-schematic-STM32F103C8T6-Blue_Pill.pdf
schematic read
CUSTOM BOARD
Schematic → Board Definition
SOURCE
STM32F103C8T6-Blue_Pill.pdf
PDF · 148 KB
DETECTED MCU
PartSTM32F103C8T6
CPUCortex-M3
F_CPU72 MHz
Flash64 KB
RAM20 KB
Verified vs datasheet
PR001-3.kicad_sch schematic
2 / 4
100%
5.23, 101.69 mm
GENERATED FILES 3 files
~$0.01672 · 7,366 tok · gemini-2.5-flash
boards/stm32f103c8_vccgnd.json JSON
{ "build": {
"core": "stm32",
"cpu": "cortex-m3",
"mcu": "stm32f103c8t6",
"f_cpu": "72000000L" },
"name": "VCC-GND STM32F103" }
variants/…/pins_arduino.h CPP
#define HSE_VALUE 8000000UL
#define LED_BUILTIN PC13 // p.3
#define USB_DP PA12 // p.2
#define USB_DM PA11
README.md MD
Reads schematic PDF, PNG & JPG
Maps every pin, peripheral & power rail
Cross-checks wiring against the datasheet
DATASHEET COMPILER

From datasheet to driver.

Upload any sensor's datasheet — even a scanned, Chinese-only PDF — and get a ready-to-use Arduino driver: the header, the implementation and an example sketch. Every register address and constant cites the exact datasheet page it came from, so you can check each line instead of trusting a black box.

veml7700.pdf
datasheet read
DRIVER GENERATOR
Datasheet → Arduino driver
SOURCE
veml7700.pdf
PDF · 289 KB
DETECTED SENSOR
PartVEML7700
VendorVishay
TypeAmbient light
BusI²C
Addr0x10
Verified vs datasheet
VEML7700 datasheet
1 / 14
100%
GENERATED DRIVER 3 files
~$0.02989 · 15,780 tok · gemini-2.5-flash
VEML7700.h CPP
// I2C address (7-bit)
#define VEML7700_ADDR 0x10 // p.6
#define ALS_CONF_0 0x00 // p.7
#define ALS_DATA 0x04 // p.7
#define VEML7700_ID 0x07 // p.7
VEML7700.cpp CPP
example.ino CPP
Reads scanned & non-English PDFs
Every register cites its source page
Ships the .h, .cpp and a runnable example
NATIVE SDK

Build in your native SDK.

Regenerate the project you built as a full ESP-IDF, Zephyr (Nordic NCS), STM32Cube or Pico SDK project — each compiles in its own toolchain, then pushes the whole repo straight to GitHub. Not built yet: it's next on the Pro roadmap, and the waitlist survey decides which toolchain we ship first.

nRF · Nordic NCS
src/main.c
#include <zephyr/kernel.h>
#include <zephyr/drivers/i2c.h>
const struct device *i2c =
DEVICE_DT_GET(DT_NODELABEL(i2c0));
int main(void) {
i2c_configure(i2c, I2C_SPEED_STANDARD);
return 0;
}
same wiring · same pins · compiled in Zephyr / NCSExport to GitHub
BOM OPTIMIZER

Optimize BOM, verified in stock.

Paste your BOM and EmbedFlow hunts for cheaper, pin- and spec-compatible alternates — then confirms every one against live distributor listings before you ever see it. The AI proposes; the distributor API decides. No hallucinated parts, no dead stock.

Live pricing & stock from 3 distributors
Pin- & spec-compatible alternates only
Every alternate links back to a live listing
bom.csv · 24 lines analysis complete
scanned 24 parts across 3 distributor APIs 1.8s · MPN + spec match
31%
BOM COST ↓
9
ALTERNATES
100%
IN STOCK
ORIGINAL PARTCHEAPER ALTERNATESAVE
GRM188R71H104K ×48
0.1µF 50V X7R 0402
$0.021 · Murata
CL10B104KB8NNN exact
LCSC $0.004 · 8.3k stock
−42%
LM358DR ×6
Dual op-amp SOIC-8
$0.19 · TI
HA17358 spec
JLCPCB $0.048 · 12k stock
−38%
AMS1117-3.3 ×3
3.3V 1A LDO SOT-223
$0.14 · AMS
SGM2212-3.3 spec
LCSC $0.062 · 5.1k stock
−25%
verified live · LCSCDigiKeyMouser −$4.12 / unit
DEBUG INTELLIGENCE

A debugger the AI can drive.

Describe the bug in chat. EmbedFlow halts the chip over SWD/J-Link, reads registers and memory, sets breakpoints, single-steps to the fault, applies the fix, reflashes and verifies — all on real hardware.

Halt, step, resume & reset over SWD / J-Link
Live registers, memory dump & breakpoints
Reads serial + code, then fixes & re-verifies
Debug J-Link · nRF52840_xxAA Halted (Request)
PC 0x000274be
REGISTERS
R00x00000000
R10x00000000
R20x00000200
R30xe000e100
R40x20006bec
R50x00000000
R60x00000040
R70x0002fc18
R80x00000200
R90x20006280
SP0x20006720
LR0x000274b7
PC0x000274be
MEMORY 0x20000000 64B read
2000000000 10 00 00 00 00 00 60·······`
2000000800 02 00 00 62 27 9a 00····b···
200000106a 0d 16 58 24 00 00 00j··X$···
20000018f3 8e 7b 7f e8 03 00 00··{·····
20000020e2 61 8f 0f b5 d0 00 00·a······
200000283f 98 26 1a 06 00 00 00?·&·····
INSTRUMENTATION

Everyday hardware. Expert brain.

EmbedFlow drives the gear on your bench — logic analyzers, scopes, power monitors — captures every trace as reviewable evidence, and reads it straight back into the debugging loop.

Works with $10 FX2 clones, Saleae Logic, or any sigrok-supported analyzer.

logic analyzer · I²C @ 400 kHzNAK detected
0 µs25 µs50 µs75 µsWrite [0x76] · NAK0x11 + ACK0x00 + ACK SDA SCL
EMBEDFLOW
analyze captured waveforms…
Decoded the I²C bus at 400 kHz
Clean edges, correct clock. Two register reads ACK (0x11, 0x00) — but the write to 0x76 never gets an ACK back.
No ACK from 0x76
Master released SDA but the BME280 never pulled it low — check the address strap (SDO pin) and 3V3 pull-ups.
Try: why does 0x76 never ACK?
EMBEDFLOW PRO

EmbedFlow Pro — coming soon

The bench tier: your schematics, datasheets, and real instruments — wired into the same AI loop. Join the waitlist for early-bird pricing and the launch invite.

PRICING

Start free. Pay for what you build.

Credits cover AI generations. Flashing over USB is always free — on every board.

Free

$0

  • 10 AI credits / mo
  • 1 saved project
  • All 48 boards
  • Browser (USB) flashing
  • Community support
Popular

Hobbyist

$15 /mo

  • Everything in Free
  • 100 AI credits / mo
  • 15 saved projects
  • Pay-as-you-go credit top-ups
  • Failed-build auto-fix — free
  • Wiring diagrams + pin maps
  • Email support

Pro

Coming soon

Early-bird pricing for the waitlist

  • 300 AI credits / mo
  • Unlimited saved projects
  • Custom boards — schematic to board definition
  • Driver generator — datasheet to driver
  • Native SDK — ESP-IDF · Zephyr · STM32Cube · Pico
  • BOM optimizer
  • AI debugger through USB Bridge
  • Instruments — logic analyzer, scope & power profiler
FAQ

Questions, answered.

Around 48 boards across the ESP32 and ESP8266 families, AVR (Uno, Nano, Mega), RP2040 / Pico, SAMD and nRF52. ESP and Pico boards are proven end-to-end over USB; the rest are web-flashable and community-tested. New boards land in the open registry regularly, and anyone with a kit can submit and verify one.

Bring an idea. Leave with firmware.

Describe it, flash it, ship it — all from your browser.