BambuStudio-SnapmakerU1-Compat -remote version is ready

This is the remote version of BambuStudio-SnapmakerU1-Compat.

Used in conjunction with Tailscale, it enables remote printing. The GitHub repository is: VitasGuo/BambuStudio-SnapmakerU1-Compat at tailscale-remote-print

New Features:
Remote Printing (Tailscale Cascaded Architecture, v5.46.0+)

Safely connect to your home printer from the public internet — connect to your own printer from anywhere, with full data control (WireGuard end-to-end encryption, no cloud dependency, no third-party servers).

Adopts a cascaded architecture (two Bridges): The remote machine also runs a local Bridge (A), which treats your home Bridge (B) as the “printer.” Confirmation pop-ups, slicing, and AI Lab features are all processed locally on the remote machine. Your home computer acts solely as a pure data passthrough, providing a remote experience identical to being at home.

Remote BambuStudio ──> Remote Machine Bridge A ──Tailscale Tunnel (Encrypted)──> Home Computer Bridge B ──LAN──> Snapmaker U1

  Remote Slicing Point Print → A triggers local confirmation box (no pop-up on home desktop)
  → Remote machine confirms → A passes through B → Printing starts

Configuration Steps (Recommended: Tailscale Serve, Zero Firewall Configuration):

  1. Install Tailscale on both the home computer and external devices, and log in with the same account (the free version is sufficient).
  2. Run the following command once on the home computer (no admin rights required; it takes effect automatically after restart/reconnection; the tailnet must have HTTPS enabled): tailscale serve --bg http://127.0.0.1:13628 — The tailscaled service proxies traffic on the local loopback and automatically issues an HTTPS certificate. Windows Firewall does not need to allow node.exe (traps.md #154).
  3. Install this compatibility package v5.46.0+ on the external device (pure local installation, no mode selection required).
  4. Open the WebUI on the external device (http://127.0.0.1:13628 Gear Settings) → Connection → Select Remote Bridge → Enter the home serve address (e.g., https://vitasguo-pc.tailxxxx.ts.net; port 443 does not need to be specified) → Click Test to verify it shows “reachable” → Save.
  5. Slice → Print: Upload returns immediately. A filament mapping confirmation box pops up on the remote machine (identical to being at home). Printing starts after confirmation.

Working Mechanism:

  • Cascaded Passthrough: A treats B as a Moonraker endpoint (HTTP + WebSocket fully transparent forwarding). The printer API key is stored only on side B; A does not hold any printer credentials. The BRIDGE_CONFIG_DIR/BRIDGE_PORT environment variables support local multi-instance debugging.

  • Confirmation Interaction on A: Pop-ups and filament mapping are handled locally on the remote machine initiating the request, leaving the home computer unattended and unaffected.

  • Network Efficiency (v5.47.0+): Keep-alive connection pool (eliminates repeated TLS handshakes for cross-network requests, the main fix for faster panel refresh), gzip dual-layer compression (reduces cross-network traffic for file lists/G-code text by ~70-80%, automatically skips already compressed content like JPEGs), large file streaming forwarding (tested complete download of 146MB G-code, zero full-memory usage on both ends).

  • Stability Guarantees (v5.47.0+): WebSocket 30s ping keep-alive (prevents idle disconnection due to Tailscale/NAT), automatic retry for transient network errors during upload (Moonraker uploads are idempotent, so retries are safe), unlimited upload time (completes naturally based on file size × network speed).

  • Large File Contingency: Home internet upload speed is the hard constraint (uploading a 100MB G-code file takes approximately 3 minutes at 5Mbps upload speed, which is the physical limit). In case of cascaded link anomalies, use the fallback channel — access https://<machine>.ts.net/fluidd directly via the remote browser to operate the WebUI/Fluidd, bypassing the cascade.

  • Serve Proxy Identification (v5.44.1+): The proxy connection source for tailscale serve is loopback, but it carries X-Forwarded-For (the real client’s tailnet IP) — loopback + XFF is treated as a remote request (traps.md #155); judging solely by socket address would lead to false positives.

  • Trust Model: Relies on Tailscale device-level authentication (all devices within the tailnet are your own). Serve is only reachable within the tailnet (not Funnel, does not traverse the public internet). Bridge does not add extra tokens.

    If you only want to use it within the local area network, you can continue using the original version.
    Snapmaker U1 BambuStudio Compatibility Package - U1 Tool Changer - Snapmaker: where creation happens

1 Like