MicroPython v1.24 release adds support for RP2350 and ESP32-C6 microcontrollers, various RISC-V improvements

MicroPython has become one of the most popular ways of programming microcontrollers, and the just-released MicroPython v1.24 adds support for the widely-used Raspberry Pi RP2350 and Espresif ESP32-C6 microcontrollers and a range of other changes.

Those include improved RISC-V support with native code generation, an updated Zephyr v3.7.0 RTOS with threading support, unified TinyUSB bindings across ports, a portable UART IRQ API, and enhanced mpremote recursive copy.

Micropython v1.24 with ESP32-C6 and RP2350 support

Damien George goes into more detail about the RISC-V improvements:

… include an RV32IMC native code emitter, native NLR and GC register scanning implementations for 32- and 64-bit RISC-V, support for placing RV32IMC native code in .mpy files and also freezing it, and RISC-V semihosting support. Testing for RISC-V is done with the qemu and unix ports, and the support is utilised in the esp32 and rp2 ports.

The Raspberry Pi RP2350 comes with both Arm Cortex-M33 and RISC-V cores, and the good news is that both Arm and RISC-V cores are supported since you’ll find images for both architectures on the firmware page for the Raspberry Pi Pico 2. The RP2 port is based on the Pico SDK v2.0.0 and IPv6 has been enabled by default for boards with wireless such as the upcoming Raspberry Pi Pico 2 W.

MicroPython ESP32 port now supports the ESP-IDF v5.2.2 which partially explains why ESP32-C6 MCU is now supported. We’re also told the RISC-V native emitter has been enabled on both ESP32-C3 and ESP32-C6 MCUs. Espressif SoC also received some important bug fixes for handling native code loaded from .mpy files, stack corruption, and I2S, among other changes.

MicroPythong v1.24 also implements a range of improvements for the STM32 microcontrollers which gain optional “network.PPP” support through lwIP, support for OctoSPI on STM32H7, Arduino Portenta H7 and Nicla Vision boards can now use the NXP SE05x secure element with integration in mbedTLS, and more.

A total of nine boards have been added to the release: ESP32_GENERIC_C6, M5STACK_ATOMS3_LITE, M5STACK_NANOC6, OLIMEX_ESP32_EVB, UM_FEATHERS3NEO, UM_OMGS3, UM_RGBTOUCH_MINI and UM_TINYC6 (esp32 port), RPI_PICO2 (rp2 port), ARDUINO_OPTA (stm32 port).

Since MicroPython is designed to run on resource-limited hardware, it’s important to monitor any memory footprint changes, and the code size changes are minimal with the new MicroPython v1.24 release:


You can read Damien’s announcement on GitHub, check out the huge list of changes, and download the source code. You’ll find binary firmware files for your hardware on the MicroPython download page.

Via Matt Trentini on X

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
3 Comments
oldest
newest
Nima
Nima
1 month ago

I think it should be “Cortex-M33” not “Cortex-A33 “

andelf
andelf
1 month ago

Does anyone actual use micro-python for anything serious, or just mini/pico-projects like blinkning the odd led?

Matt McFadden
Matt McFadden
1 month ago

Learning about embedded ai. So excited

Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...