Digital scale projects represent a staple in modern embedded design, bridging analog sensor conditioning with embedded firmware control. When designing portable measurement devices, key selection criteria include low current consumption in idle states, compact form factors, responsive visual feedback, and reliable mechanical load distribution.
Maker John Bradnam has developed a custom set of electronic scales powered by a Microchip ATtiny1614 microprocessor, an HX711 24-bit ADC module, and a standard 5 kg load cell inside a compact 3D-printed enclosure.
Quick Take
- Architecture: Microchip ATtiny1614 paired with an HX711 24-bit ADC amplifier module.
- Sensor Core: 5 kg aluminum bar load cell configured as a Wheatstone bridge.
- Display Interface: 0.91-inch 128x32 I2C OLED screen.
- Power & Efficiency: Single-cell 3.7 V 120 mAh Li-Po battery leveraging ATtiny deep sleep modes.
- Fabrication: Custom single/double-sided PCB design coupled with 3D-printed load cell mounts and outer housing.
Understanding the Load Cell Architecture
The sensing mechanism relies on an aluminum bar containing four resistive strain gauges wired in a Wheatstone bridge configuration.
At equilibrium without any load applied, each sensor exhibits identical resistance (approximately 1000 ohms). Applying 5 V across the excitation lines (Red/Black) produces 2.5 V at both the Green and White output signal nodes, resulting in a differential reading of 0 V across the bridge. When downward force is exerted, mechanical deflection changes sensor resistance symmetrically—the tensioned sensors increase in resistance while compressed sensors decrease.
Because the resulting differential output voltage is minuscule, amplification is essential. The SparkFun HX711 module conditions the signal using an integrated low-noise amplifier and a 24-bit analog-to-digital converter (ADC) before passing digitized readings over a two-wire interface.

Watch Video Demonstration: Calibration and Operation
Circuit Design and Custom PCB Fabrication
The microcontroller handling data collection, zeroing (tare), and display formatting is the ATtiny1614. It was selected specifically for minimal power draw in sleep mode.

The PCB was designed to accommodate Surface Mount Devices (SMD) to keep the internal assembly compact enough to fit inside the 3D-printed enclosure.
Pro-Tip: When populating dense SMD micro-PCBs, applying solder paste and reflowing using an SMD hot plate significantly speeds up assembly compared to hand-soldering each discrete passives reel.
Assembly Steps
1. Board Soldering and Connectors
Surface mount passives, the ATtiny1614 microcontroller, wire links (for single-sided etchings), the 4-pin right-angle male header for the HX711, and the battery JST socket are soldered directly onto the PCB.
_bIHhF2XBU0.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
2. Display and Tactile Switch Integration
An unpinned header is glued underneath the display area to serve as a mechanical spacer, followed by mounting the 0.91-inch I2C OLED display and a 6x6mm momentary tactile push-button switch.
_65CL0bcbrD.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
3. Firmware Flashing via UPDI
Because modern ATtiny series microcontrollers use the unified program and debug interface (UPDI) via the reset pin, an external UPDI programmer is required. A temporary lead is tacked to the UPDI pad on the PCB to upload the Arduino C++ sketch before case enclosure.
_1SzAxkigRD.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
4. Mechanical Mounting and Sensor Wiring
The load cell is oriented according to its directional load arrow and fastened with four 12 mm M4 flat head (countersunk) machine screws between the base plate and the top weighing platform.
Load Cell Wiring to HX711:
- Red -> E+
- Black -> E-
- Green -> A+
- White -> A-
HX711 Wiring to Controller:
- Red -> VCC
- Black -> GND
- Green -> SCK (PA3)
- White -> DT (PA2)
_B0wcyxlLG8.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
5. Final Enclosure Assembly
The internal electronics are connected to a 3.7 V 120 mAh Li-Po cell, and the front case shell is press-fitted onto the base unit without pinching internal wiring.
_F46CgaYQBk.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
Component & Print Specifications
| Component / File | Specifications | Notes / Settings |
|---|---|---|
| Microcontroller | Microchip ATtiny1614 (20 MHz internal) | Programmed via UPDI interface |
| ADC / Sensor | HX711 module + 5 kg Strain Gauge Bar | 24-bit resolution, Wheatstone bridge |
| Display | 0.91" Monochrome OLED (128x32) | I2C bus interface |
| Power Supply | 3.7 V 120 mAh Li-Po Battery | Deep sleep power-down mode |
| LoadCellBase V2.stl | FDM 3D Printed | 0.20 mm layer height, full supports |
| TopPlate V2.stl | FDM 3D Printed | 0.20 mm layer height, no supports |
| CaseFront.stl | FDM 3D Printed | 0.15 mm layer height, no supports |
Project Retrospective & Recommendations
While the compact form factor makes for an elegant handheld scale, the author noted that the mechanical footprint of the base exhibits tipping tendencies when loads approach the upper limits of the 5 kg capacity. For future design revisions handling higher masses, extending the front support legs further forward or repurposing the enclosure specifically for 1 kg capacity cells yields significantly better physical stability.
Discussion
Have you integrated load cells or the HX711 ADC into your custom embedded hardware? What strategies do you use for mechanical stabilization in 3D-printed enclosures? Let us know in the comments below!