WildRikku / OctoPrint-SpoolManager

Plugin for managing spools and all their usage metadata
GNU Affero General Public License v3.0
7 stars 0 forks source link

Re-select spool on filament runout #14

Open gozergozarian opened 1 month ago

gozergozarian commented 1 month ago

Hi, this could just be something I haven't figured out how to accomplish, but when a spool is expended and I change it mid-print, it would be great to be able to re-select a spool.

I don't know what, if anything the printer reports back to Octoprint when the printer pauses due to filament runout so this could be complicated or impossible.

I am running a Prusa MK3S+ on 3.14 firmware.

WildRikku commented 1 month ago

Do you print from SD card or do you start your print from OctoPrint? How does the printer know that the filament is empty, does it have a sensor or do you use an OctoPrint plugin?

gozergozarian commented 1 month ago

I print from OctoPrint and the printer has a sensor.

WildRikku commented 1 month ago

I print from OctoPrint and the printer has a sensor.

Did OctoPrint notice when the print paused (did it offer to continue)? OctoPrint has functionality to react to paused prints but these are not supported by all printers.

gozergozarian commented 2 weeks ago

Sorry for the delay! I didn't get a chance to reproduce this until now. OctoPrint stays in state: printing but the Print Time does not continue to tick up. Here's the "State" area while the printer has paused for filament reload: image

WildRikku commented 2 weeks ago

No problem and thanks for the details. That looks like a Prusa and as far as I know, these do not have much support for OctoPrint features (I'm no expert on that topic though, I have an Ender), which is probably the reason why you just see OctoPrint idling.

Do I understand it correctly that after you changed the filament, the printer just continues and OctoPrint shows progress again without any need to tell OctoPrint to continue?

In general, I can think of ways to change the spool mid-print, but they all involve quite a bit of work. A first step would be to save how much filament was already used when pausing, either for displaying to the user or for the calculation after the print. In your case though, I need to figure out if OctoPrint even knows that it's pausing.

How do you handle these cases now? Are your spools in SpoolManager at 0 when they are actually empty? Do you manually set them to zero? Did you ever have a case where the spool was at negative filament amount because it was empty in SpoolManager but not really? I'm just trying to get a better picture of the cases that could happen, as the users of this plugin print way more than I do. :)

gozergozarian commented 2 weeks ago

It is a Prusa, and yeah I think they have less support for OctoPrint in favor of their self-developed option.

You do understand correctly - after the filament is changed, OctoPrint shows progress and the print continues without any additional interaction with OctoPrint.

I only recently started using this plugin, so I have a bunch of partial spools with unknown filament left on them. Any spool that I don't know the contents of I print using a spool I created called "Junkspool" that I don't track usage on.

I think I would be totally happy with a situation where I manually pause OctoPrint, have a way to interact with SpoolManager to select a different spool, and then resume OctoPrint.

WildRikku commented 2 weeks ago

Alright. Asking for a spool change when pausing from OctoPrint was also something I thought of. That would require you to pause OctoPrint when your printer auto-pauses, but it would also work for people with other printers. I will check if that is technically possible.