MicroPython Release Notes
Browser-runnable, demo-driven walkthroughs of recent MicroPython releases — built and maintained by the Melbourne MicroPython Meetup.
Currently covering v1.24 – v1.28
machine.CAN API,
PEP 750 template strings, and the weakref module.
machine.I2CTarget, the float-accuracy overhaul, native emitter
wins, and the new STM32N6 and ESP32-C2 MCUs.
VfsRom, the brand-new alif port,
@micropython.asm_rv32 inline RISC-V assembler, DTLS support.
micropython.RingIO.
Browse by Port
Every MicroPython port is classified into one of four Tier levels (formalised in v1.27). Click a tier to filter the chart, or click any release chip on a port to jump to that release's notes — useful when you only care about what changed for a specific target.
esp32 has ongoing financial support from Espressif (*).
Greyed-out chips link to release pages that haven't been written yet.
Full tier definitions are in the
MicroPython support tiers documentation.
The machine.* standardisation arc
The strongest cross-release storyline of the last five releases is the steady
push to standardise machine-module APIs across every port
— so portable code really does run unchanged.
ifconfig(), plus portable
network.PPP.
id arg.
machine.Timer(hard=True) available on most ports
(esp32 still soft-only).
machine.PWM on every Tier 1 & 2 port, standardised
machine.CAN API across STM32 and friends.
Other recurring threads
Patterns worth noticing as you read across the releases.
RISC-V grows up
v1.24 ships the RV32 native emitter. v1.25 adds the
asm_rv32 inline assembler. v1.26 optimises emitter output
across all archs including RV32. v1.27 adds Zba opcodes and an RV64 qemu
target. v1.28 picks up the Zcmp extension.
The ESP-IDF treadmill
v1.24 → IDF 5.2.2, v1.25 → 5.3/5.4, v1.26 → 5.4.2, v1.27 → 5.5.1. Each bump moves esp32 firmware size noticeably and unlocks new chips.
New STM32 families per release
STM32H7 octospi (v1.24), STM32N6 with ML accelerators (v1.26), STM32U5 low-power and an STM32F469 disco board (v1.27).
Native & viper emitter wins
Every release improves native code generation. Notable: Thumb v1 long-jump support (v1.26) lifted the function-size limit on RP2040, and Xtensa LX3 inline opcodes near feature-parity (v1.26).
mpremote ergonomics
Hash-based recursive copy (v1.24), rm -r + romfs
(v1.25), fs tree + better df + ESP CDC
detection (v1.26), DTR/RTS quirks ironed out (v1.27).
Zephyr port maturation
Threading (v1.24), Timer/WDT (v1.25),
PWM/UART/SPI/I2C and boot.py/main.py at
startup (v1.26), ADC + native FS VFS (v1.27).
asyncio everywhere
v1.24 enables top-level await of Task/
Event on the webassembly port. v1.25 makes implicit awaits
implicit. v1.26 fixes scheduler edge cases. v1.27 adds IPv6 to
asyncio.start_server().
TinyUSB consolidation
Common CDC code unified across esp32-S2/S3, mimxrt, renesas-ra, rp2 and samd in v1.24. ESP32 native USB stabilises through v1.26.1. stm32 starts adopting TinyUSB optionally in v1.27.