Pressing buttons on a keyboard is fine most of the time, but for volume control there is just something satisfyingly tactile about a knob to literally crank things up or down. In 2017 I attempted to build a rotary volume controller. It worked OK, but with various new technologies at my disposal, this year I was able to make something that is much improved.
The new device not only turns the volume up and down on songs that I’m listening to, but can control play/pause functions, and skip to the next or previous track. I also set it up so that it can move the mouse around a selected axis point on the screen for gaming (i.e. slither.io) control.
This was all made possible via the I2C encoder module V2 from DUPPA. It takes care of the nitty-gritty details of reading the encoder input itself, and passes I2C info along to the main control board—a tiny Arduino Leonardo compatible called the PICCO. This gave me room I/O-wise for two extra buttons, as well as control of a NeoPixel ring which indicates how the controller is being twisted.
So far, I’ve been thrilled with this custom device, details of which can be found on GitHub. It should be noted that while I’ve been quite pleased with my unit, there are certainly other rotary input options available, touched on in this “Encoders Vs. Potentiometers post.
If you’ve made anything using part(s) purchased on Tindie, we’d love to hear about it. You can get in contact on Twitter @Tindie, or feel free to ping me directly @JeremySCook!