HX711 Load Cell Amplifier with an ESP32 DevKit V1
A 24-bit ADC with a gain-128 amplifier, built to read load cells and turn a strain gauge bridge into a digital scale.

The HX711 board takes the ESP32 DevKit V1's 3V3, inside its 2.6 V to 5.5 V range, so its DT output swings to 3.3 V and goes straight into GPIO13, with SCK on GPIO14. Both pins stay clear of the ESP32's strapping pins and of GPIO6 to GPIO11, which belong to the module's flash.
Wiring the HX711 Load Cell Amplifier to the ESP32 DevKit V1
Pin by pin.
| HX711 Load Cell Amplifier | ESP32 DevKit V1 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DT | GPIO13 (D13) |
| SCK | GPIO14 (D14) |
What to know on the ESP32 DevKit V1
- SCK held high for more than 60 µs powers the HX711 down. Keep the clock pulses short and avoid long interrupt routines during a read on the ESP32, or a reading can come back corrupted.Avia HX711 datasheet V2.0, p. 5
- On a 3.3 V supply the bridge excitation (AVDD) must stay at least 100 mV below the supply, so the load cell sees less voltage than on a 5 V board and gives less signal per gram. Calibrate the scale factor on the ESP32 itself; a factor from a 5 V Uno setup will not match.Avia HX711 datasheet V2.0, pp. 3, 4
- GPIO6 to GPIO11 drive the WROOM-32's flash and GPIO0, 2, 5, 12 and 15 are sampled at reset. GPIO13 and GPIO14 avoid both groups.Espressif ESP32-WROOM-32 Datasheet v3.8, p. 10; Espressif ESP32 Series Datasheet v5.3, p. 22
HX711 Load Cell Amplifier code for the ESP32 DevKit V1
Compiled for esp32:esp32:esp32 on 2026-10-30.
// HX711 Load Cell Amplifier on ESP32 DevKit V1: wiring and a free simulation at https://www.tinkered.ai/components/hx711-module/esp32
#include "HX711.h"
const int DT_PIN = 13; // HX711 DT (DOUT)
const int SCK_PIN = 14; // HX711 SCK
// counts per gram: about 430 for a 5 kg bar (2150 at 1 kg, 215 at 10 kg); calibrate with a known weight
const float CALIBRATION = 430.0;
HX711 scale;
void setup() {
Serial.begin(9600);
scale.begin(DT_PIN, SCK_PIN);
Serial.println("HX711 scale");
while (!scale.is_ready()) delay(10); // its first reading comes 0.4 s after power-up
scale.set_scale(CALIBRATION);
scale.tare(10); // the empty scale's zero, averaged
Serial.println("Tared: put a weight on it");
}
void loop() {
if (scale.is_ready()) {
float grams = scale.get_units(5); // the average of 5 readings, tared and scaled
Serial.print("Weight: ");
Serial.print(grams, 1);
Serial.println(" g");
}
delay(500);
}
HX711 Load Cell Amplifier on the ESP32 DevKit V1: questions
Can I power the HX711 from the ESP32's 3V3 pin?
Yes. It runs from 2.6 V to 5.5 V and draws under 1.5 mA (Avia datasheet, p. 1). On 3V3, DT's high is 3.3 V, safe for the ESP32.
Why do my HX711 readings jump on the ESP32?
Average several readings with get_units(5) or more, read only when is_ready() is true, and keep SCK pulses short: SCK high past 60 µs powers the chip down (Avia datasheet, p. 5).
Keep going
This guide as plain Markdown. /components/hx711-module/esp32.md