MicroPython is one of the most popular firmware for microcontrollers due to its ease of use. The MicroPython v1.27 release adds support for some interesting microcontrollers, namely Espressif Systems ESP32-C5 and ESP32-P4, thanks to an update to the ESP-IDF v5.5.1 framework, as well as STMicroelectronics STM32U5, and features a range of other changes.
These include improvements to the test suite to cater to the increasing number of supported hardware platforms, the introduction of tier levels for different hardware platforms, various optimizations and bug fixes, updated libraries, new ESP32 and STM32 boards, and more. The last time we reported on a MicroPython release was for v1.24, which added support for Raspberry Pi RP2350 and ESP32-C6 microcontrollers.
Â
Other MicroPython v1.27 highlights:
- Test suite improvements
- Auto-detecting if the target has Unicode support
- Automatically including float tests when possible
- Always including stress tests
- Improving the skipping of tests that use slice and the micropython module
- Supporting different expected outputs when running native tests
- Making tests behave in low-memory conditions
- Tweaking some tests so they can run on minimal builds
- Making all test runners use the -t argument to select the target
- Converting some tests to use unittest
- Converting some port-specific tests to cross-port tests
- Adding a test for serial (REPL) reliability and throughput
- Updating to use CPython 3.8.2 as the reference Python version
- Adding more internal benchmark tests.
- Continuous integration (CI) tests now run on the Unix minimal variant, and as many tests as possible now run on the Zephyr port CI.
- Introduction of Tier levels – The project now categorizes the 20 existing ports into four groups according to their stage of development to set expectations. See details in the documentation.
- Dropped support for Python 2.7 in its build scripts and tools, so only Python 3.x is now supported
- Optimizations and bug fixes to the core runtime
- Better 32-bit RISC-V code generation for the native emitter and Zba opcode support
- Support for relative imports in custom __import__ callback, bool and len unary operation support for dict views
- Support for start and end position in re match and search methods
- IPv6 support in asyncio.start_server().
- Most ports (except esp32) now support soft and hard IRQ callbacks for machine.Timer objects.
- The sys module is now enabled at all feature levels by default.
- Updated libraries – LittleFS v2.11.2, TinyUSB 0.19.0-24, stm32lib 1.2.0, WB 1.23.0
- Qemu port updates – Support for 64-bit RISC-V, addition of VIRT_RV64 board definition, MPS2_AN500 (Cortex-M7), and MPS3_AN547 (Cortex-M55) boards.
- Various fixes for Raspberry Pi RP2 microcontrollers
- Zephyr OS upgrade to v4.2.0
- New boards
- ESP32 – ESP32_GENERIC_C2 FLASH_2M variant, ESP32_GENERIC_C5, ESP32_GENERIC_P4 with standard, C5_WIFI and C6_WIFI variants, SIL_MANT1S and SOLDERED_NULA_MINI
- STM32 – NUCLEO_H7A3ZI_Q, NUCLEO_U5A5ZJ_Q, STM32F469DISC and WEACTSTUDIO_MINI_STM32H743.
As usual, MicroPython developers also reported changes in code size compared to the previous release (absolute and percentage changes), but there’s nothing dramatic for this release.:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
bare-arm: -180 -0.316% minimal x86: +867 +0.470% unix x64: +2608 +0.309% stm32: -68 -0.017% cc3200: +112 +0.060% esp8266: +472 +0.067% esp32: +36210 +2.120% mimxrt: +280 +0.075% renesas-ra: +104 +0.017% nrf: +124 +0.066% rp2: +3836 +1.117% (RPI_PICO board) rp2: +1020 +0.111% (RPI_PICO_W board) samd: +596 +0.220% |
You’ll find the full change log on GitHub.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.




