I´m also not very happy with the Pause implementation for UM1 so thank you for the hint with the "change filament".
Nevertheless, implement this into Marlin should be possible - isnt?
I´m also not very happy with the Pause implementation for UM1 so thank you for the hint with the "change filament".
Nevertheless, implement this into Marlin should be possible - isnt?
I use the "pause at height" plugin in Cura for that, never needed to do it on the fly while printing .........
I use the "pause at height" plugin in Cura for that, never needed to do it on the fly while printing .........
Hi Harold,
give it try! works well to make 10 coulour prints, for instance, pause the print, to fill something with sand, without something hitting your spoon....
I´m also not very happy with the Pause implementation for UM1 so thank you for the hint with the "change filament".
Nevertheless, implement this into Marlin should be possible - isnt?
So what should it do in Marlin? lift, move aside?
Hi Harold,
give it try! works well to make 10 coulour prints, for instance, pause the print, to fill something with sand, without something hitting your spoon....
I'll give it a try.......
@ Dim3nsioneer:
I would suggest to also modify the Stop behavior in the same attempt... :-)
Behavior:
Pause: memory current position, lift a few mm, move to 0/0, go back to memorized position after resume
Stop: lift a few mm, move to 0/0 (would stop damaging prints even if not finalized...)
Do you think, we can find a solution?? :-)
Another addition, if possible, keep the motors locked, you have to be very careful not to move the printhead by accident.
Behavior:
Pause: memory current position, lift a few mm, move to 0/0, go back to memorized position after resume
Stop, Retract, lift a few mm, move to 0/0 (would stop damaging prints even if not finalized...)
Maybe add retract into the process, and un-retract into the resume sequence...
Pause: memory current position, lift a few mm, move to 0/0, go back to memorized position after resume
Stop: lift a few mm, move to 0/0 (would stop damaging prints even if not finalized...)
Could I suggest that a slight but important change to the above;
When pause is pressed:
Fast move off to a safe (empty) spot, to avoid stringing
Retract
Lift
Move to home
Lock motors
Just a thought, because the Z motor cannot move fast and always leaves a big strand of plastic. Actually I would like to see this as the end behavior too.
:c)
Cheers.
Ok, this is what the UM2 is doing (derived from the firmware).
pause print:
- stores the current position of all axis
- empty buffer continue until buffer is empty
- retracts predefined amount
- lifts head by 20mm if z<170mm, by 2mm if z<200mm or not if z>200mm
- moves head to park position
- disables extruder steppers
resume print:
- moves to saved position
- continues printing
abort print:
- stop printing
- retract filament (by 20mm^3)
- home all (really all? also z?) axis
- release steppers
Maybe an UM2 user could check this list?
Question is, what should Marlin(1) do?
In the case of aborting the print, I don't see any serious issue.
Case 'pause print': I see a consensus about lifting the head if possible, move to a (fixed!) safe position in x/y (not homing, because it would destroy any settings made by G92 commands) and holding the x and y stepper active.
I see an issue with the retract. As the standard UM1 settings do not know a preset for retraction there are three possibilities:
1) hard coded amount for retract
2) using the experimental(!) G10/G11 commands if firmware retract amount is defined, if not defined: 1)
3) no retract
What do you think?
- empty buffer
It waits for the buffer to be empty, it does not throw away anything. Other then that, seems you're right.
I use the G10, G11 commands in the Ultimaker2, but I did had to fix a few things in there. I think those fixes have made it into the main Marlin branch by now. However, by default, support for them is not enabled! So be warned about that.
What do you think?
The only important addition for the change filament option, to me would be the fixing/locking of the X,Y, steppers.
and perhaps +20mm of extra retraction, to be extra sure the new inserted filament has passed the bowdentube fitting.
But for only a pause function that is not necessary.
It waits for the buffer to be empty, it does not throw away anything. Other then that, seems you're right.
I use the G10, G11 commands in the Ultimaker2, but I did had to fix a few things in there. I think those fixes have made it into the main Marlin branch by now. However, by default, support for them is not enabled! So be warned about that.
Thank you for clarification and for checking. I actually meant it exactly in that way, but it was misleading. I edited it in the post above.
About G10/G11: I saw it is labelled as 'ONLY PARTIALLY TESTED' in standard Marlin. Thus I set it to second priority. The other catch with it is that the retraction/priming amount has to be set with an M207/8 if it shouldn't be 3mm which is quite small for an UM1 (maybe 3mm is a quite reasonable value for other hotends).
The only important addition for the change filament option, to me would be the fixing/locking of the X,Y, steppers.
and perhaps +20mm of extra retraction, to be extra sure the new inserted filament has passed the bowdentube fitting.
But for only a pause function that is not necessary.
I suggest to test changes one after the other and not to do too much at once. I didn't have a look at the change filament option so far. At the moment I think it is important to have a consensus about how the options should work. Otherwise we might get a I-am-not-happy-with-the-new-print-dialog-effect... :shock: if you know what I mean...
I suggest to test changes one after the other and not to do too much at once. I didn't have a look at the change filament option so far. At the moment I think it is important to have a consensus about how the options should work. Otherwise we might get a I-am-not-happy-with-the-new-print-dialog-effect... :shock: if you know what I mean...
OMG No please no! :oops: :eek:
All those discussions make me want to write/Shout in my own language sometimes haha.
My only idea was, those 2 functions are almost the same, so you might combine them?
For changing filament you can even forget the 60mm of extra retraction, not to much work to do that by hand.
Even better, maybe you can copy the change filament part and paste it into the pause part?
We don't want to delete features
Reading your posts make me happy as there are a few people have the same intentions as me.
I'm with Dim3nsioneer - one step after the other :-)
So here my two cents:
@ abort print, I dont think that retract is necessarry. If oozing, ok, print is aborted anyway, string can be cut manually and nozzle has to be primed anyway at next print ( I guess - but please correct me if I'm wrong)
@ pause, retract is possible as the same value can be defined for resume. Furter there will be limited oozing using e.g. 16 or 20mm.
I'm very interested in how this can be done in Marlin.
@ Dim3nsioneer, could you please give me a quick hint where I can find the corresponding sections in Marlin...?
@ pause, retract is possible as the same value can be defined for resume. Furter there will be limited oozing using e.g. 16 or 20mm.
I'm very interested in how this can be done in Marlin.
I once had a very bad experience (clog) with a retract value larger tan 12mm... so I would stick to a smaller value...
@ Dim3nsioneer, could you please give me a quick hint where I can find the corresponding sections in Marlin...?
For the UM1, part of it is in marlin_main.cpp and part in ultralcd.cpp. Of course, language.h is also engaged... for the UM2 it's even more distributed.
EDIT: I forgot one important point in the recent discussion. What about temperatures?
I guess the bed should stay on in all cases, but what about the hotend(s)?
Good morning! :-)
Thank you for the hint - I will take a look.
Ok, as I have a bit of different setup of my second nozzle, if 12mm or less works better, we should choose this or even better set it via config.h.
For me, 16 works fine.
For pause, the temp should stay or just lower to a parking temp where it dont ooze - app. 180 deg(??), heatbed unchanged as we dont want to pop off the part.
At stop, cool down everything and fan 0 is the safest way. Sure, restart the print might need some time when alow cooling the system, but you have to remove the bad print anyway and from my point of view it's just a matter of safety...
Imagine, you forget it and grab onto a hot bed...
Hi guys,
any news on this topic?
Tried to investigate the code myself but honestly, no idea how that could work....
OK. I have a very first version of the UM2 pause feature running on the UM1. It requires that firmware retraction is enabled, brings the 'M601' command with it and still has a small bug that the display is blank for some seconds. And it leads to underextrusion after resuming as the nozzle is still oozing a bit during the pause. This could be compensated with the additonal un-retraction length of the firmware retraction. Both bed and hotend are kept on temperature. The x/y/z-steppers are blocked for the predefined time (60s), the e-steppers are free.
Any comments so far?
If someone want's to play lab bunny, you're welcome (I would need your configuration.h and configuration_adv.h). But be warned, it's a B.R.A.T.P.-O.S. version... (yep, I just invented that abbreviation... it means BE READY AT THE POWER-OFF SWITCH).
edit: A well-known man at UM just reminded me that the switch filament option in Marlin (I think it's not switched on by default) does about the same what the UM2 pause feature does. So you may try this with the standard Marlin code from ErikZalm.
edit2: I managed to avoid that the steppers for x/y/z are released.
GREAT NEWS!!
You need a test bunny, you got one :-)
Unfortunately earliest next week - currently on business trip...
I will try the change filament too - think I enabled that option.
Anyone else??
Today I had a few minutes to take a look into the filament change routine M600 as mentioned above.
Honestly I don´t think that it is in the current implementation usefull as "pause" function as it is
- (good point) parking the head by moving z and XY to a predefined position and
- (bad point) retracting the filament by a initial value, then again by 100mm as it is intended for change and beeps until a filament is loaded and the putton is pushed...
There is also a discussion on github (initial: https://github.com/ErikZalm/Marlin/pull/378)
So (without testing it on my machine) I think that´s a bit too much and we should go forward with your solution Dim3nsioneer.
B.t.w. - the reason for that the feeder stepper is released is that it has to be primed before resuming the print - isn´t??
Thanks for the links. I have to read thoroughly through that discussion before making the next step. What I don't want to do is a solution which is good for the Utlimaker only. And the Ultimaker fork of Marlin is for configuration purpose only I learned recently from Daid.
In general I think the second retract is not necessary for just a pause. It has the purpose to prepare the filament change. And it can quite easily be skiped. The same goes for the beeping...
Daid implemented a M601 for the pause feature of the UM2. Major parts of the M601 are identical with the already existing M600. However, there are a few UM2-specialities in the M601. This is ok as Ultimaker2Marlin is an independent repository. But it's a no-go for the RepRap-wide repository of standard Marlin.
Recommended Posts
3dcase 37
In the Ulticontroller Tune menu you could choose the change filament option, does the same, only it will retract aprox 6cm of filament as well, don't forget to extract it again by hand!!!.
And be careful with the printhead, because it does not 'lock'!
Does it Lock on the UM2?
Regards Kees
Link to post
Share on other sites