Project Code, CAD Files, and Build Guide
DrumFighter Nano - A palm-sized MIDI drum controller using arcade push-buttons in a 4x4 grid.
- April 2019
- April 2019
Goals of this project:
- Create an ultra-portable MIDI drum and sample pad that was more usable, and less overkill than the DrumFighter pad.
- Design something that could be built cheaply and quickly, or as a beginning project for someone just getting their feet wet.
What was learned from this project:
- Beyond the most basic snare/kick/hi-hat/tom note values, there is almost no standardization with regard to what note triggers what percussion sound between MIDI synthesizers, or even different drum kits in the same synthesizer.
This was built between Melodicade prototypes #2 and #3, and after being accustomed to that much feature creep, going back to something this clean was a refreshing change.
It was interesting to discover how little apparent note standardization exists between drum samplers, or even between kits in the same program (GarageBand is especially bad about this), with the same sounds occasionally being assigned to different note values after switching kits. It's likely that they assume access to a full piano keyboard, but this still ignores players of actual MIDI drum kits. A lot of time was spent just searching for the best note assignments for the limited number of buttons. Ultimately, I just added multiple note layouts with the ability to toggle between them, but it's a lot of added complexity for seemingly no sensible purpose.
I also spent quite a bit of time testing different finger drumming layouts on this device. I personally feel that the Quest for Groove layout might be the most logical, and easy to learn, and variants of this layout with only minor changes have been standard on every drum layout I have implemented since.
Shopping list used for this build:
Note: In total, parts cost approximately $80 USD for this project (without modifications), as built in 2019. Also note that the original build guide suggested using an Adafruit ItsyBitsy 32U4 5V-16MHz. This has been updated to recommend a Teensy 2.0 instead, as the iPad will bus power a Teensy via the camera connection kit with no need for external power; unlike the ItsyBitsy.
- 1 x Teensy 2.0 or other Arduino compatible micro-controller with sufficient I/O pins
- 12 x Sanwa OBSF-24 White
- 2 x Sanwa OBSF-24 Red
- 2 x Sanwa OBSF-24 Green
- 1 x Spool 22 AWG Gauge Solid Hook-Up Wire - Black
- 1 x Spool 22 AWG Gauge Solid Hook-Up Wire - Red
- 16 x 1N4148 Switching Diodes
- 1 x Spool PLA Filament 1.75mm - White
- 1 x Spool PLA Filament 1.75mm - Gray
- 4 x Wood Screws (M4 x 25mm)
- 4 x Black Rubber Feet
- 1 x 6mm x 6mm x 10mm Momentary Push Button
- Cut black wire into 12 x approximately 4cm long links, and strip 5mm of shielding from both ends.
- Bend the ends into J-shaped hooks using a needle-nosed pliers, and link the top-most lug of each button in a row together in a chain.
- Solder the wires to the button lugs.
- Solder a 10cm long wire link from the end of each row (top to bottom) to pins 4, 5, 6, and 7 on the Teensy.
- Solder a 1N4148 diode to the bottom-most lug of each button in a column, with the stripe facing away from the button.
- (Optional) If your diode legs are long enough, you may be able to solder them directly to each other, saving the need to cut and strip links of red column wire.
- Bend the diode wire opposite the button into a small hoop to allow it to hold your wire for soldering later.
- Cut red wire into 12 x approximately 4cm long links, and strip 5mm of shielding from both ends.
- Bend the ends into J-shaped hooks using a needle-nosed pliers, and link each column of diodes together in a chain.
- Solder the wires to the diodes.
- Solder a 10cm long wire link from the end of each column (left to right) to pins 0, 1, 2 and 3 on the Teensy.
- Solder a red wire from a lug to pin 21 on the Teensy.
- Solder a black wire from a lug diagonally opposite the first to a GND pin on the Teensy.
Once everything is wired:
- Hot glue the Teensy to the case bottom with the USB port exposed through the small hole in the case.
- Hot glue the meta key into position.
- Zip the screws in, and you're done.