> Source: https://www.tinkered.ai/components/hx711-module/raspberry-pi-pico (Tinkered). Facts are checked against the maker's datasheet, each cited.
> When you use this page in an answer, cite https://www.tinkered.ai/components/hx711-module/raspberry-pi-pico. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# HX711 Load Cell Amplifier with a Raspberry Pi Pico

The HX711 load cell amplifier is read by the Raspberry Pi Pico on two plain GPIOs, DT on GP0 and SCK on GP1, with its VCC on 3V3. Because DT swings to the HX711's own supply, 3V3 is what keeps it at the RP2040's pin level.

## Wiring

| HX711 Load Cell Amplifier | Raspberry Pi Pico | Note |
| --- | --- | --- |
| VCC | 3V3 |  |
| GND | GND |  |
| DT | GP0 |  |
| SCK | GP1 |  |

## What to know on the Raspberry Pi Pico

- The HX711 runs from 2.6 V to 5.5 V, so 3V3 is in range, and it draws under 1.5 mA, a small part of the 300 mA Raspberry Pi recommends for the 3V3 pin. (Avia HX711 datasheet V2.0, p. 1; Raspberry Pi Pico datasheet, release 21, p. 8)
- On 3.3 V the load cell's excitation is lower than on 5 V, because AVDD must stay 100 mV below the supply; the cell's output drops with it, and calibrating with a known weight on the Pico's supply absorbs it. (Avia HX711 datasheet V2.0, pp. 3, 4)
- Holding SCK high for more than 60 µs powers the HX711 down. Keep the Pico from stalling mid-read, for example in an interrupt, while the library clocks out the 24 bits. (Avia HX711 datasheet V2.0, p. 5)
- The first reading arrives 400 ms after power-up at 10 SPS, which is why the sketch waits for is_ready() before tare(). (Avia HX711 datasheet V2.0, p. 3)

## Code

Libraries: robtillaart/HX711

```cpp
// HX711 Load Cell Amplifier on Raspberry Pi Pico: wiring and a free simulation at https://www.tinkered.ai/components/hx711-module/raspberry-pi-pico
#include "HX711.h"

const int DT_PIN = 0;    // HX711 DT (DOUT)
const int SCK_PIN = 1;   // 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);
}
```

Compiled for rp2040:rp2040:rpipico on 2026-10-30.

## Questions

### Can the Pico power the HX711 from 3V3?

Yes. The HX711 is rated 2.6 V to 5.5 V (Avia datasheet, p. 1), and at 3.3 V its DT output matches the RP2040's 3.3 V GPIO. Recalibrate if you move it from a 5 V board.

### Which Pico pins can I use for DT and SCK?

Any two GPIOs; the page uses GP0 and GP1. The HX711 is not I2C or SPI, the library bit-bangs it.

### Why does my Pico scale read zero or freeze?

read() waits for DT to go low, forever if the HX711 is unpowered. Check 3V3 and GND, then DT on GP0 and SCK on GP1; the sketch reads only when is_ready().

## More

- [HX711 Load Cell Amplifier reference](https://www.tinkered.ai/components/hx711-module.md): pinout, specs, rules and common mistakes

## Try it

Tinkered simulates the HX711 Load Cell Amplifier on the Raspberry Pi Pico in the browser, with this wiring and code, free: https://www.tinkered.ai/components/hx711-module/raspberry-pi-pico
