Skip to the content
PCBKitNew board
2 layersDrumset, the printed circuit board in 3D

Low-cost MIDI Drum Trigger Interface based on ATMEGA 2560

Copper layers
2
Thickness
1.6 mm
Parts
176
Nets
153
Pads
578
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 5 (file 20171130)
Created
12 Sep 2020
Updated
21 Sep 2020

Overview

Drumset is an open-source printed circuit board by AntonioJojoto, from the AntonioJojoto/MIDI-Drum-Trigger-Interface repository on GitHub. It is a 2-layer board with 176 parts on 153 nets.

It is built around the TL082 and LMC7660N. Its parts include 41 capacitors, 35 resistors, 23 connectors, 18 diodes and 16 ICs.

Main components

2

README

README.md

Low-Cost MIDI Drum Trigger Interface

Many people may not know this, but drums are expensive, and if you live in an apartment, you can't just buy a cheap acoustic set and play, as your neighbors will call the police before you can finish playing your first song because an acoustic set can easily reach +110 dB.

However, there is another option, electronic drums. They are so silent that your roommates won't even complain (if you play at 3AM they might). But there is one big drawback to edrums, they are too expensive.

A low-tier edrum can go around 400€, I currently own a Yamaha DTX450k and I got a deal for it at 440€, as it normally goes for 550€ and when I was staring to practice it was OK, but then I got the chance to practice for a year on a acoustic set, and when I had to return to my cheap set I started to notice the drawback of cheap electronic drumsets.

Here are some problems that you may encounter when you play a cheap electronic set:

  • The sounds from the module are awful, specially the cymbals.
  • The pads are tiny and hard, in my Yamaha Drumset, they are 8 inches wide.
  • All the pads and cymbals are single-zone, so no rimshot, bell sound or anything else.
  • Hihat pedal is only in open or closed position, you can't get a lot of sounds from it.
  • In my case, as I like to play hard, the drum rack was moving a lot. The snare is always falling.

Sure, all of these problems may disappear as you upgrade to a more expensive drum set, but you will have to spend around 1200€. But even then, it will still be a mid-tier electronic drumset.

The best option, in my opinion, is to convert an acoustic set into an electronic one. If you already have an acoustic set or if you don't have one, as you can get one for 100€ or 200€. Now, there are two options for electronic conversion, buy the triggers and cymbals or go the DIY route, which is much cheaper. Although there is one expensive component that all the DIY guides asks for, the Drum Module.

It is normally the most expensive component in every drumset. The job of this component is critical, read the signals from the triggers and make a sound accordingly. Drum modules can go for around 300€ to 700€, but instead of buying a module that produce a mediocre sound, you should buy or make a trigger interface, is the same a drum module but instead of producing the sounds by itself, it sends MIDI notes to your computer, which will always produce better sound than even the most expensive modules.

Trigger Interfaces are much cheaper, the DDrum Trigger Interface will work perfectly for only 170€, but you can even make this component yourself.

DISCLAIMER: From now on, the guide will center on build the interface, in the following months a guide on DIY trigger and cymbals will be available. But from now, there is plenty of information online.

Current Features

  • 16 single-zone channels.
  • Custom values for each channel (scan time,dead time,etc).
  • MIDI-over-USB Interface.
  • Less than 3 milliseconds latency.

Future Features

  • Schematic.
  • Cross-Talk.
  • Support for custom dual and triple zone cymbals.
  • Support for rimshot on snare.
  • Hihat Pedal using optical sensor.
  • Change values using LCD screen and keypad.
  • Save custom values in EEPROM.
  • PCB available for production.

How it works?

There are many Arduino drum modules online, but a common problem in all of them is the latency, I find that an Arduino isn't fast enough to process the raw piezo signal from several channels, which is the approach that many people follow when making the interface.

Raw Piezo Signal

As seen in the picture, the peak of a piezo may only occur in the span of 100us. So the microcontroller may not read the channel at just the peak, so it will send no MIDI value at all, or send a wrong value. That is why in my desing I decided to add a peak detector circuit per channel.

Peak Detector Circuit

This circuit maintains the highest voltage from the piezo, so the voltage of the peak will be available for the uC to be read. Once the peak value has been registered, the capacitor will be discharged through the transistor, reseting the peak detector.

  • Yellow Signal: Raw piezo signal.
  • Blue Signal: Peak detector output.
  • Pink Signal: Transistor gate.

Once the uC detects a value on the channels higher than a given threshold, it wait a couple of milliseconds for the signal to reach the peak, this period is called scan time, after that, the value of the channel is read. But to stop retriggering, the uC won't clear the detector once a dead time has finished. All of these values are standarts from drum modules, and they can be set from channel to channel.

Using this method, we ensure that only the peak value of the piezo will be read, also no hits will be lost because the uC can read each channel at its own pace. In this example, the hit was a flam, and it registered both hits, although they were 30 milliseconds apart.

List of materials.

This desing is centered arround the AtMega 2560, as I want more than 6 channels for a full electronic set. But an AtMega328p can also be used, it depends on the number of channels that you want to use.

