Measure very small resistances by building your own Milliohm-meter

The lowest resistance range on a typical three and a half digit DMM is 200 ohms with a resolution of 0.1 ohms. A much more expensive high end dedicated bench milliohm meter will support lower ranges and 4 wire measurements.

Why would you need a milliohm meter? To test and debug cables, connectors, PC board traces and other kinds of low resistance cases. To measure the series resistance of power inductors that can be a few tenths of an Ohm. For accurate measurements of components like switches and relay contacts you will need to resolve resistance values of 1 ohm or less with resolution in the milliohms. Contact resistance due to oxidation or corrosion build-up will require a substantial current to break through any film built up on the contacts.

The so called Kelvin Measurement technique

A “4-wire” or Kelvin measurement technique for low resistance is illustrated in figure 1. This technique eliminates the effects of test equipment lead and probe resistance. A current of known value from the current source is forced to flow through the test resistance. A voltmeter is used to measure (sense) the drop across the resistor INSIDE the forced current connections. The four wires connected to the resistance to be tested are noted as F+ and F – for the force connections and S+ and S- for the sense connections. Ohms law can then be used to calculate just the resistance seen between S+ and S-. Voltage drops in the current loop due to any resistance in the F+ and F- force test leads is not seen by the volt meter. Any resistance in the S+ and S- sense test leads is unimportant given the assumed very high input impedance of the voltmeter.

Figure 1 “4-wire” or Kelvin measurement technique

Because the voltage drop across the unidentified resistance is measured at the probe tips, the resistance of the test leads carrying the constant current is not included. The resistance under test can be found by dividing the voltage drop between the sense probes by the test current.

The test current for a typical DMM on the 200 ohm range is typically between 1 mA and 2 mA. For lower ohm ranges like 20 ohms or even 2 ohms the test current would need to increase to 20 mA and 200 mA. Specialty milliohm meters generally use test currents in the area of 100 mA to 200 mA and can sometimes be as high as 1A.

By combining a few components from the ADAPL2000 analog parts kit and the ADALM1000 you can build your own milliohm meter that can make 4 wire measurements of very small resistances.

The programmable current source(s) in the ADALM1000 can supply anything from -200 mA to +200 mA. This makes it ideal for use as the driving source for a milliohm meter. The 0 to 5 V input range of the ADALM1000 is also well suited as the sense volt meter. The 16 bit ADC has enough dynamic range to measure very small voltages but it is not a differential input which makes it unsuitable for 4 wire measurements. To fix that shortcoming we need to use a differential to single-ended converter circuit.

One of the parts included in the Kit is the AD8210 current shunt monitor IC. This circuit is most often used to measure an unknown current flowing through a known low value shunt resistor. The small differential voltage drop across the shunt is amplified by a fixed gain of 20 and referenced to a DC output reference level, often ground. The figure 1 block diagram from the AD8210 datasheet is shown here in figure 2.

Figure 2 AD8210 block diagram

The output voltage of the AD8210 is given by:


Rearranging for the measured current:


We can also flip this equation around to measure resistance:


The practical range of test currents from the source in the M1K is 5 mA to 150 mA (or slightly higher). The input Voltage measurement range of one of the ALM1000 inputs is 0 to 5 V. AD8210 has a voltage gain of 20. Assuming that the AD8210 is powered by the fixed +5V supply and the 5 volt input span of the ADALM1000, which translates to a maximum differential voltage at the inputs of the AD8210 of 5/20 or 250 mV. For a test current of 150 mA that gives a maximum resistance of 250 mV/150 mA or 1.667 ohms. If we assume 1 mV resolution for the ALM1000 0-5 V input range or 0.05 mV resolution at the test resistance gives an approximate resistance resolution of 0.3 mOhms at 150 mA. The largest resistance that can be practically measured is around 50 ohms using a test current of 5 mA.

To use the AD8210 with the ADALM1000 the following connections are made as shown in figure 3. Resistor R1 is inserted in series with the channel A current source because the driver is not stable driving loads much smaller than 10 ohms. The actual value of R1 does not matter and does not figure into the measurements.

Figure 3 ADALM1000 Connections

The AD8210 will likely have some small output offset. With channel A set to Hi-Z mode i.e. not sourcing any current, the average voltage seen on channel B (also in Hi-Z mode) will be the offset. This can be nulled out in the ALICE software by using the channel B offset entry. With the offset adjusted to zero we can now make measurements.

To make the measurement, the channel A source is set to SIMV mode and DC. The value for the desired test current, say +150 mA is entered in the channel A Max value.

The measured resistance can be calculated using the following formula entered as the channel A User measurement formula:


The value returned in the DCV2 variable is the channel B average voltage and the value returned in DCI1 is the average channel A current. The factor of 20 is the fixed gain of the AD8210 and the factor of 1000 converts mAmps to Amps.

Making the "4 Wire" connections

In the photo we see the ADALM100 connected to a small solder-less breadboard that contains the AD8210. Four mini-grabber clips are used to connect to the test resistor, in this case a 1 Ohm power resistor. The red and black grabbers are the F+ and F- wires respectively and the blue and green grabbers are the S+ and S- wires respectively. Note that the sense connections are right next to the body of the resistor and the force connections are at the ends of the leads.

Connection example

Figure 4 is a close-up screen shot of the ALICE desktop scope measurements display. The calculated resistance (Ohms) is 0.9989 Ohms for this particular 1 Ohm 5% resistor. The channel A test current display shows the 150 mA current and the channel B voltage (AD8210 output) is also displayed.

Figure 4 Screen close-up of measured value

Also shown in the photo are some other low value 1% resistors and the precision calibration resistors I have in my Lab. You might notice that two of the calibration resistors have four leads such that the Kelvin connection is made inside the package for the highest possible accuracy. Two of the precision resistors are 50 mOhm. Figure 5 is a close-up screen shot of the ALICE desktop scope measurements for one of the 50 mOhm resistors. The measured value is 49.5 mOhms.

Figure 5 Screen close-up of 50 mOhm measurement

Using things like the mini-grabbers is OK for the wire leads on some components but another option for making the Kelvin connections is to use special test probes and clips. These special purpose test leads can be rather expensive, often hundred dollars or more. Some look like normal test probes but with two pointy bits rather than a single probe point.

Kelvin test probes

For hobbyists, Adafruit offers these Kelvin spring clips for $2.50 each with no wires attached. Each side of the plastic clip is electrically insulated. These clips can also be ordered through Digikey.

Two wire Kelvin test clip

I have a few pairs of these SMD test lead tweezers that can also be used in some cases to make the force/sense Kelvin connection right at a component lead.

SMD test lead tweezers

Future work

Using the full blown ALICE desktop scope display is overkill for the milliohm meter. A first pass at a standalone tool much like the other DC tools offered in the ALICE software package has been written. It should be included in the next release of the ALICE tools. This standalone tool includes features to manually and auto zero the channel B offset voltage and channel A offset current.

Also since the current source in ALM1000 is bipolar it should be possible in a future version to alternate between both positive and negative test current and null out any offset that way.

Using a solder-less breadboard to connect to the AD8210 can be a little flaky with the offset shifting when the wires are wiggled. To try to minimize the variability, I've designed a small 1" by 1" plug in break-out board ( but have not yet built it ) to connect the AD8210 to the ADALM1000 and provide a place to connect the 4 force and sense wires / test probes.

Stay tuned to this blog space for more up-dates on these improvements in the future.

As always I welcome comments and suggestions from the user community out there on other fun ways to use the ADALM1000 and the ALICE software tools.



Additional resource links: