Skip to content
NewFlash from Chrome or Edge

Ship STM32 firmware from your browser

Describe the device. An AI agent writes the C code, builds it with arm-none-eabi-gcc, and you flash the board over USB. No CubeIDE, no local toolchain.

Start from
KiCad zip
MCU part
Dev board
HEAT_CH1/STM32F030CCT6
31,260 cr
Heater PI loopsession 3
Hold the heater at 45 °C with a PI loop on TIM3 CH1 and log the temperature on USART1 every 500 ms.

Added a PI controller in heater.c and a 500 ms log in main.c. The build is clean.

edit Core/Src/main.c+14 −1
create Core/Src/heater.c+64
make -j20 warnings
Flash to the connected board?

HEAT_CH1_dfu.bin · 6,252 B · COM5

DenyApprove

Ask Babel to change the firmware…

Plan Build

Built on the parts and protocols embedded teams already ship

STM32 parts in the database
2,898
Typical DFU image, header included
~6 KB
Baud, YModem over Web Serial
115200
Toolchains to install locally
0
Workflow

From schematic to a running board in four steps

One tab, no installs. You see what is happening to your board at every step.

  1. Step 01
    021.HEAT_CH1_S01A01.zip1.2 MB
    PinSignalNet
    PA0ADC_IN0NTC_SENSE
    PA6TIM3_CH1HEATER_PWM
    PA9USART1_TXDBG_TX
    PA10USART1_RXDBG_RX
    PB8GPIO_OutputLED_RED

    Drop in your board

    Upload a KiCad zip, type an MCU part number, or pick a dev board. Babel reads the netlist and maps every pin.

  2. Step 02
    Queue · 2nd of 5ETA ~1 min 40 s
    1. Parse netlist4.1 s
      143 nets · 61 parts
    2. Match MCU0.8 s
      STM32F030CCT6 · LQFP48
    3. Generate project41 s
      CubeMX · HAL 1.11.5
    4. First build—
      arm-none-eabi-gcc 13.3

    Analyze and generate

    Babel sets up clocks and peripherals and generates a project that builds, with a live ETA while you wait.

  3. Step 03
    Blink LED_RED at 2 Hz while the heater is on.
    planreading main.c, heater.c
    I'll toggle PB8 from the 1 ms SysTick every 250 ms, only while heater_duty() > 0.
    make -j20 errors · 4.6 s

    Build it with the agent

    Describe behavior in plain words. The agent plans the change, edits your C code and builds it with arm-none-eabi-gcc.

  4. Step 04
    YModem-1KCOM5 · 115200 8N1
    6 × 1024 B+ 128 B tail
    ←C receiver ready
    →EOT · EOT
    ←ACK 6,252 B sent
    →boot
    ←temp=45.0 C duty=33%

    Flash and watch it run

    Plug in USB and approve. Babel flashes the board from your browser and opens the serial log as soon as it boots.

Features

A firmware workbench, minus the setup

Toolchain, flasher, pinout, history and an extra pair of hands, in one browser tab.

Cloud build, one machine per project

Every project gets its own Linux machine with arm-none-eabi-gcc and make. It wakes when you open the project and pauses when you leave.

$ make -j2
CC Core/Src/heater.c
CC Core/Src/main.c
LD build/HEAT_CH1.elf -T STM32F030CCTx_FLASH.ld
text data bss dec hex
5612 84 1720 7416 1cf8
babel-fw dfu → build/HEAT_CH1_dfu.bin (6,252 B)
babel-srunning
1 vCPU · 2 GB
babel-mpaused
2 vCPU · 4 GB
toolchain
gcc-arm 13.3.rel1
wake from pause
~3 s

Flash over USB from the browser

Chrome or Edge flashes the board directly. Every image is checked by size and CRC before it boots.

babel.ai.kr wants to connect to a serial port

STM32 Virtual ComPort (COM5)
CP2102 USB to UART (COM3)
CancelConnect
SDOM v0.3.0CRC-32 6,252 B

Pinout and peripherals, regenerated

Move a pin or retune a timer and Babel regenerates the init code. Your code between USER CODE markers stays put.

STM32F030CCT6
  • PA0
  • PA6
  • PA9
  • PA10
  • PB8

MX_TIM3_Init regenerated · USER CODE kept

Every save is a git commit

Browse history, diff any change and roll back. Export the whole project as a zip whenever you like.

  1. Tune PI gains for 45 °C setpoint

    a3f9c21+12 −42 min ago

  2. Log temperature on USART1 every 500 ms

    7be104d+18 −218 min ago

  3. Remap HEATER_PWM to PA6 (TIM3_CH1)

    41c0e8f+31 −291 h ago

  4. Initial codegen from 021.HEAT_CH1_S01A01

    e01d9aa+2,4181 h ago

Usage you can see

Credits are counted per agent turn and per machine minute. The Usage page shows where each one went.

This cycle

6,240 / 37,500 cr

Agent VM

17% usedresets Nov 1

An agent that plans first and asks before it touches hardware

Plan mode reads your project and proposes a change. Build mode edits, builds and fixes compiler errors on its own. Flashing and writing to the serial port always wait for your approval.

  • Approve once or always allow per project
  • Every tool call is shown inline, with its diff
  • Stop or fork a turn at any point
Plan Build

