August 9, 2026

Version 2: USB commands, six effects, and a tilted enclosure

By admin · 2 min read

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.