Está en la página 1de 8

MicroDrum Tupiniquim

(Rodrigo Amaral 19.02.2015)


The goal of this project is to create an interface for reading electronic
drum Pads with the Arduino. It is important to remember that this module has nosound, it's
just a MIDI controller, and the same must be connected to a computer so that the
sounds areexecuted.
This project is inspired by (if not fully copied) project"microDrum", developed
by MassimoBernava, for more information on the functioning of the project, I recommend
you take a look at this page:http://microdrum.altervista.org/
Below is a brief description of the project, which was taken and translated from the official page:
"MicroDRUM is the most cost-effective way andsimple to build an electronic drum module. It is
based on Arduino and can be used with a huge variety ofpads and cymbals, supporting up
to 48 pieces. Theoutput can be sent to a PC and converted
to drumsthrough VST as BFD, AddictiveDrums and Superior Drummer, etc. The configuration
software has features not found in any other similar
solution: a directinterface with VST (without USB-MIDI cable),recording, playback of tablature
for practice, etc. Thisis a Open Hardware product made in Italy. "
As in Brazil, we have some limitations in achievingsome electronic components, I decided to
make a version with the components that we can find.
The CI Multiplex, was exchanged for an SMD version, which is found easily on the site with a
Aliexpress.com relatively low price (approximately $ 25.00 per 10 units)
The Arduino Uno, was replaced by an arduino nano in a generic version, which is also found in
Aliexpress.com for about $ 10.00. (Can be used anarduino Uno)

Printed circuit board


The project supports up to 6 plates each with 4 Jacksfor the connection of the pads. Each
of Jack's own twomultiplex analog pins connected to it, which allows the use of pads of
type "Dual Zone" in any one of thejacks (except the Hihat controller).
With the mounted boards 6, we will have a
modulewith 24 Stereo Connectors, the totaling 48 (or 24 Dual Zone) parts that can be used.

As the integrated circuit used in this project is an SMDversion, the same must be welded on
the copper sideof the plate (as pictured below).
To facilitate the welding procedure, recommend that users follow the following step in the
making of plate:
1) After eating the plate in iron perchloride, clean it with steel wool (Brillo) until it is clean and
bright.(Note: some patches on the plaque removal are not possible)
2) Apply the copper side, a masking tape, delimitingthe area corresponding to the
terminals that are receiving CI
3) apply a small amount of solder on all trails thatreceive the CI
4) remove the adhesive tapes, clean the plate with thesteel
wool and again later with some solvent (alcohol,acetone etc.) to remove any kind of fat exists.
5) apply a thin layer of varnish to protect the Board (there are special varnishes for circuit
boards, but I usually use spray varnish colorless common)
List of Board components
1-Pin bar (double) (12 Pins per card)
4-JacksStereo with key (Terminal 6)
1 CI 74HC4851 (SMD Version)
1 1 m Resistor (R1)
Jumpers setup the Board
1) setting for the use of common pads on all Jacks:

2) configuration for the use of the first Jack (left) as aHihat controller (Note: you only need a
single jack withthis setting for any project, the other boards should bemounted as shown in
the previous figure)

In this configuration, the center pin of the jack shallreceive the 5V from the plate, which is
required for theoperation of the controller. The analog pin A7multiplex is off the jack and should
be disabled in theconfiguration program.
To avoid short between 5V and GND hihat controller,the user must cut the center
pin of the switching jackbefore you solder it on the Board. If this is not done,every time
the plug is removed from the PIN plate will enter into short with the GND and will cause
thearduino switches off. In the figure below is shown thejack pin that must be cut.

Note: whenever the hihat controller is off the Board,the same will be short and will
restart the Arduino.This is a normal behavior, and should not be taken asa problem or bug.

Connection between the plates


The connection between the plates and the Arduinouno, must be made according
to the diagram below:
123456

1. GND
2. Digital Pin 2
3. Digital Pin 3
4. Digital Pin 4
5.5V
6. Analog Pin
How connections of 1 to 5 are common to all boards used in the project, the second row of
the pins mustbe used to make the connection of a plate
to another(as pictured). 6 Connector, corresponding to analogPIN is individual for each of
the boards used (beingthat you can use the doors of A0 to A6).
It is necessary to pay attention in time to perform this connection between the plates so
that the connectoris not connected to the contrary, if it does run the riskof
damaging the integrated circuit (74hc4851)
As the distribution of the pins of the multiplex, notsequential in the IC, the card also does not
have the jacks distributed with the pins in sequence. Thissetting should be taken
into consideration for any configuration changes of the code. The image belowshows the
pin corresponding to each of the jacks of the plate.

Configuration and Upload the code:


