Skip to content

Micropython v1.24.1 merge #10417

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 508 commits into from
Jun 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
508 commits
Select commit Hold shift + click to select a range
03b1b6d
docs/library/machine.UART: Extend the documentation for UART.irq.
robert-hh Mar 11, 2024
b8513e6
tests/extmod: Add test for machine.UART.IRQ_TXIDLE.
dpgeorge Aug 16, 2024
09d070a
tests/extmod_hardware: Add tests for machine.UART.IRQ_RX/RXIDLE/BREAK.
dpgeorge Aug 16, 2024
a89ac9e
lib/lwip: Update lwIP to STABLE-2_2_0_RELEASE.
dpgeorge Apr 16, 2024
664dd7b
extmod: Update make and cmake scripts to work with latest lwIP.
dpgeorge Apr 16, 2024
bc952d3
extmod/network_ppp_lwip: Add network.PPP via lwIP.
dpgeorge Mar 13, 2024
a5cc4d4
stm32: Integrate optional network.PPP.
dpgeorge Mar 27, 2024
c94a320
stm32/machine_uart: Allow changing only the baudrate.
dpgeorge Aug 7, 2024
d8b0337
stm32/machine_uart: Return number of bytes written even with timeout.
dpgeorge Aug 7, 2024
a1a16ff
stm32/uart: Use timeout_char even with CTS enabled.
dpgeorge Aug 7, 2024
aee002d
stm32/lwip_inc: Implement LWIP_PLATFORM_DIAG macro in terms of printf.
dpgeorge Aug 20, 2024
851aa06
rp2: Integrate optional network.PPP.
dpgeorge Aug 28, 2024
35b6a66
docs/library: Document the network.PPP class.
dpgeorge Aug 28, 2024
1f5cab9
stm32: Add option to put ISR, flash and UART code in RAM.
pi-anl Aug 15, 2022
9670666
stm32/boards: Enable RAM_ISR feature on boards with UART REPL.
pi-anl Aug 23, 2024
80c5e76
py/objint: Make byteorder argument optional in int.to_bytes() method.
AmirHmZz Apr 28, 2024
0b432b3
py/objint: Make length argument optional in int.to_bytes() method.
AmirHmZz Apr 30, 2024
cb7e990
py/objint: Make byteorder argument optional in int.from_bytes() method.
AmirHmZz Apr 28, 2024
1897fe6
tests/basics: Add tests for optional args to int.to_bytes/from_bytes.
AmirHmZz Apr 30, 2024
6ad6297
esp32: Fix ESP32-C3 USB serial/jtag peripheral pre-IDF 5.1.
projectgus Aug 27, 2024
5e692d0
esp32: Add MICROPY_HW_USB_CDC macro for native USB-CDC serial.
projectgus Aug 27, 2024
a6c35ae
esp32: Fix ARDUINO_NANO_ESP32 build configuration.
projectgus Sep 4, 2024
fee9d66
esp32: Disable hardware stack protection on ESP32-C3.
projectgus Sep 3, 2024
838c490
tests/net_inet: Update micropython.org certificate for SSL tests.
dpgeorge Aug 16, 2024
6be1dbc
tests/run-tests.py: Automatically detect native arch and mpy-cross flag.
dpgeorge Aug 16, 2024
9396572
tools/mpy-tool.py: Support freezing rv32imc native code.
dpgeorge Aug 29, 2024
dc9ecd5
qemu-arm: Factor board config to mk fragments.
dpgeorge Aug 28, 2024
f769b43
qemu-arm/Makefile: Clean up SRC and OBJ variables.
dpgeorge Aug 29, 2024
0426934
qemu-arm: Merge RISC-V 32-bit support into qemu-arm port.
dpgeorge Aug 29, 2024
3ea1ce6
all: Remove remaining qemu-riscv references.
dpgeorge Sep 6, 2024
6591138
qemu: Rename qemu-arm port to qemu.
dpgeorge Sep 4, 2024
455415b
shared/runtime/sys_stdio_mphal: Fix printed type for stdio streams.
timdechant Aug 26, 2024
d04974d
unix: Expand the build steps in the README.
projectgus Aug 27, 2024
e370999
unix: Add a description of COPT in the README.
projectgus Aug 28, 2024
a831c78
tools/mpy_ld.py: Ignore R_XTENSA_ASM_EXPAND relocation entries.
agatti Aug 28, 2024
65244d2
extmod/modlwip: Fix compile error for lwIP with SLIP support.
cajt Aug 28, 2024
3294606
extmod/libmetal: Fix libmetal rules for mkdir dependencies.
iabdalkader Aug 29, 2024
ed86fdb
samd/mphalport: Fix an execution order bug in mp_hal_ticks_us_64().
robert-hh Apr 21, 2024
1a6279b
samd/mphalport: Simplify mp_hal_delay_ms().
robert-hh Aug 17, 2024
e23fdb1
tests/extmod/machine_uart_irq_txidle.py: Simplify the test script.
robert-hh Aug 29, 2024
aefd48b
samd/Makefile: Specify UF2 family in firmware.uf2.
erdnaxe Sep 3, 2024
6833f3d
zephyr: Add threading support.
danicampora Jun 28, 2024
d68d8fc
zephyr: Re-implement the Zephyr console in non-blocking mode.
danicampora Jul 16, 2024
7009c75
zephyr: Enable some core features to get more thread tests passing.
danicampora Aug 12, 2024
fc630e7
zephyr/main: Collect registers during a MicroPython GC scan.
dpgeorge Aug 19, 2024
e7974a2
zephyr/mpconfigport: Enable mpz big integers.
dpgeorge Aug 19, 2024
935fcd1
tests/thread: Adapt stress_aes.py to run on zephyr.
danicampora Aug 20, 2024
0afec39
zephyr/Kconfig: Increase default GC heap size to 48k.
dpgeorge Sep 3, 2024
74d6dba
tests/run-tests.py: Add a zephyr test target.
dpgeorge Sep 3, 2024
1c0dc2a
zephyr/src: Remove k_yield() at the end of console_irq_input_hook().
danicampora Sep 5, 2024
3ca01ec
zephyr/mphalport: Make mp_hal_wait_sem() always call k_poll().
danicampora Sep 5, 2024
f1bdac3
unix/README: Fix typo in build dependencies.
AmirHmZz Sep 9, 2024
39ddfed
stm32: Update STM32L452xx Multi OTG handling.
higstar Sep 5, 2024
976d9d1
stm32/boards/STM32F429DISC: Add DAC support to the STM32F429DISC.
mattytrentini Sep 10, 2024
7953089
examples/natmod: Fix URL links in README.md.
mattytrentini Sep 9, 2024
0d83886
docs/esp32: Update pin access example with addresses for ESP32-S3.
pdg137 Oct 11, 2023
3d53b39
docs/reference: Fix pyboard.py filesystem cp example with three files.
dpgeorge Sep 2, 2024
8feb714
docs/library: Document math.log with two arguments.
dpgeorge Sep 10, 2024
fb069f9
docs/library: Document machine.Pin.toggle() method.
projectgus Sep 10, 2024
5dfd3ec
rp2: Add board-level hooks to main, and MICROPY_SOURCE_BOARD cmake var.
ZodiusInfuser Sep 5, 2024
79ba6d8
rp2: Increase ext pins from 10 to 32.
ZodiusInfuser Sep 5, 2024
ded8bbd
rp2/machine_pin_cyw43: Include check for CYW43_GPIO.
ZodiusInfuser Sep 16, 2024
451ba1c
rp2/modules: Fix FatFS boot script to detect invalid FAT filesystem.
iabdalkader Sep 4, 2024
52a593c
py/scheduler: Only run callbacks on the main thread if GIL is disabled.
projectgus Sep 4, 2024
5d8878b
shared/tinyusb: Only run TinyUSB on the main thread if GIL is disabled.
projectgus Sep 4, 2024
067ef81
all: Remove tinytest component.
dpgeorge Sep 4, 2024
1be38e8
tests/run-tests.py: Remove --write-exp and --list-tests options.
dpgeorge Sep 4, 2024
7b5738a
tools/ci.sh: Clean up the Unix port's MIPS target.
agatti Jul 25, 2024
52d5f39
tools/ci.sh: Add missing FFI helper for CI RV64 Unix builds.
agatti Sep 5, 2024
46d8db8
tools/ci.sh: Clean up the Unix port's Arm target.
agatti Sep 5, 2024
8b35f2c
tools/mpy_ld.py: Support jumping more than 2k on armv6m architectures.
dpgeorge Sep 9, 2024
b05983f
unix/modffi: Fix signed integer cast in return_ffi_value.
mchlswyr Sep 6, 2024
230e521
tests/ports/unix: Update and extend the modffi integer tests.
mchlswyr Sep 6, 2024
d775db7
esp32/boards/UM_FEATHERS3NEO: Add FeatherS3 Neo board definition.
UnexpectedMaker Jun 7, 2024
9b5f99e
esp32/boards: Add UM_OMGS3 and UM_RGBTOUCH_MINI board definitions.
UnexpectedMaker Sep 15, 2024
6c73573
esp32/boards/OLIMEX_ESP32_EVB: Add Olimex ESP32 EVB board definition.
Sep 2, 2024
7e14680
py/objringio: Add micropython.RingIO() interface for general use.
pi-anl Sep 26, 2022
b08ddbb
esp32/boards/UM_RGBTOUCH_MINI: Fix compile error with missing modules.
UnexpectedMaker Sep 20, 2024
2b5feb9
lib/libffi: Update libffi to 3.4.6.
agatti Sep 22, 2024
9796625
unix/modffi: Clean up FFI closures memory management.
agatti Sep 22, 2024
bb3c711
tools/ci.sh: Let RV64 use a source-built version of libffi.
agatti Sep 19, 2024
8f465df
unix/modffi: Restrict uint32_t values to 32 bits.
agatti Sep 19, 2024
f1b88e0
gitignore: Add ffi_lib.so to the gitignore list.
agatti Sep 22, 2024
8a9042a
github/workflows: Update Ubuntu images for code size CI tasks.
agatti Sep 20, 2024
58e7689
tools/metrics.py: Add VIRT_RV32 to the code size metrics.
agatti Sep 12, 2024
3e085c3
tools/ci.sh: Report code size for `VIRT_RV32` as well.
agatti Sep 13, 2024
eec5eb4
stm32/uart: Add UART RX/CTS pin pull config options.
iabdalkader Sep 19, 2024
3a2252b
stm32/powerctrl: Add pre/post stop mode entry macros.
iabdalkader Sep 19, 2024
fc006a0
stm32/boards/ARDUINO_OPTA: Add support for the Arduino Opta board.
iabdalkader Sep 2, 2024
a4e3830
stm32/boards/ARDUINO_PORTENTA_H7: Update board config files.
iabdalkader Sep 19, 2024
e5984fb
stm32/boards/ARDUINO_NICLA_VISION: Update board config files.
iabdalkader Sep 19, 2024
51974f2
stm32/boards/ARDUINO_GIGA: Update board config files.
iabdalkader Sep 19, 2024
188ca7d
renesas-ra/README: Add basic details about board autogen files.
pi-anl May 29, 2024
57f76f4
renesas-ra/boards: Add configuration.xml for auto-generated files.
TakeoTakahashi2020 May 31, 2024
6381ad5
renesas-ra/extint: Fix issue with Pin.irq not triggering.
TakeoTakahashi2020 Jun 14, 2024
a2475ee
renesas-ra/usb: Use interrupt rather than polling for USB task.
pi-anl Jul 26, 2024
4f6d4b2
extmod/vfs_blockdev: Check block device function positive results.
projectgus Jan 31, 2024
f4ab9d9
extmod/vfs_blockdev: Implement common helper for read and write.
projectgus Sep 4, 2024
5b22bde
py/persistentcode: Explicitly track native BSS/rodata when needed.
dpgeorge Sep 25, 2024
36fe9bb
unix/alloc: Don't trace executable memory for GC pointers.
dpgeorge Sep 25, 2024
40048f0
ports: Fix lwIP config setting to disable DHCP ARP check.
dpgeorge Sep 2, 2024
09fa90e
lib/tinyusb: Update to version 0.17.0.
dpgeorge Sep 24, 2024
b0ba151
shared/tinyusb: Use new persistent-tx-fifo configure interface.
dpgeorge Aug 7, 2024
43b05af
py/mpz: Skip separators when running out of digits to print.
agatti Sep 23, 2024
73feaaf
rp2/machine_uart: Fix dropped UART REPL bytes on soft reset.
projectgus Sep 26, 2024
17d8234
py/parse: Remove old esp32 compiler workaround.
agatti Sep 24, 2024
3a3dbf5
zephyr: Update include paths to use the zephyr namespace.
MaureenHelm Sep 16, 2022
4e59a51
zephyr: Replace zephyr.h with kernel.h.
MaureenHelm Sep 16, 2022
2407c46
docs/zephyr: Update docs to reflect device name changes.
MaureenHelm Sep 16, 2022
90c5b04
zephyr: Replace deprecated FLASH_AREA macros with FIXED_PARTITION.
MaureenHelm Oct 4, 2022
a7ae3a3
zephyr: Change main function to return an int.
MaureenHelm Aug 30, 2023
e191265
zephyr: Change SPI chip select from a pointer to a struct member.
MaureenHelm Aug 30, 2023
fa7b4c4
tools/ci.sh: Upgrade Zephyr docker image 0.26.13 and SDK 0.16.8.
MaureenHelm Sep 16, 2022
545d4ef
zephyr: Upgrade to Zephyr v3.7.0.
MaureenHelm Sep 16, 2022
f33df71
zephyr: Refactor device lookup into a common helper function.
MaureenHelm Sep 8, 2024
a9803f4
zephyr: Allow using devicetree node labels to construct machine objects.
MaureenHelm Aug 5, 2024
1291718
github/workflows: Free up disk space on zephyr workflow.
dpgeorge Oct 2, 2024
70a0155
unix/alloc: Remove unused MICROPY_FORCE_PLAT_ALLOC_EXEC option.
dpgeorge Sep 26, 2024
e39bd3a
shared/runtime/gchelper_rv64i: Fix opcode sw/sd typo.
agatti Sep 28, 2024
ca220b5
py/nlrrv64: Add RISC-V RV64I NLR implementation.
agatti Sep 27, 2024
ca6723b
rp2/cyw43_configport: Define CYW43_PRINTF to mp_printf to get messages.
dpgeorge Sep 18, 2024
4247921
esp32: Use shared/tinyusb integration for S2 and S3 USB.
pi-anl May 23, 2024
641f600
shared/tinyusb: Remove MICROPY_HW_USB_EXTERNAL_TINYUSB.
pi-anl May 23, 2024
5ae622e
esp32: Add automatic bootloader handling for S2 and S3.
pi-anl May 23, 2024
386771e
esp32/Makefile: Allow auto-port selection if not passed on cmdline.
pi-anl Jun 4, 2024
11bc7d0
esp32/boards: Update ARDUINO_NANO_ESP32 USB configuration.
pi-anl Sep 24, 2024
548f88d
shared/tinyusb: Wake main task if needed at end of USB ISR.
pi-anl Jul 31, 2024
338df1a
py/objtype: Allow passing keyword arguments to native base __init__.
stinos Aug 21, 2024
c2eebe0
tests/README: Update instructions for key/cert pair usage on device.
andrewleech Jul 25, 2024
d50e36e
ports: Include py/mphal.h instead of mphalport.h.
dpgeorge Oct 7, 2024
6835743
extmod/vfs_posix_file: Skip flush of tty handles in msvc debug builds.
stinos Oct 10, 2023
1091021
tools/mpremote: Make eval parse by default.
jimmo Jun 9, 2023
db59e55
tools/mpremote: Make filesystem commands use transport API.
jimmo Jun 9, 2023
6f8157d
tools/mpremote: Add hashing ability and use for recursive copy.
jimmo Jun 9, 2023
dd6f78f
tools/mpremote: Improve error output.
jimmo Jun 15, 2023
6461ffd
tools/mpremote: Add initial regression tests for mpremote.
jimmo Jun 14, 2023
a25b6b9
tools/mpremote: Add option to force copy.
dpgeorge Sep 27, 2024
e5eeaa7
docs/reference/mpremote: Update docs to mention new features.
dpgeorge Sep 27, 2024
6d79937
esp32: Add support for esp32c6.
pi-anl Jun 26, 2023
32a2c87
esp32/machine_adc: Make ADC 2 optional.
Dec 27, 2023
958d20f
esp32/machine_timer: Generalise timer clock configuration.
Dec 27, 2023
a0f82a5
esp32/modesp32: Make gpio_deep_sleep_hold optional.
Dec 27, 2023
68e95c7
esp32/machine_uart: Add support for LP_UART.
mancausoft Mar 12, 2024
5aa115a
esp32/adc: Set ADC to 12bit by default on esp32c6.
dmfaria Jun 14, 2024
2f79854
esp32/Makefile: Only set port & baud for jobs that access hardware.
andrewleech Mar 28, 2024
1bd312d
esp32/boards/ESP32_GENERIC_C6: Add new generic esp32c6 board.
pi-anl Jan 24, 2024
ee92198
esp32/boards/M5STACK_NANOC6: Add new M5Stack C6 board definition.
mattytrentini May 1, 2024
ce397d8
esp32/boards/UM_TINYC6: Add new UM C6 board definition.
mattytrentini May 14, 2024
55dc482
esp32/sdkconfig: Disable PMP_IDRAM_SPLIT to fix native emit support.
pi-anl Oct 8, 2024
197becb
tests: Tweak machine SPI and UART tests to work with esp32c6.
dpgeorge Sep 25, 2024
05ac693
esp32: Fix hang in taskYIELD() on riscv CPUs when IRQs disabled.
projectgus Sep 25, 2024
82e69df
esp32: Apply the LWIP active TCP socket limit.
projectgus Oct 2, 2024
44ed1c2
esp32: Disable hardware stack protection on ESP32-C6.
dpgeorge Oct 11, 2024
ece950d
stm32/pendsv: Remove preemptive keyboard interrupt via PendSV.
dpgeorge Oct 10, 2024
1223fa9
renesas-ra/pendsv: Remove preemptive keyboard interrupt via PendSV.
dpgeorge Oct 10, 2024
7746785
tests/run-tests.py: Wait for soft reset if a target skips a test.
dpgeorge Oct 10, 2024
d92694c
tools: Only issue a single Ctrl-C when entering raw REPL.
dpgeorge Oct 10, 2024
fa942d5
zephyr/boards: Add support for BeagleConnect Freedom.
Ayush1325 Sep 23, 2024
525fce7
py/usermod.cmake: Check target exists in usermod_gather_sources.
Gadgetoid Jun 28, 2024
70a884d
lib/pico-sdk: Update to version 2.0.0.
dpgeorge Aug 8, 2024
815d6a1
rp2/mpconfigport: Set MCU name for RP2350.
peterharperuk May 22, 2024
c90d996
rp2: Update custom linker scripts for new pico-sdk.
peterharperuk May 22, 2024
d1423ef
rp2/modmachine: Implement lightsleep for RP2350.
peterharperuk May 22, 2024
27aeade
rp2/rp2_dma: Generalise DMA for RP2350.
peterharperuk Jun 3, 2024
d2c85c7
rp2: Integrate RP2350 and use aon_timer instead of rtc API.
peterharperuk May 23, 2024
6d39418
rp2: Add support for 48-pin RP2350 variant.
Gadgetoid Jul 1, 2024
a3d1c59
rp2/machine_pin: Move decl of machine_pin_obj_table to public header.
dpgeorge Sep 2, 2024
e6093c0
rp2/rp2_pio: Add support for RP2350A/B variants in PIO interface.
Gadgetoid Jul 2, 2024
4af09de
rp2/boards/make-pins.py: Pass num-gpios/num-ext-gpios into make-pins.
peterharperuk Jul 8, 2024
733052f
rp2/machine_pin: Use 64-bit gpio functions to allow gpios >=32 to work.
peterharperuk Jul 10, 2024
57f4cab
rp2/machine_pin: Generalise gpio_irq handler for pins >32.
Gadgetoid Jul 8, 2024
d0bc427
rp2/clocks_extra: Update runtime_clocks_init based on new pico-sdk.
peterharperuk Jul 10, 2024
34e463d
rp2/machine_adc: Add ADC support for RP2350B.
Gadgetoid Aug 5, 2024
4fc6cf9
rp2: Add support for RP2350 in RISCV mode.
dpgeorge Aug 8, 2024
f2f08ef
rp2/Makefile: Allow CMAKE_ARGS to be set by user.
dpgeorge Aug 8, 2024
7a78e5a
rp2/machine_bitstream: Set SysTick reset value.
sfe-SparkFro Aug 5, 2024
957cea2
rp2/machine_uart: Allow new TX/RX pins on RP2350.
sfe-SparkFro Aug 6, 2024
ea2eed1
rp2/mphalport: Implement mp_hal_ticks_cpu for RISCV using mcycle.
dpgeorge Aug 8, 2024
fa15ae4
rp2/machine_bitstream: Implement bitstream for RISC-V using mcycle.
dpgeorge Aug 8, 2024
8cc7c64
rp2: Workaround pico_aon_timer timezone binary size increase.
projectgus Aug 13, 2024
27904ae
rp2/machine_pwm: Add RP2350 slices to machine.PWM.
Gadgetoid Aug 15, 2024
137e9e8
rp2/main: Set CPU frequency to default for the MCU.
dpgeorge Sep 23, 2024
e32e13f
rp2/boards/RPI_PICO2: Add new RPI_PICO2 board definition.
peterharperuk May 22, 2024
f9cebe6
tools/ci.sh: Add RPI_PICO2 to CI.
dpgeorge Aug 9, 2024
fda7ae8
tests/ports/rp2: Update DMA test to work on RP2350.
dpgeorge Aug 7, 2024
651b63c
tests/ports/rp2: Add simple rp2-specific UART test.
dpgeorge Aug 9, 2024
b42bb91
tests/ports/rp2: Update lightsleep/machine_idle to skip on RP2350.
dpgeorge Oct 11, 2024
b33f647
tests/run-tests.py: Only run inlineasm tests on rp2 ARM targets.
dpgeorge Oct 11, 2024
51663b9
rp2/machine_uart: Clear timeout_char when UART is first constructed.
dpgeorge Oct 11, 2024
838f212
unix/main: Add --version command-line option.
dpgeorge Sep 26, 2024
3fecab5
esp32/mphalport: Always poll stdin ring-buffer to include UART use.
andrewleech Oct 13, 2024
1b89c50
py/objtype: Don't delegate lookup of descriptor methods to __getattr__.
dpgeorge Oct 1, 2024
97af100
rp2/machine_uart: Make it so TX is done only when no longer busy.
dpgeorge Oct 21, 2024
7ed480f
Revert "stm32/machine_uart: Allow changing only the baudrate."
dpgeorge Oct 20, 2024
d1574de
extmod/modframebuf: Fix FrameBuffer size check for stride corner-cases.
corranwebster Oct 2, 2024
7d44237
tests/extmod: Config SPI test for esp8266 and skip SoftTimer test.
dpgeorge Oct 18, 2024
1e3b242
tests/extmod: Adjust ssl/tls tests to run on targets with axTLS.
dpgeorge Oct 18, 2024
52f2ba5
tests/micropython: Tweak ringio test for targets with terse errors.
dpgeorge Oct 18, 2024
f7abb52
tests/run-tests.py: Skip large viper test on esp8266.
dpgeorge Oct 18, 2024
0646177
tests/extmod: Make invalid-blockdev test work consistently on all ports.
dpgeorge Oct 21, 2024
8fef67b
esp32/modmachine: Allow building with USB CDC disabled.
vshymanskyy Oct 17, 2024
324871f
qemu/mcu/rv32: Fix test of mcause value in lookup_cause.
Oct 18, 2024
6328958
rp2/mpconfigport: Leave callable pointers alone on RV32.
agatti Oct 16, 2024
3f54e5d
tests/extmod: Support esp32,mimxrt,stm32,samd ports in UART TX test.
dpgeorge Oct 21, 2024
078ead2
extmod/network_wiznet5k: Reset mDNS when interface is brought up.
greezybacon Oct 14, 2024
43bd57f
shared/timeutils: Document the range of year/month/day etc input values.
dpgeorge Oct 24, 2024
47741e2
rp2/datetime_patch: Fix year and month offset for mktime wrapper.
dpgeorge Oct 24, 2024
6d98280
tests/extmod: Add a simple test for machine.RTC.
dpgeorge Oct 24, 2024
ca6aed7
tests/extmod: Fix access of RTC class in machine.RTC test.
dpgeorge Oct 24, 2024
120ac0f
rp2/modmachine: Re-sync time_ns offset when coming out of lightsleep.
dpgeorge Oct 24, 2024
1ec0c9b
tests/extmod: Use time_ns instead of time in lfs mtime test.
dpgeorge Oct 24, 2024
09ea901
tests/extmod: Add test to compare time_ns with time.
dpgeorge Oct 24, 2024
2644f57
extmod/modtls_mbedtls: Add a thread-global ptr for current SSL context.
iabdalkader Oct 16, 2024
68f1c20
extmod/modtls_mbedtls: Support alternate sign callbacks in Python.
iabdalkader Sep 24, 2024
bab6a01
lib/arduino-lib: Update submodule.
iabdalkader Sep 26, 2024
28009a7
stm32/boards/ARDUINO_PORTENTA_H7: Add SE05x driver.
iabdalkader Sep 24, 2024
57bc98f
stm32/boards/ARDUINO_NICLA_VISION: Add SE05x driver.
iabdalkader Sep 24, 2024
4c54335
stm32/boards/ARDUINO_OPTA: Add Opta expansion module.
iabdalkader Oct 16, 2024
18c9abc
lib/micropython-lib: Update submodule to latest.
dpgeorge Oct 18, 2024
f212bbe
all: Bump version to 1.24.0.
dpgeorge Oct 25, 2024
5c7ac55
tools/mpremote: Fix UnboundLocalError in Transport.fs_writefile().
glenn20 Oct 26, 2024
785c92d
esp32/machine_pwm: Use IDF functions to calculate resolution correctly.
pi-anl Oct 27, 2024
c0afff8
pic16bit: Make it build with recent XC16 versions.
agatti Sep 12, 2024
a7d3bc2
py/objdeque: Fix buffer overflow in deque_subscr.
jansturm92 Oct 29, 2024
6f32768
extmod/modlwip: Fix IGMP address type when IPv6 is enabled.
dpgeorge Oct 31, 2024
164c549
esp32/machine_pwm: Restore PWM support for ESP-IDF v5.0.x and v5.1.x.
projectgus Nov 1, 2024
72799f9
esp32: Workaround native code execution crash on ESP32-S2.
projectgus Nov 6, 2024
c1a85bb
tools/mpremote: Make sure stdout and stderr output appear in order.
dpgeorge Nov 6, 2024
159b54b
tools/mpremote: Add test for forced copy.
dpgeorge Nov 6, 2024
4e78c61
tools/mpremote: Support trailing slash on dest for non-recursive copy.
dpgeorge Nov 6, 2024
0c580f7
esp32/modsocket: Fix getaddrinfo hints to set AI_CANONNAME.
dpgeorge Nov 11, 2024
20a6d82
extmod/vfs_blockdev: Support bool return from Python read/write blocks.
dpgeorge Nov 13, 2024
67f8938
extmod/network_cyw43: Fix isconnected() result on AP interface.
projectgus Nov 13, 2024
4f4d683
extmod/network_cyw43: Fix uninitialised variable in status('stations').
dpgeorge Nov 19, 2024
49b83ed
extmod/network_cyw43: Allow configuring active AP interface.
projectgus Nov 13, 2024
03bc561
esp32: Fix setting WLAN channel in AP mode.
projectgus Nov 12, 2024
eb0027b
esp32: Use hardware version for touchpad macro defines.
projectgus Nov 6, 2024
33f50d4
esp32: Fix machine.TouchPad startup on ESP32-S2 and S3.
projectgus Nov 6, 2024
948863c
extmod/modframebuf: Fix 0 radius bug in FrameBuffer.ellipse.
corranwebster Nov 14, 2024
7118942
nrf/drivers/ticker: Reset slow ticker callback count on soft reboot.
robert-hh Nov 27, 2024
564ef28
py/objfloat: Workaround non-constant NAN definition on Windows MSVC.
projectgus Nov 20, 2024
ecfdd5d
all: Bump version to 1.24.1.
dpgeorge Nov 29, 2024
1381e17
wip: initial merge; no compilation yet
dhalbert Jun 8, 2025
2dd33e3
wip: ports compile and pass smoke tests
dhalbert Jun 11, 2025
3566438
wip: fix some tests
dhalbert Jun 12, 2025
7298abe
wip: all tests pass
dhalbert Jun 12, 2025
c7660b6
tests/cpydiff/core_fstring_parser.py: prevent ruff complaints
dhalbert Jun 12, 2025
8c7b592
fix compilation issues
dhalbert Jun 13, 2025
34af8c3
shrink boards and remove non-circuitpython attributes in micropython …
dhalbert Jun 13, 2025
ce450dc
merge from adafruit/main
dhalbert Jun 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@ bin/
circuitpython-stubs/
test-stubs/
build-*/
docs/genrst/

