# To amplify the output of a linear Hall Effect device for the purpose of driving a voice coil

I am working on an invention that is 99% mechanical in nature. However, it requires a closed loop servo, consisting of a linear Hall Effect sensor, whose output is amplified to drive a voice coil. I have come up with the circuit shown below but can't quite figure out how to make it perform correctly. The output of the Hall Effect sensor varies from 0V to 2.5V and in response to that I would like to see R7 (which represents the voice coil) to conduct from 20mA to 100mA. Which resistor values do I have to change to accomplish that? https://www.circuitlab.com/circuit/42gc63byzs44/complete/

**Edit in response to Neil, UK:**The output of the Hall Effect sensor is controlled by a magnet attached to a mechanical slide. The voice coil acts as a mechanical forcer. The voice coil consists of a re-purposed actuator arm from a hard drive. Currently I am controlling the voice coil with a potentiometer and it requires 20mA to 100mA to work correctly.

• What does the circuit do now? Feb 28, 2017 at 6:30
• does the Hall measure the magnetic field of the voice coil, or does it measure the position of a magnet attached to the voice coil? If the latter, you've got a lot of stability work to do! Feb 28, 2017 at 6:44
• Hi analogsystemsrf Feb 28, 2017 at 23:22
• Hi analogsystemsrf, The circuit provides 23mA through R7 when the output of the Hall sensor is 0V and it provides 78mA through R7 when the output of the Hall sensor is 2.6V. I need a current of 100mA instead of the 78mA. I don't know what resistor values to change to accomplish that. Sincerely, Ralf Feb 28, 2017 at 23:30
• @Trackmann As you reduce the value of R9, you increase the current gain. I notice the value has changed to 35 from 43 oroginally, so it's headed in the right direction. Unfortunately you are building an oscillator, you will have to do some heavy duty lead compensation to get it stable. The current through a coil produces a force, which produces load acceleration, which integrates to load velocity, which integrates to load position, which gives you the feedback voltage. Two integrals guarrantees instability. Hope'n'poke rarely works, you will need to measure gains and do theory. Mar 2, 2017 at 9:53

For a straight forward circuit to convert your 0V to 2.5V sensor voltage to a 20mA to 100mA drive current for the voice coil you would want to use a circuit more like the following:

This servos the voice coil current against the hall sensor output voltage. The 1K and 100pF capacitor provide some feedback frequency compensation to make the circuit more stable. You would likely need to adjust these values based upon the actual op-amp part number that you use and the final physical circuit layout properties.

Note that for a 100mA output current you may actually want to select an NPN transistor or N-Channel MOSFET that has a metal tab package better equipped to dissipate a bit more power than your typical TO-92 package of a 2N3904.

Performance of the circuit was evaluated using the free LTSpice circuit simulator. The picture below shows the input voltage ramping from 0v to 2.5V and the corresponding current through the R7 load resistor. The op-amp used is a rail to rail type for both its input common mode range and its output swing range. The circuit will not work with an op-amp that does not support an input range down near GND or an output capable of swinging within about a volt of its negative (GND) rail.

• Hi Michael Karas, Thank you for that circuit. I will build it this afternoon and report back. Sincerely, Ralf Feb 28, 2017 at 23:35
• Hi Michael, I built the circuit but couldn't get it to work. The current through R7 was a fixed 75mA no matter how I moved the magnet in relationship to the Hall Sensor. The Hall sensor is an analog type while your drawing seems to indicate that it produces pulses. could that be the problem? Mar 1, 2017 at 7:08
• The circuit diagram shows V2 as a voltage source just like your Hall sensor. For my simulation I had the voltage of V2 start out at 0V and then ramp slowly over a period of 3msec up to 2.5V. Using that technique I could then check the circuit design over the range of operating points that you wanted. I will post simulation waveforms to the answer. Note that the op-amp that I used is one that supports rail to rail capability for both it's inputs and outputs. Maybe your issue is that you are using a lesser capable op-amp or the circuit was not built correctly. Mar 1, 2017 at 10:26
• Thank you Michael. I will check my build quality and in the meantime I ordered two samples of the op-amp you used from Linear Technologies. I'll report back when I get the samples. Ralf Mar 3, 2017 at 6:20
• Hi Michael Karas, I just received two samples of the same op-amp you used. The circuit functions exactly as you said it would. I found a surface mount 2n3904 transistor with a large heat sink tab on the internet. It is called PZT3904. May I use it to overcome your concern of overheating? Your circuit helped me to realize a 33 year old dream to design the world's best tangentially tracking tonearm. It works! Sincerely, Ralf Mar 20, 2017 at 6:34