Minimal macro keyboard

Similar projects worth following

Designing and building your own keyboards is great fun and usually results in better keyboards than money can buy, but the fact that mechanical switches are rather expensive and an average keyboard contains a lot of them makes the prospect a little bit scary for beginners. That's why I decided to make a "minimal viable prototype" keyboard that demonstrates most of the challenges and lets you try your skills without breaking the bank.

As you can see, there are only six keys. That means you probably won't be able to type with it, unless you invent some aggressive chording scheme, but you can use it for things like volume keys, switching workspaces, switching keyboard layouts or dedicated arrow keys.

The board runs CircuitPython, so that it is easy to program it and to explain how the programs work. Of course nothing stops anybody from programming it in C or Arduino or anything else, it's just a regular SAMD21 microcontroller.

Zip Archive - 159.35 kB - 10/26/2020 at 14:37



Fritzing design

x-fritzing-fzz - 82.39 kB - 10/26/2020 at 14:36


  • PCB Design

    deʃhipu10/11/2020 at 18:13 0 comments

    As usual, everything starts with the PCB design.

    Nothing fancy. The minimal SAMD21 schematic with USB, plus six keys with diodes, a LED and a programming header. As usual in my projects the header has staggered pins to allow plugging in a male header without soldering.

    The board will use choc switches, because I really like them. In hindsight, I should have designed some kind of a frankenfootprint so that any switch could be used — maybe I will do that in the next version.

View project log

Enjoy this project?



danjovic wrote 11/15/2020 at 14:23 point

Cool project. During development of #Oh Cheat! I figured out that some games (like GTA)  requires tens of milliseconds of pause between consecutive keystrokes.  

  Are you sure? yes | no

deʃhipu wrote 11/15/2020 at 18:26 point

Yes, this is also true for operating systems running inside some virtual machines. For now I don't have the code for doing actual "combos", you can send a single key with modifiers. If I wanted it, I would probably have a buffer that gets sent as keystrokes at a fixed rate.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates