Digital FD-8 pedal
From Just in Time
[[Revision timestamp::20140208010308|]]
In Roland FD-8 Issues: Hall Sensor Modification we described how a ratiometric hall sensor could replace the resistor film to solve reliability issues with the Roland FD-8 high hat pedals. Even though that Hall Sensor hack works, an MCU based approach might have some additional advantages:
- complete variable resistance to be compatible with other drum modules
- adjustable sensitivity curve
- detection of foot-down velocity (which is currently limited to one static velocity)
- auto-calibration, i.e. no need for pots to set the trigger points.
Bill of materials
We're currently working on a "more digital" version, based on a MCU and a digital potentiometer. We're using the following hardware:
- attiny13 MCU (ebay), an 8-pin AVR with effectively 5 io pins and 10-bit ADC.
- Two MCP41010 digital potentiometers (ebay) in series (10K each, because when we sourced it, a single 50K version was a lot more expensive on ebay).
- Honeywell SS490 ratiometric hall effect sensor as in the non-MCU version, or alternatively an Allegro A1302 (Just ordered a set on ebay. Should be comparable to the Honeywell if used in a 5V setup)
Additionally (and optionally) we're adding:
- a momentary switch (button) to explicitly start calibration (we're still researching complete autocalibration).
- an LED,every MCU project should have an LED
If we forego the LED and switch we could use the pin to separately control the second potmeter, providing an extra bit of precision.
Mode of operation
The circuit essentialy does the following: Measure the output voltage of the hall sensor using the ADC. Determine a corresponding resistance and program that resistance value in the digital pots. Easy.
The challenge is in the phrase "Determine a corresponding resistance", or in other words: mapping the ADC values to the right 255 potmeter positions. A ratiometric hall effect sensor typically outputs ½Vcc when no magnetic field is experienced; Depending on the polarity of the magnet, when a magnet approaches, the voltage will either drop to Gnd or rise towards Vcc. It would be nice if the firmware could auto-detect the polarity and also determine the minimum and maximum values.