MIDI Drum Module

A Roland-compatible drum module. Built using mostly off-the-shelf parts.

Public Chat
Similar projects worth following
Recently I was able to get my hands on a handful of Roland drum pads however the drum module is shot.
The plan is to use an Arduino setup to read a group of each pad and send data to a pc as MIDI data.
In the future a raspberry Pi will be added to give some on-board sound output.

A Roland Dual-trigger drum pad outputs two signals via a TRS jack.

The main pad sensor is on Tip, rim sensor on Ring and both are grounded to  Sleeve.

Reading both sensors requires two Analog pins. Most arduino boards have 8 analog pins, meaning i would be able to have 4 pads wired up. This would be good enough for adding a few drumpads to an acoustic kit, for example.

The Arduino Mega has 16 analog pins - ideal for a bigger setup.

Project Outline

I aim to use an Arduino Mega to read 8 pads and send data to an Arduino Pro Micro

The Pro Micro can act as a USB MIDI device without having to flash anything to it, so it will be perfect for taking the Mega data and sending it as a MIDI command to an attached PC running some drum software.

I am going to explore using SPI to pass data between the two boards. I am thinking about using the Pro Micro as the SPI Master, potentially opening the door to adding extra Megas as slaves to add more pads, or even using a bank of Nanos in place of the Megas.

  • I2c Testing

    Craig Hissett03/21/2019 at 00:50 0 comments

    Just a little update tonight, testing out my i2c premise.

    The Mega successfully passes data to the Pro Micro, which is great news.

    Now I just need to tighten it up and make sure it's fast and robust, then tidy up the Mega's pad reading code.

    Then it'll be time to stick a load of Jack sockets in a box with lots of Arduinos ha ha!

  • Draft Code | i2c

    Craig Hissett03/19/2019 at 00:32 0 comments

    First draft of code written, ready to test tomorrow:

    I have taken some working test code I had written for the Pro Micro and splits out its functions; the pro micro now becomes an i2c master, converting receive data into MIDI commands, and the slave device will focus on reading pads and sending values back to the master. In this example I'll be putting the slave code onto a Mega, giving 16 analog inputs (enough for 8 pads).

    If this works I'll be a happy man, as it'll allow me to easily add more slaves to give me the number of analog inputs needed, or allow me to use clusters of smaller boards, such as Nanos.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates