Software that enables you to create your own Arduino based beatmania IIDX controller.
- HID lighting support (that works with btools and ttools).
- GUI configuration tool.
- Multiple input methods (joystick, keyboard, mouse).
- An Arduino Leonardo (technically compatible with any ATmega32U4 based board, but only tested with a Leonardo).
- The Bounce2 library.
Because this code uses LUFA, the process of uploading is a bit more different.
- Add
https://github.com/CrazyRedMachine/Arduino-Lufa/raw/master/package_arduino-lufa_index.json
as an Additional Board Manager URL (inFile -> Preferences
menu) - Install LUFA AVR Boards from the Board Manager
- Select Arduino Leonardo (LUFA) as your board type
- Hit
Upload
NOTE: To upload new code, you need to press reset in the GUI or on your board when the IDE shows PORTS {COM1, COM6, } / {COM1, COM6, } => {}
or something similar in the log. (to enable showing this, check File -> Preferences -> Show verbose output during: -> Upload
)
Buttons:
- One terminal to GND and the other terminal to the corresponding pin.
LEDs:
- Positive terminal to corresponding pin.
- Negative terminal to GND.
Encoder:
- Connect the encoder's wires to the corresponding pins.
- Set
ENCODER_PPR
iniidx-controller/config.h
to the PPR of your encoder.
Manufacturer name:
- By setting
MF_NAME
iniidx-controller/config.h
, you can change the manufacturer name of your controller. - You can change this to whatever you'd like, such as your name.
Info:
- Pinouts are available in
iidx-controller/config.h
, you can edit them there if necessary. - Leonardo pinout (what the numbers in the codes pinout arrays mean) at the bottom of this page.
- Additional settings can be configured via the GUI, more info here
- Huge thanks to CrazyRedMachine for helping me out when I got stuck, and for their SoundVoltexIO repository.
- John Lluch's Timer interrupt based Encoder library
- The digitalWriteFast library