Summary of DIY milliohmmeter
This article describes a DIY milliohmmeter using an LT3092 current source and INA225 current sense. It measures resistance by applying constant current and reading voltage output. The circuit supports standalone operation with an MCU or connection to a DMM, offering high accuracy and stability via an LT1461 voltage reference.
Parts used in the DIY milliohmmeter:
- LT3092 (Current Source)
- INA225 (Current Sense)
- MCU with 10-bit ADC
- LCD Display
- Digital Multimeter (DMM)
- LT1461 (Voltage Reference)
- Connecting Cables
Why a two-wire meter cannot see a milliohm
A two-wire ohmeter pushes current through a pair of leads and reads the voltage across that same pair, so it measures the device plus the copper, crimps, clip jaws and oxide in the path. Across 10 kΩ that is irrelevant. Across 10 mΩ it is the entire reading.
24 AWG copper is about 0.084 Ω/m, so one metre out and back is 0.17 Ω before any contact resistance. In series with a 10 mΩ shunt, a two-wire meter reads about 180 mΩ. Zeroing subtracts the lead resistance present at that instant, not the part that changes when a clip moves or a joint warms: copper drifts 0.39 %/°C, so a 10 °C rise moves the error by 4 %.
Four-wire Kelvin sensing, and where the contacts go
Two force leads carry the current; two sense leads tap the voltage at the terminals and feed a high-impedance input that draws nanoamps, so the drop along them is negligible at any length. Force-lead resistance still exists, but it sits outside the sensed region.
FORCE+ ---[ lead ]---+-----[ R_DUT ]-----+---[ lead ]--- FORCE-
| |
SENSE+ SENSE-
| |
+--[ amplifier ]----+--- ADC
draws no DC current
Geometry matters more than the schematic: each sense contact must land inside its force contact, on the terminal rather than on the clip body. What survives is the current source, the amplifier and the converter.
A current of known value
R = V/I, so 1 % in I is 1 % in R. Either specify the source or measure what it delivers.
The LT3092 sets 0.5–200 mA from two resistors off a 10 µA SET pin current with 1 % initial accuracy, regulating better than 10 ppm/V from 1.5 V to 40 V. That 1 % is already the instrument’s ceiling.
Better: put a 1 Ω, 0.1 % resistor in the force path and read it with the same converter. At 100 mA that is 100 mV, and R_DUT = (code_DUT / code_SENSE) × 1 Ω. Both codes come from one reference, so reference drift and gain error cancel to first order.
Compliance must cover I × (2 R_lead + R_DUT): 100 mA into half an ohm is 50 mV, so 5 V is ample, provided the source is regulating rather than saturated.
Lifting 100 µV into a converter’s range
The ATmega32 has a 10-bit converter and a 2.56 V internal reference: 2.56/1024 = 2.5 mV per code, so one millivolt is less than half a code. Differential channels offer 1×, 10× and 200× gain, but only two channels and only in TQFP; at 200× the full scale is 12.8 mV and one code is 12.5 µV, so 1 mV becomes 80 codes. That is resolution, not accuracy — the bandgap behind that reference is specified 1.15–1.35 V.
An external zero-drift amplifier into a 16-bit converter is the usual fix. At gain 250, 1 mV becomes 250 mV; the ADS1115 on ±0.512 V has a step of 1.024/65536 = 15.6 µV, so the input-referred resolution is 62.5 nV, about 16,000 counts across 1 mV.
Gain costs range: at 250 the output clips at 2 mV of input, so gain must follow the current range. Resolution is not accuracy either — the same converter specifies ±1 typical, ±3 maximum LSB of offset at ±2.048 V, which is 187 µV, larger than the 100 µV the 10 mA range produces. A zero-drift amplifier with under 10 µV of offset is still a 1 % term on 1 mV.
Thermoelectric EMF and offset drift
Every dissimilar-metal junction is a thermocouple. Keithley’s handbook gives copper-to-copper at ≤0.2 µV/°C, copper-to-solder at 1–3 µV/°C, and copper-to-copper-oxide at roughly 1000 µV/°C. An oxidised terminal one degree warmer than its partner injects about 1 mV — exactly the size of a 10 mΩ shunt at 100 mA.
Reverse the current and take both readings: V_fwd = IR + V_emf and V_rev = −IR + V_emf, so R = (V_fwd − V_rev) / (2I). The EMF cancels and the signal doubles, a 6 dB gain in signal-to-noise.
Both assume the offset is constant between phases, which holds only if the junctions are isothermal and the phases are close in time; the handbook notes that nanovolt repeatability needs junction temperature held to about 0.001 °C when they are far apart. Keep them milliseconds apart and twist the sense pair.
Calibrating against a known shunt
A four-terminal shunt is a resistor with its Kelvin connection built in, and its certificate is what makes the instrument traceable: four-wire connection, stated temperature, stated uncertainty.
Take readings at 10, 50 and 100 mA against it and fit indicated against true resistance: slope is gain error, intercept is residual offset. A copper bar supplies the zero point and should read the same with current on and off. Store the coefficients in EEPROM — 1 kB on the ATmega32, rated 100,000 write cycles. One-point calibration hides offset inside gain; three points expose a source that is not regulating.
Everything above is a datasheet figure or arithmetic on one; nothing was built or measured for this article. A builder must establish the current their source delivers, the offset of their amplifier at its running temperature, the uncertainty on their shunt certificate, and whether probe contact repeats to better than the resolution they quote. Four-wire sensing removes lead resistance; it does not remove drift, self-heating or a badly seated probe.
References
- Texas Instruments, ADS111x 16-bit ADC with internal reference and PGA, datasheet SBAS444 (Rev. E).
- Microchip (Atmel), ATmega32/L Datasheet, doc2503.
- Keithley Instruments, Low Level Measurements Handbook, Chapter 3.
- Analog Devices, LT3092 200 mA two-terminal current source, datasheet Rev. D.
- What is the core of the milliohmmeter circuit?
The core consists of a current source (LT3092) and a current sense (INA225). - Can this device be used as a stand-alone instrument?
Yes, it can be used standalone by adding an MCU with at least a 10-bit ADC and an LCD display. - How can the current out from the LT3092 be set?
It can be set between 0.5 mA and 200 mA with 1% accuracy. - What gain options are available for the INA225?
The gain can be set to 25, 50, 100, or 200 with 0.3% accuracy. - Why was a voltage reference added to the circuit?
An LT1461 was added to provide a precise and stable voltage for powering the components. - Does the code compensate for cable resistance?
Yes, the variable RO represents the resistance of connecting cables used for compensation. - What resolution does the provided code offer for resistance measurement?
The code outputs resistance in Ohms with 3 decimals, providing 1mΩ resolution.
