Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2099 commits
Select commit Hold shift + click to select a range
cda49be
py/objlist,stm32,esp32: Add helpers for creating/ensuring list args.
projectgus Dec 16, 2025
6768325
stm32: Add can_get_state() function, use from pyb.CAN.
projectgus Jan 29, 2026
0225704
extmod,docs: Add generic machine.CAN helpers & docs.
projectgus Dec 15, 2025
6f835b3
stm32: Implement index-aware STM32G4 FDCAN HAL TX functions.
projectgus Feb 18, 2026
6cac2d2
stm32: Add machine.CAN implementation.
projectgus Dec 15, 2025
c802a13
stm32: Fix printing value of pyb.CAN auto_restart on FDCAN hardware.
projectgus Mar 19, 2026
e74f3d5
stm32/timer: Use HAL macro to determine if TIM is 32-bit.
dpgeorge Mar 2, 2026
2d3241f
stm32/timer: Expose functions to convert id to reg and enable TIM clock.
dpgeorge Mar 2, 2026
dbe6a11
stm32/machine_pwm: Implement machine.PWM class.
dpgeorge Feb 11, 2026
094c268
stm32/machine_pwm: Use heuristic to assign TIMx_CHy to a pin.
dpgeorge Mar 5, 2026
6e9d35b
tests/extmod_hardware/machine_pwm.py: Round expected timing calculation.
dpgeorge Mar 2, 2026
142f8b9
tests/extmod_hardware/machine_pwm.py: Add pin settings for stm32 port.
dpgeorge Mar 2, 2026
1d5073f
extmod/machine_pwm: Fix use of object when pointer is needed.
dpgeorge Mar 2, 2026
af31472
stm32/boards: Disable some features on boards with small flash.
dpgeorge Mar 4, 2026
2b64d6d
stm32/boards/stm32f091_af.csv: Split TIM2_CH1 from TIM2_ETR.
dpgeorge Mar 6, 2026
98ab12a
stm32/boards/stm32n657_af.csv: Add TIM alt funcs to PA0-PA3.
dpgeorge Mar 6, 2026
ef2b30b
docs/library/machine.PWM: Add alif,stm32 to list of ports with invert.
dpgeorge Mar 5, 2026
47871a4
docs/library/machine.PWM: Document hardware PWM layout.
dpgeorge Mar 6, 2026
8f24c86
tests/extmod_hardware/machine_pwm.py: Convert test to use target_wiring.
dpgeorge Mar 18, 2026
2ccf78a
ci,esp32: Build oldest & newest ESP-IDF versions in CI.
projectgus Mar 12, 2026
e0beace
LICENSE,docs: Update copyright year range to include 2026.
dpgeorge Mar 11, 2026
b1d635f
docs/reference/speed_python: Update native emitter limitations.
agatti Mar 17, 2026
b3d88cf
extmod/nimble/modbluetooth_nimble: Handle port init failures.
agatti Mar 18, 2026
406356e
extmod/modlwip: Ensure socket is finalisable if error during creation.
dpgeorge Feb 7, 2026
8a3c9f0
extmod/modlwip: Call user callback on newly-received UDP or RAW packet.
jwhitham Jan 8, 2026
134bf4d
alif/irq: Add missing IRQ priorities.
iabdalkader Mar 18, 2026
82e44e0
stm32/mpthreadport: Increase minimum thread stack size to 2.5k.
dpgeorge Feb 9, 2026
702f15a
stm32/boards/PYBD_SF2: Free up some space in internal flash.
dpgeorge Mar 21, 2026
803a4d7
py/objtemplate: Correctly cast qstr literals when printing.
jepler Mar 13, 2026
74e9457
py/modweakref: Implement weakref module with ref and finalize classes.
dpgeorge Feb 4, 2026
c91d09a
tests/basics: Add tests for weakref.ref and weakref.finalize.
dpgeorge Feb 12, 2026
2cca348
tests/basics: Add test for weakref having exception in callback.
dpgeorge Feb 16, 2026
f83f363
webassembly/Makefile: Add test//% target.
dpgeorge Feb 15, 2026
6f96d26
webassembly/variants/pyscript: Enable weakref module and add tests.
dpgeorge Feb 15, 2026
44d8f70
docs/library/weakref: Add documentation for weakref module.
dpgeorge Feb 16, 2026
5c00edc
tools/ci.sh: Increase qemu_arm test run timeout.
dpgeorge Feb 16, 2026
85e8f61
lib/micropython-lib: Update submodule to latest.
dpgeorge Mar 24, 2026
bce8549
tests/feature_check/tstring.py: Remove check for string.templatelib.
dpgeorge Mar 24, 2026
93201ff
lib/cyw43-driver: Update driver to latest version v1.1.1.
dpgeorge Mar 24, 2026
ac48088
rp2/boards/SEEED_XIAO_RP2040: Add XIAO RP2040 board definition.
mattytrentini May 1, 2024
f4d2447
esp32/boards/SPARKFUN_THINGPLUS_ESP32C5: Add SF Thing Plus ESP32-C5.
sfe-SparkFro Mar 16, 2026
2dc2e30
esp32/boards/SEEED_XIAO_ESP32C6: Add new XIAO board definition.
pi-mst Mar 20, 2026
d41b8dc
py/emitglue: Fix macro logic that selects cache flushing code.
dpgeorge Mar 30, 2026
e8a3ee0
esp32/esp32_common.cmake: Add missing C flags to user C module sources.
dpgeorge Mar 3, 2026
e0e9fbb
all: Bump version to 1.28.0.
dpgeorge Apr 6, 2026
367178f
all: Bump version to 1.29.0-preview.
dpgeorge Apr 7, 2026
c20302d
shared/netutils/dhcpserver: Set default DNS to the server address.
pi-anl Jun 21, 2025
4fe08ff
all: Avoid `qstr_str` calls when printing a qstr.
jepler Mar 13, 2026
8abca6b
py/objexcept: Use mp_obj_get_type_str when printing exception name.
jepler Mar 15, 2026
c16a484
zephyr/machine_uart: Ignore return value of uart_irq_update.
maass-hamburg Mar 17, 2026
47fc0d5
docs/library: Document Pin.board and Pin.cpu attributes.
pi-anl Mar 17, 2026
c3b3f20
py/objint: Fix comment for true operand in binary op extra cases.
cuiweixie Mar 27, 2026
e29bcdc
tests/cpydiff: Add test file for annotation expressions.
jepler Apr 4, 2026
b6bc2d4
esp32/adc: Raise error if ADC read result is invalid.
DvdGiessen Mar 20, 2026
e8992eb
esp32/machine_uart: Allow passing -1 to specify pin will be unused.
DvdGiessen Mar 4, 2026
6b2488f
qemu: Add basic ROMFS support.
iabdalkader Mar 15, 2026
a22d9da
qemu/boards/MPS3_AN547: Configure and enable ROMFS.
iabdalkader Mar 15, 2026
ed463ed
qemu/boards/MPS2_AN500: Configure and enable ROMFS.
iabdalkader Mar 31, 2026
501b0e6
alif/tinyusb_port: Fix _xfer_trb cache alignment.
kwagyeman Mar 30, 2026
dc0b2c7
py/malloc: Add m_tracked_realloc.
pi-anl Mar 26, 2026
18735dd
tests/ports/unix: Add tests for m_tracked_realloc.
pi-anl Mar 26, 2026
41137f0
py/parse: Recognise const assignments with type hints.
agatti Jul 8, 2025
f89112d
py/obj: Refactor MP_DEFINE_CONST_OBJ_TYPE_NARGS script for readability.
AJMansfield Nov 8, 2025
8223287
py/obj: Eliminate trailing comma from MP_DEFINE_CONST_OBJ_TYPE_NARGS.
AJMansfield Nov 8, 2025
483715d
py/obj: Reorganize slot access macros to put with slot definitions.
AJMansfield Oct 3, 2025
e274a38
py/obj: Enforce slot function signatures at compile time.
AJMansfield Oct 3, 2025
8af714e
py/obj: Explicitly cast slot initializer values to `(const void *)`.
AJMansfield Oct 3, 2025
a91910c
py/persistentcode: Use MP_ENCODE_UINT_MAX_BYTES instead of custom macro.
dpgeorge Mar 10, 2026
0241784
unix/modsocket: Add "sendall" method to socket class.
agatti Mar 17, 2026
71d2314
esp32/boards/LILYGO_T3_S3: Add LILYGO T3-S3 board definition.
pgaufillet Feb 16, 2026
e57e522
esp32/machine_sdcard: Make default SDMMC slot configurable.
sfe-SparkFro Mar 27, 2026
2f16bf4
esp32/network_wlan: Look up IP addresses for the stations list.
agatti Mar 20, 2026
f456a23
esp32/machine_pin: Make all pins on ESP32-P4 output capable.
sfe-SparkFro Mar 23, 2026
295df7c
github/workflows: Drop VS2017, use preinstalled v142 toolset for VS2019.
pi-anl Mar 25, 2026
da0149f
github: Improve error on "Build mpremote wheel" if fork is missing tags.
projectgus Mar 25, 2026
b0d2072
github: Ignore codecov upload failure on forks with no token set.
projectgus Mar 25, 2026
ba28b8f
github/workflows: Bump microsoft/setup-msbuild from 2 to 3.
dependabot[bot] Apr 8, 2026
8c6dfa5
github/workflows: Bump codecov/codecov-action from 5 to 6.
dependabot[bot] Apr 8, 2026
a179cb6
tests: Use a unique domain name for tests/multi_wlan/getaddrinfo.
projectgus Mar 26, 2026
6d327a1
mimxrt: Provide abort so that C++ libunwind can link.
projectgus Mar 3, 2026
523ad2c
tools/ci.sh: Build the usercmodule example in CI for more ports.
projectgus Mar 3, 2026
c080565
ports: Refactor C++ compilation support.
projectgus Mar 3, 2026
5ce74c3
tests/misc: Skip cexample_subclass.py on minimal unix variant.
projectgus Mar 5, 2026
bc92f5a
nrf: Add support for building C++ user modules.
projectgus Mar 25, 2026
e379cb4
rp2: Allow setting MICROPY_C_HEAP_SIZE from make command line.
projectgus Mar 25, 2026
3eb617d
docs/develop/cmodules: Add some notes about C dynamic memory and C++.
projectgus Mar 25, 2026
4f04f08
docs/develop/memorymgt: Expand on MicroPython memory management from C.
projectgus Apr 1, 2026
50218dd
docs: Link memory management & gc docs more, reduce duplication.
projectgus Apr 1, 2026
c9bb925
docs/develop: Link to module docs, remove extraneous example code.
projectgus Apr 1, 2026
5e7d4bf
docs/library/gc: Add documentation for gc.isenabled().
projectgus Apr 8, 2026
35652ff
docs/library/gc: Add some simple examples for gc.threshold().
projectgus Apr 8, 2026
1a8c835
docs/library/machine.Pin: Update pull-up/down constants.
agatti Apr 8, 2026
b67c55c
py/emitinlinethumb: Shrink condition code lookups.
agatti Mar 25, 2026
5ddc551
py/compile: Reject *arg after keyword argument.
jepler Apr 3, 2026
5b127f0
py/modio: Error out on over-long read()/write() in user IO code.
jepler Apr 5, 2026
1834dcf
py/objtuple: Support __add__ and __iadd__ with tuple subclasses.
jepler Apr 5, 2026
a43a8ac
py/mpconfig: Automatically configure thumb2 and float emitter features.
dpgeorge Apr 7, 2026
02f2683
py/objint_longlong: Fix signed comparison error.
jepler Aug 2, 2025
eeed037
extmod/machine_usb_device: Document xfer_cb result value, add enums.
projectgus Apr 8, 2026
98e4264
tests/run-tests.py: Correct spelling errors.
jepler Apr 8, 2026
bd69a0d
lib/re1.5: Check stack during compilecode.
jepler Apr 8, 2026
cf0ef5a
rp2/rp2_dma: Reduce footprint of the DMA control fields table.
agatti Mar 30, 2026
083b0cc
qemu/Makefile: Refactor shared ROMFS definitions.
agatti Apr 8, 2026
acaba3f
qemu/boards/VIRT_RV32: Add ROMFS support.
agatti Apr 8, 2026
f3e79c8
qemu/boards/VIRT_RV64: Add ROMFS support.
agatti Apr 8, 2026
809cf6f
qemu/boards/MPS2_AN385: Add ROMFS support.
agatti Apr 8, 2026
75441f4
qemu/boards/SABRELITE: Add ROMFS support.
agatti Apr 8, 2026
67de20a
tests: Rename "tests/frozen" into "tests/assets".
agatti Apr 9, 2026
c895770
tests/ports/qemu: Add ROMFS tests to CI.
agatti Apr 8, 2026
2752d39
esp32/modules: Use "from machine import *" instead of __getattr__.
dpgeorge Apr 9, 2026
50348ce
stm32/mpconfigport: Enable machine.CAN if CAN2 is used.
iabdalkader Apr 13, 2026
036bd81
stm32: Fix mboot build with TinyUSB-enabled boards.
pi-anl Mar 23, 2026
941cc31
mimxrt: Convert port to use new event waiting functions.
dpgeorge Apr 8, 2026
1f601e8
samd: Convert port to use new event waiting functions.
dpgeorge Apr 13, 2026
8a56be6
extmod/moductypes: Be more defensive with uctypes_struct_agg_size args.
djlowther Apr 7, 2026
06f27ec
stm32/boards/STM32H747I_DISCO: Add STM32H747I-DISCO board definition.
pi-anl Dec 2, 2025
a23f69e
stm32/machine_adc: Fix ADC V2 CR register writes and timeouts.
pi-anl Apr 20, 2026
d1c61ca
stm32/boards: Extend RAM section by 192K on STM32H723.
dpgeorge Mar 21, 2026
9ca3b74
stm32/usbd_conf: Fix USB VBUS sensing for newer STM32F4/F7 HAL versions.
pi-anl Nov 1, 2025
1dda231
ports: Consolidate TinyUSB src include across build systems.
pi-anl Jun 21, 2025
efe6d3b
lib/mbedtls: Update to mbedtls v3.6.6.
stratakis Apr 11, 2026
6b97759
tests: Protect trailing spaces with "\$".
dhalbert Apr 9, 2026
fa17886
tests/cmdline/repl_autocomplete_underscore.py: Remove trailing spaces.
dhalbert Apr 13, 2026
9b36eed
tests/run-tests.py: Fix hex parsing of {\xnn} escapes.
dhalbert Apr 15, 2026
93a7340
tests/run-tests.py: Allow .native.exp files to contain regexs.
dhalbert Apr 15, 2026
9d989e4
tests: Remove further trailing spaces when possible.
dhalbert Apr 15, 2026
d54e675
tests/ports/unix: Remove trailing spaces in unix coverage output.
dhalbert Apr 15, 2026
2c37f06
tests/run-tests.py: Update the list of tests requiring floats.
agatti Apr 15, 2026
ca85a1e
tools/boardgen.py: Make per-pin content output extensible.
agatti Apr 20, 2026
05740fd
qemu/boards/NETDUINO2: Change heap size to 114k.
dpgeorge Apr 14, 2026
0124bd5
qemu/Makefile: Do not mount ROMFS partition on non-test targets.
agatti Apr 15, 2026
09c0a3c
qemu/mcu/arm/imx6.ld: Fix C++ linking.
agatti Apr 15, 2026
2f52e1d
qemu/mcu/arm/mps2.ld: Fix C++ linking.
agatti Apr 15, 2026
dbd3eaa
qemu/mcu/arm/mps3.ld: Fix C++ linking.
agatti Apr 15, 2026
086534a
qemu/mcu/arm/nrf51.ld: Fix C++ linking.
agatti Apr 15, 2026
65dabf8
qemu/mcu/arm/stm32.ld: Fix C++ linking.
agatti Apr 15, 2026
1ff9f9e
qemu/mcu/arm/startup: Add an implementation for "abort".
agatti Apr 15, 2026
70bb728
tools/ci.sh: Let QEMU try to build with a user module.
agatti Apr 15, 2026
02d2e9f
zephyr/CMakeLists.txt: Add support for USER_C_MODULES.
jonnor Aug 10, 2025
cfe9048
zephyr: Add ability to set feature level in conf file.
VynDragon Dec 3, 2025
8f1a8d4
zephyr: Enable FULL feature level for rp2.
VynDragon Dec 3, 2025
0657a80
zephyr/boards/mimxrt1020_evk: Use conf file to select feature level.
dpgeorge May 1, 2026
35d09a7
zephyr/boards/xiao_ble_nrf52840_sense: Use conf to select feature level.
dpgeorge May 1, 2026
00c5968
zephyr/boards: Add some Bouffalolab-based boards.
VynDragon Dec 3, 2025
56b168b
zephyr/machine_i2c: Rework I2C driver to make continuous transactions.
maass-hamburg Jan 13, 2026
9d10e29
zephyr/mpconfigport_minimal: Configure MICROPY_STACK_CHECK_MARGIN.
dpgeorge Apr 14, 2026
37399d5
zephyr/mphalport: Allow mp_hal_wait_sem() to exit early when signalled.
dpgeorge Jan 14, 2026
c7187da
zephyr: Convert port to use new event waiting functions.
dpgeorge Jan 14, 2026
4814df9
zephyr/machine_uart: Fix stop bits config and swapped buffer defaults.
cfaja Mar 9, 2026
7515a49
zephyr/boards/arduino_uno_q: Add board config for Arduino UNO Q.
ramalamadingdong Mar 17, 2026
953773c
alif/system_tick: Document differences between SysTick/LPTIMER/UTIMER.
dpgeorge Apr 17, 2026
b3806c5
alif/system_tick: Add system_tick_get_ms_fast when SysTick is enabled.
dpgeorge Apr 17, 2026
65399bc
alif/mphalport: Use DWT->CYCCNT for CPU tick if SysTick/LPTIMER is used.
dpgeorge Apr 17, 2026
b5e1974
alif: Add support for building C++ user modules.
dpgeorge Apr 21, 2026
bad1c60
tools/ci.sh: Build user C example modules as part of alif CI.
dpgeorge Apr 21, 2026
42141e9
mimxrt/systick: Remove unused systick helper functions.
dpgeorge Apr 16, 2026
829d770
mimxrt/mphalport: Remove unused uwTick macro definition.
dpgeorge Apr 16, 2026
eaa7ca6
mimxrt/systick: Clean up header file includes.
dpgeorge Apr 16, 2026
7f7adad
mimxrt/mphalport: Run events at least once in mp_hal_delay_ms.
dpgeorge Apr 16, 2026
586ad0d
docs/library/io: Add documentation for the io.IOBase class.
pi-anl May 7, 2025
9f396bb
docs/develop/porting: Update session log for example port.
yf13 Aug 1, 2025
7466e22
samd/dma_manager: Add a DMA manager.
robert-hh Sep 5, 2022
6853cfb
samd/tc_manager: Add a tc_manager function set.
robert-hh Sep 5, 2022
f4b3b58
samd/machine_dac: Add dac.write_timed() method.
robert-hh Sep 5, 2022
8b4dd11
samd/machine_adc: Add adc.read_timed() method.
robert-hh Sep 6, 2022
ac2f452
samd/machine_dac: Add a callback keyword option to machine.DAC().
robert-hh Sep 13, 2022
0214d93
samd/machine_adc: Add a callback keyword option to machine.ADC().
robert-hh Sep 13, 2022
490d63a
samd: Add new adc.busy() and dac.busy() methods.
robert-hh Oct 14, 2022
cc42bf9
docs/samd: Document the extensions to DAC and ADC.
robert-hh Oct 26, 2022
e4a0609
samd/machine_dac: Rework the DAC deinit() semantics.
robert-hh Mar 24, 2023
e029a9a
samd: Make adc.read_timed() and dac.write_timed() configurable.
robert-hh Mar 25, 2023
285b737
samd: Fix init and deinit for adc_timed() and dac_timed().
robert-hh Aug 26, 2023
92201f8
samd/machine_adc: Factor out machine.adc_timed() to extmod code.
robert-hh Oct 24, 2023
21b3a51
samd/machine_adc: Fix the configuration with averaging enabled.
robert-hh Apr 17, 2026
f5af529
py/objstr: Add support for bytes.find(int).
jimmo May 26, 2023
b7e3220
tests/basics: Add tests for bytes/bytearray.find/index(int).
jimmo May 26, 2023
05fcc8c
tests/basics: Add coverage for bytes find/index with out-of-bounds arg.
dpgeorge Apr 23, 2026
01df5a1
py/py.mk: Add LIBS_USERMOD to LIBS.
sfe-SparkFro Nov 3, 2025
234bac4
py/mkrules.mk: Change LIB to LIBS.
sfe-SparkFro Nov 4, 2025
416eadf
ports: Use mp_obj_is_float instead of mp_obj_is_type.
dpgeorge Apr 8, 2026
d6a1d37
py/obj: Add assert that float isn't used with mp_obj_is_type.
dpgeorge Apr 8, 2026
a254bbc
py/nlrx86: Fix nlr_push to build with Clang 19.
jepler Apr 16, 2026
5e94df1
py/modbuiltins: Treat pow(x, y, None) as pow(x, y).
jseop-lim Apr 25, 2026
72d4c4d
py/builtinhelp: Add options for changing help('modules') format.
radiofan Jan 28, 2026
8800733
lib/nrfx: Update submodule to v3.14.0.
pi-anl Apr 18, 2026
a6f90f3
nrf: Adapt port configuration and startup for nrfx v3.
pi-anl Apr 18, 2026
7ac25f7
nrf: Rewrite GPIOTE pin IRQ handling for nrfx v3 API.
pi-anl Apr 18, 2026
a9fc9e4
nrf: Update peripheral drivers for nrfx v3 API.
pi-anl Apr 18, 2026
77a9f3e
nrf: Fix nRF9160 secureboot build for nrfx v3.
pi-anl Apr 18, 2026
5a60aa2
nrf: Modernize Pin.irq to use shared mp_irq infrastructure.
pi-anl Apr 19, 2026
080e2ed
nrf: Preserve SPI config across init calls.
pi-anl Apr 19, 2026
ac0af10
nrf: Add I2C timeout parameter and fix disable on error.
pi-anl Apr 19, 2026
7d3cf41
nrf/Makefile: Update nrfutil deploy rules for latest nrfutil.
dpgeorge Apr 22, 2026
18e83d1
nrf/boards: Change all boards to use "nrf" for sys.platform value.
dpgeorge Apr 22, 2026
6bbd7bc
nrf/boards: Use 64 byte raw-paste buffer on PCA10031.
DvdGiessen May 1, 2026
a876a2a
unix/unix_mphal: Use TCSANOW for terminal mode switching.
pi-anl Apr 17, 2026
30781dc
tests/cmdline: Add Ctrl-C interrupt test for the repl_ test framework.
pi-anl Apr 17, 2026
72222a6
tests/extmod: Don't require constructor to raise for bad socket type.
dpgeorge Apr 8, 2026
c8b71b0
tests/perf_bench: Skip import tests when vfs module doesn't exist.
dpgeorge Jul 31, 2025
551a568
tests/run-perfbench.py: Skip misc_mandel if target doesn't have complex.
dpgeorge Aug 5, 2025
fc8857a
tests/multi_net/udp_data_multi.py: Reduce number of UDP groups to 4.
dpgeorge Aug 5, 2025
722aacf
tests/extmod/machine_soft_timer.py: Skip test on nrf boards.
dpgeorge Sep 26, 2025
0b8fbe3
tests/micropython/ringio_big.py: Improve running on low-memory targets.
dpgeorge Sep 26, 2025
1d9b8b4
tests/extmod/machine_uart_tx.py: Make string longer for more accuracy.
dpgeorge Feb 8, 2026
0ead967
tests/extmod/framebuf_polygon.py: Skip test if buf can't be allocated.
dpgeorge Feb 9, 2026
98c76a9
tests/extmod/machine_spi_rate.py: Skip test if bufs can't be allocated.
dpgeorge Feb 9, 2026
9ecdeb6
tests/run-tests.py: Skip tests depending on error reporting capability.
dpgeorge Feb 9, 2026
0a55311
tests/micropython: Remove dependence on exact exception message.
dpgeorge Apr 9, 2026
2cebe9f
tests/misc/rge_sm.py: Skip test if target doesn't have enough memory.
dpgeorge Apr 9, 2026
10b6247
tests/float/float_format_ints.py: Add another valid alternative result.
jepler Apr 29, 2026
9ee7ac8
tests/cpydiff: Document dir() not post-processing __dir__ result.
jseop-lim May 4, 2026
14b26b9
stm32/tinyusb_port: Add High Speed USB controller support with TinyUSB.
pi-anl Oct 19, 2025
b001b71
stm32/factoryreset: Add TinyUSB-specific boot.py examples.
pi-anl Oct 28, 2025
8d3597c
shared/tinyusb: Fix CDC reconnect stall and TX FIFO.
pi-anl Mar 6, 2026
693f33a
stm32/usbd: Match ST DFU bootloader serial number in TinyUSB.
pi-anl Mar 10, 2026
d2e0d20
stm32,extmod: Use full path for shared/tinyusb/mp_usbd.h include.
pi-anl Apr 30, 2026
c5df954
stm32/Makefile: Provide definitions of CFLAGS_MCU & MPY_CROSS_MCU_ARCH.
dpgeorge Apr 13, 2026
a6144fb
stm32/make-stmconst.py: Point periph reg defns to S/NS on CM33/CM55.
dpgeorge Apr 13, 2026
a755503
stm32/boards: Allow overriding USB PID for Arduino boards.
iabdalkader Apr 13, 2026
2c57e9d
stm32: Conditionally disable USB interrupts during SD operations.
projectgus Apr 23, 2026
7a5eae8
tests/ports/stm32: Add DMA alignment test for SDCard driver.
projectgus Apr 23, 2026
d2e87fd
stm32/sdcard: Use dma_protect_rx_region on read operations.
projectgus Apr 15, 2026
e496000
esp8266: Remove obsolete --verify option from ESP8266.
projectgus May 7, 2026
cc502ab
esp32/machine_pin: Add mode, pull and drive to machine_pin_print().
IhorNehrutsa Aug 19, 2024
f563d3c
esp32/modmachine: Add new machine.wake_pins() function.
meirarmon Jun 20, 2025
a8ba8fa
esp32/machine_sdcard: Add support for SDMMC power ctrl via internal LDO.
sfe-SparkFro Mar 23, 2026
169678c
esp32/boards/ESP32_GENERIC_P4: Set SDMMC LDO channel.
sfe-SparkFro Mar 23, 2026
dc44bdb
esp32/machine_sdcard: Make LDO channel configurable from Python.
sfe-SparkFro Apr 2, 2026
f640267
docs/library/machine.SDCard: Document new LDO argument for ESP32-P4.
sfe-SparkFro May 7, 2026
4cf5c50
esp32/modnetwork: Always enable PHY_GENERIC.
sfe-SparkFro Apr 9, 2026
2e04624
esp32/network_lan: Make EMAC RMII pins configurable on ESP32-P4.
sfe-SparkFro May 4, 2026
2b5f5f5
esp32/network_lan: Fix LAN event handler base filtering.
mohnazemi Apr 19, 2026
e28c15f
esp32/machine_i2c: Allow SoftI2C to be disabled.
IhorNehrutsa May 7, 2026
ea1e10f
esp32/machine_hw_spi: Allow SoftSPI to be disabled.
IhorNehrutsa May 7, 2026
6fa7d5b
rp2/machine_spi: Detect RX overrun when using DMA transfers.
sfe-SparkFro Dec 30, 2025
c4979d4
rp2/mphalport: Optimise cycle counter retrieval in RV32 mode.
agatti Apr 24, 2026
aba71b3
rp2/machine_bitstream: Shorten time-critical function init in RV32 mode.
agatti Apr 24, 2026
4e6dc0b
lib/littlefs: Update LittleFS to v2.11.3.
DvdGiessen Mar 25, 2026
64f0394
extmod/vfs_blockdev: Use memoryview when available.
jepler Apr 8, 2026
80a9abb
extmod/machine_i2c: Add a deinit method to machine.I2C.
agatti Apr 14, 2026
e47c528
extmod/machine_i2c: Transfer WRITE1 address in single buffer adaptor.
midnightveil May 4, 2026
3288766
shared/tinyusb: Add USB device qualifier descriptor.
iabdalkader Apr 23, 2026
6443130
tools/mpremote: Fix length calculation in RemoteCommand for arrays.
Josverl Apr 12, 2026
670d775
tools/mpremote: Add tests for array readinto and write.
Josverl Apr 22, 2026
a595bbb
tools/mpremote: Add an alias for codeberg repos.
agatti Mar 23, 2026
cc62017
py/modbuiltins: Let "dir" be disabled if requested.
agatti Apr 30, 2026
7eaa522
py/asmarm: Fix UBsan diagnostics for left-shift of int.
jepler Aug 29, 2025
91dadc5
py/asmthumb: Fix UBsan diagnostics for left-shift of negative.
jepler Aug 29, 2025
8ecd995
py/emitinlinerv32: Fix UBsan diagnostics for left-shift of mp_int_t.
jepler Dec 26, 2025
995cc14
Merge upstream micropython master for m_tracked_realloc and other ups…
andrewleech May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
*.dxf binary
*.mpy binary
*.der binary
*.bin binary

