Don't cut/unload when user is right there ready to start another print

Right now, when a print is finished, the printer will go through the sequence of turnig off the nozzle heater, bed heater, filament cutting, unloading, etc, even if the user is right there ready to start another print using the same filament. This wastes time and filament.

Here’s a suggestion:

After a print is finished,

  1. Turn off the extruder (this is so that the filament won’t stay heated while waiting for user input, which can deteriate the filament and also increase the risk of heatcreep), but keep the bed heater on, and don’t cut and pull back the filament.

  2. A prompt pops up, on Bambu Studio and on the printer display, asking the user if they want to start aother print; The prompt will stay on for a limited time, such as 2 minutes. If there is no input from the user within this time frame, the usual sequence of turning off bed heater, filament cut, unload, etc, will be carried out.

3a. If the user clicks to start another print, and sends the gcodes within a limited time frame, such as 5 minutes, the extruder heats up and proceed to print.

3b. If the user clicks to start another print, but doesn’t sends the gcode within the limited 5 minute time frame, the ususal sequence of turning off the bed heater, filament cut, unload, etc, will be carried out.

3c. If the user clicks to not start another print, then the usual sequence of turning off the bed heater, filament cut, unload, etc, will be carried out right away without having to wait the entire 2 minutes period.

What do you think?

3 Likes

I would prefer simple “Unload filament after finish” option check/uncheck before print starts. I don’t mind printer cools down, but mandatory unloading filament bothers me too.

2 Likes

Heating up the bed takes some time, too, particularly if it needs to get to 75 C or higher. But anyway, the details can be worked out if they decide to do this feature. A plate in 75 C or higher can be too hot to touch so there probably should be a warning, or lower the bed temp to a safer temp while waiting for user input.

1 Like

I’ve not tried it but what happens if you load a filament using the controls in the slicer or on the printer then print. Does it keep it loaded? I’m pretty sure it does if you are using the external spool as I’ve printed a few things in PETG on tiny spools and had to use the external spool holder.

No, it gets unloaded after finish.

I did some research and found out, that filament unload command is part of the Machine end G-code. So the workaround might me to prepare modified machine profile called “X1C no unloading” and remove corresponding lines from Machine end G-code and then select this printer whenever you don’t want to unload filament after print.
Is it convenient? Definitely not.

When the print is about to finish, hit the cancel button on the printer (top right, not on the screen). This cancels the print, but filament will stay within the system and not be retracted.

If there is a way for the printer to know which slot is loaded, even after a printer restart, then avoiding unload of the filament may be as simple as moving the task of unloading to the start gcode. Basically all the unload and load will be done at the start of a print job. Nothing special will be done at the end of a print job other than maybe keeping the bed heater on for a limited time such as 5 minutes and give users a choice to start another job without having to wait for the bed to heat up.

But I haven’t paid much attention to BL printers’ capability. Maybe somone who knows can chime in.

1 Like

I always run with this line in the Machine End G-code commented out:

; pull back filament to AMS
M620 S255

I change it to:

; Do not pull back filament to AMS
; M620 S255

The result is similar to a cancelled print in that the filament is neither cut nor retracted (the toolhead still moves close to the cutter - I could probably comment out some more to avoid that but I never bothered).

When starting next print, the printer knows from the AMS sensors that filament is already loaded, and which. Even if it was powered off in between. So it always does the right thing: If the new print uses that same filament, it just uses it and saved me some time. If not, it starts off with a filament switch.

IMHO Bambu should remove that silly unload in the end G-code. Or make it optional - but I really can’t see why it would ever be needed.

Edit: There is one situation where my hack has a drawback: If, after everything cooled down, I want to replace the spool that is still loaded, I need to unload it first. And that means I need to wait for nozzle to heat up. Maybe I could manually press the cutter lever, then retract from touch screen with nozzle stone cold. I haven’t tried that but I guess it will work.

4 Likes

Good to know that the loading status is known.

