Smart filament storage and inventory management for 3D printing.
DryDock is a web dashboard that gives you real-time visibility into your filament supply and dry box environment. It tracks remaining filament weight per spool, monitors temperature and humidity inside and outside the dry box, and integrates with popular 3D-printing tooling to keep your inventory accurate with minimal manual work.
-
Real-time weight tracking
A 24-bit NAU7802 ADC and a 5 kg load cell measure remaining filament weight with high precision. A built-in calibration wizard makes setup straightforward. -
Temperature and humidity monitoring
Dual AM2320 sensors measure conditions inside and outside the dry box. DryDock evaluates desiccant and enclosure health primarily from the absolute internal humidity reading (hum_1).
-
RFID spool identification
An MFRC522 reader scans 13.56 MHz NFC tags attached to spools, so DryDock knows exactly which spool is being weighed—no manual selection needed. -
Spoolman integration
After each scan-and-weigh cycle, DryDock can automatically update the remaining weight in your Spoolman database over the local network.
-
Klipper / Moonraker integration
DryDock can be registered with Moonraker’s Update Manager, allowing updates directly from Mainsail or Fluidd. -
Local web dashboard
A browser-based interface shows live sensor readings, historical charts (1 hour / 24 hours / 7 days), scale calibration, firmware generation, and system settings.
- A running Spoolman instance (on your network)
- A Debian-based machine running Klipper (commonly a Raspberry Pi)
The following core components are required to build a DryDock unit:
| Component | Purpose |
|---|---|
| ESP32 (S3 recommended) | Main microcontroller; reads sensors and reports data over Wi-Fi |
| NAU7802 24-bit ADC | High-resolution load cell amplifier for weight measurement |
| AM2320 (x2) | Temperature and humidity sensors (inside + outside the dry box) |
| MFRC522 | 13.56 MHz RFID/NFC reader for spool identification |
| 5 kg load cell | Measures spool weight |
| RGB LED | Visual status indicator |
Data flow (high level):
[ESP32 + Sensors] --(Wi‑Fi/JSON)--> [DryDock Web Server] <---> [Spoolman / Klipper]
Full wiring diagrams, pin assignments, and a complete bill of materials are available in the wiki:
- Hardware Setup: https://github.com/ItzEarthy/DryDock/wiki/2.-Hardware-Setup
The current setup uses a breadboard and jumper cables. A PCB and 3D-printed hardware are in the works.
Please see the Software Installation page on the wiki:
Full documentation is maintained in the GitHub Wiki:
| Wiki Page | Description |
|---|---|
| Home | Project overview and quick-start summary |
| Hardware Setup | Bill of materials, wiring diagrams, and pin assignments |
| Software Installation | Installing the backend on a Raspberry Pi |
| Firmware Setup | Generating and flashing the ESP32 firmware |
| Configuration | Environment variables, settings page, and Spoolman integration |
| Using DryDock | Dashboard walkthrough, spool scanning workflow, and calibration |
| API Reference | Complete REST API documentation for the Flask backend |
| Troubleshooting | Solutions to common problems |
Contributions are welcome. If you find a bug, have a feature request, or want to improve the documentation, please open an issue or submit a pull request.
This project is licensed under the LICENSE file.