Pause and resurrect doesn't make sense
-
-
@o_lampe said in Pause and resurrect doesn't make sense:
@fcwilt thanks for the link, but resume wouldn't work after overnight shutoff, right?
Correct - I was just trying to be sure that all possible relevant information was included in the discussion.
You didn't actually say if the printer was turned off or not - so there were two possible scenarios to consider.
Frederick
-
Here's the new resurrect file, which IMHO contains everything a prologue file would need. Makes it somewhat obsolete?
; File "0:/gcodes/Drop_Riffle_x3.gcode" resume print after print paused at 2021-01-17 11:13 G21 M140 P0 S60.0 G29 S1 T-1 P0 ;G92 X131.008 Y29.862 Z18.830 // Overwritten with G92 X250 Y150 Z23.83 //parking position Z 5mm above the print G60 S1 G10 P0 S220 R220 T0 P0 M98 P"resurrect-prologue.g" // WHAT FOR? M116 M290 X0.000 Y0.000 Z0.000 R0 T-1 P0 T0 P6 G10 L2 P1 X0.00 Y0.00 Z0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00 G54 M106 S0.00 M106 P0 S0.00 M106 P2 S0.00 M106 P3 S0.00 M106 P4 S0.00 M106 P5 S0.00 M106 P6 S0.00 M106 P7 S0.00 M106 P8 S0.00 M116 G92 E43.97322 M82 M23 "0:/gcodes/Drop_Riffle_x3.gcode" M26 S1980553 P0.250 X159.828 Y29.862 G0 F6000 Z20.830 G0 F6000 X131.008 Y29.862 G0 F6000 Z18.830 G1 F3600.0 P0 G21 M24
-
OK, my apologies!
I checked my pause file and it was parking at X200 not 250 as I had in mind... -
@o_lampe said in Pause and resurrect doesn't make sense:
OK, my apologies!
I checked my pause file and it was parking at X200 not 250 as I had in mind...So all is working now?
Frederick
-
-
OK, it worked as expected. I moved the printer in the storage room. (wanted to see the Snooker masters first session without background noise)
There are still some issues, maybe an old story, since I use DWC 2.04?
The filament used is now set to zero and the estimated print time is wrong. Same about print percentage and job duration.Most off all, there's a tiny offset in the print. The wiki page already mentiones a possible error of 4 fullsteps.
Isn't there a way to pause the print, exactly when the steps are 100% predictable?
In my case, drive to the next best parking position with no step-error and keep a record of it.Now it seems to empty the buffer and then stops..
-
I don't know the answers to those questions.
I have never tried to continue a print like that.
I just stay near the printer until the print is done.
Sorry I cannot help in regards to this.
Frederick
-
Welcome back. You're on pretty ancient firmware at this point. Might want to give updating a go. There's been a few bugs fixed with pause and resume, etc, so if you're intent on playing with that could be worth while.
If you still have access to DWC. Upload these 3 zip files, one at a time. Don't extract them. Reboot after each.
https://github.com/Duet3D/RepRapFirmware/releases/download/2.05.1/Duet2Firmware-2.05.1.zip
https://github.com/Duet3D/RepRapFirmware/releases/download/3.0/Duet2and3Firmware-3.0.zip
https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip
That will get your firmware and DWC up to date.
https://configtool.reprapfirmware.org/Start
For your config, might be a good idea to run through the configurator tool and generate a fresh set for RRF3.If your printer is very stable and doesn't really move much when powered off (ie, bed doesn't drop, etc) then you can take the exact XYZ position from when you pause the print and use a G92 XYZ to reset that position again at power on. Though a small shift may still be noticeable since the motors will snap around. I recall reading about maybe using 1x full step to ensure you're on a full step before powering off, but haven't tried it myself and not sure that would even work, but maybe.
-
Thanks for the reply @Phaedrux
I was glad to find an old SD-Card image to restart my 3D-printing adventure.
I read about RRF3.x but wasn't sure, if it's worth the extra efford to get it running.
Now that I've made a few succesful prints I might give it a try.The fullstep-method you mentioned is probably the best way to make it work.
But,
if I change the pause macro to switch the XY-steppers to fullstep and adjust the steps/mm accordingly, would that have an immediate effect? I guess, that would require a reset.
Even if it works, the position I want to park the hotend, wouldn't be reached exactly. The position-error would only happen earlier. (not in the resurrection file)What would be necessary to make it work?
- Home the printer in fullstep mode (before the print begins)
- Calculate a parking position based on fullsteps/mm that would be true. ( not easy for a CoreXY, how about a delta?)
- Change back to 1:16 microsteps and begin to print
- in the pause macro park the head at the calculated spot (can be 1:16 microsteps, since we will surely end at fullstep)
- use the parking position in the resurrection file
The challenge is, to find the formula that calculates the fullstep parking position.
And how accurate would fullstep homing work ( in my case 12.5 steps/mm)
Is it worth it? -
@Phaedrux said in Pause and resurrect doesn't make sense:
I recall reading about maybe using 1x full step to ensure you're on a full step before powering off, but haven't tried it myself and not sure that would even work, but maybe.
I remember that discussion, but I also remember most people that took part in it, settled on something similar to "having good x/y-endstops with homing those as first thing & make sure your hardware doesnΒ΄t allow any z-movement"
-
@o_lampe said in Pause and resurrect doesn't make sense:
Isn't there a way to pause the print, exactly when the steps are 100% predictable?
In my case, drive to the next best parking position with no step-error and keep a record of it.Currently there isn't a way to do this. It would theoretically be possible to do provided that there is only one motor per axis, or if there are multiple motors then just one endstop per axis. Also for the Z motor you would have to not be using true bed levelling. In other situations with multiple motors per axis, in general if you set one motor to a good parking position then the other motors would not be at good parking positions.
The easiest way for me to implement this would be for me to make the current microstep position available in the object model, then you would be able to use conditional GCode to move to a good parking position.