English | 繁體中文 (Traditional Chinese)
An easily customizable controller for most computer rhythm games.
Suitable for multiple games, including:
| osu! | DJMAX RESPECT V | Quaver | vivid/stasis |
| Milthm | Rhythm Doctor | Sparebeat | Polylylyrhythm |
| Estella | In Falsus (theoretically) | and more |
The overall layout and default keymap are optimized for DJMAX RESPECT V and my own key binding, but any games similar to this are supported. You only need to edit the keymap in ZMK Studio to easily optimize the Rhythmboard for the game you're playing or your preferred key bindings.
Install Firmware
Building your own Rhythmboard from hardware
BOM
If you're familiar with developing RP2040 microcontrollers or Raspberry Pi Pico, click here for a shorter explanation.
- Go to the
Actionstab. - Click the latest workflow run.
- Find the
Artifactssection, locatefirmware, and click the download icon on the right to downloadfirmware.zip. If you can't find theArtifactssection, click here. - Connect your board to your computer in BOOTSEL mode (by plugging in the RP2040-Zero while holding the BOOT button).
- Unzip the
firmware.zipyou just downloaded and find the.uf2file inside. - Drag and drop the
.uf2file into the RP2040-Zero USB drive (likely namedRPI-RP2), and you're good to go.
- Go to the
Actionstab. - Click the latest workflow run.
- Find the
Artifactssection, locatefirmware, and click the download icon on the right to downloadfirmware.zip. If you can't find theArtifactssection, click here. - Press and hold the
BOOTbutton on the RP2040-Zero. DO NOT RELEASE it before plugging the RP2040-Zero into your computer. Once plugged in, release the button. You should see a new USB device appear on your computer, likely namedRPI-RP2. - Unzip the
firmware.zipyou just downloaded, locate the.uf2file in the extracted folder, and drag or copy it into the USB drive that appeared in the previous step. - Once the copy is complete, the USB drive will automatically disconnect, and the RP2040-Zero will reboot. Your Rhythmboard is now ready to use with the latest features available.
-
RP2040-Zero x 1
-
Machined Pin Header (23 pins in total: 9 pins x 2 + 5 pins)
-
Machined Female Header (23 pins in total: 9 pins x 2 + 5 pins)
-
MX profile mechanical switch hotswap socket x 17
-
1N4148W diode (SOD-123 package) x 17
-
MX profile mechanical switch x 17
-
Keycaps
- 1u x 12
- 1.25u x 1
- 1.5u x 2
- 2.25u x 2
-
2u PCB mount stabilizers x 2
- Find the Gerber
.zipfile here. - Find a PCB manufacturer to make your PCB.
JLCPCB is what I use and have tested. PCB Assembly (PCBA) is supported with the given files, but it might not be supported by other manufacturers. If you prefer other manufacturers and wish to use a PCBA service, please configure the necessary files yourself.
Not sponsored, but open to sponsorships from anyone (not limited to JLCPCB LOL).
For the files required by JLCPCB PCBA: the BOM file is located at /PCB/RhythmGameControllerKiCad/production/bom.csv, and the placement/CPL file is located at /PCB/RhythmGameControllerKiCad/production/positions.csv.
- Place your order and wait for your PCB to arrive.
Although I used a PCBA service for the SMD parts, if you are hand-soldering, it is recommended to solder the diodes first, followed by the switch sockets.
For THT parts, the workflow I chose is to solder the machined pin headers onto the RP2040-Zero first. Then, use the RP2040-Zero to confirm and adjust the angle before soldering the machined pin sockets onto the PCB.
- Mount the stabilizers.
- Mount the RP2040-Zero.
- Place the switches.
- Mount the keycaps.
Install the firmware onto your RP2040-Zero by following the steps written here.
Check here for better visual effect
Layer 0 (default)
| ESC | ZMK Studio |
Alt+F9 | ` | ||||
| W | E | R | T | U | I | O | P |
| G | J | ||||||
| to 1 | G | J | |||||
Layer 1
| 1 | ZMK Studio |
to 3 | 2 | ||||
| F10 | L⇧ | ↑ | ↓ | ← | → | R⇧ | F11 |
| A | ↹ | ||||||
| to 1 | ␣ | ↵ | |||||
Layer 2 (Layer transportation)
| to 0 | to 1 | to 0 | to 0 | ||||
| to 3 | to 4 | to 5 | to 6 | to 7 | to 8 | to 9 | to 10 |
| none | none | ||||||
| to 0 | none | none | |||||
Layer 3 (QWERTY DFJK default layout that's the default for most games)
| ESC | none | ALT+F9 | ` | ||||
| A | S | D | F | J | K | L | ; |
| V | N | ||||||
| to 1 | V | N | |||||
Layer 4 (Hotkeys pad)
| ESC | none | ALT+F9 | ` | ||||
| A | X | C | V | Z | N | HOME | END |
| LALT | LGUI | ||||||
| to 2 | LCTRL | LSHIFT | |||||
Layer 5~10 (user define)
| ESC | none | ALT+F9 | ` | ||||
| W | E | R | T | U | I | O | P |
| G | J | ||||||
| to 1 | G | J | |||||
- Press the "ZMK Studio" key.
- Go to ZMK Studio.
- Your browser may display a COM port connection pop-up (at least Chromium-based browsers do). Select the COM port your Rhythmboard is connected to. (It's not going to be COM1 or COM2 on Windows).
- Customize your key bindings, keymaps, and layers on ZMK Studio as you want.
⚠️ Note: Wireless-related options are not supported.
- Upload plate file
- Create its case
Developed based on theArnoll/ZMK-4x3-Keyboard