mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 05:35:30 +02:00
[GH-ISSUE #708] [Feature]: Differentiate Print vs Send behavior on Proxy mode virtual printers #472
Labels
No labels
A1
automated
automated
bug
bug
Closed due to inactivity
contrib
dependencies
dependencies
duplicate
enhancement
feedback
hold
invalid
Notes
P1S
pull-request
security
security
ThumbsUp
user-report
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/bambuddy#472
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @nerdspar on GitHub (Mar 14, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/708
Originally assigned to: @maziggy on GitHub.
Problem or Use Case
To support both immediate printing and queue-based dispatch from the slicer, I currently have to maintain two separate virtual printers, one in Proxy mode and one in Print Queue mode (with Auto-dispatch disabled), and manually switch between them depending on my intent. The slicer already has a natural way to express this distinction: Print means "start now" and Send means "stage it for later," but there's no way to leverage that on a single virtual printer today.
Proposed Solution
If possible, add a hybrid behavior option to Proxy mode virtual printers where:
This would eliminate the two-virtual-printer workaround and make the Print vs Send distinction meaningful and useful for proxy users.
Alternatives Considered
No response
Feature Category
Print Queue & Scheduling
Priority
Would improve my workflow
Mockups or Examples
No response
Contribution
Checklist
@maziggy commented on GitHub (Apr 4, 2026):
I love the concept of unifying proxy and server modes so the slicer always has the full printer experience (AMS data, status, etc.) and the user decides at print time whether to send directly or queue via Bambuddy.
I did some protocol analysis to see if this is feasible, and unfortunately there's a fundamental timing problem that makes this very difficult to implement cleanly.
What we found:
The slicer uses the same FTP flow for both Print and Send — the only difference is that Print sends an MQTT project_file command after the FTP upload completes, while Send does not. There's no signal before or during the FTP upload that tells us the user's intent.
Why this matters:
In proxy mode, FTP is a transparent TCP passthrough (end-to-end encrypted between slicer and printer). Bambuddy can't intercept or read the file. In server mode, Bambuddy runs its own FTP server and receives the file directly. Both can't run on the same IP and port simultaneously.
We considered:
Current workaround:
Setting up two virtual printers (one proxy, one queue mode) is currently the way to get both behaviors. I know it's not ideal, but the protocol unfortunately doesn't give us a clean way to do this with a single VP.
I'm keeping this issue open since it's a great concept. If anyone has ideas on alternative approaches, I'm all ears!
@leoshusar commented on GitHub (Apr 4, 2026):
I'm also following this issue, this is pretty much the only reason I'm not using virtual printers. I sometimes even forget to switch print plates, remembering to also select a correct printer based on if I want to print or archive/queue would be even worse for me :)
Just an idea - what about some kind of "emulator" virtual printer? Bambuddy would receive all the data (without proxying) and then upload them to the printer if the user pressed "print".
Basically adding a "print" button support to "Immediate" and "Print Queue" virtual printers, or creating separate "Immediate Emulator" or "Print Queue Emulator" virtual printers (I don't use the print queue, I just want to upload and archive when I press "send"). Do you think this would be possible?
It's not exactly what this issue is about (using proxy mode), but in the end the effect should be the same.
This would also solve my other issue. I'm using the auto archive by downloading 3mf from the printer, but I find it quite unreliable on my A1 mini for bigger 3mf files.
Just now when I was printing a slightly bigger 3mf (6.2 MB), Bambuddy couldn't download it from the printer:

Logs say it was trying for 3 minutes straight while receiving HTTP 425 and then it failed.
Logs
It would be great to avoid first uploading to the "not very fast" ESP32 and then immediately downloading from it, and instead upload to Bambuddy and then upload only once to the printer.
@maziggy commented on GitHub (Apr 4, 2026):
That's a known issue for the A1, it's FTP related.
Exactly that was the idea, but it's not simply "send the file to the printer". We would need to emulate the slicer <-> printer communication EXACTLY. Since they can differ from model to model, this would need very intensive reverse engineering and would presumably be very fragile and intensive to errros.
So currently I have no idea how to get this implemented in a proper way.
@leoshusar commented on GitHub (Apr 4, 2026):
Ohh, I didn't realize it's not about just the MQTT project_file command, but also about everything else, like AMS etc.
Okay, here's a crazy idea - what about slicer-side support, if nothing better comes up? Maybe OrcaSlicer devs would be willing to merge some Bambuddy support.
I'm thinking just some checkbox in Bambu printer settings which would send a custom(?) MQTT command before the FTP upload, then Bambuddy could switch the FTP handling properly. In this particular idea I'm not sure if a 3rd party setting fits the "basic" printer settings though.
@maziggy commented on GitHub (Apr 5, 2026):
We need to support both slicers, since Bambu Studio is the most used slicer.