Macro keyboards are well-liked maker tasks that may enhance productiveness—or gaming prowess. These keyboards present devoted buttons for macros, hotkey combos, or capabilities. If, as an example, you are uninterested in typing ALT + 0-1-5-1 each time you need an em sprint, you would set a macro to do it for you. Gili Yankovitch needed to construct a macro keyboard to streamline his WoW gaming expertise, so he constructed this uncommon instance that has an ATtiny85 microcontroller beneath each key.
Typical keyboards use a matrix circuit to detect key presses. The matrix may have a number of rows and columns, with every key sitting at a novel row/column intersection. When the person presses a key, it completes a selected row/column circuit. The linked microcontroller simply has to notice the row and column to determine the pressed key. The matrix setup is helpful as a result of it reduces the variety of I/O pins used on the microcontroller (the potential minimal being the sq. root of the variety of keys).
The issue, on this case a minimum of, is {that a} keyboard matrix requires that the designer know the variety of keys within the last product, in addition to a normal thought of their association. Yankovitch needed his macro keyboard to be utterly modular, in order that customers can add or take away as many keys as they need. That modular design makes a standard keyboard matrix ineffective, forcing Yankovitch to provide you with one other resolution: equipping every key with its personal microcontroller.
As individuals are certain to level out within the feedback, there are different options to this downside that do not resort to the overkill of utilizing a plethora of microcontrollers. However ATtiny85 chips are low-cost (present scarcity gouging however) and we like Yankovitch’s brute-force method.
Each single key has its personal particular person ATtiny85 microcontroller to learn key presses. That might, as an example, lead to 17 microcontrollers for a 4×4 macro keyboard. That seventeenth microcontroller is a SparkFun Arduino Professional Micro, which acts because the central gateway within the community of ATtiny85 microcontrollers. That community is I2C and every ATtiny85 will get a novel identifier at startup, so the Professional Micro is aware of the pressed key and sends that alongside to the linked PC as a USB HID keyboard.
The remainder of the {hardware} is fairly customary for a macro keyboard like this. There are hot-swappable key swap sockets with reverse-soldered SK6812 individually addressable RGB LEDs, topped by double-shot key switches that allow the sunshine shine via. Every key module has a small customized PCB and customers can chain a number of PCBs collectively to type the configuration they need. The PCBs match right into a 3D-printable body.
Yankovitch even coded a easy Python app that identifies the linked key modules and lets the person arrange every key to register a selected character or mixture.