/MacroKeyboard

Seeeduino-based, 3D printed, mechanical macro keyboard

Primary LanguageC++MIT LicenseMIT

Macro Keyboard

A 15-key Arduino-based, mechanical macro keyboard powered by the Seeeduino XIAO.

Fork

I made this forked version because I had no use for the bluetooth functionality, and wanted to keep it simple and sweet. I decided to use a different microcontroller than the original model, as the Seeeduino XIAO is faster, smaller, and connects using USB-C instead of the default Micro-B that the Pro Micro has.

(even more) Glamour shots

How it works

The keyboard uses a key matrix which maps the physical buttons to the keys F10 to F24. These can afterwards be mapped to for example, execute a script. I used "Kwin Custom Shortcuts" for this, as that allows you to execute a different option based on the focused application. This also allows you to directly run a [bash] script, so you can script exactly what each button will do.
While untested, you most likely can use AutoHotKey on windows for the same functionality.

The keys are set up like this:

F10 203 F11 204 F12 205 F13 240 F14 241
F15 242 F16 243 F17 244 F18 245 F19 246
F20 247 F21 248 F22 249 F23 250 F24 251

Folder structure

├── src      # source code for the arduino
└── stl      # STL files for the case and the lid
└── cddx     # CDDX files for the circuit

Bill of materials

Item Description
15 Cherry MX Mechanical switches I used AliExpress, but anything should work here
Seeeduino XIAO The main microcontroller powering it all. Bought from Seeed Studio Bazaar
Diodes
Keycaps I bought some clear keycaps from AliExpress which worked flawlessly
4 x anti-slip pads Need to fit into the circular cut-outs on the bottom of the case. Help keep it steady on the desk and compensate for slight warping from 3D printing. I used transparent self-adhesive ones, but you can stick them on with anything

The layout

The original STL had space for all the required components used. Because I did not implement any bluetooth functionality, the box will be quite empty inside; if not for the microcontroller and cables.

STL

This forked version does not have a custom modified version of the STL as I personally do not have the know-how to model such thing. Because of this, you will have to remove a support piece placed at the USB-C connector port, and there also will be some empty gaps (where the power switch was supposed to be, for example). I do wish to modify the STL at some point in the future to make it work perfectly with this version, however.

Circuit Diagram

The CDDX files can be found in the cddx folder.
Wiring follows a grid matrix layout. These are then wired to the corresponding pins on the XIAO.

Xmodmap

On unix based systems you may need to add a .Xmodmap to your home directory as otherwise the F13 to F24 keys may not be recognized correctly by some software. I've added an example .Xmodmap in this repo for those specific keybindings.