Material per module.

  • AtMega 2560 or AtMega328p. Although I recommend an Arduino, as the AtMega16 will be used to send the MIDI events over USB.
  • ISP Programmer: USBTiny or another Arduino.
  • LM7660 positive to negative voltage converter.

Materials per channel.

  • Female Jack (3.5mm or 6.5mm).
  • Male Jack (3.5mm or 6.5mm).
  • 2N2222 NPN BJT.
  • 10k and 330 resistors.
  • 1uF ceramic capacitor.
  • 1N4148 Diode.
  • TL082 Operational Amplifier.

Parts

176
QtyValueFootprintReferences
20100nCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33 +4
181N4148Diode_THT:D_DO-35_SOD27_P10.16mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D10, D11, D12, D13, D14, D15, D16, D17, D18 +2
15100kPotentiometer_THT:Potentiometer_Bourns_3266Y_VerticalRV1, RV2, RV3, RV4, RV6, RV7, RV8, RV9, RV10, RV11, RV12, RV13, RV14, RV15, RV16
15100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5, R6, R7, R9, R13, R14, R15, R19, R20, R21, R29, R30, R31, R34, R35
151uCapacitor_THT:C_Disc_D8.0mm_W5.0mm_P5.00mmC3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
152N2222Package_TO_SOT_THT:TO-92_Inline_WideQ1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15
15330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R10, R11, R12, R16, R17, R18, R26, R27, R28, R32, R33
15TL082Package_DIP:DIP-8_W7.62mm_SocketU2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16
106.5mmConnector_Audio:Jack_6.35mm_Neutrik_NRJ6HM-1-AU_HorizontalJ4, J5, J6, J7, J14, J15, J16, J21, J22, J23
410kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR22, R23, R24, R25
410uCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1, C2, C40, C41
43.5mmConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ17, J18, J19, J20
210uCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC36, C37
10_OKButton_Switch_THT:SW_PUSH_6mm_H4.3mmSW7
11Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW1
110kPotentiometer_THT:Potentiometer_Piher_PT-10-V05_VerticalRV5
112_11Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ11
12Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW5
1220Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR8
13Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW9
14Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW2
15Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW6
15_4_3_2_1Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ10
16Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW10
17Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW4
18Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW8
19Button_Switch_THT:SW_PUSH_6mm_H4.3mmSW12
1Clear_Pins_LeftConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ3
1Clear_Pins_RightConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ9
1Cymbal_SwitchesConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ1
1First_Analog_ChannelsConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ2
1KeypadConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ13
1LCDConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ12
1LEFTButton_Switch_THT:SW_PUSH_6mm_H4.3mmSW3
1LMC7660Package_DIP:DIP-8_W7.62mm_SocketU1
1Last_Analog_ChannelsConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ8
1RIGHButton_Switch_THT:SW_PUSH_6mm_H4.3mmSW11

Questions

What parts does the Drumset use?

176 parts, built around the TL082 and LMC7660N. 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.

Where can I download the Drumset KiCad files?

From the AntonioJojoto/MIDI-Drum-Trigger-Interface repository on GitHub, at the commit this page was made from: the board is KICAD/Drumset.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Drumset design in my own project?

Its repository states no licence, so its author keeps all rights: ask AntonioJojoto before reusing the design.

Similar boards

  • 4 layers96 × 172 mmServo cpu, the printed circuit board in 3D

    Servo cpu

    wiciu15/servo2

    Servo inverter for 3-phase AC motor with/out encoder feedback

    167 parts29
  • 2 layers50 × 36 mmSaoScope, the printed circuit board in 3D

    SaoScope

    simap/SaoScope

    40 parts6
  • 2 layers76.2 × 50.8 mmDVM Discovery 1a, the printed circuit board in 3D

    DVM Discovery 1a

    rick-ecircuit/dvm-discovery-experimenter-board

    The DVM Discovery

    52 parts1MIT
  • 2 layers156.2 × 141 mmMCU MotherBoard, the printed circuit board in 3D

    MCU MotherBoard

    bc-kim/PCB_KiCAD

    Tips Footprint of the resisotor and capacitor should be assigned aforetime because assigning those are comfusing when lots of reisistor and capacitors are used. 3. Reference: https://wikidocs.net/103412

    49 parts
  • 2 layers60 × 30 mmAnalogMul, the printed circuit board in 3D

    AnalogMul

    Devraux/PCB_Projects

    58 parts
  • 2 layers78.7 × 153.5 mmLoop PCVR, the printed circuit board in 3D

    Loop PCVR

    osazcas/pvcr

    75 partsMIT
  • 4 layers50 × 50 mmLoad, the printed circuit board in 3D

    Load

    AresEnsea/2324_Projet2A_AresCFR

    Ce repository GitHub regroupe l'ensemble des projets & documents réalisés par l'association Ares pour la Coupe de France de Robotique 2024 – Farming Mars.

    56 parts7
  • 2 layers74.7 × 49.5 mmAlim consumo, the printed circuit board in 3D

    Alim consumo

    Killerbee12/Invertech

    Proyecto de invernadero inteligente

    33 parts1