Skip to the content
PCBKitNew board
2 layers76 × 90 mmEsp32, the printed circuit board in 3D

ESP32 firmware that reads an array of HX711 load-cell amplifiers and streams per-bin weights to the host PC over USB serial.

Size
76 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
36
Pads
84
Tracks, vias
145, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Mar 2026
Updated
10 Sep 2026

Overview

Esp32 is an open-source printed circuit board by heeelol, from the heeelol/AEGIS repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 76 × 90 mm with 14 parts on 36 nets, routed with 145 tracks and 0 vias.

It belongs with the ESP32 boards of this library.

README

esp32/README.md

AEGIS v2 — ESP32 Load-Cell Firmware

ESP32 firmware that reads an array of HX711 load-cell amplifiers and streams per-bin weights to the host PC over USB serial. It is the device-side counterpart to the host reader at aegis-v2/integration/src/sensing/loadcell.py.

What it does

Each load cell maps to one bin (bin_{row}_{col}). The ESP32 reads every cell, applies per-bin calibration, and emits one line of JSON per cycle (~10 Hz):

json
{"bins": {"bin_0_0": 123.4, "bin_0_1": 80.1, "bin_1_0": 0.0}}

Weights are in grams. The format, keys, and 115200 baud exactly match the contract the host parser expects.

Hardware

  • 1× ESP32 dev board (any variant).
  • 1× HX711 amplifier + load cell per bin (7 bins for the default [4, 3] layout).
  • Each HX711 needs VCC (3.3V), GND, DT (data), SCK (clock). DT/SCK go to the GPIO pins listed in BINS[]; VCC/GND share the ESP32's 3.3V and GND rails.

The example pins in aegis_loadcells/aegis_loadcells.ino are a starting point — edit the BINS[] table to match your actual wiring and layout.

Build & flash (Arduino IDE)

  1. Install ESP32 board support: File → Preferences → add https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json to Additional Board Manager URLs, then install esp32 in Tools → Board → Boards Manager.
  2. Install the HX711 library: Tools → Manage Libraries → "HX711" by Bogdan Necula (bogde/HX711).
  3. Open aegis_loadcells/aegis_loadcells.ino.
  4. Select your board under Tools → Board and the serial port under Tools → Port, then click Upload.

(arduino-cli equivalent:)

bash
arduino-cli core install esp32:esp32
arduino-cli lib install "HX711"
arduino-cli compile -b esp32:esp32:esp32 esp32/aegis_loadcells
arduino-cli upload  -b esp32:esp32:esp32 -p /dev/ttyUSB0 esp32/aegis_loadcells

Calibration

Open the Arduino Serial Monitor at 115200 baud (newline line-ending). The firmware streams JSON, and also accepts these one-line commands:

CommandAction
tTare (zero) every cell. Do this with all bins empty.
c <i> <g>Calibrate cell index <i> using a known mass of <g> grams on it.
rPrint the current pin/scale table.

To calibrate a cell:

  1. Send t with empty bins.
  2. Place a known weight (e.g. 500 g) on bin index i.
  3. Send c i 500. The firmware prints the computed scale factor.
  4. Paste that value into the scale column of BINS[] and re-flash so it persists across power cycles.

Command replies start with #, so the host parser ignores them harmlessly.

Connect to the host pipeline

Enable load cells in aegis-v2/integration/config/settings.yaml:

yaml
sensing:
  loadcells:
    enabled: true
    port: "/dev/ttyUSB0"   # ESP32 USB device (Windows: "COM3", macOS: "/dev/tty.usbserial-*")
    baudrate: 115200
    stale_after: 2.0

Find the port with ls /dev/ttyUSB* /dev/ttyACM* (Linux) or Device Manager (Windows). The host reads weights on a background thread and the dashboard shows live per-bin grams.

Quick test without the pipeline

Any serial monitor at 115200 baud will show the JSON stream:

bash
# Linux/macOS
screen /dev/ttyUSB0 115200      # Ctrl-A then K to quit
# or
python3 -m serial.tools.miniterm /dev/ttyUSB0 115200

Parts

14
QtyValueFootprintReferences
12Conn_01x04_PinConnector_JST:JST_XH_S4B-XH-A_1x04_P2.50mm_HorizontalJ1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12
2Conn_01x18Connector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_VerticalJ13, J14

Questions

How big is the Esp32 PCB?

It measures 76 × 90 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Esp32 use?

14 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Esp32 KiCad files?

From the heeelol/AEGIS repository on GitHub, at the commit this page was made from: the board is esp32/PCB.kicad_pcb and its schematic esp32/PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Esp32 design in my own project?

Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers116.8 × 30 mmType d, the printed circuit board in 3D

    Type d

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    14 parts3kApache-2.0
  • 2 layers32 × 22 mmDiff driver, the printed circuit board in 3D

    Diff driver

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    14 parts990GPL-3.0
  • 2 layers34 × 45 mm2032Charger, the printed circuit board in 3D

    2032Charger

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    14 parts915
  • 2 layers34 × 109.9 mmTdisplay s3, the printed circuit board in 3D

    Tdisplay s3

    landonr/homeThing

    Wifi Smart Home Remotes that run on ESPHome

    14 parts551GPL-3.0
  • 2 layers45.3 × 42.7 mmMainPcb, the printed circuit board in 3D

    MainPcb

    adamb314/ServoProject

    Getting the most out of your hobby servo

    14 parts545
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY, the printed circuit board in 3D

    C5VRX JACK DIY

    Twotoz/C5VRX

    Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

    14 parts515GPL-3.0
  • 2 layers62 × 24 mmMai button, the printed circuit board in 3D

    Mai button

    whowechina/mai_pico

    Pico controller for Maimai

    14 parts475