Vagrearg Logo  
 
Pedal to the Metal
Boom ba da Boom ba da BoomBoomBoom
A friend asked me a few weeks ago about some bass-drum trigger problems and alternatives. My friend plays the heavy stuff with very fast bass-drum beats. When he described the problem and gave me some links to currently available systems, I had a very simple idea. Why not have a shaft-encoder on the pedal axis?
Not much happened for a week or so, but then a plan was created to make a test based on a "spare" pedal (one that would not be able to withstand the beating of a concert, probably not even a training session).

Putting a shaft-encoder, also called rotary encoder or quadrature encoder, on the pedal axis is not the easiest of things. There are standard types you can buy, but cost a fortune (for a poor hacker) and the resolution is not good for the cheap versions. Especially resolution is a key issue, because a pedal trigger must react on sub-degree accuracy.

Imagine a bass-drum beat of 600BPM, then every 100ms the pedal-hammer hits the drum. The travel angle of the hammer is about 45°, but with the high speeds it is significantly less and is about a third or even less. At 15° and an encoder with 100PPR (pulses per rotation) we'd be unable to detect very much as the whole travel angle would give 4.167 pulses. A factor of ten is needed to get any significant resolution where to trigger. A 1000PPR encoder is very expensive. An alternative is to use a gearing system to increase the angular resolution. The gearing system must not load the axis too much, or the pedal activation force would increase to make the "pedal-feel" different. A second problem with gears is the hysteresis. Making a gear without any hysteresis is difficult and expensive.

What I found at the local hackerspace OSAA was a partially dismantled ink-jet printer, pieces of a light-show system, some wood and a lot of creativity.
The heart of the system is the linear position measuring system of the ink-jet printer. This is basically a quadrature measurement where the rotating disc is rolled out into a long linear strip and the sensors move over the strip. This strip is mounted on the axis of the pedal on a large wheel. The wheel, with the strip, has a diameter of 66.5mm, which translates to 0.58mm/degree.

The strip measures 74.5 line pairs over 10mm (about 190LPI), which gives about 4.32 line pairs per degree or 8.64 pulses per degree (pulses are double rate because of quadrature).
measure

Hacking my way through the pedal resulted in this contraption:
pedal-overview-1
pedal-overview-2

The drive wheel has a rubber molded surface. The connection to the axis is made with a hollow pipe and fastener screws at 90° angles. Both the wheel and the connection pipe was found in the discarded and dismantled light show. The linear strip is folded around the wheel and fastened with a screw and a washer.
drive-wheel-detail

The detector comes from the carriage, which normally has the ink-cartridges mounted. There are four connections, Vcc, GND and two phase outputs. The good part is that the detector works at 3.3V and outputs digital signals, so no post-processing is needed to make them usable in the digital electronics. The whole detector circuit is hot-glued on a strip of aluminum and fastened on the base plate.
detector-detail

The linear strip is held tight using the belt-drive holding wheel from the ink-jet printer. The belt-drive wheel has a spring that holds the strip under tension. The whole mount has been literally cut out of the printer and used as is.
belt-wheel-detail

After doing some quick testing on the encoder, it shows that the pulses are coming in correctly. The expected number of pulses for 45° travel are 8.64*45 = 388. The first test, counting the transitions which doubles the resolution, results in values between 700 and 750. That matches closely to the expected values. The travel angle is closer to 40° (thumb-measurement verified).

Some new images of a different setup:
image 1
image 2
image 3


Next phase: getting some processor up to decode the signal and make a trigger...

Posted: 2011-11-28
Updated: 2011-12-26

 
 
Overengineering @ request