
Type d
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards

ESP32 firmware that reads an array of HX711 load-cell amplifiers and streams per-bin weights to the host PC over USB serial.
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.
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.
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):
{"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.
[4, 3]
layout).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.
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.aegis_loadcells/aegis_loadcells.ino.(arduino-cli equivalent:)
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_loadcellsOpen the Arduino Serial Monitor at 115200 baud (newline line-ending). The firmware streams JSON, and also accepts these one-line commands:
| Command | Action |
|---|---|
t | Tare (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. |
r | Print the current pin/scale table. |
To calibrate a cell:
t with empty bins.i.c i 500. The firmware prints the computed scale factor.scale column of BINS[] and re-flash so it
persists across power cycles.Command replies start with #, so the host parser ignores them harmlessly.
Enable load cells in aegis-v2/integration/config/settings.yaml:
sensing:
loadcells:
enabled: true
port: "/dev/ttyUSB0" # ESP32 USB device (Windows: "COM3", macOS: "/dev/tty.usbserial-*")
baudrate: 115200
stale_after: 2.0Find 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.
Any serial monitor at 115200 baud will show the JSON stream:
# Linux/macOS
screen /dev/ttyUSB0 115200 # Ctrl-A then K to quit
# or
python3 -m serial.tools.miniterm /dev/ttyUSB0 115200| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | Conn_01x04_Pin | Connector_JST:JST_XH_S4B-XH-A_1x04_P2.50mm_Horizontal | J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 |
| 2 | Conn_01x18 | Connector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_Vertical | J13, J14 |
It measures 76 × 90 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
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).

google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards


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



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

