Smart filament management system for Bambu Lab 3D printers with NFC tagging and weight tracking
Features β’ Hardware β’ Quick Start β’ Documentation β’ Contributing β’ Discord
Caution
This project is under heavy development and not yet ready for end users.
Hardware designs, firmware, and software are actively being developed and may change significantly. Documentation may be incomplete or outdated. If you're interested in following the progress or contributing, join our Discord!
- Know your filament β NFC tags identify spools instantly, no more guessing
- Track remaining weight β Precision scale shows exactly how much is left
- Seamless AMS integration β Configure AMS slots directly from the display
- Works offline β Uses Developer Mode for direct printer control via local network
|
|
SpoolBuddy requires these components (~$100-150 total):
| Component | Description |
|---|---|
| Elecrow CrowPanel 7.0" Advance | ESP32-S3 display with 800x480 IPS touchscreen |
| Raspberry Pi Pico | NFC bridge controller |
| PN5180 NFC Reader | ISO 15693 support for Bambu Lab tags (3.3V only!) |
| SparkFun Qwiic NAU7802 | 24-bit scale ADC |
| 5kg Load Cell | Weight sensor |
| 22AWG Silicone Wire | Wiring connections |
| M4x25 Screws | Mounting hardware |
Warning: The PN5180 is 3.3V only β 5V will damage it! RC522 readers are not compatible.
See the Hardware page for the complete BOM with purchase links.
- Python 3.10+ (3.11/3.12 recommended)
- Node.js 18+ (for frontend development)
- Bambu Lab printer with Developer Mode enabled
- SpoolBuddy hardware device
mkdir spoolbuddy && cd spoolbuddy
curl -O https://raw.githubusercontent.com/maziggy/spoolbuddy/main/docker-compose.yml
docker compose up -dOpen http://localhost:3000 in your browser.
Multi-architecture support: Pre-built images are available for
linux/amd64andlinux/arm64(Raspberry Pi 4/5).
# Clone repository
git clone https://github.com/maziggy/spoolbuddy.git
cd spoolbuddy
# Backend setup
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Run server
python main.pyOpen http://localhost:3000 in your browser.
cd frontend
npm install
npm run devSpoolBuddy uses two firmware components:
| Device | Format | Description |
|---|---|---|
| Raspberry Pi Pico | .uf2 (Arduino) |
NFC bridge controller |
| CrowPanel 7.0" | .bin (Rust/ESP-IDF) |
Display, scale, WiFi |
Quick flash (pre-built):
# Pico: Hold BOOTSEL, plug USB, drag pico-nfc-bridge.uf2 to RPI-RP2 drive
# CrowPanel:
cargo install espflash
espflash flash --monitor spoolbuddy-firmware.binSee the Firmware Guide for detailed instructions.
| Component | Technology |
|---|---|
| Backend | Python, FastAPI, SQLite |
| Frontend | Preact, TypeScript, Tailwind CSS |
| Display Firmware | Rust, ESP-IDF, LVGL |
| NFC Bridge | Arduino (Pico) |
| Communication | MQTT (TLS), WebSocket, REST |
| Series | Models |
|---|---|
| H2 | H2D, H2S |
| X1 | X1, X1 Carbon |
| P1 | P1P, P1S, P2S |
| A1 | A1, A1 Mini |
Full documentation available at wiki.spoolbuddy.cool:
- Getting Started β Hardware setup and installation
- Hardware Required β Bill of materials
- Firmware β Flashing instructions
- Software β Backend setup
Contributions welcome! Here's how to help:
- Test β Report issues with your printer model
- Hardware β Improve enclosure designs
- Code β Submit PRs for bugs or features
- Document β Improve guides and documentation
# Development setup
git clone https://github.com/maziggy/spoolbuddy.git
cd spoolbuddy
# Backend
cd backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python main.py
# Frontend (separate terminal)
cd frontend && npm install && npm run devSee CONTRIBUTING.md for guidelines.
MIT License β see LICENSE for details.
- SpoolEase by yanshay β Original embedded system inspiration
- Bambu Lab for amazing printers
- OpenSpool for NFC tag format inspiration
- Bambuddy for printer integration patterns
- The reverse engineering community for protocol documentation
If you like SpoolBuddy and want to support it, you can buy Martin a coffee.
Made with β€οΈ for the 3D printing community
Join our Discord β’
Report Bug β’
Request Feature β’
Documentation
