Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Aug 08:15
· 11 commits to master since this release

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 print commands 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:

  1. Download the archive for your platform.

  2. Extract it anywhere.

  3. Run the installer:

    • Linux: ./install.sh
    • macOS: ./install.sh or double-click install.command
    • Windows: double-click install.bat or run .\install.ps1 in PowerShell
  4. 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:

Special thanks to