
Bemini atmel au
ianklug/bemini
A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.

A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.
Bemini rp is an open-source printed circuit board by ianklug, from the ianklug/bemini repository on GitHub, published under the CC-BY-SA-4.0 licence. It is a 2-layer board of 220 × 70 mm with 70 parts on 40 nets, routed with 515 tracks and 15 vias.
It is built around the RP2040, W25Q128JVSIQ and AP2112K-3.3, with the BSS138 and WS2812B among its other parts. Its parts include 24 switches, 16 capacitors, 10 resistors, 3 ICs and 2 diodes. It belongs with the RP2040 boards of this library.
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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 22 | MX-NoLED | keyswitches:Kailh_socket_PG1350 | K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, KA1, KA2, KA3 +6 |
| 10 | 100nF | Keebio-Parts:C_0402 | C3, C8, C9, C10, C11, C12, C13, C14, C15, C16 |
| 6 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4, H5, H6 |
| 4 | 10k | Keebio-Parts:R_0402 | R1, R7, R9, R10 |
| 2 | , | ||
| 2 | 10uF | Keebio-Parts:C_0402 | C1, C2 |
| 2 | 1k | Keebio-Parts:R_0402 | R6, R8 |
| 2 | 1uF | Keebio-Parts:C_0402 | C4, C5 |
| 2 | 22pF | Keebio-Parts:C_0402 | C6, C7 |
| 2 | 27 | Keebio-Parts:R_0402 | R4, R5 |
| 2 | 5.1k | Keebio-Parts:R_0402 | R2, R3 |
| 1 | 12MHz | Keebio-Parts:Crystal_SMD_3225-4pin_3.2x2.5mm | Y1 |
| 1 | 20V 1A | Keebio-Parts:D_SOD-323 | D1 |
| 1 | 500mA | Keebio-Parts:Fuse_0805 | F1 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | BOOT | kicad-open-modules:TS-1187A-B-A-B | SW1 |
| 1 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | LOGO | bemini:kayboards-logo-smaller | G*** |
| 1 | LOGO | bemini:bemini-logo-smaller | G*** |
| 1 | RESET | kicad-open-modules:TS-1187A-B-A-B | SW2 |
| 1 | RP2040 | rp2040:RP2040 | U1 |
| 1 | Rotary_Encoder | Rotary_Encoder:RotaryEncoder_Alps_EC12E_Vertical_H20mm | RE1 |
| 1 | USB_C_Receptacle_USB2.0 | Type-C:USB_C_GCT_USB4085 | J1 |
| 1 | W25Q128JV | winbond:W25Q128JVPIQ | U2 |
| 1 | WS2812B | Keebio-Parts:WS2812B | LED1 |

ianklug/bemini
A miniature mechanical keyboard controller with a rotary encoder for staggered-key rhythm games.


CRImier/MyKiCad
My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

jujojujo2003/Ender-3-3DPrinter-Load-Cell-Bed-Leveling-Sensor
This is a Load Cell based bed leveling sensor based on the RP2040 and TI ADS1235 ADC that should mount onto any vertical MGN12H gantry. My printer is an Ender 3 with a bunch of linear rail mods.


jadenrhee/wigglecam-controller
RP2040 co-processor board for a 4-lens wigglegram camera: constant-current flash, controls, battery telemetry, Pi 5 I2C interface. 4-layer, DRC-clean, fab-ready.

shilga/rp-gameboy-cartridge-hw
You should order with ENIG (electroless nickel immersion gold) plating. While the cartridge will work with HASL you will getter contact with ENIG and it is less prone to wearing down.

skogaby/skogaslider
Firmware, CAD, and PCB files for the skogaslider, an RP2040-based controller to simulate Chunithm's gameplay experience

ki-manufaktur/neurodots
This project is inspired by the 3D printed 4x4 Colour Dot Puzzle by Sebastian Coddington and featured in Hackaday: Color Dot Puzzle Will Wrinkle Your Brain.
It measures 220 × 70 mm and has 2 copper layers, 1.6 mm thick.
70 parts, built around the RP2040, W25Q128JVSIQ, AP2112K-3.3 and BSS138. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ianklug/bemini repository on GitHub, at the commit this page was made from: the board is bemini-rp/bemini-rp.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC-BY-SA-4.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).