v2.0.0
What's new
The plugin now supports many features that were previously exclusive to the official plugin. Existing features have also been improved and are now more reliable.
Printing without Developer Mode
Originally, I expected the plugin to be used exclusively in Developer Mode, and I had no intention of reverse-engineering how the official plugin signs requests with its private key. Thanks to @danielwoz, that has now changed. It is possible to use the printer outside of Developer Mode and even communicate with it through the cloud just like the official plugin does. At the same time, you still remain in full control of your privacy.
This requires Bambu's private slicer credentials (slicer_cert.pem,
slicer_key.pem, slicer_crl.pem). This project does not ship them, will
not give them out, and gives no instructions for obtaining them. You supply
them yourself, and it is on you to make sure your use complies with the
applicable terms and law. New settings slicer_cert_pem, slicer_key_pem and
slicer_crl_pem let you point at them from anywhere.
When the keys are provided:
- The plugin signs
printcommands and installs its app certificate on the
printer, the same way the official plugin does. - Cloud print dispatch works: you can start a job on a printer that is not on
your local network at all.
You stay in control of what leaves your network. The new cloud_print
setting has three modes:
cloud_only(default) — a cloud print record is created (that is what buys
you print history and MakerWorld ratings), but the model itself is still sent
to the printer over your LAN whenever it is reachable. It is uploaded to
Bambu only when the printer can only be reached through the cloud.try_lan_first— print entirely over the LAN with no cloud record, falling
back to a cloud print only if the local send fails.lan_only— always local, never upload. If the local send fails, the print
fails.
Plus cloud_hide_history = 1 to hide cloud print history in Bambu Studio,
which keeps the home page consistent when you print in the pure-LAN modes.
Print history and MakerWorld
- Print history on the Bambu Studio home page: the task list, per-task
details and plate thumbnails are all served now. - MakerWorld: reading and submitting model ratings (including rating
photos), personal recommendations and account preferences. - Signed-in web pages inside the slicer. Print-history details and
MakerWorld pages opened in Studio's built-in browser now open as your logged-in
account instead of bouncing you to the sign-in screen. - Account binding over the local network was rewritten to match the
official flow end to end, so pairing and unpairing a printer from the slicer
behaves like it does with the stock plugin. - Filament Manager now also supports the bulk AMS spool sync introduced in
Bambu Studio 02.08.01. - Beta firmware entries are hidden from the firmware list unless your Bambu
account has opted into beta firmware, so the slicer stops offering
unsolicited beta updates.
All of this needs a cloud sign-in, and the print history list also needs
block_cloud = 0 — the default 1 keeps background cloud connections blocked.
Records themselves are written for cloud prints only, so a Developer-Mode LAN
print still leaves no trace in history or on MakerWorld.
Platforms and slicers
- New slicer version supported: up to Bambu Studio
02.08.01.xx. - macOS builds are now self-contained — libcurl and OpenSSL are linked in,
so nothing has to be installed from Homebrew for the plugin to run. The
installer also checks for the tools it needs and tells you what is missing. - Camera live view on macOS now works. The missing piece macOS Studio needs
for video has been implemented from scratch. Considered experimental until
more people confirm it on real hardware. - Windows ARM64 builds (experimental, no video yet).
Connection reliability
Mostly aimed at the P1 series, which accepts very few connections at a time and
was the source of the "first launch fails, second works" reports:
- The first failed connection attempt used to cost up to half a minute because
of exponential backoff. Retries are now a flat one second, backing off only
if the printer stays unreachable. - The keepalive interval was lowered so the printer notices and reaps a stale
session from a previous run in about 30 seconds instead of a minute and a half. - The plugin now disconnects cleanly when the slicer closes or switches
printers, so it stops leaving dead sessions behind in the first place. - Fixed a race condition on connect and a thread/socket leak in printer
discovery. - Connection failures are now logged with the actual system error (on Windows
they used to be reported as "No error"), and every retry is logged with the
time it took — which makes these reports far easier to diagnose.
Other fixes and improvements
- The thumbnail in the Device panel now shows the plate that is actually
printing, instead of always showing the first one. - The device list falls back to a second cloud endpoint when the first one
returns nothing, so your printers show up more reliably after sign-in. - Less noise in the log at the default level.
- Many other bugs are fixed.
Documentation
The reverse-engineering notes were split out of one giant file into a research/ directory.
Installation
The release includes precompiled versions of the plugin for different systems, as well as an installation script, so installation should be very simple:
-
Download the archive for your platform.
-
Extract it anywhere.
-
Run the installer:
- Linux:
./install.sh - macOS:
./install.shor double-clickinstall.command - Windows: double-click
install.bator run.\install.ps1in PowerShell
- Linux:
-
The installer will ask which slicer you want to install the plugin for and handle the rest.
Donations
Please don’t forget that I’ve spent a huge amount of effort — and even money — on this project. I would really appreciate your support: