mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-05-09 08:25:54 +02:00
[GH-ISSUE #675] [Bug]: Virtual Printer in Proxy mode defaults to X1C model — no model dropdown shown during initial creation #445
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
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-maziggy-1#445
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 @PurseChicken on GitHub (Mar 12, 2026).
Original GitHub issue: https://github.com/maziggy/bambuddy/issues/675
Originally assigned to: @maziggy on GitHub.
Bug Description
When creating a new Virtual Printer and selecting Proxy mode, the printer model always defaults to X1C regardless of which destination printer is selected. The model selection dropdown is not displayed when Proxy mode is chosen after initial creation, so there is no way to set the correct model at that time.
For example, if you create a virtual printer in Proxy mode pointing at a P1S, the virtual printer will present itself to the slicer as X1C → P1S instead of the expected P1S → P1S. This causes the slicer to see the wrong printer model.
Root Cause (code-level):
Workaround:
Edit the virtual printer after creation
Switch from Proxy mode to a different mode (e.g., Archive)
The model dropdown now becomes visible — select the correct model (e.g., P1S)
Switch the mode back to Proxy
The virtual printer now correctly shows P1S → P1S
Expected Behavior
When creating a virtual printer in Proxy mode and selecting a destination printer, either:
Auto-matching by default with the ability to override would be ideal if there are use cases where using a different model is required.
Steps to Reproduce
Printer Model
P1S
Bambuddy Version
0.2.3b1
Printer Firmware Version
01.09.01.00
Installation Method
Docker
Operating System
Linux (Other)
Relevant Logs / Support Package
Screenshots
No response
Additional Context
Only tested with a P1S as the destination printer, but the issue likely applies to all non-X1C models since X1C is the hardcoded default in manager.py:77 and is the first entry in the model list.
Suggested fix: When Proxy mode is selected and a target printer is chosen, the backend could auto-set the model by looking up the target printer's model from the database. The relevant code is in settings.py around line 619 — after resolving the target printer, its model could be used to set new_model when mode is "proxy" and no explicit model override was provided.
Checklist
@PurseChicken commented on GitHub (Mar 12, 2026):
It appears this issue was alluded to in the following issue but there does not appear to be a resolution:
https://github.com/maziggy/bambuddy/issues/564
@maziggy commented on GitHub (Mar 12, 2026):
Wrong branch. Please use 0.2.2b3 and upload a support package -> https://wiki.bambuddy.cool/features/system-info/?h=debug#enable-debug-logging
@PurseChicken commented on GitHub (Mar 12, 2026):
I changed to 0.2.2b3. Same issue
@PurseChicken commented on GitHub (Mar 12, 2026):
I added what I believe to be root cause in the initial bug report.
@maziggy commented on GitHub (Mar 12, 2026):
Need a support package.
@PurseChicken commented on GitHub (Mar 12, 2026):
Added to the OP
@maziggy commented on GitHub (Mar 12, 2026):
First of all we need to fix your network setup. The logs are full of network errors.
Also it looks like you don't enabled developer mode on your printers:
This is a requirement.
@PurseChicken commented on GitHub (Mar 12, 2026):
Those items seem totally unrelated to the issue at hand.
Regardless the physical printers are in developer mode and have been / are working with bambuddy without issue.
@maziggy commented on GitHub (Mar 12, 2026):
If MQTT connection isn't working, Bambuddy cannot determine the printer model from MQTT stream.
@PurseChicken commented on GitHub (Mar 12, 2026):
Are you saying that logic does exist in code to detect the printer model today using mqtt?
@maziggy commented on GitHub (Mar 12, 2026):
I'm saying, that debugging a problem on a system that is not running properly, doesn't makes sense at all.
@maziggy commented on GitHub (Mar 12, 2026):
BTW: where does the printer name come from? It shows "P1S (45". That looks odd. Please show me a screenshot with expanded selection.
@PurseChicken commented on GitHub (Mar 12, 2026):
The target printer ip was redacted. It just shows P1S (x.x.x.x). There are two in the drop down list. Both of which are physical printers added to bambuddy:
@maziggy commented on GitHub (Mar 12, 2026):
Since I cannot reproduce the problem: did you try simple names? Or are there any errors in browser console?
@PurseChicken commented on GitHub (Mar 12, 2026):
Define simple names? Is P1S not a simple name?
So you can follow these steps:
And it saves properly as the right printer model type? The upper right of the Proxy Virtual Printer that is created shows the correct source\destination model E.G. P1S<-->P1S
@PurseChicken commented on GitHub (Mar 12, 2026):
Console warning: Multiple instances of Three.js being imported.
No other console errors or warnings when adding the Virtual Printer.
@maziggy commented on GitHub (Mar 12, 2026):
As already said, i cannot reproduce. And it's quite hard for me to debug a system I don't know at all, if you don't provide me the details I asked for. So please send me the screenshot requested.
@maziggy commented on GitHub (Mar 12, 2026):
Wait.....you are talking about the proxy card HEADING! OMG....checked the settings all the time. Didn't get that.
Will fix it tomorrow morning and et you know.
@PurseChicken commented on GitHub (Mar 12, 2026):
Hey man i mean no disrespect, but I literally posted the dropdown screenshot you requested here:
https://github.com/maziggy/bambuddy/issues/675#issuecomment-4048144988
I feel like you are trying to dive into this problem from a troubleshooting perspective (which I can understand) but the problem this bug is showcasing is the fact that it appears your frontend code is hiding the printer selection dropdown when adding a Virtual Printer in proxy mode. When asked specifically if your code looks for \ detects the printer model, the question was not answered thus leading to believe this functionality does not exist.
As I mentioned in the original bug report, it appears the default is hardcoded and because the frontend does not show the selection for printer model to emulate, it defaults to X1C
Digging even deeper, around line 281 in frontend/src/components/VirtualPrinterCard.tsx:
The frontend explicitly checks f!=="proxy" — if the mode is proxy, the entire model section (with the "Printer Model" title and dropdown) is not rendered at all. Since it's never rendered, no model value is sent to the backend, and the X1C default sticks.
@PurseChicken commented on GitHub (Mar 12, 2026):
An even more elegant approach could be to just detect the selected printer model and use that as the printer model to emulate. Then no dropdown would be required. Although I am not sure if other users have use cases where they would want a different printer emulated than what they actually have as a physical printer.
Seems possible maybe in backend/app/api/routes/settings.py 664
Add the auto-match inside the existing proxy printer lookup block, right after target_printer_serial is set:
Setting model = matched_code is important because the save section only writes the model when model is not None:
@maziggy commented on GitHub (Mar 13, 2026):
Sorry again for the mess yesterday. It was a very long and hard day.
Fixed in branch dev. Please let me know if it works for you.
@PurseChicken commented on GitHub (Mar 13, 2026):
No worries man.. totally understand.
I just deployed 0.2.2b4-daily.20260313 and it seems to auto-select the correct emulated model now (P1S<-->P1S)