The user should have installed on your machine theArduino IDE so you
can make the desired edits in codeand upload to the arduino. Below are the parameters
that should be edited by the user to get a betterperformance of the module:
Microdrum code, can be downloaded directly from the repository (GitHub)
project:https://github.com/microDRUM/md-firmware
Use the option "Download Zip" to copy all the files inthe code for your machine.
From the Arduino IDE, navigate to and open the file "sketch_microdrum.ino". Note that when
opening this file, it will display various tabs in the IDE.
Before you upload the code to the arduino Board,should be changed two existing
parameters in the code:
16 Line: SERIALSPEED = 0 #define = #define >SERIALSPEED > for 1
19 Line: #define LICENSE = 0 to = #define > >LICENSE1
Before you upload the code, make sure the platemodel and the serial port are
selected correctly.
Upload, and wait for the message "Done Upload"

Software configuration
Please Donwload the configuration application at the following
address:http://microdrum.altervista.org/blog/downloads/microDrum_Python_Executable_for_Win
dows.zip
With the Arduino connected on the machine, openthe application
On the top bar select the COM port that is beingused by the Board, then click "Enable"

In the configuration tab, are shown 48 lines thatserve for the settings of the pads. We must
remember that the order of pins in each of the multiplex don't follow the same order.
To assist users, I'm offering my configuration file (pads.ini) that must be placed inside the
folder of the application so that it is read by the program.
Where are made further changes in the settings ofeach of the pads, the user must press the
button "SetAll" so that the pad settings to be saved on the card.
It is important to remember that the button "Set All"only works for all parameters of each of
the pads,namely, this option does not change the configuration of all pads at once.
It is indicated that the user always leave checked the option "Save", because in this way even
if the user does not save the settings on the Board, the application will maintain these
settings saved on your computer.
In the tab "Monitor" should be selected the virtualmidi driver, where the application sends the
signalsread by the battery. Usually we use the LoopMidi,because it's a free option.
Note: the sounds are only sent when the application isin the "Monitor" tab
The tabs "Tool" and "About" do not possess anythingimplemented in application.
MicroDrum configuration parameters
Type: sensor type that is being used, you have the following options:
Piezo-(is the option that will be used for virtually allthe pads except the HiHat controller)
Switch-(operates as an On/Off Key, lacks sensitivity)
HHC-(Hihat controller)
Disabled-(Input Disabled)
Note: Note corresponding to each of the pads
Curve: not sure yet on the functioning of this absoluteparameter, but it seems he serves to
delimit themaximum range that the pad can be achieved. In my tests I got satisfactory
results with values between 75and 85.
Curve Form: matches the type of reading curve of eachPad, in my tests I just having better
results using thepads with Linear reading
Threshold: sensitivity (value of 1 to 127) Determinesthe minimum value that a note must have
for it to beexecuted.
Scan Time: Time of the Sensor Reading
Retrigger: couldn't understand completely the functioning of this variable, but it seems to
me, the higher the value, the more readings are made, so theretrigger may increase. It is
interesting to begin Setupin the 127 value and reducing. I got good results withvalues
between 50 and 75.
Mask Time: Time of reading of the Piezo that will be"masked".
Mark schonewille: not tested this parameter yet.
Xtalkgroup: have not tested this parameter yet.
Gain: Amplifies the input signal of the pad. A good example for the use of this parameter is the
box(snare). For example, the Threhold of the box should be low enough to
catch the ghost notes, but the definition of the limit too low can cause
the pad hasretrigger or so keep firing constantly. Increase the gainincreases the input
signal, i.e. the notes ghosts can be touched the same intensity, but will be registered with a
larger value for the software.
Example: If the gain is 0, the limit at 35, a ghost noteplayed
with intensity and a normal note 15 to 50.Since the speed of ghost note is less than 35, he's not

going to be caught. But increasing the gain to 20,meaning that a ghost note played in 15 will
now beregistered in 35, and the normal note is logged to an intensity 70.
To better understand how is made the reading of each of the pads, see the image below:

Below are the approximate parameters I used in mypads. But each user must adjust the values
for a better response.
Type: Piezo
Note: Check the note corresponding to each pad inVST that will be used
Threshold: Between 25 and 35 (These values can varydepending on the type of pad and the
type of capture)
ScanTime: Between 10 and 20
MaskTime: Between 10 and 35
Retrigger: Between 30 and 55 (the higher the valuesset in this parameter, more readings will
be made, andconsequently greater might be the retrigger)
Curve: Linear
CurveForm: Between 80 and 99
Mark Schonewille: 0
XtalkGroup: 0
Gain: Between 20 and 25

1
2
3
1

16 x 2 LCD screen
Buttons (normally open Push Button. NA)
10 k Resistors
Pin bar (with at least 16 pin)

1 USB Hub
1 Generic USB sound card