Skip to content

v0.6.0 Multi-Printer and LAN+DEV Mode Support

Choose a tag to compare

@Aptimex Aptimex released this 09 May 21:13
· 6 commits to main since this release
8a23e31

New Features

This is a big update. The backend server and frontend have been updated with multi-printer support and support for printers that use the newer LAN+DEV protocol mode.

Multi-Printer Support

The server now supports managing multiple Bambu printers from a single instance. Configure them in configs/bambu_config.json (see bambu_config.example.json). The client shows a printer selector dropdown at the top of the Scan and Apply pages when multiple printers are configured.

Config File Changes

Replaced the Python bambu_config.py with a more versatile bambu_config.json file. The code falls back to the legacy Python config if the JSON file is not found, to provide temporary backwards-compatibility. This behavior will be removed in the future. Please update your configs to use the new JSON file to avoid future issues.

Experimental LAN+DEV Mode Support

I couldn't find any existing libraries that support the LAN Only + Developer (LAN+DEV) mode that allows 3rd-party communication with newer printers/firmwares (with Bambu's new "security" restrictions). So I attempted to implement my own code for that. This is highly experimental, please report any issues you have with it. You MUST specify "new_dev_mode": true in the bambu_config.json file for printers that use this mode. Old printers using the legacy LAN-Only mode must have "new_dev_mode": false instead.

Printer Name in Slot Tags

For multi-printer support, slot QR/NFC tags now support an optional third field for the printer name: SLOT|<ids>|<printer_name>. When a slot tag with a printer name is scanned, the client automatically switches to that printer before applying filament to the slot. Both ids and printer_name are optional, but at least one must be present for the tag to have any effect. The printer name must exactly match a name configured in bambu_config.json.

In-Page Debug Console

A collapsible debug panel is now injected at the bottom of every page on the website. It captures console.log, warn, error, and info output from the site's Javascript, plus unhandled errors and promise rejections, making it MUCH easier to diagnose issues on mobile devices. Click the "Debug" button at the bottom-right of a page to toggle the panel.

New API Endpoints

These new API endpoints implement the multi-printer features on the server:

  • GET /printers: List all configured printer names
  • GET /activePrinter: Returns the name of the currently active printer
  • POST /activePrinter: Switches the active printer

Server Changes

  • Dockerfile: Certificates moved to /certs/ to avoid being shadowed by volume mounts. Now defaults to HTTP mode to make it easier for new users to test out the project.
  • docker-compose.yml: Volume mount changed from just ./configs to the full project directory so code changes take effect with a simple container restart, instead of requiring full rebuilding.

Client Changes

  • Fixed bug where calls to vibration libraries would crash the Javascript in some browsers
  • Fixed bug where NFC tags with URL targets wouldn't correctly trigger navigation to the Apply page when they should
  • Fixed some status/feedback messages not disappearing when they should
  • Settings page shows an available printer list
  • Settings Save/Clear buttons now show a brief toast confirmation message

Documentation

  • README.md: Completely overhauled to make it better organized and easier to get started.
  • bambu-server/HTTPS.md: New dedicated guide for setting up legitimate HTTPS certificates for the backend with Caddy and DuckDNS

Breaking Changes

The bambu_config.json format replaces the old bambu_config.py. A bambu_config.example.json is provided in the configs directory. If you were using bambu_config.py, the server will still start and read it, but the JSON format is now the default and recommended configuration method. Multi-printer setups must use the JSON format. Support for existing bambu_config.py file will be removed in the future.