The Macroterminal

About the project

A bulky retro-looking macro keypad with multiple displays and presets.

Project info

Difficulty: Moderate

Platforms: AdafruitArduino

Estimated time: 1 day

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Pro Micro - 5V/16MHz Pro Micro - 5V/16MHz x 1
BUD Industries PC-11491 Enclosure BUD Industries PC-11491 Enclosure x 1
Any Keycaps Any Keycaps x 1
TCA9548A I2C Multiplexer TCA9548A I2C Multiplexer I used this one from Amazon: x 1
Monochrome 0.96" OLED Graphic Display Monochrome 0.96" OLED Graphic Display x 4
Cherry MX Switch Breakout Cherry MX Switch Breakout x 6
Micro USB Expansion Cable Micro USB Expansion Cable x 1

View all

Software apps and online services

Arduino IDE Arduino IDE
VS Code VS Code Optional, just for version control.

Hand tools and fabrication machines

Drill Press Drill Press x 1
Coping Saw Coping Saw x 1
Hand Files Hand Files x 1
Sandpaper Sandpaper x 1


I really liked the macro keypad projects that I have seen and wanted to make one. I didn't want to follow a tutorial or anything on a project where someone has already fleshed out the lifecycle of their project. I also wanted to try a couple new things that I had not seen before with some parts I had left over from other incomplete projects. So I decided to make a keypad with presets and displays; so you can change your configuration based on the applications you are using on the fly and never wonder what your keys do!

NOTE: I had originally planned on using icons displayed on the OLED displays to show the macro key functions, but storing multiple bitmaps, including display libraries, and SD storage libraries proved to be too large for the Pro Micro. I decided to dial back to just using text on the displays since I was already past my time budget for this project. I may revisit this in the future!

How it works:

This keypad, like most, utilizes the Pro Micro to act as a keyboard. It also utilizes a 2x3 keyboard matrix for the cherry mx keys and a TCA954A Multiplexer to handle the 5 displays individually.

The code consists of 3 "configurations" and the keys are set to different macros based on these configurations. The keys under the LCD display navigate the configurations.

Schematics, diagrams and documents

MacroTerminal Schematic

Please excuse the messiness of this, it is my first.



The Github repo to the MacroTerminal project


Photo of benzamp


Just a guy who likes tinkering.


Leave your feedback...