/duet-plugin-filament-load-cell

Duet RepRapFirmware plugin to display a filament spool weight from a load cell

Primary LanguagePythonMIT LicenseMIT

Duet RepRapFirmware plugin for filament load cell

  • requires RepRapFirmware 3.3.0 with matching SBC software for DuetWebControl and DuetControlServer
  • requires a I2C sensor attached to the SBC that reads a HX711 load cell sensor

This plugin allows you to display the amount or weight of filament spool on your 3D printer. You can quickly judge how much material you have left on this spool before starting a print job.

Screenshot of the new weight field in DWC

CAD model of the spool holder with integrated load cell

This plugin can be installed via DuetWebControl. It will register a new HTTP endpoint that exposes a current weight reading of the load cell. The value will be updated and polled into the browser window every few seconds and displayed in the top menu bar.

Hardware

  • "bar style" load cell
    • with differential resistor pairs
    • rated weight for 1kg (5kg might work with less accuracy)
    • approx. 80x13x13mm
    • 2 M5 and 2 M4 mounting holes
  • HX711 module
  • Microcontroller: Arduino Nano or similar ATmega168-powered module
  • 3D printer with Duet and RepRapFirmware and SBC

Expected measurement accuracy / usable resolution: +/- 10g for a 1kg spool.

The HX711 load cell amplifier module requires precise timing to read a measurement. While a Raspberry Pi could do this directly, it is more reliable to have a dedicated cheap microcontroller perform this timing-critical task and buffer the measurement values. A Raspberry Pi can then simply query the most recent and valid measurement via I2C.

Hardware Integration

Software Setup

  • Flash microcontroller hx711-to-i2c firmware
    • using PlatformIO
  • Enable I2C on SBC (assuming Raspberry Pi)
    • via TUI: sudo raspi-config - Interfacing Options - I2C
    • via CLI: sudo raspi-config nonint do_i2c 0 (0=enable, 1=disable)
  • Install Duet RepRapFirmaware plugin
    • via DWC "Upload & Print" button drag & drop.

License

This project is made available under the MIT License. For more details, see the LICENSE file in the repository.

Author

This project was created by Thomas Kriechbaumer.