Skip to content

Flash firmware

Plug in a supported board over USB, then flash µcore directly from this page. No esptool, no IDF, no Python required for this step.

Browser support

Web Serial requires a Chromium browser (Chrome, Edge, Brave, Opera). Firefox and Safari users can fall back to:

esptool.py write_flash 0 ucore-<board>.bin

Download the binary for your board from the latest release.

Supported boards

Board Chip Binary
ESP32 (generic) ESP32 ucore-esp32-generic.bin
ESP32-S3 ESP32-S3 ucore-esp32-s3.bin

What's on the microcontroller after flashing

The µcore runtime — a binary implementation of a subset of the Jupyter messaging protocol that runs directly on the microcontroller. It manages a MicroPython interpreter for executing user code, handles named pipes for streaming data back to the host, and communicates over a supported serial transport.

MicroPython is one component of the platform. ucore is the runtime layer that connects it to your notebook — handling cell dispatch, output streaming, pipe multiplexing, and the protocol that makes the kernel on your machine and the firmware on the microcontroller speak the same language.

After flashing, head to Getting started to install the Jupyter kernel.