# Test failure outputs
# Test failure outputs and intermediate artifacts
######################
tests/results/*
tests/ports/unix/ffi_lib.so

# Python cache files
######################
Expand Down Expand Up @@ -76,6 +78,7 @@ TAGS
####################
*~

# MacOS desktop metadata files
*.DS_Store
**/*.DS_Store
*.icloud
Expand All @@ -100,6 +103,7 @@ TAGS
.cache

**/CLAUDE.local.md
.claude

# windsurf rules
.windsurfrules
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
url = https://github.com/micropython/axtls.git
[submodule "lib/libffi"]
path = lib/libffi
url = https://github.com/atgreen/libffi
url = https://github.com/libffi/libffi
[submodule "lib/berkeley-db-1.xx"]
path = lib/berkeley-db-1.xx
url = https://github.com/micropython/berkeley-db-1.xx
Expand Down
4 changes: 1 addition & 3 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2023 Damien P. George
Copyright (c) 2013-2024 Damien P. George

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -22,8 +22,6 @@ THE SOFTWARE.

--------------------------------------------------------------------------------

# CIRCUITPY-CHANGE:

Unless specified otherwise (see below), the above license and copyright applies
to all files derived from MicroPython in this repository.

Expand Down
10 changes: 2 additions & 8 deletions docs/library/builtins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,15 +86,9 @@ Functions and types

