Skip to the content
PCBKitNew board
4 layers55 × 28 mmCamel, the printed circuit board in 3D

Camel Dual HX711 Weigh Scales Board

Size
55 × 28 mm
Copper layers
4
Thickness
1.6 mm
Parts
66
Nets
49
Pads
214
Tracks, vias
314, 118
Pours
34
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
12 Oct 2024
Updated
30 Aug 2025

Overview

Camel is an open-source printed circuit board by metaquantus, from the metaquantus/camel repository on GitHub, published under the MIT licence. It is a 4-layer board of 55 × 28 mm with 66 parts on 49 nets, routed with 314 tracks and 118 vias.

It is built around the STM32L071KBU6, HX712 and MCP1700T-3302E/TT(MS), with the RCLAMP0521P-N among its other parts. Its parts include 17 capacitors, 15 diodes, 11 resistors, 7 connectors and 4 ICs. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

Camel I2C Dual HX712 Weigh Scales Board

Camel is a board with Dual HX712 Weigh Scales ADCs controlled by a low power STM32L010F4 or STM32L031F6 MCU providing an I2C slave interface. Power is provided by an I2C Adafruit STEMMA compatible 4-pin JST PH (2mm pitch) connector. This board will work with power from 3.3V to 5V, but it's better if VCC > 4V.

It was intended to support the integrated scales mod for the Gaggia Classic Pro espresso machine provided by the Gaggiuino project. But instead of the main MCU driving the HX712s directly, sensor reading and decoding is offloaded to this board's MCU and a simple I2C interface is used instead to connect to the host MCU. This reduces the number of wires required, frees some pins in the host MCU and saves some clock cycles.

STEMMA Pinouts:

text
1 Green for SCL
2 White for SDA
3 Red for VCC+
4 Black for GND

The MCU drives the 2 HX712 ADCs, reads and decodes the conversions and provides the raw data to the host via I2C. The HX712s allow programmatic configuration of the sampling rate (10Hz or 40Hz), the amplifier's gain factor (128 or 256) and whether to put the HX712s into power down mode consuming less than 1uA. The device can also store configuration and calibration points in the MCU's EEPROM. Up to 4 calibration points are supported. The host is in charge of providing additional functions like scaling to weight units, tare and calibration. It may be possible to offload scaling to the MCU, if using STM32L031F6 as it has more memory. I2C doesn't support slave initiated transfers so the host MCU must poll the device periodically to read the data. There will be roughly one new sensor reading available of both load cells every 100ms if 10Hz sampling rate is used. The internal oscillator is used in both the HX712 ADCs and the MCU so sampling rates are not very precise. Using the lower sampling rate has lower conversion noise. The HX712 is a 24-bit ADC and data is provided in 2's complement format. Readings could be negative depending on how the load cell is mechanically setup, bending one way of the other. For example, in some of the integrated scales mod assembles, one cell gives positive values and the other negative. To get the total weight reading, the absolute values of both cells should be added.

According to STM32CubeIDE, the MCU should consume about 5mA and the HX712s about 1mA each.

If using only one of the HX712s, it's possible power down the other, saving 1mA. This can be configured from the host.

Programming is done via a Serial Wire Debug (SWD) connector. Both a Tag-Connect TC2030-NL and a 4-pin 2.54mm pitch header are provided for SWD.

A USART connector is provided but the STM32L010F4 has only 16Kb flash/2Kb RAM and adding code support exceeds code size limit. Some reporting was tried but code size was very tight. This was intended for monitor and debugging during development, so it's not essential. Maybe with the STM32L031F6 with 32KB flash/8KB RAM more monitoring and functions like standalone calibration can be added.

ESD protection diodes were added to the interface connectors.

2.54mm pitch header THT pads are used for the load cell connectors, but normally the load cells wires should be soldered directly to the pads instead of using headers or other connector.

PCB Notes

