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


  • 1 × ATSAMD21E18A-MU
  • 1 × AP2112K-3.3TRG1
  • 2 × 1µF 0604 capacitor
  • 6 × Diode
  • 1 × LED

View all 7 components

  • Switch Testers

    deʃhipu02/21/2021 at 14:47 1 comment

    I just got a set of 13 different Kailh Choc switches, to see which ones are best for a given use case, and I needed to mount them to something — the Keeblet is just the perfect vehicle for this! Since the two red switches -- Kailh Pro and Transparent Red  — are practically identical from the point of view of feel, I only needed to make 2 new Keeblets, for a total of 12 switches:

    The transparent key caps are perfect for this, because you can see which switch is which without having to remove them!

  • 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 all 2 project logs

Enjoy this project?




[this comment has been deleted]

deʃhipu wrote 04/14/2022 at 07:05 point

I regularly get those offers from Seeed, but whenever I respond with details, I get no reply back. Therefore I am not interested in cooperation with Seeed, now or ever, please stop wasting my time and sending me messages.

  Are you sure? yes | no

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