v0.1.6b10 ### New Features - **Unified Print Modal** - Consolidated three separate modals into one unified component: - Single modal handles reprint, add-to-queue, and edit-queue-item operations - Consistent UI/UX across all print operations - Reduced code duplication (~1300 LOC removed) - **Multi-Printer Selection** - Send prints or queue items to multiple printers at once: - Checkbox selection for multiple printers in reprint and add-to-queue modes - "Select all" / "Clear" buttons for quick selection - Progress indicator during multi-printer submission - Ideal for print farms with identical filament configurations - **Per-Printer AMS Mapping** - Configure filament slot mapping individually for each printer: - Enable "Custom mapping" checkbox under each selected printer - Auto-configure uses RFID data to match filaments automatically - Manual override for specific slot assignments - Match status indicator shows exact/partial/missing matches - Re-read button to refresh printer's loaded filaments - New setting in Settings → Filament to expand custom mapping by default - **Enhanced Add-to-Queue** - Now includes plate selection and print options: - Configure all print settings upfront instead of editing afterward - Filament mapping with manual override capability - **Print from File Manager** - Full print configuration when printing from library files: - Plate selection for multi-plate 3MF files with thumbnails - Filament slot mapping with comparison to loaded filaments - All print options (bed levelling, flow calibration, etc.) - **File Manager Print Button** - Print directly from multi-selection toolbar: - "Print" button appears when exactly one sliced file is selected - Opens full PrintModal with plate selection and print options - "Add to Queue" button now uses Clock icon for clarity - **Multiple Embedded Camera Viewers** - Open camera streams for multiple printers simultaneously in embedded mode: - Each viewer has its own remembered position and size - New viewers are automatically offset to prevent stacking - Printer-specific persistence in localStorage - **Navigation persistence** - Open cameras stay open when navigating away and back to Printers page - **Application Log Viewer** - View and filter application logs in real-time from System Information page: - Start/Stop live streaming with 2-second auto-refresh - Filter by log level (DEBUG, INFO, WARNING, ERROR) - Text search across messages and logger names - Clear logs with one click - Expandable multi-line log entries (stack traces, etc.) - Auto-scroll to follow new entries - **Deferred archive creation** - Queue items from File Manager no longer create archives upfront: - Queue items store `library_file_id` directly - Archives are created automatically when prints start - Reduces clutter in Archives from unprinted queued files - Queue displays library file name, thumbnail, and print time - **Expandable Color Picker** - Configure AMS Slot modal now has an expandable color palette: - 8 basic colors shown by default (White, Black, Red, Blue, Green, Yellow, Orange, Gray) - Click "+" to expand 24 additional colors (Cyan, Magenta, Purple, Pink, Brown, Beige, Navy, Teal, Lime, Gold, Silver, Maroon, Olive, Coral, Salmon, Turquoise, Violet, Indigo, Chocolate, Tan, Slate, Charcoal, Ivory, Cream) - Click "-" to collapse back to basic colors - **File Manager Sorting** - Printer file manager now has sorting options: - Sort by name (A-Z or Z-A) - Sort by size (smallest or largest first) - Sort by date (oldest or newest first) - Directories always sorted first - **Camera View Mode Setting** - Choose how camera streams open: - "New Window" (default): Opens camera in a separate browser window - "Embedded": Shows camera as a floating overlay on the main screen - Embedded viewer is draggable and resizable with persistent position/size - Configure in Settings → General → Camera section - **File Manager Rename** - Rename files and folders directly in File Manager: - Right-click context menu "Rename" option for files and folders - Inline rename button in list view - Validates filenames (no path separators allowed) - **File Manager Mobile Accessibility** - Improved touch device support: - Three-dot menu button always visible on mobile (hover-only on desktop) - Selection checkbox always visible on mobile devices - Better PWA experience for file management ### Changed - **Edit Queue Item modal** - Single printer selection only (reassigns item, doesn't duplicate) - **Edit Queue Item button** - Changed from "Print to X Printers" to "Save" ### Fixed - **File Manager folder navigation** - Fixed bug where opening a folder would briefly show files then jump back to root: - Removed `selectedFolderId` from useEffect dependency array that was causing a reset loop - Folder navigation now works correctly without resetting - **Queue items with library files** - Fixed 500 errors when listing/updating queue items from File Manager - **User preset AMS configuration** - Fixed user presets (inheriting from Bambu presets) showing empty fields in Bambu Studio after configuration: - Now correctly derives `tray_info_idx` from the preset's `base_id` when `filament_id` is null - User presets that inherit from Bambu presets (e.g., "# Overture Matte PLA @BBL H2D") now work correctly - **Faster AMS slot updates** - Frontend now updates immediately after configuring AMS slots: - Added WebSocket broadcast to AMS change callback for instant UI updates - Removed unnecessary delayed refetch that was causing slow updates
Bambuddy
Self-hosted print archive and management system for Bambu Lab 3D printers
Features • Screenshots • Quick Start • Documentation • Discord • Contributing
Testers Needed! I only have X1C and H2D devices. Help make Bambuddy work with all Bambu Lab printers by reporting your experience!
Why Bambuddy?
- Own your data — All print history stored locally, no cloud dependency
- Works offline — Uses Developer Mode for direct printer control via local network
- Full automation — Schedule prints, auto power-off, get notified when done
- Multi-printer support — Manage your entire print farm from one interface
✨ Features
📦 Print Archive
📊 Monitoring & Control
⏰ Scheduling & Automation
📁 File Manager (Library)
📁 Projects
|
🔔 Notifications
🔧 Integrations
🖨️ Virtual Printer
🛠️ Maintenance & Support
|
Plus: Customizable themes (style, background, accent) • Mobile responsive • Keyboard shortcuts • Multi-language (EN/DE) • Auto updates • Database backup/restore • System info dashboard
📸 Screenshots
Click to expand screenshots
Real-time printer monitoring with AMS status
Print archive with 3D preview and project assignment
Re-print with AMS filament mapping preview
Built-in timelapse editor with trim, speed, and music
Group related prints into projects
Project detail view with assigned archives
Project timeline and print history
Print scheduling and queue management
Schedule prints for specific date and time
Customizable statistics dashboard
Maintenance tracking per printer
Configure maintenance types and intervals
Pressure advance (K-factor) profiles
Edit K-factor profile settings
General configuration and integrations
Smart plug control and energy monitoring
Multi-provider notification system
API keys and webhook endpoints
Virtual printer appears in Bambu Studio/Orca Slicer
🚀 Quick Start
Requirements
- Python 3.10+ (3.11/3.12 recommended)
- Bambu Lab printer with Developer Mode enabled (see below)
- Same local network as printer
Installation
Docker (Recommended)
Option A: Pre-built image (fastest)
mkdir bambuddy && cd bambuddy
curl -O https://raw.githubusercontent.com/maziggy/bambuddy/main/docker-compose.yml
docker compose up -d
Option B: Build from source
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
docker compose up -d --build
Open http://localhost:8000 in your browser.
Multi-architecture support: Pre-built images are available for
linux/amd64andlinux/arm64(Raspberry Pi 4/5).
macOS/Windows users: Docker Desktop doesn't support
network_mode: host. Edit docker-compose.yml: comment outnetwork_mode: hostand uncomment theports:section. Printer discovery won't work - add printers manually by IP.
Linux users: If you get "permission denied" errors, either prefix commands with
sudo(e.g.,sudo docker compose up -d) or add your user to the docker group.
Docker Configuration & Commands
Environment Variables:
| Variable | Default | Description |
|---|---|---|
TZ |
UTC |
Your timezone (e.g., America/New_York, Europe/Berlin) |
PORT |
8000 |
Port BamBuddy runs on (with host networking mode) |
DEBUG |
false |
Enable debug logging |
LOG_LEVEL |
INFO |
Log level: DEBUG, INFO, WARNING, ERROR |
Data Persistence:
| Volume | Purpose |
|---|---|
bambuddy.db |
SQLite database with all your print data |
archive/ |
Archived 3MF files and thumbnails |
logs/ |
Application logs |
Updating:
# Pre-built image: just pull the latest
docker compose pull && docker compose up -d
# From source: rebuild after pulling changes
cd bambuddy && git pull && docker compose up -d --build
Useful Commands:
# View logs
docker compose logs -f
# Stop/Start
docker compose down
docker compose up -d
# Shell access
docker compose exec bambuddy /bin/bash
Custom Port:
ports:
- "3000:8000" # Access on port 3000
Reverse Proxy (Nginx):
server {
listen 443 ssl http2;
server_name bambuddy.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
}
}
Note: WebSocket support is required for real-time printer updates.
Network Mode Host (required for printer discovery and camera streaming):
services:
bambuddy:
build: .
network_mode: host
Note: Docker's default bridge networking cannot receive SSDP multicast packets for automatic printer discovery. When using
network_mode: host, Bambuddy can discover printers via subnet scanning - enter your network range (e.g.,192.168.1.0/24) in the Add Printer dialog.
Manual Installation
# Clone and setup
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run
uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
Open http://localhost:8000 and add your printer!
Need detailed instructions? See the Installation Guide
Enabling Developer Mode
Developer Mode allows third-party software like Bambuddy to control your printer over the local network.
- On printer: Settings → Network → LAN Only Mode → Enable
- Enable Developer Mode (appears after LAN Only Mode is enabled)
- Note the Access Code displayed
- Find IP address in network settings
- Find Serial Number in device info
Note: Developer Mode disables cloud features but provides full local control. Standard LAN Mode (without Developer Mode) only allows read-only monitoring.
📚 Documentation
Full documentation available at wiki.bambuddy.cool:
- Installation — All installation methods
- Getting Started — First printer setup
- Features — Detailed feature guides
- Troubleshooting — Common issues & solutions
- API Reference — REST API documentation
🖨️ Supported Printers
| Series | Models |
|---|---|
| H2 | H2D, H2S |
| X1 | X1, X1 Carbon |
| P1 | P1P, P1S, P2S |
| A1 | A1, A1 Mini |
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Backend | Python, FastAPI, SQLAlchemy |
| Frontend | React, TypeScript, Tailwind CSS |
| Database | SQLite |
| 3D Viewer | Three.js |
| Communication | MQTT (TLS), FTPS |
🤝 Contributing
Contributions welcome! Here's how to help:
- Test — Report issues with your printer model
- Translate — Add new languages
- Code — Submit PRs for bugs or features
- Document — Improve wiki and guides
# Development setup
git clone https://github.com/maziggy/bambuddy.git
cd bambuddy
# Backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
DEBUG=true uvicorn backend.app.main:app --reload
# Frontend (separate terminal)
cd frontend && npm install && npm run dev
See CONTRIBUTING.md for guidelines.
📄 License
MIT License — see LICENSE for details.
🙏 Acknowledgments
- Bambu Lab for amazing printers
- The reverse engineering community for protocol documentation
- All testers and contributors
Made with ❤️ for the 3D printing community
Join our Discord •
Report Bug •
Request Feature •
Documentation