# These should also not be modified by git.
tests/basics/string_cr_conversion.py -text
tests/basics/string_crlf_conversion.py -text
tests/micropython/test_normalize_newlines.py.exp -text
ports/stm32/pybcdc.inf_template -text
ports/stm32/usbhost/** -text
ports/cc3200/hal/aes.c -text
Expand Down
47 changes: 47 additions & 0 deletions .github/actions/setup_esp32/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Setup ESP-IDF for CI

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Third-party GitHub Actions are pinned to mutable tags instead of immutable SHAs.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/actions/setup_esp32/action.yml, line 22:

<comment>Third-party GitHub Actions are pinned to mutable tags instead of immutable SHAs.</comment>

<file context>
@@ -0,0 +1,47 @@
+
+  - name: Cached ESP-IDF install
+    id: cache_esp_idf
+    uses: actions/cache@v5
+    with:
+      path: |
</file context>

description: Install ESP-IDF
inputs:
idf_ver:
required: true
type: string
ccache_key:
required: true
type: string

runs:
using: "composite"

steps:
- id: python_ver
name: Read the Python version
run: echo PYTHON_VER=py$(python --version | cut -d' ' -f2) | tee "${GITHUB_OUTPUT}"
shell: bash

- name: Cached ESP-IDF install
id: cache_esp_idf
uses: actions/cache@v5
with:
path: |
./esp-idf/
~/.espressif/
!~/.espressif/dist/
~/.cache/pip/
# Cache is keyed on both IDF version (from the job) and Python version (from the runner)
key: esp-idf-${{ inputs.idf_ver }}-${{ steps.python_ver.outputs.PYTHON_VER }}

- name: Install ESP-IDF packages
if: steps.cache_esp_idf.outputs.cache-hit != 'true'
env:
IDF_VER: ${{ inputs.idf_ver }}
run: tools/ci.sh esp32_idf_setup
shell: bash

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: esp32-${{ inputs.idf_ver }}-${{ inputs.ccache_key }}

- name: Enable CCache for ESP-IDF
run: echo "IDF_CCACHE_ENABLE=1" >> ${GITHUB_ENV}
shell: bash

25 changes: 20 additions & 5 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
others can review your Pull Request.

Before submitting, please read:
https://github.com/micropython/micropython/blob/master/CODEOFCONDUCT.md
https://github.com/micropython/micropython/wiki/ContributorGuidelines

Please check any CI failures that appear after your Pull Request is opened.
Expand All @@ -12,16 +11,15 @@
### Summary

<!-- Explain the reason for making this change. What problem does the pull request
solve, or what improvement does it add? Add links if relevant. -->

solve, or what improvement does it add? Add links if relevant,
especially links to open issues. -->

### Testing

<!-- Explain what testing you did, and on which boards/ports. If there are
boards or ports that you couldn't test, please mention this here as well.

If you leave this empty then your Pull Request may be closed. -->

If you leave this section empty then your Pull Request may be closed. -->

### Trade-offs and Alternatives

Expand All @@ -31,3 +29,20 @@

Delete this heading if not relevant (i.e. small fixes) -->


### Generative AI

<!-- Please delete the answer below which doesn't apply, or write your own
answer with more details. -->

I did not use generative AI tools when creating this PR.

I used generative AI tools when creating this PR, but a human has checked the
code and is responsible for the code and the description above.

<!-- We require everyone to answer this question. If you delete this section or
ignore it then your PR may be closed.

For more information, consult the MicroPython Generative AI Policy:
https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy
-->
2 changes: 1 addition & 1 deletion .github/workflows/biome.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/code_formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ jobs:
code-formatting:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
- name: Install packages
run: source tools/ci.sh && ci_c_code_formatting_setup
run: tools/ci.sh c_code_formatting_setup
- name: Run code formatting
run: source tools/ci.sh && ci_c_code_formatting_run
run: tools/ci.sh c_code_formatting_run
- name: Check code formatting
run: git diff --exit-code
27 changes: 20 additions & 7 deletions .github/workflows/code_size.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: Check code size

on:
push:
pull_request:
paths:
- '.github/workflows/*.yml'
Expand All @@ -11,6 +10,7 @@ on:
- 'shared/**'
- 'lib/**'
- 'ports/bare-arm/**'
- 'ports/esp32/**'
- 'ports/mimxrt/**'
- 'ports/minimal/**'
- 'ports/rp2/**'
Expand All @@ -24,25 +24,38 @@ concurrency:

jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 100
- name: Install packages
run: source tools/ci.sh && ci_code_size_setup
run: tools/ci.sh code_size_setup

- name: Find IDF_NEWEST_VER
id: idf_ver
run: |
echo "IDF_VER="$(yq .env.IDF_NEWEST_VER < .github/workflows/ports_esp32.yml) \
| tee "${GITHUB_OUTPUT}"

- name: Setup ESP-IDF
uses: ./.github/actions/setup_esp32
with:
idf_ver: ${{ steps.idf_ver.outputs.IDF_VER }}
ccache_key: code_size

- name: Build
run: source tools/ci.sh && ci_code_size_build
run: tools/ci.sh code_size_build
- name: Compute code size difference
run: tools/metrics.py diff ~/size0 ~/size1 | tee diff
run: source tools/ci.sh && ci_code_size_report
- name: Save PR number
if: github.event_name == 'pull_request'
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > pr_number
- name: Upload diff
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: code-size-report
path: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/code_size_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
steps:
- name: 'Download artifact'
id: download-artifact
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
result-encoding: string
script: |
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
run: unzip code-size-report.zip
- name: Post comment to pull request
if: steps.download-artifact.outputs.result == 'ok'
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,13 @@ jobs:
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
# codespell version should be kept in sync with .pre-commit-config.yml
- run: pip install --user codespell==2.2.6 tomli
- run: pip install --user codespell==2.4.1 tomli
- run: codespell

# additionally check for misspelling of "MicroPython"
- run: |
if git grep -n Micropython -- ":(exclude).github/workflows/codespell.yml"; then
echo "Please correct capitalisation of MicroPython on the above lines"
exit 1
fi
10 changes: 5 additions & 5 deletions .github/workflows/commit_formatting.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Check commit message formatting

on: [push, pull_request]
on: [pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -10,9 +10,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: '100'
- uses: actions/setup-python@v5
fetch-depth: 100
- uses: actions/setup-python@v6
- name: Check commit message formatting
run: source tools/ci.sh && ci_commit_formatting_run
run: tools/ci.sh commit_formatting_run
8 changes: 6 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
pull_request:
paths:
- docs/**
- py/**
- tests/cpydiff/**

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -15,9 +17,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
- name: Install Python packages
run: pip install -r docs/requirements.txt
- name: Build unix port
run: tools/ci.sh unix_build_helper
- name: Build docs
run: make -C docs/ html
6 changes: 2 additions & 4 deletions .github/workflows/examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ jobs:
embedding:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Build
run: make -C examples/embedding -f micropython_embed.mk && make -C examples/embedding
- name: Run
run: ./examples/embedding/embed | grep "hello world"
run: tools/ci.sh embedding_build
18 changes: 14 additions & 4 deletions .github/workflows/mpremote.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,28 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
# Setting this to zero means fetch all history and tags,
# which hatch-vcs can use to discover the version tag.
fetch-depth: 0
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
- name: Install build tools
run: pip install build
- name: Build mpremote wheel
run: cd tools/mpremote && python -m build --wheel
run: |
if ! git rev-parse --verify -q v1.23.0 >/dev/null; then
echo "::error::mpremote wheel build requires recent MicroPython version tags in the forked repo."
echo ""
echo "To fix, push tags from upstream:"
echo " git remote add upstream https://github.com/micropython/micropython.git"
echo " git fetch upstream --tags"
echo " git push origin --tags"
exit 1
fi
cd tools/mpremote && python -m build --wheel
- name: Archive mpremote wheel
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: mpremote
path: |
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/mpy_format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
paths:
- '.github/workflows/*.yml'
- 'examples/**'
- 'mpy-cross/**'
- 'py/**'
- 'tests/**'
- 'tools/**'

Expand All @@ -15,10 +17,12 @@ concurrency:

jobs:
test:
runs-on: ubuntu-20.04 # use 20.04 to get python2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install packages
run: source tools/ci.sh && ci_mpy_format_setup
run: tools/ci.sh mpy_format_setup
- name: Test mpy-tool.py
run: source tools/ci.sh && ci_mpy_format_test
run: tools/ci.sh mpy_format_test
- name: Test mpy-cross debug emitter
run: tools/ci.sh mpy_cross_debug_emitter
2 changes: 1 addition & 1 deletion .github/workflows/ports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Build ports download metadata
run: mkdir boards && ./tools/autobuild/build-downloads.py . ./boards
33 changes: 33 additions & 0 deletions .github/workflows/ports_alif.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: alif port

on:
push:
pull_request:
paths:
- '.github/workflows/*.yml'
- 'tools/**'
- 'py/**'
- 'extmod/**'
- 'shared/**'
- 'lib/**'
- 'drivers/**'
- 'ports/alif/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_alif:
strategy:
fail-fast: false
matrix:
ci_func: # names are functions in ci.sh
- alif_ae3_build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install packages
run: tools/ci.sh alif_setup
- name: Build ci_${{matrix.ci_func }}
run: tools/ci.sh ${{ matrix.ci_func }}
6 changes: 3 additions & 3 deletions .github/workflows/ports_cc3200.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install packages
run: source tools/ci.sh && ci_cc3200_setup
run: tools/ci.sh cc3200_setup
- name: Build
run: source tools/ci.sh && ci_cc3200_build
run: tools/ci.sh cc3200_build
Loading
Loading