The keyboard and mouse remain essential for computer input, over three decades since the advent of personal computing. They're practically vital, and we need a key for everything. The standard keyboard using an international ANSI layout packs 108 keys, and yet some of us still reach for programmable macropads with additional keys. They're great if you need a calculator on your desk, a dedicated numpad on your left-hand side, or just a programmable application launcher with layers mapped to in-game shortcuts, quite like the Stream Deck. They come in many sizes, sometimes packing a couple of rotary encoders or knobs as well.
That argument holds even more merit because my tiny daily keyboard packs just 37 keys. I like to think there's no functionality lost since seldom-used functions are on secondary layers, accessed via key combinations. I am a mechanical keyboard hobbyist in my downtime, investing effort in the tools that make my work enjoyable, so the board is fully programmable and it runs custom VIAL firmware. I don't need a macropad, but I've finally understood that a knob on my desk is just indispensable. I've been using the Binepad BNR1 V2 for a few years now, and it has blended right into my workflow.
5 best open-source firmwares for your custom mechanical keyboard
Clean code for personalizable projects
Macropads and encoders serve different purposes
They are, thankfully, one-size-fits-all
If you've ever gone macropad hunting, you'd nod in agreement that there's every size available, right from single-key options to gamepads that mimic the left half of a keyboard with 20+ keys. However, the numpad style in a 4x3 or 4x4 grid is the most common, with options from Drop and even Autodesk. Functionally, they usually feature some flavor of programmable firmware that allows binding complex functions to keys, typically in multiple layers.
So, you could have the numpad on the vase layer, with arrow keys mapped to 4, 6, 8, and 2 when Shift is held down. Knobs with macropads unlock a much more sophisticated level of control, especially for linear sliders that are jumpy when button-controlled. This includes scroll bars, volume, brightness sliders, and mixers in audio production suites like FLStudio. Most commonly, you'll find upright encoders you twirl with two fingers on these macropads, but I've seen the newer crop shake up the design with horizontal-axis knobs that resemble scroll wheels, only much wider for easier operation.
An encoder alone is just what I needed
MIDI controls add fun to the mix
Despite using a rather compact keyboard, I've never felt the need for extra keys. Answering the "Why?" is a detailed discussion for another day, but mostly because I touch-type (without looking at the keyboard) and straying from the home row is rather jarring to the typing flow. Reaching for a macropad sure beats complex finger gymnastics for multi-key combinations, but I'm one of the few users who'd argue otherwise.
Nonetheless, I grew up in the analog 2000s and still crave the tactility of twirling a knob to adjust things like volume and sound levels in video editing suites. I'm not a big fan of buttons, so I picked up the Binepad BNR1 V2, a standalone rotary encoder with just three actions — clockwise rotation, counterclockwise rotation, and an integrated push button. Yes, it's another cable I have to run on my desk, but it's worthwhile because the latest firmware for this three-year old product supports MIDI input.
That's not a rarity in the keyboard world, because you'll find MIDI support advertised on popular firmware repos like QMK and ZMK. It simulates input like music in terms of note, length, and intensity instead of just a keypress, enabling digital input of a signal more complex than a simple on/off state. You'll see this implemented in sliders on the GoXLR Mini and other similar accessories typically found in a music or video production setting.
Now, MIDI input support robbed me of layers. I could typically cycle through four layers by pressing the knob, and changing what the rotation does. For instance, I could have the base layer for vertical scrolling, the second one for horizontal scrolling, the third mapped to cycle through Chrome tabs (one tap of Ctrl + Tab for each click to go to the next tab and Ctrl + Shift + Tab for the previous when rotated the other way), and the final layer for volume adjustment. However, MIDI support consumes more EEPROM on the encoder's microcontroller, leaving me with support for just two layers. Yet, I use my encoder for full media control and precision scrolling, even of sliders.
How I've configured my rotary encoder in VIAL
Smart use of limiting firmware
Binepad BNR1-V2
The BNR1-V2 is a standalone macropad rotary encoder that's fully programmable with VIAL firmware, based on the popular and open-source QMK firmware for mechanical keyboards
First, let's get media control out of the way, just because of how simple it is. On the base layer, I've mapped the clockwise turn to increase volume and the converse to reduce it. The button press action invokes a Tap Dance configuration in VIAL, where a single press takes me to the other layer (scrolling), long-pressing the encoder (adjustable duration, 175ms by default) mutes audio, double-press (within the 175ms tapping term) skips to the next track, and a quick press followed by a long one stops playback. The last Tap Dance action can skip to the previous track too, but I find the current setting great for shutting off rogue Chrome tabs blasting audio without muting them.
As for the other layer, it's simply mapped to scrolling vertically, with the button press taking me back to the other layer. Yes, my mouse does it too, but mapping scroll to the encoder rids me of click-and-drag sliders and accidental cursor movement when I'm scrolling to adjust sliders. Most image and video editing suites like Lightroom, Photoshop, Premier Pro, and DaVinci Resolve support hover scrolling. I just need to hover my cursor over a slider and scroll to adjust, while sensitivity is an OS-level parameter. With the scrolling offloaded to the Binepad, I can let go of the mouse entirely, focusing only on the image adjustment and eliminating unintentional cursor movement. This is a reliable way to configure input without dedicating a layer to each program.
To cycle through Chrome tabs using the Binepad's same scrolling layer, I can use a Chrome Extension, or the following AutoHotkey script that maps F13 and F14 to scroll actions unless Chrome is active and my cursor is in the top 45 pixels of the screen (where the tab bar is). Since AHK is software and not firmware, I wouldn't recommend this if you're switching between multiple computers, because Windows makes it challenging to differentiate scroll input by hardware ID. It would've been a more effective AHK trigger, mapping the Binepad's scroll to tab cycling if Chrome is focused, leaving mouse scroll unaffected for webpage scrolling.
#IfWinActive ahk_exe chrome.exe
F13::Send ^{Tab}
F14::Send ^+{Tab}
#IfWinActive
; To make scroll normal in other apps
#IfWinNotActive ahk_exe chrome.exe
F13::Click WheelUp
F14::Click WheelDown
#IfWinNotActive
More layers, more wonders
My primary gripe with the Binepad is the two-layer limitation that forces me to use these layered workarounds and software scripts. With more layers to play with, tab cycling in the browser would be easy and I wouldn't miss MIDI support. That doesn't detract from the fact that the firmware is still QMK-based, and I can find a legacy version with support for more layers or re-code it from scratch myself. On the surface, one button and a twirly knob doesn't seem very useful, but a fully programmable one mapped to the right functions could be revolutionary for your workflow (pun intended), like it was for mine.
9 Cool uses for the knob on your keyboard or macropad
Twirl away for productivity gains
