A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.
Design by ianklug. Art by clue.
Special thanks to Sebastiaan Swinkels for technical assistance.
Please clone this repository using the --recurse-submodules
flag. Some of the required symbol and footprint libraries will not be included otherwise.
Please note that the RP2040 models are functional at a hardware level, but software is incomplete.
The 2.x versions (bemini-rp) use the RP2040 MCU, and require different firmware from the 1.x versions. They also include a few new features and refinements over the 1.x models, including M2 mounting holes and an RGB indicator LED.
The 1.x versions (bemini-atmel) use the Atmega32U4 MCU, in either the MU or AU footprint. These versions are no longer recommended.
Bemini is powered by QMK Firmware.
Bemini ships with a customized keymap that is ideal for use with many common rhythm games. More information about the default keymap is available here.
You may customize Bemini's keymap by following the instructions in these documents. This will require a reflash of your board's firmware. Use QMK Toolbox to flash if on Windows or MacOS, or the QMK CLI with avrdude on Linux.
The .stl files for Bemini's 3D-printed parts are included in the models directory. I print these parts on a Prusa i3 MK3S in black PLA on a smooth steel print bed.
The newer turntable (v2) is a single piece, and requires no supports. It should be printed with the top facing down. Infill should be at least 15%. This is the recommended version.
The first turntable (v1) prints in two pieces (main and cap) which snap together. This may improve the quality of some of the touch surfaces if your prints are inconsistent. Print with the flat top of the cap facing down, and the flat ring (the bottom) of the main body facing down. The body will require supports.
The encoder retainer should be printed with the flat part facing down. Slide this piece in between the encoder's legs on the underside of the board to secure the encoder, if you do not wish to solder it in place.
Manufacture at your own risk. I can not guarantee the quality or functionality of boards which are not sold directly by me.
Please note that most PCB manufacturers have a minimum order quantity of five units.
Hand-soldering Beminis from scratch is extremely difficult and NOT recommended due to the small size of the surface-mount components and their pads. Instead, PCB assembly services can source and assemble all the small parts on the bottom of the board. Depending on the manufacturer, you may only need to hand-solder some of the larger parts, such as the USB port and the switch sockets.
I can personally recommend JLCPCB or PCBWay, but most PCB manufacturers should be capable of producing Bemini.
Zipped gerber files are present for the production designs of each variation of Bemini. They are called <variation>-gerbers-<version>.zip
and should be compatible with most PCB manufacturing services.
If you will be ordering from JLCPCB, use <variation>-gerbers-jlcpcb-<version>.zip
. These gerbers have the JLCPCB serial number placed in an easily-readable location on the back of the board. Make sure to choose "Specify a location" under "Remove Order Number" so that this number is printed where expected.
Production Beminis are two-layer FR4, 1.6mm thick. The RP2040 versions measure 220x70mm. They are assembled using lead-free solder. BOM and Centroid files are present for each board in the format expected by JLCPCB.
The USB connector is a GCT USB4085. The hot-swap sockets are Kailh sockets. The encoder sockets are Mill-Max 3305 receptacles. The encoder is a Bourns PES12. An Alps EC12E will also work. The RGB LED is a WS2812B.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.