Biomedical Tourniquet Tester
An Arduino-based biomedical quality-control device built with Glia for verifying pressure consistency during open-source tourniquet manufacturing.
The problem
Glia manufactures open-source CAT-style tourniquets intended for humanitarian and medical use. During manufacturing, each tourniquet needs to be verified to ensure it generates consistent pressure at a predictable number of windlass turns before leaving production. The engineering challenge was that the system only had access to a single HX711 load-cell sensor with no independent reference measurement available during normal operation.
Key decisions
Single-sensor calibration workflow
Because the HX711 produces raw unitless readings, the system needed a calibration strategy capable of mapping sensor values to real pressure measurements. I designed a workflow where calibration points are collected using known reference pressures during setup, allowing each device to generate its own pressure model.
Pressure estimation through averaged slopes
I evaluated multiple approaches including interpolation, regression, and slope averaging. The final design computes pairwise slopes between calibration points and averages them into a stable linear model that performs reliably despite sensor variation between units.
EEPROM-backed persistence and corruption detection
Calibration data and computed coefficients are stored in EEPROM so they survive power cycles. On startup, the device validates stored calibration data and detects corruption before operation, prompting recalibration if inconsistencies are found.
Stability-aware measurement acceptance
Sensor readings are only accepted once they stabilize within a defined threshold range. This prevents calibration drift caused by movement, pressure fluctuations, or transient environmental noise.
Outcome
The result is a script capable of displaying tourniquet pressure in mmHg on an I2C LCD, allowing manufacturing staff to verify pressure consistency during production. The calibration system operates reliably across power cycles and varying hardware conditions.
What I learned
This project reinforced how different debugging becomes at the hardware-software boundary. Bugs do not throw stack traces, they appear as unstable measurements, inconsistent behavior, or incorrect physical outputs. It also reinforced that engineering constraints often produce more creative solutions than unlimited flexibility.