|
@@ -17,6 +17,17 @@ All notable changes to Bambuddy will be documented in this file.
|
|
|
- **URLs:** the settings are added to the overlay URL as `logo=1`, `progressFrom`, `progressTo` and `backgroundTransparency`. URLs without them look as before.
|
|
- **URLs:** the settings are added to the overlay URL as `logo=1`, `progressFrom`, `progressTo` and `backgroundTransparency`. URLs without them look as before.
|
|
|
- **Preview:** it now waits until you stop dragging a colour picker or the slider before reloading, so it no longer opens a new camera stream on every step.
|
|
- **Preview:** it now waits until you stop dragging a colour picker or the slider before reloading, so it no longer opens a new camera stream on every step.
|
|
|
- **Portrait streaming overlay URLs for Classic and Version 2 (#3185, requested and contributed by @adamspicedev in #3209)** — Settings → API Keys → Streaming Overlay has a new **Layout** choice: **Landscape**, **Portrait** or **Both**. Each layout gets its own URL with Copy and Open buttons, the browser-source size to set in OBS, and its own preview, so **Both** shows the landscape and portrait previews side by side. A portrait URL adds `layout=portrait` and draws a fixed 1080 × 1920 composition that is scaled to fit the browser source, so text, camera and spacing look the same in the preview, in OBS and in a browser tab. Classic gets a portrait arrangement too, with larger text and a wrapping file name. A landscape URL carries no `layout` parameter and looks exactly as before, including Classic's text size in a 1280 × 720 source; Version 2 URLs without `layout` still follow the shape of the browser source. Classic now hides progress, layers, time remaining and temperatures while the printer is offline, as Version 2 already did, and shows "Printer offline" in the status line. **Behaviour change:** Classic no longer adds its own "Printer is idle" or "Printer offline" line below the status; that text now comes only from the **Status** field, so an idle printer no longer shows both "Idle" and "Printer is idle". A Classic URL whose `show=` list leaves out `status` therefore shows no idle or offline text; add `status` to it to get the line back.
|
|
- **Portrait streaming overlay URLs for Classic and Version 2 (#3185, requested and contributed by @adamspicedev in #3209)** — Settings → API Keys → Streaming Overlay has a new **Layout** choice: **Landscape**, **Portrait** or **Both**. Each layout gets its own URL with Copy and Open buttons, the browser-source size to set in OBS, and its own preview, so **Both** shows the landscape and portrait previews side by side. A portrait URL adds `layout=portrait` and draws a fixed 1080 × 1920 composition that is scaled to fit the browser source, so text, camera and spacing look the same in the preview, in OBS and in a browser tab. Classic gets a portrait arrangement too, with larger text and a wrapping file name. A landscape URL carries no `layout` parameter and looks exactly as before, including Classic's text size in a 1280 × 720 source; Version 2 URLs without `layout` still follow the shape of the browser source. Classic now hides progress, layers, time remaining and temperatures while the printer is offline, as Version 2 already did, and shows "Printer offline" in the status line. **Behaviour change:** Classic no longer adds its own "Printer is idle" or "Printer offline" line below the status; that text now comes only from the **Status** field, so an idle printer no longer shows both "Idle" and "Printer is idle". A Classic URL whose `show=` list leaves out `status` therefore shows no idle or offline text; add `status` to it to get the line back.
|
|
|
|
|
+- **The Slice dialog offers OrcaSlicer's built-in third-party filaments, and every other filament the slicer ships for Bambu printers (#3234, requested by @nvx)** — The **Standard** tier listed only part of the slicer's own presets. Two gaps, both in the slicer sidecar, which needs the updated image:
|
|
|
|
|
+ - **OrcaSlicer's filament library was never read.** OrcaSlicer ships filaments that suit any printer (Elegoo, PolyLite, COEX and more, named `... @System`) in a folder next to the Bambu one. With the OrcaSlicer sidecar, the 264 of them that a Bambu printer can use are now listed. As in OrcaSlicer, each is offered on every Bambu printer except those with a filament made for that printer, so `Generic PLA @System` doesn't show on an X1 Carbon, which has `Generic PLA @BBL X1C`.
|
|
|
|
|
+ - **Filaments in brand folders were missing.** Both slicers keep many Bambu-printer filaments in subfolders (`COEX PLA @BBL X1C`, `SUNLU PLA Matte @BBL X1C`, ...). The sidecar read only the top folder: OrcaSlicer 2.4.2 now lists 1997 Bambu filaments instead of 1156, Bambu Studio 02.08.02.61 1928 instead of 1792.
|
|
|
|
|
+ - **The automatic pick prefers Bambu's own presets, and real filament over support.** When several presets fit a plate equally well, the Slice dialog takes the first in the list. The sidecar now lists, within the slicer's own presets and within the library: real filaments before support materials, then Bambu Lab, then Generic, then other brands. A PLA plate on an X1 Carbon still gets `Bambu PLA Basic @BBL X1C` rather than the alphabetically first `addnorth PLA`. A PA plate now gets `Generic PA` instead of `Bambu Support For PA/PET`, which states PA and used to win alphabetically. A P1P plate gets `Bambu ABS @BBL P1P` and `Bambu PLA Basic @BBL P1P` instead of a support or special-edition preset. HIPS still gets Bambu's `Generic HIPS`.
|
|
|
|
|
+ - **No preset of the plate's material:** the Slice dialog's last fallback picked a preset of another material without looking at the printer, so it could choose one the slicer then refused. It now prefers one for the selected printer.
|
|
|
|
|
+ - **Your own presets now slice with the settings they are based on.** A preset you saved in Bambu Studio or OrcaSlicer stores only your changes, and the sidecar fills in the rest from the preset it is based on. When that parent sat in a subfolder or had a `/` in its name, it wasn't found, and the slice ran on the slicer's defaults with only your changes applied. This hit every custom preset based on a P1P filament (Bambu Studio keeps all 67 in `filament/P1P/`), on SUNLU, Polymaker and other brand filaments, on `Bambu Support For PLA/PETG`, and on OrcaSlicer library filaments. Bambuddy's "unresolved preset" warning fired on those slices. Verified with a custom `Bambu PLA Basic @BBL P1P`: 3 settings before, all 140 now. The newly listed built-in presets resolve the same way: `Elegoo PLA @System` slices at its 210 °C, `COEX PETG @BBL X1C` at 245 °C.
|
|
|
|
|
+ - **Why the reporter's Orca Cloud didn't help:** OrcaSlicer uploads only presets you created yourself. Ticking a built-in filament in OrcaSlicer only shows it locally, so it never reached Orca Cloud. The wiki says so now.
|
|
|
|
|
+- **The Cam Wall's tiles can be resized with the S / M / L / XL selector (#2735, requested by @cmerkle)** — The size selector on the Printers page used to grey out on the Cam Wall, and the tiles always sat up to four in a row, so a setup with two printers got two small tiles side by side.
|
|
|
|
|
+ - **On the Printers page:** while the Cam Wall is showing, the selector sizes the tiles: S fits up to five per row on a wide screen, M four (as before, and still the default), L two, and XL one tile across the full width. Tiles keep their 16:9 shape.
|
|
|
|
|
+ - **Remembered on its own:** the Cam Wall keeps its own size, so changing it leaves the card size alone, and the other way round.
|
|
|
|
|
+ - **On `/camwall`:** the standalone page uses the size last picked on the Printers page, and a kiosk URL can set it with `size=s`, `m`, `l` or `xl`.
|
|
|
|
|
|
|
|
### Changed
|
|
### Changed
|
|
|
|
|
|
|
@@ -31,6 +42,20 @@ All notable changes to Bambuddy will be documented in this file.
|
|
|
- Spools added on the kiosk before this fix get the spool ID the next time the tag they were added with is scanned. After that, the other tag and the AMS find them too. This only happens when the scanned tag UID matches the spool's exactly, the spool has no spool ID yet, and no other spool carries that ID. A near match on the tag UID, which a different reader can produce, never writes anything. In Spoolman mode the spool ID replaces the tag UID as the spool's tag.
|
|
- Spools added on the kiosk before this fix get the spool ID the next time the tag they were added with is scanned. After that, the other tag and the AMS find them too. This only happens when the scanned tag UID matches the spool's exactly, the spool has no spool ID yet, and no other spool carries that ID. A near match on the tag UID, which a different reader can produce, never writes anything. In Spoolman mode the spool ID replaces the tag UID as the spool's tag.
|
|
|
- **In Spoolman mode, lifting a spool off SpoolBuddy while Assign Spool or Add to Inventory was open lost its tag** — Both took the tag from the reader, which forgets it as soon as the spool is lifted, instead of from the card that stays on screen. Assign Spool then only reported that linking failed, and Add to Inventory created the spool without a tag and showed an error. Both now use the tag shown on the card, as local inventory already did. Bambu Lab spools were covered by the #984 fix above; this fixes it for every other tag.
|
|
- **In Spoolman mode, lifting a spool off SpoolBuddy while Assign Spool or Add to Inventory was open lost its tag** — Both took the tag from the reader, which forgets it as soon as the spool is lifted, instead of from the card that stays on screen. Assign Spool then only reported that linking failed, and Add to Inventory created the spool without a tag and showed an error. Both now use the tag shown on the card, as local inventory already did. Bambu Lab spools were covered by the #984 fix above; this fixes it for every other tag.
|
|
|
- **File names could vanish from the File Manager's list view (#3105, reported and contributed by @akshayy29 in #3119)** — With authentication on, the list has an extra Uploaded By column. When the folder sidebar left less room than the fixed columns needed, the Name column shrank to nothing, and the Uploaded By value sat right next to the thumbnail. The Name column now keeps at least 240px and the Tags column at least 96px. When there isn't room for both, the list scrolls sideways (it already could) instead of hiding them.
|
|
- **File names could vanish from the File Manager's list view (#3105, reported and contributed by @akshayy29 in #3119)** — With authentication on, the list has an extra Uploaded By column. When the folder sidebar left less room than the fixed columns needed, the Name column shrank to nothing, and the Uploaded By value sat right next to the thumbnail. The Name column now keeps at least 240px and the Tags column at least 96px. When there isn't room for both, the list scrolls sideways (it already could) instead of hiding them.
|
|
|
|
|
+- **A printer fault that kept coming and going was notified every time it came back (#3226, reported by @sgiffhorn)** — Bambuddy remembered which faults it had already notified as one list per printer, replaced on every status update, so a fault was forgotten the moment one update arrived without it. A 30-second grace period was meant to cover that, but only applied when the printer reported no faults at all, which never happens while it holds a notice such as the lubrication reminder. An H2D whose nozzle camera lens fault switched on and off beside two lubrication notices sent the same notification 9 times in 22 minutes. Each fault is now remembered on its own and notified again only after it has been gone for 10 minutes. So that a fault you fixed is still reported if it happens again soon, a fault seen before the print is resumed, started or finished is forgotten as soon as it is gone, without the wait; a filament runout fixed before resuming is notified again if it recurs a few minutes later. Covered by unit tests.
|
|
|
|
|
+- **The Printer Locations page had no way back to the Printers page** — the page is opened from the Printers page and is not in the sidebar, so the browser's back button was the only way out. It now has a "Back to Printers" link above the title.
|
|
|
|
|
+- **Inventory missed filament when two filaments of a print came from the same spool (#3230, reported by @Andrewdlec)** — once a print had charged a tray, any further filament from that tray was skipped. Mapping two of a project's filaments to one spool, which is common when a multi-colour model is printed in fewer colours, deducted only the first: the reporter's H2C charged 1.05 g of a 3.18 g print. A single-filament print that switched to another tray and back lost the last part the same way. Each filament is now charged on its own, with its own usage-history entry. Covered by unit tests.
|
|
|
|
|
+- **The Statistics energy total stayed at 0 for Shelly and other REST plugs with only a lifetime counter (#3232, reported and contributed by @rojosinalma in #3233)** — With **Total consumption** tracking and no date filter, the Statistics page adds up each plug's lifetime counter, but for REST plugs it added the counter for today. Since #2539, a Shelly is set up with only **Lifetime Energy JSON Path**, as it has no counter for today, so its plug added nothing and the energy total and cost showed 0, while any date range showed the right figure. REST plugs now add their lifetime counter, the same as Tasmota and Home Assistant plugs. A plug with only a counter for today still adds that one.
|
|
|
|
|
+- **A virtual printer with Save AMS mapping lost the slicer's external-spool pick (#3237, reported by @erabti)** — The slicer marks a filament fed from the external spool as -1 in its slot list, the same as a filament with no slot, and says which spool it is in a second list. Bambuddy saved only the first list, so the queued print sent that filament as unassigned. On an H2C the printer then stopped before the first layer with 0700-8012, "Failed to get AMS mapping table". The saved mapping now keeps the external spool, left or right on dual-nozzle printers, for the queued print and for reprints from the archive.
|
|
|
|
|
+- **The SD-card cleanup could delete a file the printer was printing (#3009, reported by @bdwilson)** — If a print finished while Bambuddy was stopped and you then reprinted the same file from the printer's screen, Bambuddy closed the old print when it came back and deleted its file from the SD card, even though the printer was printing that file right then. The cleanup now leaves a file alone while the printer is printing it.
|
|
|
|
|
+- **A job moved to a location or model could print from an empty external spool on a printer that has the filament in its AMS (#3239, reported by @hyyz17200)** — A job keeps the AMS mapping of the printer it was made for. When a job made for a printer without an AMS, which feeds from the external spool, was moved to a location and picked by a printer with an AMS, it still told that printer to use its external spool, and the print stopped at once with "External filament is missing". The check added for #2799 didn't catch it, because it read an external spool the printer reports as empty as "no information". Now, when the printer reports its external spool empty and its AMS holds the filament the job needs, in the same colour, the mapping is worked out again for that printer. A printer without an AMS keeps using its external spool as before, also when the spool's filament was never set, and with only another colour in the AMS the printer still asks for the spool rather than print in that colour.
|
|
|
|
|
+- **A job moved to a location or model could print in the wrong colour (#3239, reported by @hyyz17200)** — The fix above only covered the external spool. A job still kept the AMS trays of the printer it was made for, so a job for black PETG in tray 3 of one printer, moved to a location and picked by a printer with blue PETG in tray 3, printed in blue: the tray existed and held the right material, so nothing stopped it. A job that Bambuddy places on a printer by model or location now gets its trays matched on that printer, by material and colour, and is held for a spool when nothing fits. Moving a job from a printer to a model or location also clears its tray choice and any "Print Anyway" given for that printer. A job sent to one printer keeps the trays picked for it. A printer without an AMS whose external spool has no filament set now prints every filament from that spool; such a job used to go out without a mapping and stop with 0700_8012 "Failed to get AMS mapping table".
|
|
|
|
|
+- **H2D, H2D Pro and H2C with several AMS on one extruder marked the wrong tray as loaded on every filament change (#3242, reported by @Thomansky)** — These printers report the loading tray as a slot number (0-3) without saying which AMS it is in, and the report that says which AMS is read a moment later. In that gap Bambuddy assumed AMS 0: during a print feeding from AMS 2 slot 1, AMS 0 slot 1 showed as loaded for about a second, and that tray went into the list of tray changes that splits a print's filament between spools. Support packages show this on every filament change.
|
|
|
|
|
+ - **Now:** while a print runs, the slot is matched against the trays the print uses, taken from the printer's own mapping. If that doesn't settle it, as in a multi-colour print with the same slot in two AMS, the tray already loaded stays marked until the printer says which one is feeding.
|
|
|
|
|
+ - **Usage:** no case was found where a spool was actually charged for the wrong tray, because the wrong tray was always replaced within the same layer. It no longer gets into the list at all.
|
|
|
|
|
+ - **Idle printers:** the printer keeps reporting the last print's mapping after it ends, so it is used only during a print.
|
|
|
|
|
+- **Shutting Bambuddy down logged an error with a traceback when nothing was wrong (#3243, reported by @Thomansky)** — Stopping Bambuddy cancels the printer updates still waiting to be handled, and each cancelled one was logged as `ERROR ... Exception in scheduled callback` with a traceback, as the last line before the restart. In a log or a support bundle it looked like a crash. A cancelled update now ends quietly; one that actually fails is still logged as an error.
|
|
|
|
|
+- **A print started from the printer's screen took about six seconds longer to archive (#3009, reported by @bdwilson)** — A job started on the printer's own screen reports its file's full name, extension included (`Part.3mf`), where a job Bambuddy sends reports the bare name. Bambuddy added the extensions to it anyway and asked the printer for `Part.3mf.gcode.3mf` and `Part.3mf.3mf` first, six connections that could not succeed, before trying the real file. The check that reattaches a running print after a Bambuddy restart compared against the same doubled name, so it could not find such a print. When the printer reports the same full name as both the job and its file, that name is now taken as the file itself: it is the only name tried, and the restart check also matches that exact file. Prints Bambuddy dispatches are looked up as before.
|
|
|
|
|
|
|
|
### Security
|
|
### Security
|
|
|
|
|
|