I have an analog hall effect sensor, and the difference I am trying to sense in mT is quite low. The voltage output goes from 1.0V (no magnet) to 1.1V (magnet) on the hall effect sensor. This was the most sensitive hall effect I could find.

I want to amplify this signal such that 1.0V = 0V and 1.1V is 5V. Is there a common Op-Amp configuration that works well for something like this? I know using a non-inverting amplifier I can change the gain to 50, but this just gives me 1.1x50 = 55V. It seems to me I need to subtract 1v from the output first, then amplify this. Am I on the right track?

EDIT: Thanks for the suggestions below. I have tried to build the circuit using an LM324 op-amp, and a voltage divider to create the 1v offset. Long story short I am not skilled enough to figure out why it is not working. I am able to sense a strong magnet quite reliably, but not the very small magnetic field I had hoped to sense. Some of the comments below mentioned that there may be a chip that is already suited to this application. I have looked on digikey but am overwhelmed by the qty of options and specs. Can anyone provide a suggestion? Thanks so much!

  • 1
    \$\begingroup\$ A differential amplifier is what you seek \$\endgroup\$
    – Wheatley
    Commented Dec 3, 2019 at 14:20
  • \$\begingroup\$ Thank you, that's it! differential amplifier feeding into a non inverting amplifier. \$\endgroup\$
    – MattG
    Commented Dec 3, 2019 at 14:54
  • 1
    \$\begingroup\$ @Wheatley if your comment helped the OP, turn it into an answer, with a bit more information \$\endgroup\$
    – MCG
    Commented Dec 3, 2019 at 15:47
  • 1
    \$\begingroup\$ I would recommend trying to find an instrumentation amplifier with a suitable common-mode output range combined with a 1V precision reference. You may even be able to find one with a fixed gain of 50. \$\endgroup\$ Commented Dec 6, 2019 at 0:57
  • \$\begingroup\$ Some current-sense amplifiers may also be suitable. \$\endgroup\$ Commented Dec 6, 2019 at 0:58

1 Answer 1


It's no surprise an LM324 didn't work. Even if you found a way to configure it as a reliable differential or instrumentation amplifier, it's nowhere near accurate enough. What follows are some solutions that should work.

Solution 1: Differential or Instrumentation Amplifier

An instrumentation amplifier can easily obtain high gains with a surprising level of accuracy. You will need an accurate 1V reference in order for this solution to be viable. Unfortunately, 1V precision references are pretty rare (the ADR510 is the only one I could find readily available), though 1.024V references are more common. This could work, but you will end up with a small offset voltage at your output.

The main constraint of instrumentation amplifiers is the common-mode range. You will never be able to get an output of exactly 0-5V (i.e. gain of 25). However, you can get close: a gain of 20 will give you an output range of 0.5-4.5V. If you want to get even closer, a gain of 22.5 would also work. If you really want to go to the extremes of your power supply, take a look at indirect current feedback instrumentation amplifiers, such as the MAX4460 or AD8237.

Analog Devices has this calculator, which I found really helpful.

In addition to the common-mode range issues discussed above, I wouldn't recommend this solution in your case for several other reasons:

  • It will probably be somewhat expensive. Instrumentation amplifiers are precision devices, and they are priced accordingly. You will also need two precision voltage references: 1V for the input and a 2.5V for the output.
  • The 1V nominal output of the hall effect sensor may change based on position/orientation due to the Earth's magnetic field or other external factors.
  • Since the DRV5053 has an output amplifier already, the high input impedance provided by an instrumentation amplifier is not necessary.

Solution 2: External ADC

An alternate and most likely better solution in your case would be to use an external ADC. Something from the ADS101x (12-bit, 3.3kSPS) or ADS111x (16-bit, 860SPS) family would be ideal. These are Sigma-Delta ADCs optimized for low-frequency precision measurements; they even differential inputs and an integrated PGA (Programmable Gain Amplifier).

While it may be possible to do a configuration similar to Solution 1, I would recommend taking a different approach: ground one of the differential inputs, and change the reference voltage of the ADC. This is easy with the ADCs suggested above, since they have internal references that can be selected using an I2C register. I would suggest using the ±2.048V FSR (Full-Scale Range) setting. Just note that you will effectively be dropping a bit, since it will be operating in single-ended mode. That still gives you a 1mV or 62.5μV resolution over the full 0-2V output range of the sensor.

Since it appears you are prototyping, I'll leave you with one last note: Adafruit has breakouts (and a library) for both the ADS1015 and ADS1115.

  • \$\begingroup\$ thank you very much for the very thorough and detailed answer! I think this is it, and I actually have an ADS1015 on hand. I hope I'm not asking too much here, but how do you switch the chip into FSR? I did some google searches and all I could really find was the ADS1015 datasheet, which for me is a little over my head. Is this something that is done in the arduino sketch, similar to changing the gain? Thanks again for the help here! \$\endgroup\$
    – MattG
    Commented Dec 10, 2019 at 14:49
  • \$\begingroup\$ @MattG No problem. Are you using the Adafruit library or manually configuring the registers? \$\endgroup\$ Commented Dec 10, 2019 at 15:16
  • \$\begingroup\$ @MattG And yes, it is similar to changing the gain. \$\endgroup\$ Commented Dec 10, 2019 at 15:19
  • \$\begingroup\$ @MattG It is actually the same as setting the gain (see the PGA[2:0] bits on page 24 of the datasheet). It looks like you don't need to do anything, since ±2.048V is the default. \$\endgroup\$ Commented Dec 10, 2019 at 16:15
  • \$\begingroup\$ Ok when I get home later I will try it out. So if I understand correctly: If it is set in differential mode, I will connect the hall effect to A0 and ground A1, The output will the difference between 2.048V and whatever the hall effect is outputting? \$\endgroup\$
    – MattG
    Commented Dec 10, 2019 at 18:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.