It fits! Showing this off here because I'm unreasonably proud of the layout and

It fits! Showing this off here because I’m unreasonably proud of the layout and soldering job—and in addition it actually all works!

Clockwise from top left: prog up, prog down, brightness, mic, program-specific option button, program specific option value.

(Not seen: push button rotary encoder from the last control box. Those things suck.)

Nice use of heat shrink

Thanks. The real triumph here was finding veroboard with a combination of horizontal and vertical strips—that way I could run each of a +3.3V, AGND and GND “bus” down the centre underneath the Teensy, and connect the pot and switch wires adjacent to each other.

Very nicely packaged up. Yay for the Teensy.

What was it about the rotary encoder from your previous box that you didn’t like?

It was very touchy and used to register a count before settling into a detent. I was using “turn” to select programs and “push, turn” to change brightness and that never really worked very well, I’d always hit one when trying for the others. It also meant I lost my settings when the Teensy reset, which it was doing often (I had some other kind of power problem which was causing this I think.)

Though I remain open to the possibility of the existence of non-crappy rotary encoders.

Were you using software or hardware debounce? I’ve had so so counting reliability with software, but count seemed very reliable with a hardware debounce.
Yes, I can imagine the encoder being a bit fiddly when it was part of a wearable and moving about.
I like the pot for brightness solution so it doesn’t change on reset. And you can’t go wrong with buttons. :slight_smile:

Software debounce, but multiple counts off one turn wasn’t my problem. It was registering a count when you just bumped the knob slightly (not even far enough to settle it into the next detent.)

@Robert_Atkins I know this isn’t quite related to your problem, but I have used this library alongside FastLED quite effectively to cut back on the number of buttons for navigation thru my animations. Short, long, and double click recognition abilities on a single button. http://www.mathertel.de/Arduino/OneButtonLibrary.aspx

Oh, that’s pretty cool. I guess I could have cut down at least one button (one click for program up, double click for program down, instead of one button each.)

I’ll definitely keep that one in mind.

There are 3 types of functions: click, double click, and press. So, you can get 3 buttons worth in only 2 buttons.
EDIT:
There are actually more functions available on github