.. class:: int()

.. classmethod:: from_bytes(bytes, byteorder)
.. classmethod:: from_bytes(bytes, byteorder="big", *, signed=False)

In CircuitPython, the ``byteorder`` parameter must be positional (this is
compatible with CPython).

.. method:: to_bytes(size, byteorder)

In CircuitPython, the ``byteorder`` parameter must be positional (this is
compatible with CPython).
.. method:: to_bytes(length=1, byteorder="big", *, signed=False)

.. function:: isinstance()

Expand Down
133 changes: 131 additions & 2 deletions docs/library/micropython.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:mod:`micropython` -- MicroPython extensions and internals
==========================================================
:mod:`micropython` -- access and control MicroPython internals
==============================================================

.. module:: micropython
:synopsis: access and control MicroPython internals
Expand All @@ -26,3 +26,132 @@ Functions
provided as part of the :mod:`micropython` module mainly so that scripts can be
written which run under both CPython and MicroPython, by following the above
pattern.

.. CIRCUITPY-CHANGE: REMOVE .. function:: opt_level([level])

If *level* is given then this function sets the optimisation level for subsequent
compilation of scripts, and returns ``None``. Otherwise it returns the current
optimisation level.

The optimisation level controls the following compilation features:

- Assertions: at level 0 assertion statements are enabled and compiled into the
bytecode; at levels 1 and higher assertions are not compiled.
- Built-in ``__debug__`` variable: at level 0 this variable expands to ``True``;
at levels 1 and higher it expands to ``False``.
- Source-code line numbers: at levels 0, 1 and 2 source-code line number are
stored along with the bytecode so that exceptions can report the line number
they occurred at; at levels 3 and higher line numbers are not stored.

