Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1171 commits
Select commit Hold shift + click to select a range
e6a6916
Merge pull request #11405 from mikeysklar/samx5x-turbo-hallowing-uart…
tannewt Sep 17, 2026
6b36fac
Merge remote-tracking branch 'origin/main'
weblate Sep 17, 2026
e543fcd
Merge pull request #11406 from mikeysklar/load-native-nrf52-reenable
tannewt Sep 17, 2026
f11f0fc
Merge remote-tracking branch 'origin/main'
weblate Sep 17, 2026
6e982d2
Merge pull request #11410 from dhalbert/double-typecode-guard
tannewt Sep 17, 2026
139246e
Merge remote-tracking branch 'origin/main'
weblate Sep 17, 2026
9ad9876
Merge pull request #11407 from dhalbert/qstr-blob
tannewt Sep 17, 2026
fe8f49b
Merge remote-tracking branch 'adafruit/main' into littlefs
tannewt Sep 17, 2026
2e74a70
Eliobot S3: keep code.py, clarify boot.py and pin comments
rboutrois Sep 17, 2026
2682ba8
Run the size record download from github-script
dhalbert Sep 17, 2026
268a168
Merge pull request #11412 from weblate/weblate-circuitpython-main
tannewt Sep 17, 2026
541fa36
Start the size table with every board shown
dhalbert Sep 17, 2026
29db520
bitmaptools.blit fast path
FoamyGuy Sep 17, 2026
04001aa
Auto-update the Zephyr autogen files
tannewt Sep 17, 2026
dd72cb9
Merge pull request #11413 from FoamyGuy/bitmaptools_blit_fastpath
tannewt Sep 18, 2026
2b386e2
Merge pull request #11411 from Eliobot/eliobot-s3-board
tannewt Sep 18, 2026
50f1ff0
Merge pull request #11408 from dhalbert/ci-firmware-sizes
tannewt Sep 18, 2026
9b392c7
Merge pull request #11414 from tannewt/auto_update_zephyr_autogen
dhalbert Sep 18, 2026
5a5df61
zephyr-cp: compile in parallel when make's jobserver is not a fifo
dhalbert Sep 18, 2026
67751f6
zephyr-cp: stop recompiling every file on every build
dhalbert Sep 18, 2026
7469721
build_release_files: skip the extra languages for simulator boards on…
dhalbert Sep 18, 2026
33b8d1a
board: Rename CIRCUITPY_BOARD_EXTRA_DICT_ITEMS to CIRCUITPY_BOARD_HAR…
mmabey Sep 18, 2026
99f7f21
hardwarekey: Use the MAKE_ENUM macros for Purpose
mmabey Sep 18, 2026
0a03499
zephyr-cp CI: disable action-zephyr-setup's ccache
dhalbert Sep 18, 2026
7b8181c
Merge pull request #11416 from dhalbert/zephyr-cpbuild-parallel-fallback
tannewt Sep 18, 2026
108271b
Merge pull request #11319 from mmabey/mabey/esp32-hmac-efuse-planning
tannewt Sep 18, 2026
102548e
Update translation files
weblate Sep 18, 2026
aec46fd
Fix error and add test branch
tannewt Sep 18, 2026
1043a70
Merge pull request #11418 from weblate/weblate-circuitpython-main
dhalbert Sep 18, 2026
337c8bc
Print out the logs
tannewt Sep 18, 2026
40147ec
Support pin muxing through IOBroker
tannewt Aug 29, 2026
bc6c07c
Pick up zephyr UART fix
tannewt Sep 18, 2026
c61e6ed
zephyr-cp: create libcircuitpython.a from scratch on every build
dhalbert Sep 19, 2026
d968275
zephyr-cp: quote the Kconfig fragment list so DEBUG=1 works
dhalbert Sep 19, 2026
5834c02
zephyr-cp: do not reconfigure for every language build
dhalbert Sep 19, 2026
a238933
raspberrypi: update pico-sdk to 2.3.1
mikeysklar Sep 19, 2026
f7bbc1f
raspberrypi: rp2pio: claim pinless state machines without a gpio range
mikeysklar Sep 19, 2026
770deee
Update to gcc 15.3.Rel1 from 15.2.Rel1
dhalbert Sep 19, 2026
8253e34
raspberrypi: add -Wno-array-bounds for mbedtls with gcc 15.3
dhalbert Sep 19, 2026
b58979a
picogame: restore the panel to RGB565 when a program ends
lynt-smitka Sep 19, 2026
d653095
picogame: pack RGB444 on the generic strip path too
lynt-smitka Sep 19, 2026
1031352
atmel-samd: send INVOFF (0x20), not 0x2a, in ST7735 init sequences
lynt-smitka Sep 19, 2026
9d82d47
picogame: Canvas.text raises NotImplementedError without fontio
lynt-smitka Sep 19, 2026
fcdbbf9
atmel-samd: picogame fast Display backend on the SERCOM SPI DMA
lynt-smitka Sep 19, 2026
ea51b2f
atmel-samd: enable picogame on pybadge
lynt-smitka Sep 19, 2026
6632fbd
Update .devcontainer/cortex-m-toolchain.sh
dhalbert Sep 19, 2026
a8e25ba
Merge pull request #11429 from MakerClassCZ/st7735-invoff
dhalbert Sep 19, 2026
090c02b
Merge pull request #11428 from MakerClassCZ/picogame-reset-colmod
dhalbert Sep 19, 2026
67c31ab
Merge pull request #11427 from dhalbert/gcc-15.3.rel1
dhalbert Sep 19, 2026
844fe6f
Merge pull request #11426 from mikeysklar/pico-sdk-2.3.1
dhalbert Sep 20, 2026
8808ab7
Merge pull request #11430 from MakerClassCZ/picogame-samd-dma
dhalbert Sep 20, 2026
db18e54
espressif: add ESP32-S3-BOX-3 board definition
Sep 20, 2026
8ff3f61
Merge pull request #11423 from dhalbert/zephyr-quote-extra-conf
dhalbert Sep 20, 2026
822cbb2
Merge pull request #11431 from mtrovo/box3-board-definition
dhalbert Sep 20, 2026
f220b8e
Apply batched suggestions from code review
dhalbert Sep 20, 2026
cce234f
allow undo of DEBUG=1 without rm -rf _build/*
dhalbert Sep 20, 2026
0018c4c
Merge branch 'zephyr-skip-reconfigure' of https://github.com/dhalbert…
dhalbert Sep 20, 2026
027d6ff
Merge branch 'main' into zephyr-skip-reconfigure
dhalbert Sep 20, 2026
26f558c
Merge pull request #11422 from dhalbert/zephyr-fresh-archive
dhalbert Sep 20, 2026
9701f33
Merge pull request #11424 from dhalbert/zephyr-skip-reconfigure
dhalbert Sep 20, 2026
11d99f3
raspberrypi: build with -O2 plus the two -O3 flags that measure
lynt-smitka Sep 20, 2026
7722194
raspberry_pi_pico, raspberry_pi_pico_w: enable picogame
lynt-smitka Sep 20, 2026
a8bb681
_bleio HCI: use extended advertising commands on 5.x controllers
dhalbert Sep 21, 2026
1af5d49
_bleio HCI: send ACL data with the non-flushable start PB flag
dhalbert Sep 21, 2026
d0082e3
supervisor/usb: map nrf52_errata_199 for the nRF52 TinyUSB driver
mikeysklar Sep 21, 2026
1e55bbd
lib/tinyusb: bump to master for the ESP32-S2/S3 rx race fix
mikeysklar Sep 21, 2026
b98589d
raspberrypi: add alarm support for RP2350
mikeysklar Sep 21, 2026
3ce4001
Provide version
tannewt Sep 21, 2026
9d73f07
Merge pull request #11433 from mikeysklar/tusb-repin
tannewt Sep 21, 2026
fa6f1c7
Merge pull request #11358 from MakerClassCZ/pg-pico
tannewt Sep 21, 2026
ed0b3aa
Merge remote-tracking branch 'adafruit/main' into zephyr_pin_muxing
tannewt Sep 21, 2026
2f444da
Include ignored module file
tannewt Sep 21, 2026
324b493
Merge pull request #11421 from dhalbert/zephyr-ci-disable-ccache
tannewt Sep 21, 2026
cbcbafb
Fix nrf52840s with duplicate uses
tannewt Sep 21, 2026
db9ff26
Merge pull request #11436 from adafruit/zephyr-autogen-test
dhalbert Sep 21, 2026
150230d
Switch synthio to mp_stream
tannewt Sep 21, 2026
5f5efe1
Add note about supervisor filesystem APIs
tannewt Sep 21, 2026
0a305ee
raspberrypi: use pico_low_power for RP2350 deep sleep
mikeysklar Sep 21, 2026
cf227dc
Switch wavefile to stream too
tannewt Sep 21, 2026
fd039bd
_bleio HCI: explain the extended advertising enable duration values
dhalbert Sep 21, 2026
ad53ec5
Fix native_sim by adding 1:1 pin mapping
tannewt Sep 21, 2026
1ca141d
Remove broadcom and renode ports
tannewt Sep 21, 2026
7f1de43
Broadly enable finalizers
tannewt Sep 19, 2026
7e28ba9
Remove submodules too
tannewt Sep 21, 2026
b8ce7b2
Merge remote-tracking branch 'adafruit/main' into littlefs
tannewt Sep 21, 2026
935dccd
Update eliobot
tannewt Sep 21, 2026
7f759e8
Remove litex too
tannewt Sep 21, 2026
f651812
Handle removed ports in ci_set_matrix
tannewt Sep 21, 2026
bebfe75
Merge pull request #11352 from tannewt/littlefs
dhalbert Sep 22, 2026
f2ef1c3
Regenerate zephyr-cp autogen_board_info.toml files
dhalbert Sep 22, 2026
11cacac
Merge pull request #11440 from adafruit/zephyr-autogen-board-info
dhalbert Sep 22, 2026
1b1d3e2
random: randint() no longer rejects the largest upper bound
dhalbert Sep 22, 2026
0bced68
Fix docs build after port removal
dhalbert Sep 22, 2026
8574c51
Remove CIRCUITPY_VIDEOCORE plumbing
dhalbert Sep 22, 2026
e69e36b
Drop stale broadcom mentions from comments
dhalbert Sep 22, 2026
e98c74b
Remove litex, renode, and broadcom from port lists
dhalbert Sep 22, 2026
52c4407
Remove litex CI deps action
dhalbert Sep 22, 2026
f38f20d
Merge pull request #11438 from tannewt/remove_broadcom_renode
dhalbert Sep 22, 2026
93ae504
Merge pull request #11434 from mikeysklar/rp2350-alarm
tannewt Sep 22, 2026
da5607d
use clearer name for forever advertising duration
dhalbert Sep 22, 2026
1f954bd
Merge branch 'main' into bleio-hci-extended-advertising
dhalbert Sep 22, 2026
afeacce
Regenerate zephyr-cp autogen_board_info.toml files
tannewt Sep 22, 2026
c81412b
Merge pull request #11443 from dhalbert/fix-randint-upper-bound
tannewt Sep 22, 2026
cfd2f74
Tweaks based on review feedback
tannewt Sep 22, 2026
5e6547c
Merge branch 'main' into zephyr-autogen-board-info
dhalbert Sep 22, 2026
1fba35a
Merge pull request #11444 from adafruit/zephyr-autogen-board-info
dhalbert Sep 22, 2026
2d7d4d7
Merge remote-tracking branch 'adafruit/main' into enable_finalizers
tannewt Sep 22, 2026
d81985f
Merge pull request #11420 from tannewt/zephyr_pin_muxing
dhalbert Sep 22, 2026
00ec6e3
Merge pull request #11432 from dhalbert/bleio-hci-extended-advertising
tannewt Sep 22, 2026
944cc0b
Merge branch 'main' into failures-reported-as-success
tannewt Sep 22, 2026
cbd64f1
Merge remote-tracking branch 'adafruit/main' into enable_finalizers
tannewt Sep 22, 2026
a6685b9
microcontroller: add cpu.architecture and show it in boot_out.txt
mikeysklar Sep 22, 2026
dc13dfe
web_workflow: report the native architecture in version.json
mikeysklar Sep 22, 2026
e06317d
Remove unneeded global pin number
tannewt Sep 22, 2026
d1b754a
main: put the architecture on its own boot_out.txt line
mikeysklar Sep 22, 2026
0843ac7
Merge pull request #11383 from peterbay/failures-reported-as-success
tannewt Sep 22, 2026
325f090
Zephyr autogen auto-update fixes
tannewt Sep 22, 2026
2b8a218
Wake the main task on UART RX
tannewt Sep 22, 2026
c300b9d
Merge pull request #11439 from tannewt/enable_finalizers
dhalbert Sep 23, 2026
6165b57
Merge pull request #11448 from tannewt/zephyr_fix_slow_any_key
dhalbert Sep 23, 2026
8b9353d
Merge pull request #11447 from tannewt/auto_zephyr_tweaks
dhalbert Sep 23, 2026
fe26831
Merge pull request #11445 from mikeysklar/sys-architecture
dhalbert Sep 23, 2026
73d9668
Merge branch 'adafruit:main' into rename-realpicoexpander
Jerzeek Sep 23, 2026
0502ef1
Merge pull request #11449 from id-studiolab/rename-realpicoexpander
dhalbert Sep 23, 2026
02f124c
Re-pin Pico-PIO-USB to the adafruit fork
mikeysklar Sep 23, 2026
8f94f74
Merge pull request #11450 from mikeysklar/pico-pio-usb-adafruit-fork
tannewt Sep 23, 2026
79189ea
espressif: update esp-protocols to circuitpython2026
grgrant Sep 23, 2026
98b0a67
py/builtinimport: look for foo.<arch>.mpy between foo.py and foo.mpy
mikeysklar Sep 23, 2026
30741fa
docs: describe the foo.<arch>.mpy import order
mikeysklar Sep 23, 2026
ad2c24d
Regenerate zephyr-cp autogen_board_info.toml files
tannewt Sep 23, 2026
ac3ad80
Merge pull request #11446 from adafruit/zephyr-autogen-board-info
dhalbert Sep 23, 2026
b2b11a8
BUILDING: lead with the submodules one board actually needs
lynt-smitka Sep 22, 2026
8b6895d
tests: drop the bytes() wrapper around the .mpy literal
mikeysklar Sep 23, 2026
8136eff
Update BUILDING.md
lynt-smitka Sep 23, 2026
f271f9e
py/builtinimport: skip the .<arch>.mpy probe when it would not fit
mikeysklar Sep 23, 2026
e2d97af
displayio: step the TileGrid tile terms along the row
lynt-smitka Sep 23, 2026
d65f6f2
Merge pull request #11451 from grgrant/esp-protocols-circuitpython2026
dhalbert Sep 23, 2026
49547ec
picogame: project the basis dot products without a 64-bit multiply
lynt-smitka Sep 21, 2026
c738a3e
picogame: take the divide and the 64-bit multiplies out of the road c…
lynt-smitka Sep 21, 2026
43aa036
picogame: exact 32-bit forms for the raycaster and the value noise
lynt-smitka Sep 21, 2026
f388484
picogame: hoist the sprite blit's row loop, and copy misaligned rows …
lynt-smitka Sep 21, 2026
b5849cd
picogame: word-fill the surfaces, block-fill the maps
lynt-smitka Sep 21, 2026
e253861
picogame: cheaper text, triangle setup, particles and bounds tests
lynt-smitka Sep 21, 2026
6392e33
bitmaptools hardfault fix
FoamyGuy Sep 23, 2026
5b58c7c
Merge branch 'main' into bitmaptools_fixes
FoamyGuy Sep 23, 2026
d56a2f7
Merge pull request #11455 from FoamyGuy/bitmaptools_fixes
dhalbert Sep 24, 2026
91b4b8c
Merge pull request #11454 from MakerClassCZ/engine-opt
dhalbert Sep 24, 2026
81931fe
Merge pull request #11452 from MakerClassCZ/docs-fetch-submodules
dhalbert Sep 24, 2026
1ec1bbf
py/builtinimport: rebuild each .mpy candidate from the stem
mikeysklar Sep 24, 2026
49417b0
Merge pull request #11453 from mikeysklar/arch-import-lookup
dhalbert Sep 24, 2026
8b9e2fb
update Pico-PIO-USB submodule. add CIRCUITPY_USB_HOST_ISO_BUFFER_SIZE…
FoamyGuy Sep 24, 2026
333472c
raise error instead of print, change message
FoamyGuy Sep 24, 2026
746577d
Merge pull request #11459 from MakerClassCZ/displayio-tilegrid-fast
dhalbert Sep 24, 2026
520805e
Merge pull request #11458 from FoamyGuy/usb_host_bulk_and_buffer_config
dhalbert Sep 24, 2026
c60a5ae
Update translation files
weblate Sep 24, 2026
c1a37fd
rp2 sdioio: make flush() wait for the SD card to finish
mikeysklar Sep 24, 2026
c239882
displayio: composite common TileGrid rows without per-pixel calls
lynt-smitka Sep 24, 2026
298e640
rp2 sdioio: fix comments about when writes finish
mikeysklar Sep 24, 2026
8c352a9
docs: generate llms.txt at the end of the HTML build
lynt-smitka Sep 25, 2026
794b941
displayio: 2048 byte area buffer on ports with a 24 KB stack
lynt-smitka Sep 25, 2026
bccf825
busdisplay: refresh rotated displays in bands of columns
lynt-smitka Sep 25, 2026
578d2eb
displayio: cache 64 bytes of an OnDiskBitmap file
lynt-smitka Sep 25, 2026
bfa6e1d
Merge pull request #11465 from MakerClassCZ/displayio-odb-read-order
tannewt Sep 25, 2026
fee3310
Merge remote-tracking branch 'origin/main'
weblate Sep 25, 2026
68230d3
Merge pull request #11464 from MakerClassCZ/displayio-area-buffer
tannewt Sep 25, 2026
54710c0
Merge remote-tracking branch 'origin/main'
weblate Sep 25, 2026
f1512fe
Merge pull request #11463 from mikeysklar/rp2-sdioio-sync
tannewt Sep 25, 2026
348a4b3
Merge remote-tracking branch 'origin/main'
weblate Sep 25, 2026
1eed72a
Merge pull request #11461 from MakerClassCZ/displayio-row-fast
tannewt Sep 25, 2026
d2129df
Merge remote-tracking branch 'origin/main'
weblate Sep 25, 2026
946bae2
Merge pull request #11462 from MakerClassCZ/docs-llms-txt
dhalbert Sep 25, 2026
e70cb59
Merge remote-tracking branch 'origin/main'
weblate Sep 25, 2026
bf390bf
Merge pull request #11460 from weblate/weblate-circuitpython-main
tannewt Sep 25, 2026
4453bba
Merge pull request #11466 from weblate/weblate-circuitpython-main
dhalbert Sep 25, 2026
a42fa71
Integrate Adaboot into Zephyr port
tannewt Jul 30, 2026
847bcb1
Add configurable USB CDC interface names
BroadwellConsultingInc Sep 28, 2026
2a17d5a
update ulab to 15e9997
dhalbert Sep 28, 2026
1be4f31
Make sure hex outputs are enabled
tannewt Sep 28, 2026
667c012
make translate
dhalbert Sep 28, 2026
32c0a1b
raspberrypi: allow 8 shared IRQ handlers
lynt-smitka Sep 28, 2026
4eb89ee
Fix STM ram check
tannewt Sep 28, 2026
5937b7d
ulab: disable scipy.integrate and ndarray modulo to save flash
dhalbert Sep 28, 2026
7ef6550
Limit CAN reset
tannewt Sep 23, 2026
02eaec3
analog: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
6a06dfb
cxd56: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
5ec3cea
silabs: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
f0f8068
busio: add a non-blocking SPI write for internal use
lynt-smitka Sep 29, 2026
aac8aab
displayio: send one area buffer while composing the next
lynt-smitka Sep 29, 2026
cb302e4
Fix USB CDC interface names on Zephyr builds
BroadwellConsultingInc Sep 29, 2026
ad9f184
enable picogame on Metro RP2350
FoamyGuy Sep 29, 2026
d47f5a8
Merge pull request #11470 from tannewt/more_never_reset_removal
dhalbert Sep 29, 2026
f7cf0e1
Trigger CI after Zephyr build fix
BroadwellConsultingInc Sep 29, 2026
d4e22ed
enable CIRCUITPY_PICOGAME_FAST_DISPLAY on metro rp2350
FoamyGuy Sep 29, 2026
04bcb71
Omit USB CDC custom names from reduced builds
BroadwellConsultingInc Sep 29, 2026
8c9a980
Merge pull request #11471 from MakerClassCZ/rp2-shared-irq-slots
tannewt Sep 29, 2026
dcd3c20
Merge pull request #11457 from tannewt/zephyr_uf2_boot
tannewt Sep 29, 2026
65942b5
Merge pull request #11469 from dhalbert/update-ulab
tannewt Sep 29, 2026
0cc3666
Update translation files
weblate Sep 29, 2026
9301040
Merge pull request #11476 from weblate/weblate-circuitpython-main
dhalbert Sep 29, 2026
5c54519
Merge pull request #11474 from FoamyGuy/enable_picogame_metro_rp2350
dhalbert Sep 29, 2026
350e789
Merge pull request #11473 from BroadwellConsultingInc/usb-cdc-interfa…
tannewt Sep 30, 2026
2ed2962
Regenerate zephyr-cp autogen_board_info.toml files
tannewt Sep 30, 2026
de87fa4
Add sdkconfig for Waveshare ESP32 C5 LCD 1.47 board
dglaude Sep 30, 2026
cf93fc0
All files needed for waveshare_esp32_c5_lcd_1_47
dglaude Sep 30, 2026
395b187
Merge pull request #11477 from adafruit/zephyr-autogen-board-info
tannewt Sep 30, 2026
f8f3f59
Merge branch 'main' into waveshare_esp32_c5_lcd_1_47
dglaude Sep 30, 2026
c62376d
busio: name the async SPI end function for any transfer
lynt-smitka Oct 1, 2026
33f89f3
Move the async flag header to supervisor/shared
lynt-smitka Oct 1, 2026
a14c249
Add analogio support to Zephyr
tannewt Feb 20, 2026
b60b0fa
Merge pull request #11468 from MakerClassCZ/display-bus-async-core
tannewt Oct 1, 2026
dac80b7
Clean up mpconfigboard.mk by removing duplicates
dglaude Oct 1, 2026
23e112e
Merge branch 'main' into waveshare_esp32_c5_lcd_1_47
dglaude Oct 1, 2026
1f39716
Enable large user filesystem layout for 4MB flash
dglaude Oct 1, 2026
d39230a
Simplify sdkconfig by using default settings
dglaude Oct 1, 2026
8a55b49
Update USB manufacturer and flash mode settings
dglaude Oct 1, 2026
4a2608e
Use adc trace emulation
tannewt Oct 1, 2026
8e47b73
zephyr-cp: bump Adaboot to fix the nRF54LM20 DK USB console
dhalbert Oct 1, 2026
d2391be
Add display object to board module globals
dglaude Oct 1, 2026
760ae36
mimxrt10xx: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
9a03dda
Merge pull request #11484 from dhalbert/zephyr-dk-console
dhalbert Oct 1, 2026
b6ea0b1
Add serial ABC row addressing to rgbmatrix
Oct 1, 2026
9d17935
stm: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
ed557c7
nordic: switch to finalizer cleanup (CIRCUITPY_BULK_RESET = 0)
tannewt Sep 23, 2026
3266456
Update Protomatter for reliable ESP32 multi-bit refresh
Oct 2, 2026
37e8da8
Update Protomatter pin after formatting cleanup
Oct 2, 2026
aecd295
Point rgbmatrix ABC support at the unified Protomatter master candidate
Oct 2, 2026
a052d1b
Add displayio module inclusion in pins.c
dglaude Oct 2, 2026
08cdf24
Update Protomatter with Arduino stop and resume fixes
Oct 2, 2026
aabd9a3
Merge pull request #11487 from tannewt/remove_never_reset-stm
dhalbert Oct 2, 2026
6fefe63
Merge pull request #11481 from tannewt/zephyr_analogio
dhalbert Oct 2, 2026
b98fc50
Merge main into rgbmatrix-abc
Oct 2, 2026
a4a36eb
Merge latest main updates into rgbmatrix-abc
Oct 2, 2026
b7420c5
Validate RGBMatrix arguments before reserving a display bus
Oct 2, 2026
9a826b3
rgbmatrix: use an enum for row addressing
Oct 2, 2026
2aa1b0d
Rewrite board.c comments to only describe current behavior
tannewt Oct 2, 2026
b6bb7ba
Remove extra braces
tannewt Oct 2, 2026
16ad502
Merge pull request #11488 from tannewt/remove_never_reset-nordic
dhalbert Oct 2, 2026
0c02114
Merge branch 'main' into waveshare_esp32_c5_lcd_1_47
dglaude Oct 2, 2026
7438139
Merge pull request #11485 from tannewt/remove_never_reset-mimxrt10xx
dhalbert Oct 2, 2026
90e2194
Change boot button to GPIO28 for safe mode
dglaude Oct 2, 2026
e34619f
Update GPIO pin assignments for buttons
dglaude Oct 2, 2026
0f54a6a
Merge branch 'main' into waveshare_esp32_c5_lcd_1_47
dglaude Oct 2, 2026
3156883
Implement RTC on Zephyr
tannewt Oct 2, 2026
8e3c267
Merge branch 'main' into rgbmatrix-abc
ladyada Oct 2, 2026
fed158d
Merge branch 'main' into fix/rgbmatrix-argument-validation
ladyada Oct 2, 2026
5d73e28
Merge pull request #11480 from dglaude/waveshare_esp32_c5_lcd_1_47
tannewt Oct 2, 2026
aabd3bc
Merge pull request #11486 from ladyada-eagleclaw/rgbmatrix-abc
tannewt Oct 2, 2026
eec31fe
Merge pull request #11490 from ladyada-eagleclaw/fix/rgbmatrix-argume…
tannewt Oct 2, 2026
35210c2
Merge pull request #11491 from tannewt/zephyr_rtc
dhalbert Oct 3, 2026
cfbb1c9
zephyr-cp: raise the rpi_pico UDC thread stack in debug builds
tyeth Sep 8, 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 .codespell/ignore-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ straightaway
ftbs
ftb
curren
mabey
rsource
4 changes: 2 additions & 2 deletions .devcontainer/cortex-m-toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ echo -e "[cortex-m-toolchain.sh] downloading and installing gcc-arm-non-eabi too
cd /workspaces

wget -qO gcc-arm-none-eabi.tar.xz \
https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi.tar.xz
https://gitlab.arm.com/api/v4/projects/tooling%2Fgnu-toolchains-for-arm/packages/generic/gnu-toolchain/15.3.rel1/arm-gnu-toolchain-15.3.rel1-x86_64-arm-none-eabi.tar.xz

tar -xJf gcc-arm-none-eabi.tar.xz
ln -s arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi gcc-arm-none-eabi
ln -s arm-gnu-toolchain-15.3.rel1-x86_64-arm-none-eabi gcc-arm-none-eabi
rm -f gcc-arm-none-eabi.tar.xz

echo -e "[cortex-m-toolchain.sh] update PATH in environment"
Expand Down
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# all: Apply code formatting to new paths.
48c7daaa3d7068c127c5bc395ffa72029ab9bba1

# all: Prune trailing whitespace.
dda9b9c6da5d3c31fa8769e581a753e95a270803

Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@
# CIRCUITPY-CHANGE: add some more binary types.
# These are binary so should never be modified by git.
*.a binary
*.FLM binary
*.ico binary
*.png binary
*.jpg binary
*.dxf binary
*.mpy binary
*.der binary
*.bin binary
*.deb binary
*.zip binary
*.pdf binary
Expand Down
3 changes: 1 addition & 2 deletions .github/actions/deps/external/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@ runs:
- name: Get arm toolchain
if: >-
inputs.port != 'none' &&
inputs.port != 'litex' &&
inputs.port != 'espressif' &&
inputs.port != 'zephyr-cp'
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '15.2.Rel1'
release: '15.3.Rel1'

# espressif
- name: Install IDF tools
Expand Down
8 changes: 0 additions & 8 deletions .github/actions/deps/ports/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,10 @@ inputs:
runs:
using: composite
steps:
- name: Set up broadcom
if: inputs.port == 'broadcom'
uses: ./.github/actions/deps/ports/broadcom

- name: Set up espressif
if: inputs.port == 'espressif'
uses: ./.github/actions/deps/ports/espressif

- name: Set up litex
if: inputs.port == 'litex'
uses: ./.github/actions/deps/ports/litex

- name: Set up nordic
if: inputs.port == 'nordic'
uses: ./.github/actions/deps/ports/nordic
Expand Down
22 changes: 0 additions & 22 deletions .github/actions/deps/ports/broadcom/action.yml

This file was deleted.

10 changes: 0 additions & 10 deletions .github/actions/deps/ports/litex/action.yml

This file was deleted.

6 changes: 6 additions & 0 deletions .github/actions/deps/ports/zephyr-cp/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ runs:
app-path: zephyr-config
base-path: ports/zephyr-cp
toolchains: arm-zephyr-eabi
# The action's ccache stores a new ~150 MB entry per board job under one key
# shared by every board, and each job restores whichever entry was saved last.
# Measured across all 30 boards: hits on 5 boards by luck, none on the other 25,
# and no build-time difference either way. The entries were filling the
# repository's 10 GB Actions cache and evicting the SDK and other caches.
enable-ccache: false
- name: Export cmake info
run: west zephyr-export
shell: bash
Expand Down
13 changes: 12 additions & 1 deletion .github/workflows/build-boards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
env:
CP_VERSION: ${{ inputs.cp-version }}
strategy:
fail-fast: false
fail-fast: ${{ github.event_name == 'merge_group' }}
matrix:
board: ${{ fromJSON(inputs.boards) }}
steps:
Expand Down Expand Up @@ -94,6 +94,17 @@ jobs:
name: ${{ matrix.board }}
path: bin/${{ matrix.board }}

- name: Upload firmware sizes
# "zz-" sorts the size records after every board in the run's artifact list.
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: zz-sizes-${{ matrix.board }}
path: sizes/${{ matrix.board }}.json
if-no-files-found: ignore
# build-ci merges these into the 0-sizes reports; delete them after one day.
retention-days: 1

- name: Upload to S3
uses: ./.github/actions/upload_aws
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-mpy-cross.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
fail-fast: ${{ github.event_name == 'merge_group' }}
matrix:
mpy-cross: ["static", "static-aarch64", "static-mingw", "static-raspbian"]
env:
Expand Down
111 changes: 105 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ on:
- main
- '*.x'
pull_request:
merge_group:
types: [checks_requested]
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref || github.run_id }}
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -69,15 +71,15 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
EXCLUDE_COMMIT: ${{ github.event.pull_request.head.sha }}
- name: Set head sha (pull)
if: github.event_name == 'pull_request'
if: github.event_name == 'pull_request' || github.event_name == 'merge_group'
env:
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.merge_group.head_sha }}
run: echo "HEAD_SHA=$HEAD_SHA" >> $GITHUB_ENV
- name: Set base sha (pull)
if: github.event_name == 'pull_request'
if: github.event_name == 'pull_request' || github.event_name == 'merge_group'
run: git cat-file -e $SHA && echo "BASE_SHA=$SHA" >> $GITHUB_ENV || true
env:
SHA: ${{ steps.get-last-commit-with-checks.outputs.commit_sha || github.event.pull_request.base.sha }}
SHA: ${{ steps.get-last-commit-with-checks.outputs.commit_sha || github.event.pull_request.base.sha || github.event.merge_group.base_sha }}
- name: Set head sha (push)
if: github.event_name == 'push'
env:
Expand Down Expand Up @@ -227,10 +229,107 @@ jobs:
uses: ./.github/workflows/build-boards.yml
secrets: inherit
strategy:
fail-fast: false
fail-fast: ${{ github.event_name == 'merge_group' }}
max-parallel: 55
matrix:
port: ${{ fromJSON(needs.scheduler.outputs.ports).ports }}
with:
boards: ${{ toJSON(fromJSON(needs.scheduler.outputs.ports)[matrix.port]) }}
cp-version: ${{ needs.scheduler.outputs.cp-version }}
port: ${{ fromJSON(needs.scheduler.outputs.ports).split_ports[matrix.port] || matrix.port }}

build-ci:
# Final gate for ruleset checks: always runs so the required check is
# reported, and fails if any job (or matrix leg) failed or was cancelled.
needs: [scheduler, tests, zephyr-tests, mpy-cross, mpy-cross-mac, docs, ports]
if: ${{ always() }}
runs-on: ubuntu-24.04
env:
CP_VERSION: ${{ needs.scheduler.outputs.cp-version }}
steps:
# Firmware size report. Each board job uploads its sizes/<board>.json as zz-sizes-<board>;
# merge them into one table and a job summary. This is reporting only, so none of it
# may fail the gate: every step continues on error.
- name: Set up repository
continue-on-error: true
uses: actions/checkout@v6
with:
submodules: false
show-progress: false
fetch-depth: 1
persist-credentials: false

# actions/download-artifact matches a pattern against a listing of the run's
# artifacts that stops at 1000, and a full build has more. The script fetches each
# board's record by exact name instead, from the board list the scheduler produced.
# It runs from github-script because only action steps get the artifact API token.
- name: Install the artifact client
continue-on-error: true
run: npm install --no-save --no-package-lock --no-audit --no-fund @actions/artifact@6

- name: Download firmware sizes
continue-on-error: true
uses: actions/github-script@v9
env:
BOARDS: ${{ needs.scheduler.outputs.ports }}
with:
script: |
const { pathToFileURL } = require("node:url");
const sizes = await import(pathToFileURL(`${process.env.GITHUB_WORKSPACE}/tools/ci_download_sizes.mjs`));
await sizes.downloadSizes({
boards: sizes.boardsFromSchedule(JSON.parse(process.env.BOARDS || "{}")),
outDir: "sizes",
info: core.info,
warning: core.warning,
});

- name: Summarize firmware sizes
continue-on-error: true
run: python3 tools/ci_firmware_sizes.py sizes sizes-report

# Uploaded unzipped, one file per artifact, so each opens directly; with
# `archive: false` the file name is the artifact name.
- name: Upload firmware size report (HTML)
continue-on-error: true
uses: actions/upload-artifact@v7
with:
path: sizes-report/0-sizes.html
archive: false
if-no-files-found: ignore

- name: Upload firmware size report (JSON)
continue-on-error: true
uses: actions/upload-artifact@v7
with:
path: sizes-report/0-sizes.json
archive: false
if-no-files-found: ignore

# The action itself only uploads on pushes to main and release branches and on
# published releases. The S3 names carry the version, so the directory keeps a history.
- name: Upload firmware size report to S3 (HTML)
continue-on-error: true
uses: ./.github/actions/upload_aws
with:
source: sizes-report/0-sizes.html
destination: 0-sizes/adafruit-circuitpython-sizes-${{ env.CP_VERSION }}.html
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

- name: Upload firmware size report to S3 (JSON)
continue-on-error: true
uses: ./.github/actions/upload_aws
with:
source: sizes-report/0-sizes.json
destination: 0-sizes/adafruit-circuitpython-sizes-${{ env.CP_VERSION }}.json
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

- name: Check build results
run: |
echo "Job results: ${{ toJSON(needs.*.result) }}"
if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]] || [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
echo "One or more jobs failed or were cancelled"
exit 1
fi
echo "All build jobs succeeded"
6 changes: 5 additions & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ name: pre-commit

on:
push:
branches-ignore:
- 'gh-readonly-queue/**'
pull_request:
merge_group:
types: [checks_requested]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref || github.run_id }}
cancel-in-progress: true

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
run:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
fail-fast: ${{ github.event_name == 'merge_group' }}
matrix:
test: [all, mpy, native, native_mpy]
env:
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/run-zephyr-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ jobs:
runs-on: ubuntu-24.04
name: ${{ matrix.shard }}
strategy:
fail-fast: false
fail-fast: ${{ github.event_name == 'merge_group' }}
# One job per board family, so the bsim suites, which take the longest, run
# side by side instead of after each other.
matrix:
include:
- shard: native_sim
boards: native_native_sim native_native_sim_asan
pytest_args: tests/ --ignore=tests/bsim
boards: native_native_sim native_native_sim_asan native_native_sim_lfs
pytest_args: tests/ --ignore=tests/bsim -n $(nproc) --dist loadfile
- shard: nrf5340bsim
boards: native_nrf5340bsim
pytest_args: tests/bsim -k native_nrf5340bsim
pytest_args: tests/bsim -k native_nrf5340bsim -n $(nproc) --dist loadfile
- shard: nrf54lm20bsim
boards: native_nrf54lm20bsim
pytest_args: tests/bsim -k native_nrf54lm20bsim
pytest_args: tests/bsim -k native_nrf54lm20bsim -n $(nproc) --dist loadfile
env:
CP_VERSION: ${{ inputs.cp-version }}
steps:
Expand Down Expand Up @@ -55,4 +55,4 @@ jobs:
run: make -j $(nproc) everything
working-directory: ports/zephyr-cp/tools/bsim
- name: Run Zephyr tests
run: make -C ports/zephyr-cp test TEST_BOARDS="${{ matrix.boards }}" PYTEST_ARGS="${{ matrix.pytest_args }}"
run: make -C ports/zephyr-cp -j$(nproc) test TEST_BOARDS="${{ matrix.boards }}" PYTEST_ARGS="${{ matrix.pytest_args }}"
Loading
Loading