Sunday, November 19, 2023

Analog to Digital Adapter for Alesis Turbo Mesh Kick Drum


Earlier this year we bought an Alesis Turbo Mesh electric drum kit. The kit works well, but my drum teacher advised me to switch from the spring/trigger kick pedal to a proper kick drum pedal. I ordered a kick pedal and sensor from eBay, but was bummed to discover that the Turbo Mesh kit only works with a "switch" style kick pedal

Fig 1: The Goal (Images via Alesis.com)

The Alesis Turbo Mesh kick pedal connects using a standard 1/4" mono jack. When the pedal is depressed, the two conductors in the mono jack are connected and the control module recognizes it as a "kick." You can easily demonstrate this by touching both parts of the kick drum 1/4" connector with a wire. 

The higher quality kick sensors are analog, meaning instead of a binary on/off (like a switch) they change the voltage on a signal wire, which is interpreted by a microcontroller. This is how electric drum kits get different volume levels for different intensity strikes. In this case, I needed to convert the analog signal from the kick pedal to a binary on/off before the signal reached the Alesis drum controller. 

Fig 2: Connections (Images via Alesis.com and Sparkfun.com)

I bought an Arduino Redboard from Sparkfun for about $20. The Redboard has analog and digital I/O pins, making it an easy choice for this project. I also had some relays left over from the Fort Lock project. I bought a couple of 1/4" jacks. 

Part List

Digital Resources

Process

Redboard Setup

The Arduino IDE didn’t work out of the box with the Redboard, which requires an additional support package. 

I had to add this line to the Arduino IDE preferences to add additional boards to support. 

https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json

After updating the preferences, I was able to select the Redboard and connect!

Reading Analog Values

I connected the kick drum sensor to an analog pin on the Redboard and used the example serial reader code to read the voltage levels from the kick sensor.

Fig 3: Serial reader sample code from Sparkfun

Using the built-in LED I was able to reliably detect "kicks" using the analog sensor and looking for sudden increases in voltage. The Arduino software does not provide time guarantees, but the main loop ran fast enough that any latencies were not noticeable. 

Writing Digital Values

To trigger the "kick" I needed to "connect" the two conductors from the Alesis control unit's kick cable. There were a couple of options available to accomplish this. Using a multimeter, I found that the Voltage difference between the two kick sensor conductors was 3 Volts. 

To make the signal consistent, I had to create a common ground connection between the drum control unit and my Redboard. I connected a solid wire from the Redboard to part of the breakout connector on the bottom of the drum control unit. 

Fig 4: Connection point to establish common ground


I tried sending 3V directly using the Redboard's digital output pins, but the latency was too high (it sounded like about 300-500 milliseconds). My suspicion is that the Redboard could not supply the voltage quickly enough the internal resistance in the drum control unit. 

To overcome this issue, I used a relay that acted like a switch to close the connection between the two signal lines in the kick drum cable. I can't find the exact product I used (it was from eBay) but it was similar to this (Amazon). I understand from talking with friends that an OpAmp could have achieved the same thing, but I have not learned how to use those yet. 

I designed a simple case in FreeCAD and printed it. 

Fig 5: 3D Model of Enclosure



Fig 6: Wiring Diagram