Yet Another MacroPad - With a Twist!

Yet Another MacroPad - With a Twist!

Get ready to make a full featured MacroPad with a little trick up its sleeve. You’ll need to follow the project to learn what that is, but trust me… you won’t be disappointed.

The build

This project write up will be in several parts, but by the end you will have one totally awesome Macropad with the following features:

  • 8 Pages of Settings (9 custom macro buttons per page. 5 keys per macro)
  • 1 Page of Codes (9 custom code buttons per page)
  • Web based settings editor to change your macros and codes
  • Anti-AFK Mode to keep your laptop/pc awake when you’re AFK

What’s the twist? Without having to force you to wait to the end… It’s the totally free Open Source Web Based Settings Editor. All the other macropads that I’ve seen have text file based settings or include software you need to install, or register for. With this Macropad you can use the hosted editor, or pull down the html files and run it locally in the privacy of your own home! It might not be much, but the ease of post build changes was important to me. I wanted to be able to give one to my grandma and have her make changes without having to breakout the arduino IDE to program it ;)

Why a MacroPad?

When I rearranged my home office, I bought a new keyboard. It was the least expensive mechanical keyboard that was hot-swappable, and to be honest I’m really happy with it. The only downside was that it came with a simple black keycap set, which had to go, so I picked up 2 sets of colored keycaps. The sets included keycaps for the number pads, but as this keyboard didn’t have a number pad, they were all extras. So I figured, why not make use of them by making my own number pad.

New Mechanical Keyboard
Techware Phantom 87 w/ shroud @ Amazon

I first went to thingiverse to see if there was a 3D model that would work. I pulled down the VOID9 as this looked like a simple design. After I printed it, I wasn’t quite happy with how the buttons didn’t have any space between them. Sure, it was like a normal keyboard, but I wanted some space. I fired up Tinkercad and started work on a new design, this time with spaces.

Problems with the first design

Sure, my first design was good. It was a simple 9 key macropad. It used an Arduino Pro Micro for its keyboard emulation and if all I wanted were 9 commands to program in, this would have been fine. But I wanted more flexibility. I decided to add the concept of pages. To cycle through the pages and know which one you were on, I added a rotary encoder and a small oled screen. I kept the grid layout for these extra items and just added them above.

encoder and oled
Extra row with the encoder and oled

The other change I made at this point was switching to use a Teensy 4.0 instead of the Pro-Micro. I had terrible luck programming the Pro-Micro. It would brick itself constantly and I would have to do magic act of resetting all the time. It wasn’t worth the hassle.

More than Macros

Once I stared using my prototype for a bit, I realized that one thing I find myself having to do is repeatedly enter really long strings - you know like passwords. I thought it would be great to have those strings output when I pressed a button, so I took one of my pages, page 9 and dedicated it to the storage of codes. There’s only around 1kb of storage on the Teensy in its EEPROM memory, so I settled on 9 codes (one for each button) with a character max of 24 per code. In a future iteration I might reduce the number of macro pages down to something like 5, so I can introduce more pages of codes.

One thing I have to say, though - for these code pages, there is absolutely no security on this macropad. I thought about adding a pin code or something you had to enter to unlock it when it starts up, but anyone can reverse engineer this thing if they get their hands on it - so please, please, please don’t put your passwords in it and leave it at your work desk overnight. I’ve got mine at home so no one’s gonna grab it. Don’t use this for passwords at work - use a Password Manager! If you bring it to work, someone’s gonna try to nab it - I mean, it’s just so cute!

Last Noteworthy Feature

The last thing I added was a mode called Anti-AFK. You enable this mode by pressing the encoder knob and the macropad will press the shift key every 30 seconds. This should prevent your system from going into it’s lock/sleep modes, so you can walk away from your desk and not have to unlock everything to get back to work. It might even keep your Teams status set to Online, so your boss doesn’t realize your at the beach!

Project Pages
  • Intro (That’s this page)
  • 3D Print Files
  • Wiring (coming soon)
  • The Firmware (coming soon)
  • The Web Configurator (coming soon)
  • Wrap-up (coming soon)