August 9, 2026
Version 2: USB commands, six effects, and a tilted enclosure
This is the version I let myself call a release. Four large things arrived at once. One of them was a case.
Talking to it from a computer
A non-blocking ASCII command parser over USB CDC serial at 115200 baud. It exists so a companion application can tweak parameters live, back up patches, and ask the hardware how it is feeling: DIAG STATUS, DIAG ENCODERS, DIAG BUTTONS. Serial and MIDI at the same time, over one cable, by building with both enabled.
Hardware health reporting sounds like a novelty until you have fourteen encoders and no way to tell a bad solder joint from a firmware bug. It stopped being a novelty the first time it was useful.
An effects suite rather than one effect
- Reverb and delay
- Chorus and delay
- Flanger and delay
- Bitcrusher and sample-rate reducer
- Granular pitch and texture
- Plus a two-band parametric biquad EQ
The parameter names redraw themselves as you switch algorithm — header, encoder labels, macro bars. That matters more than it sounds. A fixed label above a knob that now means something else is worse than no label.
Three expanders, fourteen encoders
Three MCP23017 I2C expanders, which is what it takes to read fourteen faceplate encoders: twenty-eight rotary phase signals and fourteen push switches. The pinout document for that is longer than I would like.
A case that does not sit flat
A parametric OpenSCAD chassis, tilted fifteen degrees, sized for a 220x220mm print bed, with M3 brass heat-set inserts and rear cutouts for the I/O. Fifteen degrees is the difference between a box on a desk and something you can reach without leaning over it.
All of it shipped with documentation: user manual, assembly guide, a wire-by-wire lookup table, and the PC command reference.
A project that needs a lookup table to assemble should ship one. Otherwise the lookup table is you, at one in the morning, guessing.
Details on the project page.