Plan · switch heater to closed loop

  1. Enable ADC on PA0, 239.5-cycle sample time
  2. TIM3 CH1 at 20 kHz on PA6
  3. 3PI controller in heater.c, Kp 2.0 Ki 0.05
  4. 4Build, then ask to flash

Tool permissions

  • read · grep · ls Always
  • edit · write Build mode
  • make · run Build mode
  • flash Asks every time
  • serial_write Asks every time
Under the hood

Real protocols. Nothing hidden.

Flashing is a UART bootloader and YModem-1K, steps you could type into a terminal yourself. Your browser runs them with retries and a CRC check.

115200 8N1YModem-1KCRC-32 checked5 retries per blockAuto boot

Flash sequence

  1. →helpprobe, 500 ms window
  2. ←bootloader>already in bootloader
  3. →dfu local uartarm receiver, 50 ms
  4. ←Cready, CRC-16 mode
  5. →SOH 00 FF HEAT_CH1_dfu.bin 6252block 0: name + size
  6. →STX 01 FE [1024 B] … STX 06 F96 × 1 KiB, 5 tries each
  7. →SOH 07 F8 [128 B]108 B tail, padded
  8. →EOT · EOT← NAK · ← ACK · ← C
  9. →SOH 00 FF [empty]end of batch, ← ACK
  10. →boot3× @ 500 ms
→ browser← board0 / 6,252 B· booted

DFU header

magic0x000 · 4 B
"SDOM" 0x4D4F4453
version0x004 · 4 B
0x00030000 → 0.3.0
image_size0x008 · 4 B
0x0000166C → 5,740 B
image_crc0x00C · 4 B
CRC-32/MPEG-2 0x9E2B47D1
fw_name0x010 · 32 B
"HEAT_CH1" UTF-8, NUL-padded
reserved0x030 · 464 B
0x00 …

Flash layout · STM32F030CC

Pricing

Start free. Scale when the board ships.

Every plan includes cloud builds, browser flashing and the agent. Plans differ in monthly credits, running VMs and projects.

Prices in KRW, VAT excluded. Cancel anytime.

Base

Try Babel on a real board. No card required.

₩0forever

  • 1,500 credits / month (1× Base)
  • 1 running VM at a time
  • 3 projects
  • Small VM (1 vCPU · 2 GB)
  • Standard project setup

Hobby

Weekend builds, coursework and side projects.

₩49,000/ mo

  • 7,500 credits / month (5× Base)
  • 1 running VM at a time
  • 20 projects
  • Small VM (1 vCPU · 2 GB)
  • Standard project setup

Pro

For engineers shipping production firmware every week.

₩399,000/ mo

  • 37,500 credits / month (25× Base)
  • 3 running VMs at a time
  • Unlimited projects
  • Small and Medium VMs
  • Priority project setup
Most popular

MAX

For studios running many boards and projects at once.

₩1,449,000/ mo

  • 150,000 credits / month (100× Base)
  • 10 running VMs at a time
  • Unlimited projects
  • Small and Medium VMs
  • Highest project setup

Business

Custom credits, 20 concurrent VMs, unlimited projects, the highest queue priority and a dedicated engineer.

Contact us

Compare plans

Plan comparison
FeatureBaseHobbyProMAXSoonBusiness
Price / month₩0₩49,000₩399,000₩1,449,000Contact us
Monthly credits1,500 · 1×7,500 · 5×37,500 · 25×150,000 · 100×Custom
Concurrent VMs1131020
Projects320UnlimitedUnlimitedUnlimited
VM sizesSmallSmallSmall + MediumSmall + MediumSmall + Medium
Project setup priorityStandardStandardPriorityHighestHighest
GitHub export Coming later
Firmware link sharing Coming later
Collaborators Coming later
Data usage policy Coming later

Credits cover agent turns and VM time. VM sizes: Small 1 vCPU · 2 GB, Medium 2 vCPU · 4 GB. Prices and limits may change before launch.

FAQ

Questions, answered

What people ask before they plug in a board.

  • You can generate and build for 2,898 STM32 parts across F0, F1, F4, G0, G4, L4, H7 and more. USB flashing is verified on the STM32F030CC today; other parts flash with an “unverified bootloader” notice.

  • Yes, for USB flashing. The first 32 KiB of flash hold a small UART bootloader and your app follows a 512-byte header. Program the bootloader once with ST-LINK; every flash after that happens in the browser.

  • Chrome and Edge on desktop (Windows, macOS, Linux). Everything else works in any modern browser, and from Safari or Firefox you can still download the .bin.

  • In a private git repository per project. Every save is a commit you can browse, diff and restore. Export the whole project as a zip at any time, including the generated HAL and CMSIS sources.

  • Credits measure what your project uses: agent turns and the minutes your project VM runs. Each plan includes a monthly allowance, and the Usage page shows where every credit went.

  • The agent and VM pause until your next cycle. Your code, history and builds stay, and you can keep browsing and downloading. Upgrade to continue right away.

  • Only what you share. The serial monitor runs in your browser; the agent sees lines only when you attach them to a message or approve a serial read.

  • Invite-only for now. Request an invite from Settings › AI integration.

Still curious? hello@babel.ai.kr

$flash HEAT_CH1_dfu.bin booted

Your board is waiting.

Start free with a KiCad zip, an MCU part number or a dev board on your desk.

No card required · Chrome or Edge on desktop to flash