Topology Description and Node Mapping
When integrating circuit resistors for current measurement, you are essentially building a shunt network. The low-side topology places the sense resistor between the load's return path and the system ground. This is fundamentally a series insertion, but the sensing mechanism requires a parallel (differential) tap.
Here is the exact node mapping for a standard low-side configuration:
- Node A (V_LOAD_RETURN): The ground pin of your load (e.g., a DC motor or LED strip). This connects directly to one pad of the shunt resistor.
- Node B (V_SENSE_HI): The high-side pad of the shunt resistor. This node carries the load current and develops the positive differential sense voltage. It connects to the non-inverting input (IN+) of your sense amplifier.
- Node C (V_SENSE_LO / GND_SYS): The low-side pad of the shunt resistor, tied directly to the microcontroller's system ground. This connects to the inverting input (IN-) of the sense amplifier.
- Node D (V_OUT): The amplifier output, feeding the microcontroller's ADC (e.g., ESP32 GPIO 34).
Why Low-Side Over High-Side?
High-side topologies place the resistor between the power supply and the load. While this keeps the load's ground reference pristine (zero ground bounce), it forces the sensing circuitry to measure a tiny differential voltage (e.g., 50mV) that is sitting on top of a massive common-mode voltage (e.g., 12V or 24V). Standard op-amps and microcontroller ADCs cannot handle this; they will either saturate, read garbage, or physically burn out. High-side sensing requires specialized, more expensive ICs with high Common-Mode Rejection Ratio (CMRR). Low-side sensing keeps the common-mode voltage near 0V, allowing the use of cheaper, single-supply rail-to-rail amplifiers and directly referencing the MCU's ground plane.
Behavior Matrix and Extreme Failure Modes
Understanding how the circuit behaves when parameters shift—or when components fail catastrophically—is critical for designing safe power systems. Below is the behavior matrix for the low-side shunt topology.
| Element Changed / Fault | Effect on Load | Effect on Sense Voltage | System Consequence |
|---|---|---|---|
| Shunt Resistance Drifts (+10%) | Negligible (slight voltage drop) | Increases proportionally | MCU over-reports current; thermal management triggers prematurely. |
| Load Current Doubles | N/A (Depends on load type) | Doubles (V = I × R) | Amplifier may saturate if V_OUT exceeds ADC VREF (3.3V). |
| Load Shorts to GND | Bypasses shunt entirely | Drops to 0V | MCU reads 0A while massive short-circuit current flows through the short path, risking fire if upstream fuse doesn't blow. |
What Breaks at the Extremes: Open vs. Shorted Shunt
You must design for the physical failure of the circuit resistors themselves. Shunt resistors typically fail due to thermal overstress or mechanical cracking.
- The Open Shunt (Cracked Element / Lifted Pad): The load loses its ground return and powers down. Node B (V_SENSE_HI) is now floating. The op-amp's high-impedance input will pick up electromagnetic noise, causing the ADC to read erratic, floating values. Design Fix: Add a 1MΩ pull-down resistor from Node B to GND_SYS so an open shunt forces the ADC to read a hard 0V, triggering a distinct "Sensor Fault" error in your firmware rather than random noise.
- The Shorted Shunt (Solder Bridge / Metallic Debris): A short across the shunt pads drops the shunt resistance to near 0Ω. The load receives full supply voltage and operates normally, but the sense voltage drops to 0V. The MCU believes the load is drawing zero current. Danger: If this topology is used in a battery charging circuit or a constant-current LED driver, the controller will ramp up the supply voltage trying to reach the target current, potentially causing a severe overvoltage or thermal event.
Design Walkthrough: Sizing a 5A Low-Side Shunt
Let's size the circuit resistors for a real-world scenario: monitoring a 12V DC motor that draws up to 5A continuous, interfaced with an ESP32 (3.3V ADC).
1. Determine Maximum Allowable Voltage Drop
In a low-side topology, the voltage drop across the shunt lifts the load's ground reference above the MCU's ground. This is called "ground bounce." If the drop is too high, it can corrupt I2C/SPI communication or reset sensitive sensors on the load side. A safe rule of thumb is to keep the maximum drop under 50mV.
2. Calculate Target Resistance
Using Ohm's Law (R = V / I):
R = 0.050V / 5A = 0.010Ω (10 milliohms).
3. Calculate Power Dissipation and Derating
Using the power formula (P = I² × R):
P = (5A)² × 0.010Ω = 25 × 0.010 = 0.25 Watts.
Engineering best practice (and NEC-style thermal guidance for PCB traces) dictates a minimum 50% power derating for resistors to prevent thermal drift and PCB scorching. Therefore, we need a resistor rated for at least 0.5W. We will select a 1W package for thermal mass and safety margin.
4. Select the Concrete Component
We need a 10mΩ, 1W, surface-mount resistor with a low temperature coefficient (TCR) to prevent resistance drift as it heats up. The Vishay Dale WSL2512R0100FEA is the benchmark choice here. It is a 2512-package metal-strip resistor with 1% tolerance and a TCR of ±75 ppm/°C. At 5A, it will dissipate 0.25W, keeping its temperature rise manageable and its resistance stable.
5. Amplifier Gain Staging
Our max sense voltage is 50mV. The ESP32 ADC has a 3.3V full-scale range. To maximize ADC resolution, we want the 50mV signal amplified to near 3.3V.
Gain = 3.3V / 0.050V = 66 V/V.
The TI INA180A1 has a fixed gain of 20 V/V. 50mV × 20 = 1.0V output at 5A. While this doesn't use the full 3.3V range, it provides excellent headroom for startup surge currents (which can hit 15A briefly) without clipping the amplifier output.
Step-by-Step Breadboard Verification
Warning: Standard solderless breadboards introduce 50mΩ to 100mΩ of parasitic contact resistance per junction. If you plug a 10mΩ shunt resistor into a breadboard, your total resistance becomes ~110mΩ, completely destroying your calibration and potentially overheating the breadboard contacts at 5A. You must use a soldered perfboard or custom PCB for the high-current path.
- Solder the Shunt with Symmetrical Joints: Solder the WSL2512 to a copper-clad perfboard. Ensure both solder joints use the exact same volume of solder. Dissimilar metals at different temperatures create a thermocouple (Seebeck effect), which can introduce microvolt-level DC offsets that your high-gain amplifier will mistake for current.
- Implement Kelvin (4-Wire) Sensing: Do not route your sense amplifier input wires along the same high-current load path. Solder two thin, separate sense wires (24 AWG is fine) directly to the inner edges of the shunt resistor pads. Route these sense wires directly to the INA180 input pins.
- Inject a Known Calibration Current: Connect a bench power supply in series with a high-wattage dummy load (e.g., a 10Ω, 50W power resistor). Set the supply to 5V to push exactly 0.5A through the circuit.
- Measure the Differential Voltage: Using a 4.5-digit or better multimeter, probe the Kelvin sense wires. You should read exactly 5.0mV (0.5A × 0.010Ω). If you read significantly higher (e.g., 15mV), your solder joints are acting as unintended series resistors.
- Verify Amplifier Output: Probe the INA180 output pin. With a 5.0mV input and 20 V/V gain, your multimeter should read 100mV (0.1V). Feed this to your ESP32 ADC and verify the raw analogRead() value maps correctly to 0.5A in your firmware.
Decision Tree and Final Recommendation
Use this decision matrix to finalize your topology choice based on your specific project constraints. For a deeper look at the physics of shunt selection in switching environments, refer to this Analog Devices application note on current sensing.
| Application Constraint | If True... | Recommended Topology & Part |
|---|---|---|
| Load is a battery being charged | Ground bounce will corrupt charge IC feedback loops. | High-Side: Use a dedicated high-side IC like the TI INA226 or BQ series charger IC. |
| Supply voltage is > 24V DC | Low-side ground bounce becomes a safety/isolation hazard. | High-Side: Use an isolated Hall-effect sensor (e.g., Allegro ACS712) instead of a shunt. |
| Measuring micro-amps (sleep current) | 10mΩ drop is too small to resolve; need higher R. | High-Side: Use a switchable dual-shunt network with a high-side pico-amp meter. |
| General DC load monitoring (Motors, LEDs, Heaters) < 32V | Cost, simplicity, and MCU compatibility are priorities. | Low-Side: Vishay WSL2512 10mΩ + TI INA180A1. |