I think modifying start or end gcodes can throw an error when generating print profiles for Makerworld. In any case, edting gcode is a work-around, not a solution since BL printers are designed to be used without knowledge on 3D printing. I used to edit gcode with other printers but gladly leave BL printers as they are.

Do you encounter any unexpected task that a person completely new to 3D printing can’t do or will hesitate to do after switching the unloading to the start gcode? What it is doing now is very clean in terms of process and easy to understand: after the print job is finished, it returns to the orignal state: nozzle unloaded. I wonder if switching the unloading to the begining of the print job will cause confusiong among users who don’t want any complicatoins.

Another thing about pulling the filament back inside the AMS after print job is done is that it helps to keep the filament dry.

1 Like

There is one more. If you modify end G-code, you’ll have to implement all future changes/updates to that G-code manually, because it will not get updated automatically whenever new versions are available.
It’s annoying.

Yep, so one needs to change to a standard profile before uploading.

Agreed! It should be optional the same way as timelapse or run-time calibration.

Actually I was a total noob just months ago and the first thing that struck me back then was the stupid unnecessary unload. I have actually used the mentioned hack since like day 2 in my 3D-printing life!

No quirks or tweaks are needed - even for the mentioned “change roll when cold” you’d still just press “unload” and the printer does what is needed.

Yes. Actually I do it the other way round - When G-code is updated, I just add my few tweaks (mainly this one and turning toolhead LED off) in the new version and overwrite my personal profile with that. Also, this drawback is void if Bambu stops defaulting to the weird default unload…

1 Like

It looks like many people would want the unloading to be done at the begining of a print job instead of after. This alternative approach hasn’t been getting enough attention probably because people have been using workarounds, such as modifying gcodes, setting up a different printer profile, or manually cancelling a finished job before the unloading starts, etc.

Many of us have all been there customizing products to our own needs. We probably have been doing that because it’s typically not easy to connect with the product maker. In Bambu Lab though I see a company that’s responsive to user feedback, so there is a chance that we can make suggestions instead of each doing our own customizations. I don’t want to critize BL designers on the current process. Starting with an empty nozzle and end it with a empty one makes sense from purely a process perspective. There could be other benefits that they have considered that we have not thought of.

Another reason for BL to look into this is that now that Maker Lab is out, more users may start designing their own things, which means iterations: using the same filament again and again doing a lot of printings withint a short period of time. So more people may see the needs to cut down on the time waiting for the unload, load, purge, etc before another print can start.

If you print not from AMS but from the back spool there is no automatic unload.
I recently printed TPU, and as I wanted to remove the spool the printer first started to heat again the nozzle.

Any update on removing this stupid feature?

In that situation, you can instead manually activate the cutter lever on the toolhead, then pull out the filament from the external spool PTFE tube with your left hand while also pushing “retract” on the touch screen with your right hand. The printer will complain (for no reason!) that the nozzle should be heated first, but then obey and it will work just fine. The cutter and the extruder gears are both in the cold zone so I’m not sure why they would want to heat the nozzle two inches below all the action?

@the_Raz Thank you for your hints. I often dont think using the cutter :smiling_face_with_tear:
But ok, I had to wait a few minutes. No drama. But: Bambulab has no chance to make it right for everybody. Someone prefers auto-unload and someone does not want it. And even worse we might want different things at different times.

Yes, that’s why a checkbox for “unload filament when done” should be added to the print popup along with the existing checkboxes for “bed levelling” and “flow dynamics calibration”. I’d really love that. Like the other ones, it should default to whatever was selected at last print.

BTW the checkbox for AMS is an exception, it doesn’t remember last used setting. I think it should.

I think it would be possible to create a python script to do the gcode commenting out.

It could be automatically invoked by doing ‘export plate sliced file’ to a specific folder location instead of ‘print plate’.

The script would pick up the generated gcode.3mf file, go through and comment out the M620 and then open the patched gcode.3mf file back into Bambu Studio - so that it can then be printed in the normal way.

Could probably also get it to optionally do some of the ‘start speedup’ patching too.

2 Likes

post deleted - probably better to share code on GitHub

1 Like

I agree: We need this checkbox on the print screen!