It's past 11 at night before a robotics club demo, and your ESP32-S3 badge needs one last touch: a granular pitch-shift on its alarm tone. You drag a fresh .uf2 file onto the CIRCUITPY drive, reopen the REPL, and the effect just plays. That kind of small, satisfying win is what CircuitPython 10.3.0-alpha.4 quietly makes possible.
What landed in this release
The headline is audio. Alpha 4 adds an audiofilewriter module, a new GranularPitchShift effect under audiodelays, and brings audiofilters plus audiofreeverb to RP2xxx chips like the RP2040 and RP2350. For anyone building a sound-reactive wearable or a tiny synth, those effects used to mean wrestling with external libraries. Three new settings.toml keys arrive too: CIRCUITPY_BLE_WORKFLOW, CIRCUITPY_SAFE_MODE_DELAY, and CIRCUITPY_WIFI_HOSTNAME, so you can name a board on your network without editing code. ESP-NOW works again on Espressif boards, and a new storage.unsafe_disable_usb_drive() call lets a finished project hide the CIRCUITPY drive after the host mounts it. Stable ports still cover the usual classroom suspects: RP2040, RP2350, the ESP32 family, nRF52840, and SAMD21.
How to flash it, and one gotcha
Grab the firmware from the downloads page on circuitpython.org, pick your exact board and language, then double-tap reset and copy the .uf2 across. Edit your code in the Mu editor or at code.circuitpython.org, which also opens the serial REPL. Watch one breaking change if you are coming from 10.2.x: the baudrate you pass to busio.SPI.configure() is now a hard ceiling, not a target. On some ports the old code rounded up, sometimes well past what you asked for, so read SPI.frequency back to see the real clock your display or SD card is running at. Default WiFi power also dropped from 20 dBm to 15 dBm on boards with chip antennas, which can actually steady a flaky link.
The takeaway
This is still an alpha, so keep it off the board you are grading next week. For a weekend audio experiment or a sensor node you can reflash freely, it is a low-risk way to try the features headed into the stable 10.3.0. Full notes and every .uf2 file live on the GitHub release page.
Originally published on blog.circuit.rocks.
Top comments (0)