Microcontrollers

CircuitPython 10.3.0 Alpha 4 Brings Audio Effects to RP2040

CircuitPython 10.3.0 Alpha 4 Brings Audio Effects to RP2040

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.

Frequently Asked Questions

Which boards get the new audio effects in this release?

The audiofilters and audiofreeverb modules now run on RP2xxx chips such as the RP2040 and RP2350, and a GranularPitchShift effect was added under audiodelays. An audiofilewriter module also lets you save generated audio to a file.

Should I put this alpha on a project I depend on?

No. Alpha 4 is a pre-release for testing, so keep graded or production builds on stable 10.2.x or wait for the final 10.3.0. If you do upgrade, note the busio.SPI.configure() baudrate is now a hard ceiling instead of a target.

What will I learn if I build this?

Flashing a .uf2 firmware file, reading real release notes, and configuring a board through settings.toml. You will also get hands-on with SPI baudrate behaviour and the CircuitPython REPL, all core embedded skills for thesis and competition work.

This article was inspired by reporting from Adafruit. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.