Electrical Resistivity Tomograph (ERT)
An Arduino-based instrument that images subsurface soil by injecting current into the ground and measuring millivolt potentials. Validated on 1D, expanding to 2D.

Problem
Commercial resistivity rigs start around $20,000, and most of that cost is measurement electronics rather than anything conceptually hard. The physics is Ohm’s law applied to a target you cannot touch: push a known current into the ground through two electrodes, measure the potential across two others.
The difficulty is entirely in the measurement. The signal is tens of millivolts riding on a common-mode voltage volts higher, the earth’s own natural potentials swamp any DC reading, and contact resistance where steel meets soil is large, variable, and unknowable.
How it was solved
Bipolar injection. An L298N H-bridge alternates polarity as a low-frequency square wave. Each half-cycle is measured separately and differenced: steady offsets appear in both and cancel exactly, while the real signal flips sign and doubles.
Differential sensing. An AD620 instrumentation amplifier rejects the common-mode voltage, presents an input impedance high enough not to disturb what it measures, and lifts millivolts into ADC range. Common-mode leakage measured about 20 µV referred to input.
Measured current, not assumed. A 1 kΩ shunt read on an ADS1115 turned out to be load-bearing: the H-bridge’s drop is current-dependent, so the supply voltage never tells you what reaches the ground.
Four electrodes and stacking. The potential pair draws no current, so electrode contact resistance never enters the answer. Twenty cycles averaged per reading cut random noise by roughly √N.
Results
Bench validation against a known 100 Ω resistor reads 98.6 Ω, 1.4% error, with nothing in the chain assumed: gain, chain resistance, and injection voltage all measured directly rather than taken from labels.
First field measurement, four electrodes at 0.5 m Wenner spacing in Georgia soil: 71 Ω·m, successive readings agreeing within 1.5%, squarely in range for moist clay-rich soil.
Known limits, measured rather than assumed: steel potential electrodes polarize over several minutes, capping survey length before drift becomes a false gradient. And four electrodes give one number, not an image; a 2D section needs many more, multiplexed switching, and an inversion.
Four ADS1115s died during development, all to the same cause: resistor-chain nodes above the ADC’s absolute maximum input. Series protection resistors on every line crossing from injection into logic fixed it permanently.