Wii Rock Band controllers: guitar *and* drum kit. Can be used to repair existing controllers, or create new ones from scratch.
Go to file
Neale Pickett 13825855d3
Mockband / build (push) Failing after 16s Details
twiddling things trying to get drums working on CH
2024-01-06 15:08:12 -07:00
.gitea Merge branch 'main' into builder 2024-01-05 18:18:18 -07:00
docs twiddling things trying to get drums working on CH 2024-01-06 15:08:12 -07:00
.gitignore move to Makefile 2024-01-05 08:50:10 -07:00
Makefile twiddling things trying to get drums working on CH 2024-01-06 15:08:12 -07:00
MockBand.ino twiddling things trying to get drums working on CH 2024-01-06 15:08:12 -07:00
README.md docs docs docs 2024-01-04 13:51:38 -07:00
hid.hh c++ header files are .hh 2023-12-31 20:33:29 -07:00
instrument.hh Woo, cymbals work! 2024-01-04 13:10:17 -07:00
standard.hh Woo, cymbals work! 2024-01-04 13:10:17 -07:00

README.md

Mock Band

Microcontroller Firmware to emulate guitar and drum kit controllers from the Wii version of the Rock Band games.

Two small plastic guitars and a cheap toy drum pad

This is based on the foundational work done by Nicholas Angle on the Wii Guitar Controller (text article). Nicholas was also really nice about answering an email question I sent. Thanks, Nicholas!

Parts Needed

Controllers

Guitar

I 3D printed the MiniCaster by Vlad the Inhaler. It comes with full build instructions.

Drums

I bought a Cheap children's drum toy from Amazon. There are dozens of copies of this thing, the one I got was on sale for $25.

I had to unscrew the cover and remove the logic board, battery, and speaker. The pads were connected with a sort of ribbon connector, which I desoldered and removed, then placed in my own perma-proto board.

I also hooked up a 3.5mm TRS jack for the two pedals, which I could have desoldered from the toy (I already had these).

I'm sorry I didn't photograph or record any of this, but it was pretty straightforward.

Compiling

This compiles in the Arduino IDE. It doesn't have any library dependencies.

You need to make two edits to boards.txt. Instructions for this are all over the place.

Find your board, and edit the build lines. Don't edit anything that doesn't say build on the line! I can't help you if you do this.

In my examples, I'm editing the lines for the leonardo build. Yours might be different: it should match the board you're using.

Build flags

This disables serial communications on the board.

leonardo.build.extra_flags={build.usb_flags} -DCDC_DISABLED

Hat tip to Nicholas Angle for figuring this out so I didn't have to.

VID and PID

These set the USB identifiers. VID is the Vendor ID, and PID is the Product ID.

0x1bad means "Harmonix Music", at least, it does to the Linux kernel.

For guitar

PID 0x004 means "Guitar controller".

leonardo.build.vid=0x1bad
leonardo.build.pid=0x0004
leonardo.build.usb_product="Mockband Guitar"

For drums

PID 0x3110 means "Rock Band 2 drums". This works better with all versions of Rock Band on my wii, even if you don't use the cymbal inputs.

leonardo.build.vid=0x1bad
leonardo.build.pid=0x3110
leonardo.build.usb_product="Mockband Drums"

Wiring

Both the guitar and drum kit I used provide simple momentary switches: nothing fancy like a piezo. If you're using fancier types of inputs, you'll need to modify the source code.

Guitar

guitar wiring

silkscreen pin name description
TX0 strum up
RX1 strum down
2 tilt switch
3 green
4 red
5 yellow
6 blue
7 orange
8 no connection
9 wammy bar (see note)
10 plus
16 minus
14 orange solo
15 blue solo
18 yello solo
19 red solo
20 green solo
21 no connection

The solo buttons and wammy bar are optional. I don't use them.

If you hook up a wammy bar, be sure to uncomment the #define WAMMY in the code!

Drum Kit

drum wiring

silkscreen pin name description
TX0 no connection
RX1 no connection
2 2x kick / hat (see below)
3 green
4 red
5 yellow
6 blue
7 kick
8 no connection
9 no connection
10 plus
16 minus
14 no connection
15 blue cymbal
18 yellow cymbal
19 hi hat pedal (see below)
20 green cymbal
21 no connection

Pedals

If you only have one pedal, wire it to pin 7.

If you have two pedals, wire them to 7 and 2.

If you have three pedals, wire them to 7, 2, and 19.

Wii Rock Band 3 only looks at the 2x kick pin: it provides a checkbox to reassign this to the high hat. Clone Hero will use both the 2x kick and the hi hat. Maybe there is some other game that uses this too.

Bugs / Not Yet Implemented

I'm tracking things I need to do in the forgejo issues.

There's a rumor that one day forgejo/gitea will join the fediverse. Until that happens, just email me, and I'll open an issue.

Need help?

Email me, I'm friendly :)