The default optimisation level is usually level 0.

.. CIRCUITPY-CHANGE: REMOVE .. function:: alloc_emergency_exception_buf(size)

Allocate *size* bytes of RAM for the emergency exception buffer (a good
size is around 100 bytes). The buffer is used to create exceptions in cases
when normal RAM allocation would fail (eg within an interrupt handler) and
therefore give useful traceback information in these situations.

A good way to use this function is to put it at the start of your main script
(eg ``boot.py`` or ``main.py``) and then the emergency exception buffer will be active
for all the code following it.

.. CIRCUITPY-CHANGE: REMOVE .. function:: mem_info([verbose])

Print information about currently used memory. If the *verbose* argument
is given then extra information is printed.

The information that is printed is implementation dependent, but currently
includes the amount of stack and heap used. In verbose mode it prints out
the entire heap indicating which blocks are used and which are free.

.. CIRCUITPY-CHANGE: REMOVE .. function:: qstr_info([verbose])

Print information about currently interned strings. If the *verbose*
argument is given then extra information is printed.

The information that is printed is implementation dependent, but currently
includes the number of interned strings and the amount of RAM they use. In
verbose mode it prints out the names of all RAM-interned strings.

.. CIRCUITPY-CHANGE: REMOVE .. function:: stack_use()

