DIY Mass Sensor

Design a mass sensor from scratch: custom signal processing circuit, auto-calibration using reference weights to compensate for creep and temperature drift, and linear regression to improve accuracy across variable material responses.
AssembliesCircuitsOnshapeRoot Caise Analysis
Responsible for all mechanical design, manufacturing, and physical testing of the system
Dec 2022 - May 2023
Achieved +/-1g precision over a 30-1000g range with a custom auto-calibration routine. Placed 15th nationally out of 7,800+ Science Olympiad teams, earning 3 medals including recognition from Carnegie Mellon University.

Competition Constraints & Initial Challenge

  • The competition prohibited pre-made chips, meaning I couldn’t use standard analog-to-digital converters (ADC) or amplifiers.

  • The only alternative without an ADC and amplifier was force-sensing resistors, but they quickly proved unreliable, drifting significantly over time and with temperature changes.

Depiction of FSR drift per time. Source: Tekscan

Modifying the HX711 to Enable Load Cell Use

  • Since a proper load cell required an ADC and amplifier, I needed a workaround.

  • I used a heat gun to remove the HX711 chip from its original circuit board.

  • I then soldered the chip onto an SMD-to-DIP adapter and rebuilt the original resistor-capacitor network, allowing it to function independently.

  • This modification enabled the use of a load cell, a much more precise sensor.

Creating a Custom Load Cell from Aluminum Stock

  • However, pre-made load cells were also prohibited, so I had to fabricate my own.

  • I took a solid aluminum block and machined a cutout in the center to allow for controlled deformation under load.

  • I then adhered four strain gauges to the surface, allowing them to detect incremental material deformations caused by applied force.

CAD of the full assembly. Two aluminum extrusions provide rigid support, a 3D printed plate with centering indicators mounts directly to the load cell, and a second 3D printed enclosure holds the Arduino Uno and breadboard

CAD of the full load cell assembly: two 2020 aluminum extrusions provide rigid structural support, a 3D printed plate with centering indicators mounts directly to the load cell

Components shown left to right: mechanical load cell, Wheatstone bridge circuit, HX711 SMD-to-DIP adapter, and Arduino.

Components shown left to right: mechanical load cell, Wheatstone bridge circuit, HX711 SMD-to-DIP adapter, and Arduino.

Signal Processing & Arduino Integration

  • I arranged the strain gauges in a Wheatstone bridge configuration, which amplified small deformations into a measurable electrical signal.

  • This amplified signal was then processed by an Arduino, allowing for real-time and high-precision mass measurements.

Calibration for Accuracy

  • To ensure consistent and precise readings, I implemented a two-mass calibration method.

  • I used two known reference weights to establish a linear calibration curve, correcting for any material inconsistencies or signal drift.

  • This approach allowed me to fine-tune the sensor's gain and offset, improving accuracy across different mass ranges.

Full circuit diagram showing the Wheatstone bridge at left, LED indicator connections, and reassembled HX711 circuitry.