The variable FAB_ON_PLACEHOLDER should be set to JLCJLCJLCJLC, WayWayWay or whatever string is specified by the Fab to position the order number. Or removed altogether if so desired. Sometimes a fee is incurred if removed.

Parts

66
QtyValueFootprintReferences
14RCLAMP0521P-Ncamel:X1-DFN1006-2_L1.0-W0.6-BID1, D2, D3, D4, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15
13100nCapacitor_SMD:C_0402_1005MetricC1, C2, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
4100RResistor_SMD:R_0402_1005MetricR1, R2, R7, R8
4200RResistor_SMD:R_0402_1005MetricR3, R4, R9, R10
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3Conn_01x04camel:Pad_1x04_P2.54mmJ1, J2, J5
3FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3
210KResistor_SMD:R_0402_1005MetricR6, R11
210uCapacitor_SMD:C_0603_1608MetricC5, C6
2HX712Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU2, U4
110nCapacitor_SMD:C_0402_1005MetricC3
11uCapacitor_SMD:C_0402_1005MetricC4
12K2Resistor_SMD:R_0402_1005MetricR5
139nInductor_SMD:L_1008_2520MetricL1
1I2C STEMMAConnector_JST:JST_PH_S4B-PH-K_1x04_P2.00mm_HorizontalJ6
1LOGOcamel:camel_logo_7G3
1LOGOcamel:camel_logo_30G***
1MCP1700T-3302E/TTPackage_TO_SOT_SMD:SOT-23U1
1QRcamel:camel_qrcode_5x5QR1
1REDLED_SMD:LED_0603_1608MetricD5
1RESETcamel:SW-SMD_4P-L3.0-W2.6-P1.80-LS3.5SW1
1STM32L071KBU6Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mmU3
1TC2030-NLConnector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ3
1UART1camel:JST_PH_S4B-PH-K_1x04_P2.00mm_Horizontal_TC-2030-IDC-NL_2x03_P1.27mm_VerticalJ4
1UART2Connector_JST:JST_PH_S4B-PH-K_1x04_P2.00mm_HorizontalJ7

Questions

How big is the Camel PCB?

It measures 55 × 28 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Camel use?

66 parts, built around the STM32L071KBU6, HX712, MCP1700T-3302E/TT(MS) and RCLAMP0521P-N. 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 Camel KiCad files?

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

Can I use the Camel design in my own project?

Its repository publishes it under the MIT 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 layers50 × 66 mmBluePhil, the printed circuit board in 3D

    BluePhil

    pms67/BluePhil

    STM32-based development board with various sensors.

    106 parts53MIT
  • 2 layers112 × 57 mmCaravansensor, the printed circuit board in 3D

    Caravansensor

    MartinVerges/womolin-waterlevel

    DIY project to build a smart fuel sensor for RVs or in other projects. It is based on air pressure and is able to measure fresh water as well as grey and black water levels with high precision.

    226 parts17
  • 2 layers15 × 65.7 mmSlider, the printed circuit board in 3D

    Slider

    jacdac/jacdac-ddk

    Jacdac Device Development Kit

    26 parts2CC-BY-4.0
  • 2 layers27.4 × 60 mmRC W25, the printed circuit board in 3D

    RC W25

    Electrium-Mobility/RC-W25

    Electrium Mobility W25 Remote Control Project

    76 parts
  • 2 layers66.5 × 83.9 mmInkWordESP32 MB V1.1, the printed circuit board in 3D

    InkWordESP32 MB V1.1

    harry10086/InkWord_ESP32

    An ESP32 and E-paper based low-power English vocabulary learning device.一个基于 ESP32 和墨水屏的低功耗英语单词学习设备。

    103 partsGPL-3.0
  • 2 layers208.8 × 396.9 mmFerris, the printed circuit board in 3D

    Ferris

    pierrechevalier83/ferris

    A low profile split keyboard designed to satisfy one single use case elegantly

    145 parts1.3k