Bambuddy
Self-hosted command center for Bambu Lab 3D printers, no cloud required
Alternative to: bambu handy, bambu cloud

v0.2.3b1
2026-04-02Bambuddy v0.2.3b1
Highlights
SpoolBuddy — First Official Beta — This release marks the first official beta of SpoolBuddy, a dedicated Raspberry Pi-powered hardware companion for Bambuddy. SpoolBuddy is a 7” touchscreen kiosk with an NFC reader and load cell that identifies your filament spools instantly — tap any tagged spool to see its material, color, remaining weight, and usage history. Write your own NFC tags to track filament from any brand, not just Bambu Lab. Build yours today: SpoolBuddy Docs.
New Features
- Queue Timeline View (#823) — Production schedule view showing estimated print completion times, grouped by hour, with live progress bars. Filter by All/Printing/Queued and navigate between days.
- Staggered Batch Start for Multi-Printer Jobs (#752) — Stagger print starts across multiple printers to avoid simultaneous bed heating power spikes. Configure group size and interval in the Print/Schedule dialog or set defaults in Settings → Queue.
- Plate-Clear Confirmation Setting (#752) — New toggle in Settings → Queue to skip plate-clear confirmation for farm workflows where plates are verified physically.
- Per-User Statistics Filtering (#730) — Admins can filter the Statistics page by user to see individual prints, filament usage, and costs.
- Bulk Printer Actions (#825) — Select multiple printer cards and apply bulk Stop, Pause, Resume, Clear Notifications, or Clear Bed. Select by state or location.
- Prefer Lowest Remaining Filament (#805) — Optional setting to prefer AMS spools with the least remaining filament during auto-matching, helping consume partial spools first.
- REST/Webhook Smart Plug Type (#472) — New generic HTTP smart plug type for openHAB, ioBroker, FHEM, Node-RED, etc. Configure ON/OFF URLs, methods, headers, and optional status polling.
- Configurable Default Print Options (#858) — Set default print options (bed levelling, flow calibration, vibration calibration, timelapse, etc.) in Settings → Workflow.
- Batch Print Quantity (#342) — Print multiple copies of a file in one step with a quantity field in the Print/Schedule dialog. First copy prints immediately, remaining copies are queued as a batch.
- GitHub Backup: Spool Inventory & Print Archives (#870) — Optional backup of spool inventory and print archive metadata to GitHub.
Improved
- Standardized Webhook Notification Payloads (#871) — Webhooks now include structured event data fields (event, printer, filename, duration, etc.) alongside existing title/message fields for easier automation with n8n, Node-RED, Home Assistant, etc.
- Developer Mode Detection for A1/P1 Printers — Printers without the fun MQTT field now have developer mode detected via a probe command on reconnect.
- Queue Page Visual Refresh — Compact stats bar, color-coded left borders, collapsible history section, and condensed single-line history rows.
- SpoolBuddy Kiosk Performance Optimizations — Reduced idle CPU from ~3.3 to ~0.9 on Raspberry Pi. Optimized CSS animations, WebSocket re-renders, Chromium flags, and masked stripped services.
- SpoolBuddy Inventory Page — New kiosk page with spool grid, search, filter pills, and tap-to-detail view with fill bars, weight breakdown, and K-profiles.
- SpoolBuddy Auto-Navigate on Tag Scan — Automatically navigates to dashboard and wakes screen when a tag is scanned on any page.
- SpoolBuddy Swipe to Switch Printers — Left/right swipe cycles through online printers on the touchscreen.
Fixed
- Bed Cooled Notification Never Firing (#872) — Replaced polling-based monitor with event-driven approach for firmware that stops sending bed temperature after print completion.
- Filament Color and Subtype Inconsistencies (#857) — Fixed AMS popup showing generic color names instead of Bambu-specific names, missing Silk+/Tough+ subtypes, and misclassified gradient/dual-color filaments.
- External Spool Print Fails on Printers With AMS (#854, #859) — Fixed use_ams flag and ams_id mapping for external spool printing on printers with empty or no AMS.
- Wrong Filament Mapping (#851) — Fixed filament mapping issues. Contributed by @behrinml.
- External Folder Scan 500 on 3MF Files (#846) — Fixed crash from raw thumbnail bytes in 3MF metadata not being cleaned before JSON serialization.
- Archives Capped at 50 Items (#843) — Removed hardcoded 50-item limit, added client-side pagination with configurable page sizes.
- Filament Usage Not Recorded When Auto-Archive Disabled — Filament tracking now runs before the archive check so usage is always recorded.
- AMS History Cleanup Crash — Fixed naive/aware datetime mismatch in periodic AMS sensor history cleanup.
- SpoolBuddy Status Bar Not Updating on Printer Switch — Fixed stale warnings showing from previously selected printer after switching.
- SpoolBuddy “Add to Inventory” Failed Silently — Fixed float/int weight mismatch and added error feedback.
- SpoolBuddy Dashboard Crash on Null Spool Fields — Fixed TypeError from null subtype/brand/rgba fields.
- Plate Thumbnails 401 in Print Modal — Fixed auth token missing on multi-plate thumbnail requests.
- Sidebar Bottom Icons Cut Off With Smart Plugs (#862) — Fixed footer overflow when smart plug buttons were added.
- Native Install Misdetected as Docker in LXC Containers — Fixed detection to use /run/systemd/container instead of .git/ presence.
- SpoolBuddy Kiosk Display Blanking and Crashes — Removed aggressive Chromium memory/GPU flags causing instability on Pi.
- Database Connection Pool Exhaustion on Large Printer Farms — Increased pool from 30 to 220 connections.
- Fix WebSocket crash on printers without fun field (#873) - Race condition: dev mode probe released GIL between raw_data overwrite and vt_tray list restoration, letting event loop iterate dict keys as strings. Affects A1, P1, X1Plus. Fixed by normalizing vt_tray dict→list before assignment and restoring preserved fields before the probe.
Security
- Update aiohttp, cryptography, and Pygments for CVE fixes
- Token-Based Auth for Media Endpoints — Camera streams, snapshots, thumbnails, and timelapse videos now require a stream token when authentication is enabled.
Contributors
Thank you to the contributors who helped make this release possible:
- @Keybored02 — Missing spool assignment notifications, mid-print spool reassignment tracking, SpoolBuddy init & diagnostic improvements (#789, #787, #814)
- @behrinml — Filament mapping fix (#851)