Skip to content

PiZZA Arduino core v0.3.2 β€” reset-on-swap + IDE Serial Monitor fix

Choose a tag to compare

@jetpax jetpax released this 29 Jun 17:21

What's new

Reset-on-swap loader architecture. Each sketch starts on a freshly-booted kernel β€” eliminates the whole class of loader-side state leaks across sketches (brcmfmac/netif, k_work/k_timer callbacks, GPIO ISRs, sockets, DMA). Replaces the previous in-process llext_unload+load swap.

BCM2710 sys_arch_reboot driver. New ~15-line strong override that uses the PM-block watchdog full-reset path (mirrors Linux drivers/watchdog/bcm2835_wdt.c). MMU-maps the PM block at 0x3f100000. CONFIG_REBOOT=y enabled in the variant.

IDE Serial Monitor echo fixed on macOS. SerialUSB::write/flush no longer gates on DTR β€” the Arduino IDE Serial Monitor doesn't always assert DTR on this platform, which previously made HelloSerial appear silent. operator bool() still reports DTR for sketches that explicitly while (!Serial);.

Flash the new loader

The packaged loader binary is at firmwares/zephyr-rpi_zero_2w_bcm2710.bin inside the tarball. Flash via:

cp .../firmwares/zephyr-rpi_zero_2w_bcm2710.bin /Volumes/PIZZA/zephyr.bin && diskutil eject /Volumes/PIZZA

Boards Manager URL (now self-hosted in PiZZA repo)

https://raw.githubusercontent.com/jetpax/PiZZa/dev/os/Arduino/package_pizza_index.json