I picked up an ION iDM02 drum module, with five pads and a single pedal, and most of the frame missing a while back and always wondered if I could get it doing something interesting.
As is becoming usual with these types of posts, this is a collection of things I’ve found out about the module as I’ve been experimenting.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
Note in particular, if the ION module gets damaged, then spare parts will cost a lot more than another second hand module from online auction sites! So everything in this post is use at your own risk and there are still quite a few unknowns in what I’m doing…
https://makertube.net/w/pigzq3F571eHg7CnZSQGof
If you are new to electronics and Arduino, see the Getting Started pages.
Introduction
ION, it turns out, is related to Alesis. The ION iDM02 is essentially the combination of an Alesis SR-16 drum module and a drum trigger to MIDI box. The SR-16 has MIDI IN and OUT and the drum trigger MIDI box connects to its MIDI IN. With the ION iDM02, the drum triggers are already built into the unit directly.
One thing worth noting is the power supply. The iDM02 has a 9V AC to AC power supply rather than the more expected AC to DC supply. My supply is branded Alesis and rated 9V, 850mA, 7.65VA.
In my experience, AC to AC “wallwarts” are pretty hard to come by so that is another thing to watch out for if experimenting.
Drum Trigger Inputs
There are two types of trigger input. The manual describes them as follows:
“It also has 11 external trigger inputs to which you can connect your external triggers. Inputs
1-9 will accept drum pad trigger signals. Inputs 10-11 will accept switch-type inputs (usually
from foot pedals).”
As can be seen in the above photo, inputs 1-9 are labelled as “drum pad inputs” and inputs 10 and 11 are labelled “pedal inputs”.
From what I’ve found online, “drum pad trigger signals” is usually the output of a piezo element or force sensitive resistor, or other “analog” sensor. This means it should be able to detect how hard a pad is being hit. Switch-type inputs are simple on/off switches.
In the case of the ION iDM02, there are two types of sensors each connected to the main unit using a TS to TS (i.e. mono 3.5mm jack to mono 3.5mm jack) cable.
The pedal is a simple switch – I’ve verified this with a meter. When pressed, the switch is closed. The pads seem to simply be a piezo sensor wired directly to the TS socket. Here is a pad sensor with the rubber pad removed.
In terms of signals into the ION iDM02, here are some oscilloscope traces of the drum trigger pads.
They have the following characteristics, typical of a piezo sensor:
- Oscillating and decaying +/- voltage.
- Maximum voltage of around 1V, 3V, 5V in the three traces above.
- Short-lived, maybe around 2mS.
These traces were taken when plugged in and triggering the iDM02, so it is probably reasonable to assume the inputs are at least damped and clamped to specific voltage levels, as might be typical with a diy piezo input.
The pedal switch trace looks like this:
It has the following characteristics:
- Trigger is active low.
- The non-active high voltage is around 5V.
- The width of the pulse varies, it depends on how long you press it, but in this trace was around 80mS.
- There was a spike in this case, but not always.
From this we can conclude the switch signal has PULLUPs and closing the switch pulls the signal down.
MIDI
The iDM02 only has MIDI OUT. The original Alesis SR-16 has MIDI IN and OUT. Having watched this video of an attempt at repairing a faulty trigger board on an iDM02, it is interesting to note that the connection between the trigger board and the main module control board is just a few wires. In the video he counts 5, but it looks like 4 to me.
As this is essentially a SR-16 with a built-in trigger board, I’m wondering if that connection is basically power and MIDI OUT from the trigger board. Later in the video he shows a chip labelled “MIDI DC-703” which backs up that theory, although I’ve not found any trace of such a device online.
What isn’t clear is if this signal is a genuine MIDI signal – i.e. the 5mA current loop into an optoisolator – or if it is simple MIDI over a microcontrollers UART, which it could easily be in an “internal” link like this.
It isn’t possible to see from the video if there is an optoisolator on the main control board or not. It would be pretty neat if there was as that would raise the possibility of hacking in a MIDI connection instead, or if some kind of intelligent merge is implemented via a microcontroller somehow, in addition to, the drum trigger MIDI inputs.
In the end I took the top off my unit and yes, there are four pins on that inter-board connector, and no, I can’t see any evidence of an optoisolator anywhere near.
I’d have to investigate properly: i.e. trace through those four wires and get an oscilloscope on the link. But for now, I’m not going that far. Something for another day maybe.
But from what I can see on the PCB, R3 and R7 are both marked 221 which would mean they are 220Ω resistors, which is consistent with that being a 5V MIDI OUT circuit going to that DIN socket.
R10 appears to be connected to the inter-board link, and is labelled 103, which would mean 10K. It also seems connected to a trace that heads off into the power circuitry, so it is probably a pull-up. It also looks like the solder blob it is connected to, just above it could be paired to the solder blob near R3, so is probably the 5V side of the MIDI OUT circuit.
It would seem that the other connection from R7 is a track that runs alongside the other side of R10 and both of them disappear into part of the PCB that seems related to U4 (just to the left of the battery). This would appear to be a set of Schmitt trigger inverters, which are common as buffers in MIDI circuits. Then the connections appear to go off towards the Intel S0C31BH1 which may or may not be a 80C31 microcontroller (see below).
So no, I’ve not spotted an optoisolator anywhere in that circuit so far. It is possible that there might be one on the drum trigger PCB, but I’m not interested in taking my unit that much apart at the moment.
After having studied the video a bit more, whilst it isn’t very clear, I haven’t spotted anything on the trigger board that suggests the use of an opto-isolator there either, so I think it pretty likely that the “MIDI DC-703” device is driving the MIDI link directly through that connector…
The PCB
Whilst I had the top off, I took a few photos of the main control board. I’ve not really looked at it in detail though, but have tried to list the main ICs.
I listed the following major devices (as far as I can make out – some are a bit hard to read!):
- U4: 57D3J1K, AHC14 (looks like a TI logo) – Hex schmitt trigger inverters
- U5: 29F080A-70, 0538 F81S”, sticker: “ION 9-61-0119”, “IDM02 V1.10”, “09/06/2005”, “C/S 3477” – Flash memory 1Mb x 8?
- U6: 57D3J1K, AHC14 – Hex schmitt trigger inverters
- U7: 53D997T, TL074C – quad opamp
- U8: Sticker: “ION 9-61-0126”, “IDM02 V3.00”, “20/06/2005”, “C/S F0D4
- U9: Winbond W24258S-70LL – 32 x 8 CMOS Static RAM
- U10: AMI, 0525NRV, C18757, ALESIS CORP, COPYRIGHT 1987, DM3 ETO – custom processor? ASIC logic?
- U11: AMI 0524LID, 5341-039, ALESIS COPR, COPYRIGHT 1994, D56IFT, 2-27-0039 – unknown
- U12: 56EK84K, AHC574 – octal edge-triggered, d-type flip-flop
- U13: 53D907T, TL074C – quad opamp
- U14: S0C31BH1, L522P77 – (Intel) – not found it, but has same number of pins/package as a 80C31BH microcontroller… It is also right next to a set of unpopulated header pins (J11) labelled “ISP 8031” which seems to back this up…
- U15: 57DJ4EK, AHC573 – octal transparent, d-type latch
- U16: 56EK84K, AHC574 – octal edge-triggered, d-type flip-flop
- U18: Wavefront, AL1201G, 0534A (I think – this was really hard to read!) – 24bit DAC
- U19: 56CN3TM, AHC138 – 3-line to 8-line decoder/demux
- U20: 17F5TYK, AHC00 – Quad 2-input NAND
- U21: 339, EZ6L504 (ST) – low power quad voltage comparator
That IDC connector between the UI board and the main control board is a little delicate. I managed to bend some of the pins when disconnecting it, but that might be because it had some kind of adhesive seal (a bit like a warranty sticker) between the two halves.
It is also interesting to note that the built-in drum pad sensitivity appears to be driven by three piezo sensors on the back of the PCB as shown above.
Arduino and iDM02
So where does all this leave me? Well it seems highly likely that an Arduino could be used to generate the trigger signals required by the iDM02.
I pulled out my Arduino Euclidean Gate Sequencer and rebuilt it for TRIGGER mode – i.e. to only generate short pulses. In this mode each pulse is only on for 10mS.
I figured that if the piezo inputs can take a varying range of pulse signals from a piezo sensor then they should be fine with an Arduino’s 5V pulse. The unknown here though is what circuitry exists within the iDM02 to handle the input. As discussed above, if it is a piezo input then there will almost certainly be components to limit the signal to something that the onboard processors are happy with.
In the end I just decided to try it.
I repeat my warning: frying your iDM02 trigger board will be expensive and you’ll probably end up having to get a new unit, so you go further at your own risk and only if you are content that your iDM02 is essentially disposable at this point.
Connecting up an oscilloscope to the trigger signals once connected shows me that the Arduino’s 0 to 5V pulse becomes a 0 to ~2.5V to 3V pulse when plugged into the iDM02. But it is still recognised.
Curiously, I thought that the two switched inputs would require the pulse polarity reversing, but in practice they do seem to work. In this case the Arduino’s 0 to 5V pulse actually becomes a ~2.5V to ~5V pulse instead. The inactive (“low”) state is pulled up to around 2.5V when plugged into the iDM02.
I have no idea what is going on in terms of sinking or sourcing current, but from a completely pragmatic point of view, my Arduino is triggering the iDM02 pretty accurately. I just don’t know if I’m causing any over current issues on the side of the Arduino or the iDM02.
Really, I’d like to find out what the trigger input circuit of the iDM02 actually is, but I’ve not seen it up close.
So instead, taking a somewhat hand-wavy view of things, on the Arduino side, my drum trigger outputs look like this:
So at the most basic level, when the trigger is HIGH there is a 470Ω resistor in the path between the Arduino 5V and whatever is sinking the current. So that would be approx 10mA from this circuit alone. The diodes should ensure that the levels are clamped to either GND or 5V too.
In the case of the drum trigger inputs, taking a naive, or simplistic Arduino-style piezo circuit, there is probably a fairly large resistor to GND and maybe a protection diode too. The resistor would form a potential divider with the 470Ω, which might explain the lower voltage. The diode would probably be in parallel with D8 (in the diagram above) and with the same polarity and so would only really kick in if a negative signal is received I’m guessing.
For the switch inputs, as already mentioned, there is probably a pull-up in operation which will be pulling the output up from 0V when not active. This would lead to current flow from the HIGH of the trigger board, through the pull-up and 470Ω resistor to sink at the Arduino’s LOW output pin. Again I’d expect then a max of 10mA current flowing due to the 470Ω and in reality even less when adding in the pull-up.
When the trigger is active (HIGH), both the output and pull-up will be trying to get the signal to 5V.
Recall, that I am not an electronics person, so I am just speculating from fairly little knowledge at this point, but this makes sense to me and explains what I’m seeing. If you know better, do let me know in the comments!
But on this basis, I believe I am probably ok to drive my iDM02 from my 5V Arduino, but as I say don’t take my word for it and I am not responsible for any fried iDM02 trigger boards…
Closing Thoughts
I’m pretty pleased that this works. I wish I understood the circuitry a little more to be confident it was ok, but I guess as a commercial bit of kit, you’d hope that the inputs to the iDM02 would be pretty robust. But also, plugging random bits off electronics together based on hope is not a sustainable strategy.
Ideally it would be possible to drive the iDM02 over MIDI and not worry about triggers like this, but that would require messing around inside and so far I’m not convinced it has a complete MIDI IN implementation buried away in there somewhere anyway. To be honest if I wanted to go this route, it might be easier to look out for an Alesis SR-16 instead (although they seem to be pretty pricy online atm).
I could tailor an Arduino to drive the triggers with signals that are a lot more similar to the real signals it would see, but it’s probably not worth it seeing how well my clock gen PCB seems to be working.
The surprise was the two switched inputs – I really thought I’d have to do something different there, but it would appear that things are fine there too.
I suspect things would be very different if I was to try to use a 3V3 based microcontroller, as the evidence does seem to point to the iDM02 expecting 5V signals.
I’d like to get a proper look at the trigger PCB at some point, so I might come back to this and fully take mine apart. But for now, from my limited knowledge piecing together what I have, I think my chances are pretty good that this is working as I think it is.
But as always, if you know better or have a different theory, do let me know in the comments.
Other directions to take this:
- It might be possible to create an external MIDI device that can drive all 11 ports directly on the basis of received MIDI drum notes.
- One logical thing to think about is if the ION pads and pedal could drive my own Arduino Drum Trigger to MIDI Shield but really, the iDM02 will do the trigger to MIDI for me, so there isn’t really much point. Also, my shield isn’t set up for piezo inputs, but I could look into using my Arduino Piezo MIDI Controller instead.
- If I want MIDI IN then I think the most promising angle would be to splice into that internal 4-wire link somehow with an additional small microcontroller. If I chose the right one it could even do USB MIDI too and still merge in the signals from the build-in drum triggers.
Kevin
https://diyelectromusic.com/2024/11/09/ion-idm02-and-arduino/