JC Pro Macro Rotary Computer Input

Arduino-based input device features rotary encoder, five keyswitches, and I2C GPIO breakout for optional OLED screen.

Jeremy Cook
3 years ago

The keyboard/mouse combination has been the de factor standard for computer input devices for decades. While this works fine for most, others aren't satisfied with such a setup with an extra input device. In my case, I wanted a rotary input for modifying the music volume – or other program-specific purposes – along with a series of keys that could be assigned to other purposes as needed.

I based my custom JC Pro Macro device on the ATmega32U4 "Arduino" Pro Micro board to take advantage of its built-in HID capabilities. I designed the interface PCB around it in KiCad, with space for five keyswitches and a rotary encoder. Beyond that, I added a series of four WS2812B LEDs, and broke out SDA, SCL, +5V, and GND pins to accommodate I2C devices.

These I2C pins were purposely broken out in such a way that they fit common 0.96" OLED units. They add a neat look to the 'Macro, and having one available was invaluable during setup and troubleshooting. The build process is outlined in the video below, including how I exported the mechanical design from KiCad into Fusion 360.

I'm extremely happy with the build so far, and look forward to experimenting with it further. More info on the JC Pro Macro is available on GitHub, and PCBs are listed for sale on Tindie if you'd like to assemble one yourself.

Of course, this isn't my first try at creating a custom rotary input. I've actually made three other iterations of this idea, as seen in the "Rotary Shortcut Development Saga" video series.

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles