Custom Digital Scale
A full-stack manufacturing project — CNC-machined a custom load cell from 6010 aluminum billet (validated with SolidWorks FEA), designed a Fusion 360 CAD enclosure with an organic clamshell design, 3D printed ABS shrouds, and wrote Arduino firmware for calibrated multi-unit weight measurement with tare and interrupt-driven button control. Every component, from raw billet to working instrument, was designed and built in-house.
Engineering a Scale from Scratch
The objective was to design and develop a fully functional digital scale prototype — integrating standard electronic components within a completely custom enclosure — as a proof of concept for a customizable weighing appliance product line. No off-the-shelf load cells or housings were permitted; everything had to be conceived, designed, and manufactured in-house.
Scale Specifications
- Measurement Range: 0–3 kg
- Accuracy: ±1% when reporting values in grams
- Display: 16×2 character LCD showing weight, units, and button indicators
- Tare Functionality: TARE function for zeroing with any container
- Units: Toggle between at least kg/g and lbs (implemented g, kg, lbs, oz)
- Power Source: Two AA batteries with externally accessible on/off rocker switch
- Enclosure Size: Fits within a 75 in³ cuboid (excluding weighing tray)
- IP Rating: IP31-rated shroud protecting internal electronics
- Accessibility: All internals accessible via engineered fastening — no glue
- Infill: Shroud printed at 20% infill or less; final used 10% grid pattern
Objective Evaluation Criteria
- Functional testing against known standardized weights (200 g calibration standard)
- Aesthetic and ergonomic assessment with feedback from colleagues and professors
- User experience testing — unit toggling, tare function, LCD readability, battery access
Organic Clamshell Shroud in Fusion 360
The enclosure was modeled in Fusion 360 with a priority on sleek, organic aesthetics — rounded edges and flowing surfaces rather than a boxy utilitarian form. The clamshell design features an offset lip where the two halves of the shroud mate, creating resistance to dust and particles without requiring a gasket.
Brass heat-set inserts were used throughout: fastening the two enclosure halves, mounting the PCB, and securing the battery compartment cover. This gives the design structural integrity while remaining fully disassembleable — no glue anywhere in the assembly.
Key Design Decisions
- PCB and 16×2 LCD tilted at a 60° angle and mounted directly to the shroud face, with cutouts for the display window and push buttons below
- Load cell assembly rotated 45° within the scale to keep measurement centered while fitting within dimensional constraints without interfering with other components
- On/off rocker switch placed flush with the side of the shroud, preventing accidental actuation when the scale is bumped
- Battery compartment on the bottom, secured with heat-set inserts and neodymium magnets — resilient to drops and vibration, protective against dust and moisture
- TPU rubber feet bonded to the underside to dampen vibrations and prevent slippage during measurement
Material Selection
- Shroud: High-impact ABS plastic — durable, UV-resistant, and suited for potential outdoor use
- Feet: TPU — flexible, vibration-absorbing, non-slip
- Hardware: Brass heat-set inserts throughout, #6-32 and #8-32 screws
- Printer: Bambu Lab P1S, 10% grid infill (under the 20% spec), heated chamber required for ABS
FEA-Validated Aluminum Load Cell
The custom load cell — the most critical and complex component — translates mechanical force into measurable electrical signals. It was machined from 6010 aluminum for its favorable strength-to-weight ratio, corrosion resistance, and ease of machining on a manual mill.
Before any metal was cut, a series of SolidWorks static stress simulations were run. Iterating through different geometries and thicknesses confirmed the load cell could support the full 0–3 kg range with minimal deflection and an adequate safety factor. The simulation identified optimal strain gauge placement at the peak-stress region of the beam.
Simulated Sensor Results
- Top Strain Gauge (EPSX): +4.443×10⁻⁴ average normal strain
- Bottom Strain Gauge (EPSX): −4.487×10⁻⁴ average normal strain
- Minimum Factor of Safety: 3.84 (alert threshold: below 3)
Machining Process — Bridgeport Manual Mill
- Facing operation on both sides to establish flat reference surfaces
- Edge-finding tool to locate center point of aluminum stock; holes located via DRO (X/Y readout)
- Holes drilled and hand-threaded with a crank threading tool
- Part mounted to a custom jig via the threaded holes for rigid fixturing
- Center pocket milled with a ¼″ end mill; exterior dimensions milled to final spec with the same tool
Supporting Components (also machined)
- Spacer Block: Milled entirely on the Bridgeport; smoothness verified with a dial indicator gauge
- Load Tray Mount: Aluminum stock first turned on a manual lathe to diameter, then transferred to a custom jig on the Bridgeport where side faces were milled to tolerance
Strain Gauge Installation
- Surfaces cleaned and degreased; strain gauge sprayed with CA glue accelerant
- Gauges carefully placed at optimal stress point identified in simulation
- Wired into the HX711 strain gauge amplifier PCB, which amplifies and sends readable values to the Arduino microcontroller
Signal Conditioning, Calibration & Interrupt-Driven UI
The firmware was written in Arduino IDE using the HX711 and LiquidCrystal libraries. The code is structured into distinct functional blocks: initialization, calibration, measurement averaging, unit conversion, display update, and button interrupt handling.
Initialization & Setup
On power-up, the LCD prints "Initializing…" while the system sets up pin modes and attaches hardware interrupts (FALLING edge) to SW1 (tare) and SW2 (unit swap). After the load cell initializes and tares, "Ready!" is displayed.
Tare Function
The tare routine takes multiple samples, averages them, and stores the offset as tareValue. Averaging filters out ADC noise and ensures a stable zero baseline — critical for ±1% accuracy. LCD shows "Taring…" then "Tare complete!" before clearing.
Unit Conversion
The main loop reads averaged raw ADC values, subtracts tareValue, then applies the calibration factor (0.0019963 grams/ADC unit) with a switch-case for unit output:
- Grams: rawValue × calibrationFactor
- Kilograms: rawValue × calibrationFactor ÷ 1000
- Pounds: rawValue × calibrationFactor × 0.00220462
- Ounces: rawValue × calibrationFactor × 0.035274
Display Update
The LCD shows current weight on row 0 (or "Exceeds max!" if over range), with "TARE" and "Units" labels on row 1 and column 11 respectively. Interrupt service routines set sw1Pressed / sw2Pressed flags that the main loop checks, keeping the UI responsive without blocking.
Calibration
A 200 g standardized weight was used for the final calibration run, achieving readings within the ±1% margin of error specification across the full 0–3 kg range.
Assembly & Integration
- JST connectors crimped onto the battery holder and rocker switch for easy disassembly
- PCB fastened with #6-32 screws into enclosure with buttons below display
- Load cell assembly bolted bottom-up into threaded load cell with 2× #8-32 screws
- Two shroud halves joined with 4× #6-32 screws through heat-set inserts
Interactive Scale Model
Objectives Met — Instrument to Consumer Product
The fully assembled digital scale met or exceeded all established specifications. Functional testing confirmed ±1% accuracy across the full 0–3 kg range, with reliable unit switching between grams, kilograms, pounds, and ounces. The TARE function performed consistently across every test, allowing users to zero the display for any container without recalibration.
The ABS enclosure proved durable and weather-resistant. Printing ABS on the Bambu Lab P1S required a heated build chamber and careful slicer tuning to prevent warping and fume issues — after iterating on settings, consistent high-quality prints were achieved. The clamshell design with multiple heat-set insert fastening points kept the structure tight against moisture and debris while remaining fully accessible for component servicing and battery replacement.
The machining process for the aluminum load cell was the highest-stakes aspect of the project. Milling the inner pocket to tolerance required careful feed-rate control — even a minor miscalculation could ruin the entire part. After practice runs and rigorous order-of-operations planning, the process became repeatable and efficient. The load tray mount — requiring both lathe turning and subsequent mill operations via a transfer jig — was the most complex multi-machine workflow.
Feedback from colleagues and faculty highlighted the organic form factor and intuitive button/display layout. The battery access design — magnetically held bottom cover with heat-set fasteners — was called out specifically as a practical and refined solution.
Future Improvements Considered
- Higher-precision CNC load cell to improve reading quality beyond ±1%
- Piezo speaker for auditory feedback on mode changes
- Indicator LEDs corresponding to active mode (visual feedback)
- Bluetooth module with companion phone app — live data readout, logging to spreadsheet
- Injection molding tooling for commercial-scale production of the enclosure