Adafruit’s Voicebox FX is the kind of project that earns a bookmark twice over: once because the Voicebox FX CircuitPython audio implementation is a genuinely well-constructed reference design for anyone working with I2S on an RP2350, and once because, honestly, it just looks like a brilliant bit of kit to have on the bench.
What the Voicebox FX Actually Is
At its heart, the project pairs an I2S microphone and an I2S amplifier with an Adafruit Feather RP2350 microcontroller, all running CircuitPython. According to the Adafruit Learn guide, the enclosure also houses NeoPixels and a built-in speaker, so the full signal chain from microphone capture through to amplified output is contained in a single, self-sufficient unit. The physical inputs let you dial through a variety of audio effects in real time, and the NeoPixels give you the kind of visual feedback that makes demoing a project to someone across the room actually worthwhile.
The whole thing is wrapped in a 3D printed case. That combination of tidy enclosure and fully documented CircuitPython code is precisely what makes it such a useful reference: you are not just reading a schematic in isolation, you are looking at a finished, working device where every component choice has been thought through.
Why the I2S Bus Is Worth Understanding
I2S (Inter-IC Sound) is a serial bus protocol designed specifically for shifting audio data between chips as a digital signal, keeping noise out of the equation that would otherwise plague an analogue connection. Jenny List has written a thorough primer on the protocol, and it is worth reading before you dive into any I2S CircuitPython audio project. The bus is relatively simple to implement, and as List’s piece touches on, it is not remotely fussy about being used strictly for audio, which is why you occasionally find it pressed into service for purposes its designers almost certainly did not anticipate.
For the Voicebox FX, though, it is doing exactly what it says on the tin. The I2S microphone feeds clean digital audio into the RP2350-based Feather board, CircuitPython handles the processing and effects, and the I2S amplifier drives the speaker output. There are no analogue conversion headaches in the middle of the chain, which is one of the reasons the design is clean enough to serve as a teaching example.
The Reference Design Angle
This is the part that matters if you are planning your own build. The Voicebox FX CircuitPython audio setup is documented to the level where you can follow exactly why each component was chosen and how it connects. That is rarer than it should be. A lot of projects land somewhere between a parts list and a finished photograph, leaving you to fill in the gaps yourself. Adafruit’s Learn system tends not to do that, and this project is a solid example of the approach done properly.
If you have a project in mind that involves recording, processing, or playing back audio on CircuitPython (voice effects, sampling, anything in that space) the Voicebox FX is the kind of design you want to have open in a browser tab while you are laying out your own circuit. The choice of the Feather RP2350 as the brain is itself instructive: the Adafruit Feather form factor brings a standardised footprint and a well-supported ecosystem, which reduces the number of variables you are juggling when the audio side is already new territory.
The NeoPixels are a small touch, but they matter for a project like this: real-time visual indication of which effect mode is active is the difference between a gadget that is intuitive to use and one that requires you to memorise a button sequence. It is the sort of considered detail that lifts a reference design from merely correct to actually instructive.
The full build guide, including the CircuitPython code and wiring diagrams, is available on the Adafruit Learn system, ready to pull apart and adapt for your own I2S audio experiments.

