{"id":44681483,"url":"https://github.com/maziggy/spoolbuddy","last_synced_at":"2026-02-15T04:37:38.185Z","repository":{"id":335081460,"uuid":"1115703017","full_name":"maziggy/spoolbuddy","owner":"maziggy","description":"NFC-powered spool identification, precision weight tracking, and seamless inventory management. Works with any NFC-tagged spool and auto-configures your AMS slots.","archived":false,"fork":false,"pushed_at":"2026-02-06T09:11:58.000Z","size":200222,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-06T17:25:17.995Z","etag":null,"topics":["3d-printer","3d-printing","3dprinting","3mf","bambu","bambu-lab","bambu-studio","filament","filamentadmin","gcode","self-hosted","selfhosted","spool","spoolman"],"latest_commit_sha":null,"homepage":"https://spoolbuddy.cool","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maziggy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-13T11:34:00.000Z","updated_at":"2026-02-06T09:12:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maziggy/spoolbuddy","commit_stats":null,"previous_names":["maziggy/spoolbuddy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/maziggy/spoolbuddy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maziggy%2Fspoolbuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maziggy%2Fspoolbuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maziggy%2Fspoolbuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maziggy%2Fspoolbuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maziggy","download_url":"https://codeload.github.com/maziggy/spoolbuddy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maziggy%2Fspoolbuddy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29469711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T04:35:06.950Z","status":"ssl_error","status_checked_at":"2026-02-15T04:33:41.357Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-printer","3d-printing","3dprinting","3mf","bambu","bambu-lab","bambu-studio","filament","filamentadmin","gcode","self-hosted","selfhosted","spool","spoolman"],"created_at":"2026-02-15T04:37:38.050Z","updated_at":"2026-02-15T04:37:38.177Z","avatar_url":"https://github.com/maziggy.png","language":"C","funding_links":["https://ko-fi.com/maziggy"],"categories":["C"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/spoolbuddy_logo_dark.png\" alt=\"SpoolBuddy Logo\" width=\"300\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSpoolBuddy\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eSmart filament management system for Bambu Lab 3D printers with NFC tagging and weight tracking\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/maziggy/spoolbuddy?style=flat-square\u0026color=blue\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/maziggy/spoolbuddy/actions/workflows/ci.yml/badge.svg?branch=main\"\u003e\n  \u003cimg src=\"https://github.com/maziggy/spoolbuddy/actions/workflows/github-code-scanning/codeql/badge.svg\"\u003e\n  \u003cimg src=\"https://github.com/maziggy/spoolbuddy/actions/workflows/security.yml/badge.svg\"\u003e\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/maziggy/spoolbuddy?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/maziggy/spoolbuddy?style=flat-square\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/maziggy/spoolbuddy?style=flat-square\" alt=\"Issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/3XFdHBkF\"\u003e\u003cimg src=\"https://img.shields.io/discord/1464629928199847946?style=flat-square\u0026logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=5865F2\" alt=\"Discord\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://ko-fi.com/maziggy\"\u003e\u003cimg src=\"https://img.shields.io/badge/Ko--fi-Support-ff5e5b?style=flat-square\u0026logo=ko-fi\u0026logoColor=white\" alt=\"Ko-fi\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#-hardware\"\u003eHardware\u003c/a\u003e •\n  \u003ca href=\"#-quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"https://wiki.spoolbuddy.cool\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"https://discord.gg/3XFdHBkF\"\u003eDiscord\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e [!CAUTION]\n\u003e **This project is under heavy development and not yet ready for end users.**\n\u003e\n\u003e 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](https://discord.gg/nedWfBE6)!\n\n---\n\n## Why SpoolBuddy?\n\n- **Know your filament** — NFC tags identify spools instantly, no more guessing\n- **Track remaining weight** — Precision scale shows exactly how much is left\n- **Seamless AMS integration** — Configure AMS slots directly from the display\n- **Works offline** — Uses Developer Mode for direct printer control via local network\n\n---\n\n## ✨ Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 📱 Hardware Device\n- 7\" IPS touchscreen display (800x480)\n- Integrated precision scale (5kg capacity, 0.1g accuracy)\n- NFC reader for spool identification\n- WiFi connectivity to backend server\n- Compact form factor sits under your spool\n\n### 🏷️ NFC Tag Support\n- Read NFC tags on spools\n- Multiple tag formats supported:\n  - OpenSpool\n  - OpenTag3D\n  - SpoolEase\n  - Bambu Lab RFID (ISO 15693)\n- Auto-detect tag format\n- Write spool data to NTAG tags\n\n### ⚖️ Weight Tracking\n- Real-time weight display\n- Automatic weight updates when spool placed\n- Core weight calibration per spool type\n- Remaining filament calculation\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### 🖨️ Printer Integration\n- MQTT connection to Bambu Lab printers\n- Real-time AMS status visualization\n- Configure AMS slots from display or web UI\n- Support for regular AMS and AMS HT\n- Dual-nozzle (H2D) support\n- K-profile (pressure advance) selection\n\n### 📊 Inventory Management\n- Web-based spool catalog\n- Filter by material, brand, color\n- Track spool usage and remaining weight\n- Link spools to AMS slots\n- Import presets from Bambu Cloud\n\n### 🔧 Integration Ready\n- REST API for external tools\n- WebSocket for real-time updates\n- Works with Bambuddy for full print management\n- Bambu Cloud profile sync\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🔧 Hardware\n\nSpoolBuddy requires these components (~$100-150 total):\n\n| Component | Description |\n|-----------|-------------|\n| **Elecrow CrowPanel 7.0\" Advance** | ESP32-S3 display with 800x480 IPS touchscreen |\n| **Raspberry Pi Pico** | NFC bridge controller |\n| **PN5180 NFC Reader** | ISO 15693 support for Bambu Lab tags (3.3V only!) |\n| **SparkFun Qwiic NAU7802** | 24-bit scale ADC |\n| **5kg Load Cell** | Weight sensor |\n| **22AWG Silicone Wire** | Wiring connections |\n| **M4x25 Screws** | Mounting hardware |\n\n\u003e **Warning:** The PN5180 is 3.3V only — 5V will damage it! RC522 readers are not compatible.\n\n### Bill of Materials\n\nSee the [Hardware](https://wiki.spoolbuddy.cool/getting-started/hardware/) page for the complete BOM with purchase links.\n\n---\n\n## 🚀 Quick Start\n\n### Requirements\n\n- Python 3.10+ (3.11/3.12 recommended)\n- Node.js 18+ (for frontend development)\n- Bambu Lab printer with **Developer Mode** enabled\n- SpoolBuddy hardware device\n\n### Docker (Recommended)\n\n```bash\nmkdir spoolbuddy \u0026\u0026 cd spoolbuddy\ncurl -O https://raw.githubusercontent.com/maziggy/spoolbuddy/main/docker-compose.yml\ndocker compose up -d\n```\n\nOpen **http://localhost:3000** in your browser.\n\n\u003e **Multi-architecture support:** Pre-built images are available for `linux/amd64` and `linux/arm64` (Raspberry Pi 4/5).\n\n### Manual Installation\n\n```bash\n# Clone repository\ngit clone https://github.com/maziggy/spoolbuddy.git\ncd spoolbuddy\n\n# Backend setup\ncd backend\npython3 -m venv venv\nsource venv/bin/activate  # Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n\n# Run server\npython main.py\n```\n\nOpen **http://localhost:3000** in your browser.\n\n### Frontend Development\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n### Firmware\n\nSpoolBuddy uses two firmware components:\n\n| Device | Format | Description |\n|--------|--------|-------------|\n| **Raspberry Pi Pico** | `.uf2` (Arduino) | NFC bridge controller |\n| **CrowPanel 7.0\"** | `.bin` (Rust/ESP-IDF) | Display, scale, WiFi |\n\n**Quick flash (pre-built):**\n```bash\n# Pico: Hold BOOTSEL, plug USB, drag pico-nfc-bridge.uf2 to RPI-RP2 drive\n\n# CrowPanel:\ncargo install espflash\nespflash flash --monitor spoolbuddy-firmware.bin\n```\n\nSee the [Firmware Guide](https://wiki.spoolbuddy.cool/getting-started/firmware/) for detailed instructions.\n\n---\n\n## 🛠️ Tech Stack\n\n| Component | Technology |\n|-----------|------------|\n| Backend | Python, FastAPI, SQLite |\n| Frontend | Preact, TypeScript, Tailwind CSS |\n| Display Firmware | Rust, ESP-IDF, LVGL |\n| NFC Bridge | Arduino (Pico) |\n| Communication | MQTT (TLS), WebSocket, REST |\n\n---\n\n## 🖨️ Supported Printers\n\n| Series | Models |\n|--------|--------|\n| H2 | H2D, H2S |\n| X1 | X1, X1 Carbon |\n| P1 | P1P, P1S, P2S |\n| A1 | A1, A1 Mini |\n\n---\n\n## 📚 Documentation\n\nFull documentation available at **[wiki.spoolbuddy.cool](https://wiki.spoolbuddy.cool)**:\n\n- [Getting Started](https://wiki.spoolbuddy.cool/getting-started/) — Hardware setup and installation\n- [Hardware Required](https://wiki.spoolbuddy.cool/getting-started/hardware-required/) — Bill of materials\n- [Firmware](https://wiki.spoolbuddy.cool/getting-started/firmware/) — Flashing instructions\n- [Software](https://wiki.spoolbuddy.cool/getting-started/software/) — Backend setup\n\n---\n\n## 🤝 Contributing\n\nContributions welcome! Here's how to help:\n\n1. **Test** — Report issues with your printer model\n2. **Hardware** — Improve enclosure designs\n3. **Code** — Submit PRs for bugs or features\n4. **Document** — Improve guides and documentation\n\n```bash\n# Development setup\ngit clone https://github.com/maziggy/spoolbuddy.git\ncd spoolbuddy\n\n# Backend\ncd backend\npython3 -m venv venv \u0026\u0026 source venv/bin/activate\npip install -r requirements.txt\npython main.py\n\n# Frontend (separate terminal)\ncd frontend \u0026\u0026 npm install \u0026\u0026 npm run dev\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n---\n\n## 📄 License\n\nMIT License — see [LICENSE](LICENSE) for details.\n\n---\n\n## 🙏 Acknowledgments\n\n- [SpoolEase](https://github.com/yanshay/SpoolEase) by yanshay — Original embedded system inspiration\n- [Bambu Lab](https://bambulab.com/) for amazing printers\n- [OpenSpool](https://github.com/spuder/OpenSpool) for NFC tag format inspiration\n- [Bambuddy](https://github.com/maziggy/bambuddy) for printer integration patterns\n- The reverse engineering community for protocol documentation\n\n---\n\nIf you like SpoolBuddy and want to support it, you can \u003ca href=\"https://ko-fi.com/maziggy\" target=_blank\u003ebuy Martin a coffee\u003c/a\u003e.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ for the 3D printing community\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://discord.gg/3XFdHBkF\"\u003eJoin our Discord\u003c/a\u003e •\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/issues\"\u003eReport Bug\u003c/a\u003e •\n  \u003ca href=\"https://github.com/maziggy/spoolbuddy/issues\"\u003eRequest Feature\u003c/a\u003e •\n  \u003ca href=\"https://wiki.spoolbuddy.cool\"\u003eDocumentation\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaziggy%2Fspoolbuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaziggy%2Fspoolbuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaziggy%2Fspoolbuddy/lists"}