Why a load cell reading drifts with an HX711
A bench scale built on a load cell and an HX711 reads fine for a minute. Then the zero creeps, the same weight gives a different number after lunch, or the value jumps when someone walks past. Averaging more samples does not fix it. The same thread appears on forums every month, and the answers are usually “buy a better ADC” or “add a capacitor.” Neither is the first thing to check.
Most drift in a weighing product comes from five places: the bridge wiring, the excitation and reference, the converter’s data rate and filtering, the mechanics and temperature of the cell itself, and a missing calibration step. This note goes through them in the order we would check them.
Know what the signal actually is
A load cell is a resistor bridge. Its output is a few millivolts at full load, and it scales with the excitation voltage. Analog Devices describes the arithmetic in its CN0608 weigh-scale reference design: the output is small enough that the converter needs a programmable gain amplifier ahead of a 24-bit delta-sigma stage, and sensor offset and sensitivity variation mean the codes only become grams after a zero-scale and full-scale calibration.
That sets the scale of the problem. At these signal levels, a microvolt of error is a visible fraction of a count. A loose terminal, a thermal gradient across a solder joint, or a supply that moves slightly all show up as “weight.”
The HX711 is a 24-bit converter built for this job. Per its datasheet, it has an on-chip regulator that can supply the sensor, a selectable output rate of about 10 or 80 samples per second, and a channel A with gain of 128 or 64. Channel B has a fixed gain of 32 and is not meant for a bridge. It is a reasonable part, and it is cheap in time as well as money to get running. Its limits matter once you want a stable result rather than a working demo.
Check the wiring first
Half of the “drifting HX711” reports we have seen trace back to wiring and are solved without changing the converter.
- Wire count. Four-wire cells have excitation (E+, E−) and signal (S+, S−) pairs. Some cells add two sense wires, making six. A six-wire connection senses the excitation voltage at the bridge itself, which compensates for lead resistance, as the CN0600 circuit note describes. On a short cable the difference is small. On a long cable, or when the cable is warmed by sun or a motor, lead resistance changes and the bridge sees a different excitation.
- Combining cells. Platform scales often use four cells in a bridge, sometimes through a combiner board. A combiner meant for three-wire half-bridge cells will give odd results with four-wire cells. Check each cell alone before combining them. If one cell is bad, a combined bridge hides it.
- Connections. Measure E+ to E− with a multimeter, then log it while the reading drifts. If the excitation moves with the reading, the problem is the supply or a connection, not the sensor. A reading that creeps while excitation holds steady points at the cell, the mechanics or temperature.
- Cable and shielding. Keep the signal pair twisted and away from switching regulators, motors and relay coils. Millivolt signals pick up whatever is nearby.
Keep the reference ratiometric
The key idea in bridge measurement is that the signal and the reference move together. Analog Devices’ CN0601 note recommends a ratiometric design for weigh scales: the voltage that excites the bridge also serves as the converter’s reference. When the excitation drifts, the bridge output drifts by the same fraction, and the conversion result stays put.
This is why a clean, stable excitation matters less than a shared one. It is also why a design that powers the bridge from one rail and references the converter from another can drift with every supply wobble, even if both rails look fine on a meter.
Two practical consequences:
- Read how your converter derives its reference and how the bridge is excited, then confirm both come from the same node on your board. The HX711 can power the sensor from its own regulator; the datasheet shows the application circuit. If you substitute a different supply for the bridge, you have changed the ratiometric relationship and should re-check it.
- Dedicated bridge converters such as the TI ADS1232 are built around this. TI lists an external reference input supporting ratiometric measurements, 50 Hz and 60 Hz rejection, an on-demand offset calibration, and an internal temperature sensor. That last item is useful, because it lets firmware see the temperature that is probably causing the drift.
Data rate, filtering and what averaging cannot fix
Noise and drift are different problems, and they respond to different cures.
- Noise is fast and random. Averaging, a slower data rate and a decimating filter reduce it. The HX711’s 10 sample-per-second setting is less noisy than 80, and a median filter ahead of a moving average handles occasional spikes better than a plain mean. Mains pickup shows up as a periodic wobble in the readings; a data rate and filter that reject 50 and 60 Hz help, and the ADS1232 specifies that rejection.
- Drift is slow and systematic. No amount of averaging removes it, because the average moves with it. If 100-sample averages still wander, you are looking at drift, and you need to find its source rather than filter it.
One trap in firmware: do not tare once at power-up and trust it for hours. Power-up is when the cell, the electronics and the enclosure are all changing temperature. A common approach is a short warm-up, then a tare, then a slow zero-tracking routine that only adjusts when the reading is steady and near zero. That is firmware logic, and it needs to be designed with the product’s intended use in mind, since a scale that tracks zero will also quietly absorb a slowly added load.
Also check the interface handling. The HX711 uses a clock-and-data protocol where the number of clock pulses after a conversion selects the gain for the next one, and a wrong pulse count causes a protocol error. Reading from an interrupt-heavy system with timing gaps in the clock can corrupt readings. Holding the clock line high long enough puts the chip into power-down, so a clock that stalls mid-read can do the same.
Temperature, mechanics and calibration
If the wiring, reference and filtering are right and the reading still wanders, look at the cell.
- Thermal gradients. A cell warmed on one side, or an amplifier running warm next to the bridge, creates drift that tracks the room. Keep heat sources away from the cell and the front-end input traces.
- Mechanical creep. Cells and their mounts relax under a constant load. Readings settle slowly after loading, and the same cell will read slightly differently depending on how the load was applied. A test with resistors in place of the cell separates electrical drift from mechanical drift: if the resistor bridge is steady, the converter and wiring are good.
- Overload and mounting. A cell used near its limits, or mounted so that it takes side loads, will be nonlinear and hysteretic. Size the cell with margin over the maximum load and mount it as its drawing specifies.
- Calibration. A converter reports codes, not grams. You need at least a zero point and a known weight, stored with the unit. For a product that ships, calibration is a production step, with the known weight, the stored constants and a pass or fail check built into the test fixture software. If temperature matters to your accuracy, log the code at a few temperatures and decide whether firmware compensation is worth the effort.
What we would do with your board
We start with a resistor-in-place-of-the-cell test to split electrical drift from mechanical drift, then review the wiring, the excitation and reference arrangement, and the filter and tare logic in firmware. If the converter is the limit, we can move you to a bridge-specific part and rework the layout around it. Send us the schematic, a photo of the cell and its wiring, and a log of the raw readings against time and temperature.
Sources: HX711 datasheet · TI ADS1232 · Analog Devices CN0601 · CN0608
Your scale reads differently from hour to hour and you cannot tell if it is the wiring, the converter or the cell; we would review the front end and build the calibration routine.
Tools for this topic
- PCB trace impedance Trace width for a target impedance, or the impedance of a width: microstrip and stripline, single or differential pair, with 4-layer stack-up presets.
- Voltage divider Vout from Vin and two resistors, or the best standard pairs for a target Vout — with tolerance range and load effect.
- Regulator feedback resistors Feedback pairs for any Vref, for feedback-pin parts and three-terminal adjustables, with the bias-current term, worst-case range and divider-current guidance.
Related notes
- Logging to an SD card without corrupting it on power loss How to log to an SD card without corrupting it when power drops: when to sync FAT, where littlefs fits, and the hold-up hardware that matters.
- Why a current monitor reads wrong at 1 mA Why an INA226-class shunt monitor misreads small currents, how to size the shunt, and when to switch ranges or measure sleep current another way.
- Debugger can't connect to a new board over SWD A short checklist for 'no target found' on a custom ARM board: power, wiring, reset, sleeping firmware and locked chips, plus what to put on the PCB.