Bambulab–Spoolman
Overview
Bambulab–Spoolman is a Python backend application with a Flutter frontend that integrates:
- Bambu Lab Cloud
- The Bambu printer local MQTT server
- Spoolman
It monitors 3D printing tasks, retrieves filament usage data, and generates detailed usage reports linked to your spool inventory.
⚠ This project is currently in alpha stage.
It is functional but still under active development, with ongoing improvements in usability and stability.
Features
- Retrieves print task details from Bambu Cloud
- Obtains model weight per filament and filament names from the slicer (Bambu Studio or Orca Slicer)
- Monitors printer status in real time via MQTT
- Integrates with Spoolman to fetch spool data and generate usage reports
- Saves a history of prints
- Supports multicolor printing with AMS Lite
- Tracks print progress to estimate filament usage
- If a print is incomplete, filament usage is scaled according to completion percentage
- Note: Multicolor accuracy on incomplete prints may vary due to layer imbalance and uneven color distribution
Limitations
- Tested only with a Bambu A1 + AMS Lite (other printers may work but are not guaranteed)
- Designed for a single printer setup
- Requires Bambu Cloud access to retrieve model weight and filament usage
- Filaments must be properly mapped in the slicer
- Only works for prints sent from the slicer to the printer
- Prints started from SD card or local-only connections will not provide weight data (this data is not transmitted via local MQTT)
Installation & Usage
Requirements
- Python 3.x
- Required Python libraries:
- paho-mqtt
- requests
- json
- difflib
- re
- configparser
Running the Application
The setup process has been simplified.
Simply run:
python main.py
The application will:
Start the backend
Launch the GUI
Open the web interface at: http://{ip}:2323
First-Time Setup
On first launch:

Open the Settings tab in the GUI.
Enter:
- Spoolman IP address
- Spoolman port
- Printer local IP address
- Bambu Cloud login (email + password)

Save the settings.
Note: If required, a verification code may be sent to your email for Bambu Cloud authentication.

Filament Mapping
After completing the settings:
Go to the Filament Map view.
Map slicer filaments (Bambu Studio / Orca Slicer) to Spoolman spools.

An automated matching algorithm suggests matches based on:
Manual adjustments can be made directly in the GUI.
GUI Overview
The web interface created with Flutter (Port 2323) provides:
- List of recent print tasks
- Real-time terminal output
- Settings management
- Filament mapping interface
- Print history tracking
Running Continuously
main.py must remain running continuously.
For Linux or Raspberry Pi setups, it is recommended to configure it as a system service for automatic startup.
Future Work
- Advanced GUI metrics and print analytics
- Graph generation and visualization tools
- Multi-printer support (filtered by ID)
- Possible slicer integration to avoid dependency on Bambu Cloud
- Improved error handling and stability enhancements
License
GNU General Public License v3.0
29 June 2007
Contributions
Contributions are welcome.
Feel free to submit issues and pull requests.