beatmania IIDX

Beatmania IIDX is a rhythm game by Konami.



Main gameplay buttons: 50x33mm Rectangle Buttons

Menu buttons: 33x33mm Square Buttons

Switch and Spring Options

As of Lightning cabinets, arcade stock options are 50g switch / 50g spring, and prior to that, switch and spring options varied greatly depending on preference of local arcade players. DP players may prefer a lighter spring.

Code Repos

Arduino (Atmega 32U4)


KnucklesLee: ttps://


Raspberry Pi Pico (RP2040)


Controller Size

Several sizes of controllers have been designed and released over the years.

Arcade Style

Arcade-Style Controllers (ASC for short), use the same measurements as the official arcade machine. The DJ Dao Phoenixwan and YuanCon DX controllers are built to this specification.


Konami Original Controllers (KOC for short) refer to a series of home controllers made by Konami for PS2 and later PC. These controllers feature a smaller turntable, and depending on the model, the distance from turntable to buttons may be smaller. All KOC feature rubber dome buttons instead of arcade switches.


DJ Dao’s FPS controller is another popular size for smaller controllers, using a KOC sized turntable but arcade-accurate distance from turntable to buttons.

Plans and Guides

Arcade Sized

A full sized controller designed for laser cutting:

Smaller Controllers

GJ-Tho Modular, a 3d-printed controller with full sized keypad and smaller turntable:

GJ-Tho Portable, a 3d printed controller with full sized keypad and very small turntable:

IIDX Pico, a 3d printed design focused on portability:

Teeny IIDX, a 3d printed design that folds up:

The Cons & Stuff site has a smaller design:

Frequently Asked Questions

Which controller size should I choose?

Arcade style is recommended if you plan on switching between a real arcade cabinet and home play, or if you don’t have a size constraint. Smaller controllers are more suitable for smaller living spaces.

Can I use my DIY controller on Infinitas or Ultimate Mobile?

Some codebases listed above may have this functionality built in, read the instructions. Otherwise, this library can provide the functionality to other codebases.