
Eavesdrum connector
tobigun/EavesDrum
EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.

EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.
Eavesdrum module is an open-source printed circuit board by tobigun, from the tobigun/EavesDrum repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 100 × 100 mm with 103 parts on 125 nets, routed with 2,105 tracks and 529 vias.
It is built around the CD74HC4067M, BAT54S and JUMPER3. Its parts include 48 resistors, 35 diodes, 7 connectors, 3 switches and 2 capacitors. It belongs with the audio and music boards of this library.
No matter if you are E(a)ve or Ste(a)ve - drumming for e(a)veryone
EavesDrum is an open-source e-drum trigger module project designed for drummers and makers.
It allows you to connect a multitude of drum pads or piezo triggers and convert their signals into MIDI events.
The configuration of the module is simple and user-friendly, thanks to a built-in WebUI. You can adjust sensitivity, threshold, and other parameters directly from your browser—no need for complicated software or direct hardware programming.
The trigger module acts as a USB MIDI device - simply connect it to your notebook and use drum software of your choice (EZdrummer, Addictive Drums, SSD5, ...) to convert your notebook into a complete drum module.
DIY ultra-low-volume metal mesh cymbal setup:
Conventional rubber cymbal setup:
Low-volume cymbal setup:
System overview:
Drum Trigger Inputs:
Compatibility:
MIDI Output:
MIDI Mappings: [blocked]
Low Latency:
Affordable: you might be able to make an assembled trigger module for approx. 20€.
Supported Microcontrollers:
Open Source: Source code and PCB Gerber files are available for customization and extension.
WebUI Configuration: Browser-based interface for setting up and tweaking trigger parameters such as sensitivity, threshold, retrigger prevention, and more. No app required as the UI runs directly on the trigger module.
Monitor the signal of your drum pads in real time so that you can see the effect of your settings.
Provides extensive settings options within a (hopefully) user-friendly layout.
Mappings can be adjusted individually or for the whole kit.
EavesDrum is for you if you:
EavesDrum might not be for you if you:
[!IMPORTANT] Disclaimer: Although EavesDrum has been tested with various drum pads and setups, it remains a DIY hardware project and may behave differently depending on your specific configuration. Connecting this module to your equipment is done at your own risk. I cannot be held liable for any damage, malfunction, or injury resulting from its use. Please ensure compatibility and take appropriate precautions before integrating it into your setup.
Prerequisites: All you need is:
Build the EavesDrum trigger module:
Download & Flash the firmware:
Start the WebUI:
Calibrate:
Connect Drums:
Configuration:
Play:
Schematics of the trigger module with 32 inputs:
You can find the schematics and pcb files in the schematics/module directory. They can be viewed and edited with KiCad.
Bill of material (BOM):
| Component | Designator | Quantity | Price / Unit | Price Total | Comment |
|---|---|---|---|---|---|
| Raspberry Pi Pico 2(W)(H) | A1 | 1 | 5€ / W: 7.50€ | 5€ / W: 7.50€ | Use a Pico2W if you want WiFi and Bluetooth LE, otherwise a Pico2 is enough. - There is also a "H" variant for ~1€ more with an already soldered header - Pico1 is not recommended due its outdated performance. |
| 20-pin Header (male) 20-pin Header (female) | J4, J5 | 2 | 0.20€ 0.30€ | 1.00€ | Optional but recommended. - Socket your Pico so that it can be replaced if it is damaged or if you want to exchange it by another variant. - The male header is not needed if one of the Pico "H" variants is used. |
| HC4067 | U1, U2 | 2 | 1.00€ | 2.00€ | Multiplexer. Each provides 16 inputs. Available from many vendors with HC4067 in the name (e.g. CD74HC4067M). Make sure it is the SO-24 package. |
| BAT54S | D1.0 - D1.15 D2.0 - D2.15 | 32 | 0.05€ | 1.60€ | Prefer the ones with a forward voltage (VF) of 800mV@100mA over those with 1V@100mA but probably any vendor and type will work. |
| LED (red) | D3 | 1 | 0.08€ | 0.08€ | Use any color of your choice. THT or SMD 0805 / 0603 packages are supported. |
| LED (white/blue) | D4 | 1 | 0.10€ | 0.10€ | Use any color of your choice. THT or SMD 0805 / 0603 packages are supported. |
| LED (yellow) | D5 | 1 | 0.10€ | 0.10€ | Use any color of your choice. THT or SMD 0805 / 0603 packages are supported. |
| Push Switch | SW1, SW2, SW3 | 3 | 0.15€ | 0.45€ | 6x6mm. Only the RESET button is used at the moment. |
| Potentiometer 5k | R3, R6 | 2 | 0.35€ | 0.70€ | Supports Piher PT10 (10mm) / PT6 (6mm) or Bourns TC33 (SMD) |
| Potentiometer 100k | R11 | 1 | 0.35€ | 0.35€ | Supports only Piher PT6 (6mm) or Bourns TC33 (SMD) |
| Resistor 10 Ohms | R17 | 1 | 0.03€ | 0.03€ | SMD 0805 package, 125mW, 1%. For MIDI 5-pin DIN connector |
| Resistor 33 Ohms | R18 | 1 | 0.03€ | 0.03€ | SMD 0805 package, 125mW, 1%. For MIDI 5-pin DIN connector |
| Resistor 330 Ohms | R5, R8, R13 | 3 | 0.03€ | 0.09€ | SMD 0805 package, 125mW, 1% |
| Resistor 1 kOhms | R1.0 - R1.15 R2.0 - R2.15 | 32 | 0.015€ | 0.48€ | SMD 0805 package, 125mW, 1% |
| Resistor 2.7 kOhms | R4 | 1 | 0.03€ | 0.03€ | SMD 0805 package, 125mW, 1% |
| Resistor 4.7 kOhms | R9, R14 | 2 | 0.03€ | 0.06€ | SMD 0805 package, 125mW, 1%. Use different values to adjust brightness of LEDs D3 (R9) and D5 (R14) to your liking. |
| Resistor 10 kOhms | R10 | 1 | 0.03€ | 0.03€ | SMD 0805 package, 125mW, 1% Use different value to adjust brightness of LED D4 to your liking. |
| Resistor 15 kOhms | R15, R16 | 1 | 0.03€ | 0.06€ | SMD 0805 package, 125mW, 1%. For USB-Host connector |
| Capacitor 10 µF | C1, C2 | 2 | 0.04€ | 0.08€ | SMD 0805 package, >=25V, X5R (or X7R) |
| D-Sub HD 44-pin Connector, right-angled, female | J0 | 1 | 2.50€ | 2.50€ | Alternatively, you can use any connector of your choice via the 2x25 pin IDC header (J2). |
| USB-A socket, right-angled | J1 | 1 | 0.15€ | 0.15€ | Socket for USB-Host. |
| Header 2x25 pins (male) | J2 | 1 | 0.33€ | 0.33€ | Expansion port (Optional). |
| 3-Pin Header (female) | J3 | 1 | 0.15€ | 0.15€ | UART serial debug output. |
| DIN 5-pin female 180° | J7 | 1 | 0.85€ | 0.85€ | Connector for MIDI Serial DIN Output. |
| PCB | - | 1 | ~5€ (Germany) | ~5€ | See the section PCB Ordering and Assembly for more info |
| Total | ~22€ |
If you are located in Germany, check prices at Reichelt (that's where the prices from above are from), Pollin, Conrad. Globally Mouser and Farnell might be your friend.
All you need to order your Trigger Module PCB for assembly are the following files:
These files are available on the PCB Module 1.2 Release Page.
To order the PCB:
Surface Finish from HASL (with lead) to LeadFree HASL to protect our environment from toxic leadExamples:
Due to the varying discount by coupons, prices of JLCPCB and PCBWay my vary. So check both.
Assembly It is possible to assemble the PCB on your own by hand-soldering without special equipment. The only tricky part is the HC4067 SMD packages and the SMD resistors and capacitors. While the latter is quite easy, the HC4067 requires some experience.
You can also let JLCPCB or PCBWay assemble the PCB as you already order the PCB there.
Example:
If you want an assembled board it is best to organize a collective purchase order to split the cost. I created a forum discussion where you can organize an order.
To order an assembled PCB:
[!NOTE] Also take a look at the DIY Optical Hi-Hat Sensor PCB. You might want to get both PCBs with one order.
In addition to the trigger module you will have to build an adapter to connect the drum pads.
The easiest way to achieve this is to build the connector module:
You can find more information about the connector and the files to order the (assembled) PCB on the
connector release page.
But you can also build your own adapter. Here is the pin out of the D-Sub HD 44 pin connector:
The pin names consist of the multiplexer input IDs (in1_x: input x of Multiplexer MP1, in2_x: input x of Multiplexer MP2).
You can either solder jacks directly to a D-Sub connector or you can build an adapter to one of the cable harnesses that come with drum modules.
This is the default configuration for the outputs:
| Jack | Pins | Assignment |
|---|---|---|
| 1 | in1_0, in1_1, in1_2 | Snare (Main, Rim, Side-Rim) |
| 2 | in1_3, in1_4 | Tom 1 (Main, Rim) |
| 3 | in1_5, in1_6 | Tom 2 (Main, Rim) |
| 4 | in1_7, in1_8 | Tom 3 (Main, Rim) |
| 5 | in1_9 | Kick Drum |
| 6 | in1_10, in1_11, in1_12 | Ride (Bow, Edge, Cup) |
| 7 | in1_13, in1_14, in1_15 | Cymbal 1 (Bow, Edge, Cup) |
| 8 | in2_0, in2_1, in2_2 | Cymbal 2 (Bow, Edge, Cup) |
| 9 | in2_3, in2_4, in2_5 | Cymbal 3 (Bow, Edge, Cup) |
| 10 | in2_6, in2_7, in2_8 | Hi-Hat (Bow, Edge, Cup) |
| 11 | in2_9, in2_10 | Tom 4 (Main, Rim) |
| 12 | in2_11, in2_12 | Tom 5 (Main, Rim) |
| 13 | in2_13, in2_14, in2_15 | Cymbal 4 (Bow, Edge, Cup) |
| Pedal | adc2, +3.3V/5V (optical only) | Hi-Hat Pedal (resistive or optical) - For resistive controllers: adjust the ADC2 DC offset potentiometer to the (+) direction (~4kOhm)- For optical (TCRT5000) controllers: adjust the ADC2 DC offset potentiometer to the middle (~69kOhm)This will adjust the sensitivity of the ADC2 channel. You can fine-tune this setting in the UI later. |
[!INFO] The layout for the older D-Sub 37 pin connector of board revisions v1.1.x can be found here
[blocked]
The wiring of Snares and Toms is straightforward in most cases
| Tom/Snare | Main/Head (Piezo) | Edge | Side-Rim | EavesDrum Setting |
|---|---|---|---|---|
| Generic 1-Zone | Tip | - | - | Drum / 1-Zone / Piezo |
| Roland 2-Zone | Tip | Ring | - (Cross-Stick sound is generated by module) | Drum / 2-Zones / 2 Piezos |
| Yamaha 3-Zone | Tip | Ring (Switches for zones are multiplexed by a 10k resistor) | Drum / 3-Zones / Piezo + 2 Switches (1x TRS) | |
| EFNOTE 3-Zone | Tip (Main Jack) | Ring (Main Jack) | Tip (Side-Rim Jack) | Drum / 3-Zones / 3 Piezos |
Cymbals (with 3-Zones) follow two main connection styles:
If you have only a one or two zone cymbal the pin layout is the same for both vendors.
| Cymbal | Bow (Piezo) | Edge Switch | Bell/Cup Switch | EavesDrum Setting |
|---|---|---|---|---|
| Generic 1-Zone | Tip | - | - | Cymbal / 1-Zone / Piezo / No Choke |
| Generic 2-Zone | Tip | Ring | - | Cymbal / 2-Zones / Piezo + Switch / Choke: Edge |
| Roland 3-Zone | Tip (Jack "Bow/Edge") | Ring (Jack "Bow/Edge") | Ring (Jack "Bow/Bell") | Cymbal / 3-Zones / Piezo + 2 Switches (2x TRS) / Choke: Edge |
| Yamaha 3-Zone | Tip | Ring (multiplexed by a 10k resistor) | Cymbal / 3-Zones / Piezo + 2 Switches (1x TRS) / Choke: Edge | |
See also:
In case you do not want to use the reference design or you just need a few inputs, you can also design your own trigger module and just use the firmware. The base circuit for each input consists of the following parts:
Please note that "~2,7k" for R1 in the schematics means that the variable resistor should be adjusted to this value. The nominal value of the resistor should be about 5k to have some range for the adjustment.
You might also be able to build this on a breadboard for first experimentation.
Skip this section if you are not interested in the electronic background of the circuit.
Here is a simple example with a high intensity hit on a snare drum: The left shows the input signal that is offset by 1.65V and it fits nicely into the 0V - 3.3V range. On the right you see the display in the UI. All the details of the signal are maintained. Note that the firmware maps the negative part of the signal to the positive y-axis so that the thresholds can be edited more easily.
Before you can start you have to first adjust the DC voltage offset so that the signal level is at 0% when no pad is hit. But no panic - the process is easy and only has to be done once.
For this open the WebUI, open the settings page (should be open by default) and click on Calibrate in the Monitor panel and follow the instructions.
At the beginning the signal graph will probably look like this, with a signal level above 0% (here 10%):
Now turn the potentiometer labeled ADC0 DC offset (R3) with a screwdriver. Only if turned in the correct direction, the signal level will decrease, otherwise it will increase. So turn the potentiometer until the signal level reaches 0%. If you turned too much, the signal level will increase again - in this case turn in the opposite direction.
The signal graph should now look like this - with a signal level of 0%:
Now the calibration is completed.
[!NOTE] Do not worry if the signal is not totally clean and has a bit of a ripple in the 1% or 2% range. This can be compensated with the thresholds later. If you do not reach the 0% level at all, your trigger module might be faulty.
To optimize the trigger behavior for your pad, go to the settings page and open the panel of the pad you want to adjust.
First assure that the Drum type (here: Drum / 3-Zones / 3 Piezos) is correct. If you are not sure, check the section about the different pad connectors to see what the type should be.
Mark the pad as monitored (the record button on the right top of the pad's panel). This way you can see the signal graph (left) and hit graph (right) in the Monitor panel whenever you hit the monitored pad. Right next to the hit graph is the hit history which shows you the last hits. You can also click on one of the last hits to see the graphs again.
If you click on Show All Pads on the top, you can see hits on every pad, no matter if it is monitored or not.
Main/Head/Rim/Edge/Cup/... Range: trigger range for each zone
Scan Time: Determines the time to search for a peak (Scan phase).
Mask Time: Blocks hit detection for the given time (Mask phase).
Decay Time: Blocks hits with a hit velocity below the given decay curve (Decay phase).
Decay Curve: The curve that defines how the detection threshold decreases during the decay phase.
Curve Type: Lets you change the trigger behavior for low or high intensity hits, i.e. you can shift the sensitivity more to the lower or higher intensities.
Head/Rim Bias: Sets whether to prefer head or rim sound when the signals of both to not indicate a clear winner.
[!IMPORTANT] When you change settings they will be applied immediately but they will be reset to the old values when EavesDrum reboots or loses power. To keep the settings you have to save them with the "Save" Button (SD-Card icon) in the top Icon Bar.
The settings for the Hi-Hat pedal are different from the settings of the pads.
Pedal Range so that the corresponding marker in the monitor's signal graph is slightly above the current pedal signal and the Pedal value in the hit graph is at 0%.Pedal Range so that the corresponding marker in the monitor's signal graph is slightly below the current signal and the hit graph shows 100%.Almost Closed position to the Closed Position a "Chick" sound detection takes place.Almost Closed to Closed the higher the intensity of the "Chick" sound will be.None.To see the effect of the settings, monitor the pedal with the record button:
In the folder config/presets you can find some presets for some pads. You can apply them by dragging them from Windows Explorer to the settings panel of a pad.
With the Mappings page you can change the MIDI mappings of each pad.
Select the MIDI note of the zone to the desired value. You can trigger the note via the UI by pressing the "Play" button to preview the sound.
[!IMPORTANT] When you change mappings they will be applied immediately but they will be reset to the old values when EavesDrum reboots or loses power. To keep the settings you have to save them with the "Save" Button (SD-Card icon) in the top Icon Bar.
Apply Drum-Kit Mappings
You can change the mappings of all pads in the drum-kit at ones if you drag & drop a mapping file (see folder /config/mappings) to top border (aka the Icon Bar) of the UI. This way you can switch between the mappings of the drum softwares easily.
Alternatively you can also click on the "Apply Config File" button in the top Icon Bar to open the same file drop area that appears if you drag & drop a file.
If you drag & drop the mappings file onto a pad instead of the top bar, only this pad's mappings will be changed:
Roles
Note that the mappings are assigned to a role (e.g. Snare, Tom1, ...) and not to a pad directly. As the drum kits differ in number and type of pads it would be rather difficult to have generic mapping files if there is no common denominator for every drum. This is what the role is for: it specifies the role of the drum in the drum kit, so that you have the correct mappings assigned to the drum when you switch from one mapping file to another.
If you want to have more control over a configuration you can download the active configuration with the "Download" icon in the top Icon Bar. Then do you modifications on the downloaded YAML file and upload it again by either clicking on the "Apply Config File" button in the Icon Bar or by Drag & Drop of the config to the Icon Bar.
This way you can Backup & Restore your config whenever you do a firmware update.
[blocked]
At a speed of sound of about 343 m/s, the sound travels 34 cm in 1 ms, so a little less then the length of a drum stick. It seems that everything up to 5 ms is not noticeable and most drummers still have no problem with 10 ms. So you want the latency to be as low as possible or at least below 10 ms.
If you look at the signal path there a quite some components involved from the hit to the drum until you hear the sound from the speaker. This is round trip time (RTT) of your system which defines the latency of your signal.
The time the trigger module waits for a peak to detect a hit can be configured for each pad. The default of 3 ms was chosen so that it works with most drum pads.
If you take a look at the screenshot of the Monitor below you might notice that the piezo signal for some pads reaches its peaks only after 1, 2 or even 3 ms.
So if you set the scan time too low, you might get wrong results. Decrease the scan time in small amounts and check if the hit strength are still detected correctly.
The Audio Interface latency depends on the number of buffers the software, drivers and audio interface uses and the buffer size.
The best way to reduce latency is to reduce the buffer sizes. The goal is a latency of 5-6 ms for this part of the signal chain.
Select ASIO as the output type in your drum software and start with the lowest audio buffer size.
Note that the latencies that your ASIO driver displays for each buffer size (e.g. 64 samples -> 1.5 ms) is only the theoretical minimum with this setting. In reality the value is much higher (e.g. for my device 5 ms instead of the 1.5 ms). You can measure the system latency if you want to be sure (see below)
Sometimes you can further reduce the latency by increasing the sample rate (so 192kHz, 96kHz or at least 48kHz instead of 44.1kHz), but this might not always give you the expected result.
Last but not least the OS might also be a factor. If you have the choice try Mac OS X or iOS - it might perform better due to its superior audio architecture.
To reduce the latency, use a decent Audio interface, use dedicated ASIO drivers, reduce the sample size and try to increase the sample rate. You should get the output latency of the audio device to about 5-6 ms with ASIO on Windows. So with a scan time of 3 ms this will be 8-9 ms. If you are still not satisfied with this, try to reduce the scan time of the pads.
You can test the latency of your system with the latency measurement feature, built into the UI. Open the Settings page and click on Check Latency on top of the Monitor panel. The wizard will guide you through the procedure.
Below are the measurement results from the audio interfaces that I own. Maybe it will give you an idea what to expect:
| Device | Sample Rate | Buffer Size | ASIO driver | Latency | Comment |
|---|---|---|---|---|---|
| Behringer UMC204HD | 48kHz | 32 (0.7ms) | UMC ASIO | 5.7ms | |
| Behringer UMC204HD | 96kHz | 32 (0.3ms) | UMC ASIO | 5.2ms | |
| Focusrite Scarlett Solo 4th Gen | 48kHz/96kHz/192kHz | 16 (3.8-4.9ms) | Focusrite USB ASIO | 5.0ms | No big difference between sample rates. One notebook preformed best with 192kHz, the other with 48kHz (dropouts with higher rate). Thunderbolt ASIO did not work |
| NUX Mighty Plug (Pro) | 48kHz | 8 (0.2ms) | NUX Audio | 6.9ms | A guitar effect plug, so maybe not what you want. |
| Terratec Aureon 5.1 USB MK.2 | 48kHz | 64 (1.3ms) | ASIO4All | 5.9ms | |
| Conrad UA0078 (CMedia CM108 chip) | 48kHz | 64 (1.3ms) | ASIO4All | 6.6ms | |
| Realtek HD Audio (HW Dev-ID 0x0293) | 44.1kHz | 64 (1.5ms) | ASIO4All | 6.4ms | Could be an ALC293. The latency was not constant between tests and reached in a few instances 12, 23 and even 40ms. Realteks ASIO driver was not available on the computer. |
| EFNote 3 as Audio Interface | 48kHz | 32 (0.7ms) | EFNOTE | 8.2ms | Measured on my old Notebook with an Intel Core i7-7500U (2.7 GHz) CPU from 2016. Got about 13ms on my newer Notebook with the same setup. |
| Yamaha EAD10 | 44.1kHz | 48 (1.1ms) | Yamaha Steinberg | 16.1ms | Tested on two different systems with same result. |
| Noname USB-C headphone adapter (AB13X) | 44.1kHz | 64 (1.5ms) | ASIO4All | 23.8ms | |
| Realtek HD Audio (HW Dev-ID 0x0294) | 44.1kHz | 64 (1.5ms) | ASIO4All | 34.9ms | Could be an ALC294. Realtek's ASIO driver crashed, so I had to use ASIO4All. |
Notes:
doc/latency contains screenshots of all tests.There is a forum where you can post your own latency measurements.
Also check out the Latency Test by Secret Sauce on Youtube (Full results). Here some notable results:
| Device | Sample Rate | Buffer Size | Latency |
|---|---|---|---|
| Arturia MiniFuse 2 | 48kHz / 96kHz / 192kHz | 32 | 5.0ms(@48kHz) / 3.4ms(@96kHz) / 2.8ms(@192kHz) |
Conclusion
- Dedicated devices (Focusrite Scarlett Solo / Behringer UMC204HD) performed best.
- Drum Modules (at least EFNote 3 and Yamaha EAD10) might not be suited to be used as low latency audio output interfaces.
- The results can vary between Computers and sometimes a 9 year old Computer can give you better results than a new one (see EFNOTE 3).
- Although some ASIO4All performed quite well and I did not notice any crackling during the short test, I would not recommend them, as crackling is still likely with them. But it might be a start if you already own them.
EavesDrum already comes with pre-built releases. So you do not need to build it yourself. In case you want to change the code, here are the steps to build the firmware yourself.
[blocked]
webui directory
cd webuinpm installnpm run build. The result should be written to the data directory in the root directory of the projectnpm run serve to start a server on http://localhost:8080. This will proxy requests either to the PC simulation or to the hardware device, depending on the selected target in vite.config.ts.
[blocked]
platform.ini file) in Visual Studio Codebuildupload
upload_protocol from cmsis-dap to mbed in the platform.ini file (section pico-base) if you do not have a Debug Probe and want to upload the firmware per USB instead. This will create an UF2 file and flash it via the flash-drive in bootloader mode.
BOOTSEL button of the Pico when connecting it via USB (or alternatively pressing the RESET button if you use the EavesDrum PCB).Platform / Upload Filesystem image task in the PlatformIO tab (click the side-bar icon with the PlatformIO ant logo to open the menu first)
npm install. A manual build is not required, as the Upload Filesystem image task will trigger a build for you.[blocked]
There is also a simulation of a drum kit for PC in case you do not want to test on real hardware.
Build the simulation:
pacman -S mingw-w64-x86_64-portmidinative-win environment insteadRun the simulation:
upload button will start the applicationShift + <number> to choke the corresponding pad+ or - to increase or increase the offset of the monitored pad. This is useful to simulate pedals# to select the amount of Jitter in the signal of the monitored pad. This is useful to simulate noise in a pad's signal or fluctuations in pedal presses[blocked]
Originally I started EavesDrum as I wanted to improve my Guitar Hero Drum Kit and make it less noisy. So I built my own mesh drum for this kit out of tin cookie jars, some pollen screen (which is better suited than fly screen) and some piezos. Although it might not give you the feel and rebound of a real drum, it was at least very quiet ;-)
The next step was to try my DIY drums with a software drum module but I soon discovered that drum gear (especially drum modules) is just too expensive for experimentation. So I built my own trigger module. First I started with Hello Drum but as it did not work as expected I wrote my own firmware from scratch.
Over the course of a year, I continuously improved and redesigned the hardware and software. Whenever there was a discount I bought "real" drum pads to test it. After some time I had a full drum kit mixed with a lot of drums and cymbals (rubber and low volume) from different vendors (a Frankenstein drum kit so to speak).
In my opinion, most drum modules and kits are a bit too pricey for what they offer (as the cost of a piezo is below 1€) - especially if you just want to start drumming. So I open sourced the project to minimize the entry barrier into this nice hobby.
Note that this project is not meant to compete with drum modules or gear from drum manufacturers like Roland, EFNote or Yamaha. It is more an addition for makers who like DIY. If you want to perform live you want the safety that your gear works at all times - something that this project cannot offer. As I work in the embedded industry I know that reliability needs a lot of testing and experience - so this costs a lot of money that you pay in the end when you buy a product.
So if you have the money, give a little love to the drum vendors and buy some original equipment in addition to your DIY stuff.
The following libraries are used in this project:
Uses information from these projects:
Tobias Gunkel
This project is licensed under the GNU General Public License v3.0. The licenses of the used libraries can be viewed by clicking on the info-button in the top icon bar.
Logo Fonts:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 32 | 1k | Resistor_SMD:R_0805_2012Metric | R1.0, R1.1, R1.2, R1.3, R1.4, R1.5, R1.6, R1.7, R1.8, R1.9, R1.10, R1.11, R1.12, R1.13, R1.14, R1.15 +16 |
| 32 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D1.0, D1.1, D1.2, D1.3, D1.4, D1.5, D1.6, D1.7, D1.8, D1.9, D1.10, D1.11, D1.12, D1.13, D1.14, D1.15 +16 |
| 4 | MountingHole_4.3mm_M4 | MountingHole:MountingHole_4.3mm_M4 | M4_1, M4_2, M4_3, M4_4 |
| 3 | 2.7k | Resistor_SMD:R_0805_2012Metric | R4, R7, R12 |
| 3 | 330 | Resistor_SMD:R_0805_2012Metric | R5, R8, R13 |
| 3 | SW_Push | EavesDrum:SW_Push_SMD_Thru | SW1, SW2, SW3 |
| 2 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C2 |
| 2 | 15k | Resistor_SMD:R_0805_2012Metric | R15, R16 |
| 2 | 4.7k | Resistor_SMD:R_0805_2012Metric | R9, R14 |
| 2 | 5k | EavesDrum:Potentiometer_SMD_Thru_Vertical | R3, R6 |
| 2 | CD74HC4067M | Package_SO:SOIC-24W_7.5x15.4mm_P1.27mm | U1, U2 |
| 1 | 10 | Resistor_SMD:R_0805_2012Metric | R17 |
| 1 | 100k | EavesDrum:Potentiometer_SMD_Thru_Vertical | R11 |
| 1 | 10k | Resistor_SMD:R_0805_2012Metric | R10 |
| 1 | 33 | Resistor_SMD:R_0805_2012Metric | R18 |
| 1 | Conn_01x03 | EavesDrum:PinSocket_1x03_P2.54mm_Vertical_SMD_Thru_Pin1Left | J3 |
| 1 | Conn_01x20_Socket | EavesDrum:RaspberryPi_Pico_wo_2nd_pin_row | J4 |
| 1 | Conn_01x20_Socket | EavesDrum:RaspberryPi_Pico_Common_2nd_pin_row | J5 |
| 1 | Conn_02x25_Odd_Even | EavesDrum:IDC-Header_2x25_P2.54mm_Vertical_SMD_Thru | J2 |
| 1 | DIN-5_180degree | EavesDrum:MIDI_DIN5 | J7 |
| 1 | Jumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP8 |
| 1 | Jumper_3 | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabels | JP7 |
| 1 | LED (red) | EavesDrum:LED_D3.0mm_SMD_Thru | D3 |
| 1 | LED (white/blue) | EavesDrum:LED_D3.0mm_SMD_Thru | D4 |
| 1 | LED (yellow) | EavesDrum:LED_D3.0mm_SMD_Thru | D5 |
| 1 | SUB-D 44 HD | Connector_Dsub:DSUB-44-HD_Socket_Horizontal_P2.29x2.54mm_EdgePinOffset8.35mm_Housed_MountingHolesOffset10.89mm | J0 |
| 1 | USB_A | Connector_USB:USB_A_Connfly_DS1095 | J1 |
It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.
103 parts, built around the CD74HC4067M, BAT54S and JUMPER3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the tobigun/EavesDrum repository on GitHub, at the commit this page was made from: the board is schematics/module/eavesdrum-module.kicad_pcb and its schematic schematics/base-circuit/doc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

tobigun/EavesDrum
EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.

tobigun/EavesDrum
EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.

16n-faderbank/16nx
16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.


KarlZeilhofer/EtherDue-EMVC-PA-Monitor-2
The EtherDue is an 100% Arduino Due compatible board with onboard Ethernet.


silveirago/MidiMood
This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar).

brenonsantos/OpenPDM
OpenPDM is an open-source programable Power Distribution Module for your car

