Skip to content

Firmware and design files for an open source digital balance with 3D printable components.

License

Notifications You must be signed in to change notification settings

brhubbar/OS_Nano_Balance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OS_Nano_Balance

Firmware and design files for a digital mass balance with 3D printable components. (Project Page)

This balance is powered and controlled by an Arduino Nano. Using the digital I/O pins, the Nano powers and reads information from an HX711 32-bit load cell amplifier. The readout from this loadcell can be calibrated using a standard mass. Calibration mode is entered using a push button. The calibrated value is distributed via two media: Serial and an LCD display. When connected to the Nano over serial (115200 baud), the raw (tared) and calibrated readout are displayed. Depending on the SSH client in use, this data can be logged and plotted - primarily for scientific uses. When an LCD is included in the system, the calibrated value is displayed with units.

Power

The entire system is powered by the USB input to the Nano. This can be supplied by a computer or a 5V wall adapter.

  • The HX711 and LCD are powered by digital I/O pins, meaning they can be independently turned on and off if desired.
  • This works because the HX711 requires a maximum of 1.5 mA @ 5V (see data sheet in doc).
  • Similarly, the LCD requires around 2.5 mA @ 5V (see data sheet in doc).
  • Arduino I/O pins can supply 40 mA @ 5V (recommended max is 20 mA continuous) (see Arduino Forum

Wishlist

  • Send a calibration value over serial, or offer a selection on the display (select with Tare)
  • Improve readout on the display to offer more information and work with calibration
  • Condense readout commands into functions to make the code DRY
  • Improved averaging algorithm to improve Signal-to-Noise-Ratio
  • Add compatibility for different types of displays
  • Update readout resolution (number of decimals) to match the resolution of the load cell. This could be adaptive baseed on the calibration value. (eg a 5000g load cell offers a different level of precision than a 50kg load cell).

Printable Parts

The bed, base, and face are parametrically designed in FreeCAD. Old designs created in OpenSCAD are available as well - these accommodate a TAL220 and TAL221 loadcell, but not an LCD. These parts can be printed for a few dollars (depending on the cost of your filament). If you are using an LCD, check the dimensions on Face.FCStd before printing.

Wiring

Wiring has not yet been cleanly drawn up. The LCD wiring is based on the Hello World example. Pin locations can be determined by looking at the .ino source code.

Load Cell --> HX711:

  • red --> E+
  • blk --> E-
  • grn --> A+
  • wht --> A-

HX711 --> Arduino:
The HX711 is powered by the Arduino's digital pin. This is possible because the Arduino can supply 20 mA of current, while the HX711 only requires 1.5 mA.

  • GND --> GND
  • DT --> D2
  • SCK --> D3
  • VCC --> D4

Buttons --> Arduino:

  • GND --> Cal --> D7
  • GND --> Tare --> D8

Firmware

The firmware sends a readout to the Serial Monitor for interaction. Arduino's Serial Plotter can be used to get a live readout of changing mass on the balance.

Tare

To tare, simply hit the tare button (on pin 8). This will zero the output.

Calibrate

To calibrate, hit the calibrate button (on pin 7). This will send the scale into its calibrate state. You may tare the scale while in calibration state. The scale will take several averages and then calculate a new sensitivity. At this time, the device is set to calibrate with 0.2359 kg, the mass of 1 US Cup of water.

Data Logging

To log data, use a third-party client such as PuTTY, which offers session-logging capabilities.

About

Firmware and design files for an open source digital balance with 3D printable components.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published