Return an integer representing the current amount of stack that is being
used. The absolute value of this is not particularly useful, rather it
should be used to compute differences in stack usage at different points.

.. CIRCUITPY-CHANGE: REMOVE .. function:: heap_lock()
.. CIRCUITPY-CHANGE: REMOVE .. function:: heap_unlock()
.. CIRCUITPY-CHANGE: REMOVE .. function:: heap_locked()

Lock or unlock the heap. When locked no memory allocation can occur and a
`builtins.MemoryError` will be raised if any heap allocation is attempted.
`heap_locked()` returns a true value if the heap is currently locked.

These functions can be nested, ie `heap_lock()` can be called multiple times
in a row and the lock-depth will increase, and then `heap_unlock()` must be
called the same number of times to make the heap available again.

Both `heap_unlock()` and `heap_locked()` return the current lock depth
(after unlocking for the former) as a non-negative integer, with 0 meaning
the heap is not locked.

If the REPL becomes active with the heap locked then it will be forcefully
unlocked.

Note: `heap_locked()` is not enabled on most ports by default,
requires ``MICROPY_PY_MICROPYTHON_HEAP_LOCKED``.

.. CIRCUITPY-CHANGE: REMOVE .. function:: kbd_intr(chr)

Set the character that will raise a `KeyboardInterrupt` exception. By
default this is set to 3 during script execution, corresponding to Ctrl-C.
Passing -1 to this function will disable capture of Ctrl-C, and passing 3
will restore it.

