With the MiniKbd you can build a small mechanical keyboard that's programmable with Python, using the Adafruit Trinket M0!Designed by Andy Clymer, Ships from United States of America
MiniKbd The MiniKbd is an introductory level project that lets you build a small USB mechanical keyboard using the Adafruit Trinket M0 board (not included) and program custom funtionality with Circ...Read More…
The MiniKbd is an introductory level project that lets you build a small USB mechanical keyboard using the Adafruit Trinket M0 board (not included) and program custom funtionality with CircuitPython.
This listing is for an unbuilt MiniKbd PCB, and four sticker feet.
There are still other parts to collect to finish off your build since there can be so many possibilities for customization, depending on the kind of keyswitches and keycaps that look and feel best for you. I've provided a guide for ordering the remaining parts. Expect to spend another $12 to $15 on parts to complete your build.
The simple acrylic enclosure shown in the photos below is also not included, but I've provided the design files for the enclosure if you have access to a laser cutter, and I've also formatted them so that they're ready for order directly from Ponoko (where your first order might be free!). The enclosure is completely optional, the device will look and work great with the stuck-on feet that are included with this order.
If you do plan to make the enclosure, I also provide the screws and spacers as an optional add-on for your order since they're hard to find in quantities of less than 100 in other places.
Adafruit's Trinket M0 is an amazing little device, I think there's no easier way for someone with a little bit of programming experience to get started making their own hardware. Once the MiniKbd is built it's fully programmable with CircuitPython, allowing you to easily customize its functionality. Compared to the Arduino, there's no need for a special IDE other than what you're already comfortable programming in. The project was designed for use in an introductory electronics workshop, and it's excellent for someone with a little bit of experience with the Python programming language who wants to get started with hardware.
All of the sample code and required libraries are available in the GitHub repo.
The Adafruit Trinket M0, the brains of the operation
The code is completely customizable, but I also designed the MiniKbd so that it can be built in more than one way. The keyswitches, caps, and rotary encoders are shown as an examples and are not included.
Six mechanical keyboard keyswitches, with compatibility for the most popular Cherry MX, Cherry ML and Kalih Low Profile keyswitches. Choose keyswitches that are as clicky and springy as you wish, and assign them to be your own custom keyboard shortcuts. I keep one on my desk as a large set of arrow keys.
Whereas a “potentiometer” is the kind of knob designed to turn from 0 to 100% (like a volume knob), its cousin the Rotary Encoder can freely turn continuously in either direction, clicking like a jog-dial as it turns (usually 12 or 24 clicks per rotation). With each click, the MiniKbd receives a signal that it's able to interpret to know whether it was turned clockwise or counterclockwise. Then, with each click, a keyboard command can be sent to the computer.
For instance, if the "z" and "x" keys are set up to zoom in and out in your drawing application, you can make one of the encoders into a zoom knob by having it type the letter "z" with each click in one direction, and the letter "x" in the other. Or, send the keyboard command for "Volume Up" in one direction with each click and "Volume Down" in the other direction.
The best of both worlds, to me this one feels like a little mouse that only has a scroll wheel and two buttons for clicking. It's great for audio volume control and media keys (Play/Pause, Mute, etc.)
I've provided some sample code in my GitHub repo. Here's how I use them:
My MacBook Pro has annoyingly small arrow keys, but I use them all the time. This was the original idea for making the MiniKbd, I wanted a full size set of mechanical arrow keys that I could set off to the left side of my keyboard. The six-key sample code is set up to work this way, and is a great way to learn how CircuitPython works.
I built one with two rotary encoders that I use for track select and volume. Each click of the left knob as it rotates changes to the previous or next track, and pressing the encoder down pauses the audio. The right encoder is a volume control that mutes the audio when the encoder is pressed down as a button. The code example for this one is extra nice when it's used with the Mac, if you rotate the volume knob slowly it also sends the signal that the option key is held down for even more fine-grained control of the volume level.
It's easy enough to type command-plus and command-minus to zoom in, but it feels really good to assign these keystrokes to the two directions of a rotary encoder. Instead of repeatedly typing these zoom shortcuts, it's really a lot of fun to make a zoom knob that does this for you. If you spend a lot of time in Photoshop or Illustrator, you can also make a knob increment or decrement other parameters such as the brush size or the opacity of a tool.
It's so easy to edit the code on the MiniKbd that it only took a minute to comment out a few lines of code in my volume and track select MiniKbd to control another application that I was using for the afternoon. Instead of having a knob control volume up/down I quickly changed it to arrow up/down.
Please let me know if you have any questions before ordering!
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!