Knobo - a Programmable Macropad With a Knob




About: A high school student that makes stuff.

Knobo is a programmable macropad with 8 programmable keys and a knob that will help you speed up your work flow.

The knob has 5 programmable actions:

  • turn counter clockwise
  • turn clockwise
  • click
  • hold and turn counter clockwise
  • hold and turn clockwise

Each of the 8 keys and the 5 knob actions can be assigned a keyboard shortcut or a macro.

In the first video, I programmed the knob the adjust the size of my brush when turned, and zoom in/out when it's pressed and turned at the same time. I programmed the first key to be a pencil tool shortcut, and the second key to be an eraser tool shortcut.

In the second video, I programmed the knob to adjust the volume of my computer when turned, mute/unmute when it's pressed, and zoom in/out when it's pressed and turned at the same time. I also programmed one of the keys to open my website.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

All the STL, Gerber, and BOM files can be downloaded from my Github.

Alternatively, the kit is available on PRYNTABO.

For the keys, use any standard mechanical key switch.

Step 2: Soldering

Use the schematic on my Github as a reference when soldering.

I choose to hand solder the PCB since I don't have the equipment for hot air soldering. If you choose to solder the PCB by hand, be sure to use plenty of flux and a good pair of tweezer.

I used 3 soldering iron tips:

  • Pencil tip for THT parts
  • Conical tip for SMD parts
  • Hoof tip for drag soldering the Atmega32u4 (follow this video if you've never drag soldered before)

The SMD components and the rotary encoder should be soldered on first, then place the PCB inside of the 3D printed case and insert the key switch through the cutouts, the case should be sandwiched between the key switches and the PCB.

Step 3: Burning the Arduino Bootloader

In order to program Knobo via the usb port, the Arduino bootloader must first be burned onto the Atmega32u4. I used an Arduino Uno as the ISP programmer and connected to the ISP connector on the PCB. The Arduino website has a great tutorial on how to do this, just make sure that the board type is Arduino Leonardo when burning the bootloader.

Step 4: Programming

Download the code template from my Github.

Install the following libraries:

The code uses the HID project library by NicoHood to send keypresses to the computer.

In the code template, I've commented the corresponding line to add your code for the macros.

A macro is consist of the following functions:

  •; // simulates a key press
  • Keyboard.release(); // releases a key press
  • Keyboard.releaseAll(); // releases all keypress, it's always a good idea to add this to the end of your macro
  • Keyboard.print(""); // types out a series of letters

Here is a macro for opening my website in chrome:;'t');




For the complete list of keys as well as more info, visit the Arduino keyboard reference as well the HID project documentation.

Arduino Contest 2019

Participated in the
Arduino Contest 2019



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    6 Discussions


    4 months ago

    This is a cool idea! I feel like I need something similar for photo editing hot keys, thanks for the inspiration!

    1 reply