This function can be used to prevent the capturing of Ctrl-C on the
incoming stream of characters that is usually used for the REPL, in case
that stream is used for other purposes.

.. CIRCUITPY-CHANGE: REMOVE .. function:: schedule(func, arg)

Schedule the function *func* to be executed "very soon". The function
is passed the value *arg* as its single argument. "Very soon" means that
the MicroPython runtime will do its best to execute the function at the
earliest possible time, given that it is also trying to be efficient, and
that the following conditions hold:

- A scheduled function will never preempt another scheduled function.
- Scheduled functions are always executed "between opcodes" which means
that all fundamental Python operations (such as appending to a list)
are guaranteed to be atomic.
- A given port may define "critical regions" within which scheduled
functions will never be executed. Functions may be scheduled within
a critical region but they will not be executed until that region
is exited. An example of a critical region is a preempting interrupt
handler (an IRQ).

A use for this function is to schedule a callback from a preempting IRQ.
Such an IRQ puts restrictions on the code that runs in the IRQ (for example
the heap may be locked) and scheduling a function to call later will lift
those restrictions.

On multi-threaded ports, the scheduled function's behaviour depends on
whether the Global Interpreter Lock (GIL) is enabled for the specific port:

- If GIL is enabled, the function can preempt any thread and run in its
context.
- If GIL is disabled, the function will only preempt the main thread and run
in its context.

Note: If `schedule()` is called from a preempting IRQ, when memory
allocation is not allowed and the callback to be passed to `schedule()` is
a bound method, passing this directly will fail. This is because creating a
reference to a bound method causes memory allocation. A solution is to
create a reference to the method in the class constructor and to pass that
reference to `schedule()`. This is discussed in detail here
:ref:`reference documentation <isr_rules>` under "Creation of Python
objects".

There is a finite queue to hold the scheduled functions and `schedule()`
will raise a `RuntimeError` if the queue is full.
1 change: 0 additions & 1 deletion examples/natmod/.gitignore

This file was deleted.

74 changes: 0 additions & 74 deletions examples/natmod/README.md

This file was deleted.

13 changes: 0 additions & 13 deletions examples/natmod/deflate/Makefile

This file was deleted.

70 changes: 0 additions & 70 deletions examples/natmod/deflate/deflate.c

This file was deleted.

14 changes: 0 additions & 14 deletions examples/natmod/features0/Makefile

This file was deleted.

Loading