Feature request firmware: Recover Failed Print (start print from defined z-height)
I was running a 4 days print and during my last filament change a spool tangled. The print was 85% done after 80 hrs so I tried everything (opening a second thread to get help here) to recover it with no luck. Reprinting the missing piece was not an option in this case. After stopping the print I could measure the height by moving Z.It would have saved me days of work and 100€ worth of filament if there was a feature like:
Move Z to height where print stopped, continue printing original g-code from here.
Is this possible? Is it realistic to see it in a firmware update?
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Anybody else backing this request?
I believe this is something essential for a printer that size.
Or let me ask the other way:
Anybody around who's printing multi-day jobs without ever having a failed print due to clogged extruders or similar issues?
If so:
What are your precautions to minimize the risks of failed prints?
Am I just printing too fast by using the input slicer setting?
I doubt many users would ever need anything like this. The commonest long-print late-failure is a runout that can't be attended to in time and this function wouldn't help once the heating had timed out.
Cheerio,
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
If a multiday print fails, it will print in the air for mutiple days if there's an undetected runout. ENough time to solve the issue before temp timeout.
This happened to me at least 2 times and I could super easily have saved the print if this feature was available.
Now I'm running into new troubles. "USB Error" happened 3 times recently. - really awesome, known bug, no solid solution provided.
I could have saved all of the prints if a "repeat from Z: xxx" feature would have been available.
If a multiday print fails, it will print in the air for mutiple days if there's an undetected runout.
After the first 20 minutes the filament in the nozzle will have baked-in with cold-pulls needed. Resuming is unlikely to be feasible unless, somehow, the failue occurred at the end of a layer. Better to cut the part in CAD, print the upper part and glue or weld the parts together. This is only going to be of use for trinkets, functional parts are likely to fail at such joins.
Anybody around who's printing multi-day jobs without ever having a failed print due to clogged extruders or similar issues?
I wouldn't say never but luckily this is a rare problem, I don't recall one for two or three years.
What are your precautions to minimize the risks of failed prints?
Just the usual regular maintenance and religiously dried filaments.
Am I just printing too fast by using the input slicer setting?
Maybe; there's always a trade-off between impatience and perfection. I generally avoid the fast settings.
"USB Error" happened 3 times recently. - really awesome, known bug, no solid solution provided.
Another issue I haven't seen. USB (and SD) drives fail occasionally and they are easily corrupted by unplugging without unmounting or forgetting to wait for files to flush fully but a reformat is enough to recover most drives. I usually run two small drives per printer, one plugged in and printing and the other in the workstation as I design the next print. I keep the drives lightly loaded with no more than half a dozen or so current files and delete after printing to minimalise fragmentation and flush times.
Cheerio,
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
I agree with @polydisco. A feature like this could have saved a ~24 hour print in PA6-CF for me today. So about $50 USD.
Of if the stuck filament detection actually worked, that could have helped too, but it doesn't.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
I have been wondering if the feature would ever come too. It would help sooo much!
I have had multiple prints fail for certain reasons... like having contamination in the filament causing a blockage. Or printing something with very very flexible filament that had an bubble in the filament causing it to get stuck and stop printing a 2 day print.
Some of these projects are time sensitive and use expensive filaments. Instead of throwing it all away and missing deadlines I now often try to measure and guesstimate where I was, and then manually go in the g-code to delete up to the point where I was. This is pretty time consuming and prone to errors.
If the printer would be able to tell/remember at what layer you crashed, ran out, or stopped a print, that would already be of great help to recover a print.
If you then would be able to restart a print form a certain layer, that would be awesome.
A big challenge I have had so far with restarting prints is the "homing" and "bed leveling" action that you of-course can't do...
X-Y homing is okay.
But Z-homing can be a challenge if you have a part underneath that area. For this reason I now try to not put prints in the homing area. Maybe a marker can be made in the prusa-slicer bed 3D model/texture to remind people what area you should try to keep parts out of if you want the ability to home a failed print.
Another way I have recovered a few prints, is by simply switching out the bed steel-sheet during the homing process, and then switching it back to the bed with the prints on it while it is waiting before starting to print. But this can only be done when parts are not that high yet and I only have done this with succes for flexible parts. PLA parts tend to often snap of the bed because of the flexing during removal and placement of the bed. So to help recover a print where you have to take of the whole steel-sheet/bed to re-do the Z homing and bed leveling (in case crashing and shifting occurred) the recover function should look at the height and lower the bed enough to put the bed with partially printed parts back on.
Bed re-alignment is pretty good. I was very surprised that you can take off, and put back on the bed with half-prints and have a near perfect alignment. The steal-sheet/bed aligns pretty nice and easy back to the same location.
So, a few function that I think are needed :
Must :
- Record last layer of every stopped print (so we know where to re-start)
- Add option to re-start print from specific layer/height. It shows where you stopped/crashed, but you can change it to where user things it needs to restart.
- Add a bed swapping (press to continue) step, where it lowers the bed, so we can swap the bed, complete Z-home and bed leveling, before putting back the bed with the failed print(s).
Could :
- To help with also starting filament flow on the correct part of the print, it could be nice if during the initial 2 (recovery) layers the printer is moving very slow, and directly gives us an option to adjust flow rate with the "knob". So we can manually turn up and down the flow rate based on how rough/failed the failed surface is.
Creative Engineer and 3D printing @ AcEcraft.eu
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
I just thought about it more...
A way to probe a partially printed part would work better then recording last printed layer. Last printed layer helps determine a good starting point to then manually find the last correct printed layer.
A more easy process would be :
- >> Press "Stop/pauze print"
- >> Press "Recover print"
- It homes X-Y
- >> Manually move X-Y extruder position above 3D-part
- >> Manually lower Z to touch 3D-part
- >> Press "Start from this height"
- Printer try's to estimate what layer you are, Does a generous Z-hop, Moves to the start of that layers G-code, Slowly lowers again and and waits for user confirmation
- >> Press "Restart from here"
- Printer starts and gives filament flow control for first 2 layers.
Creative Engineer and 3D printing @ AcEcraft.eu
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Did you figure out a way to modify the g-code to skip Z-homing?
I started another thread here:
https://forum.prusa3d.com/forum/original-prusa-xl-tool-changer-hardware-firmware-and-software-help/recover-failed-print-modify-g-code-to-start-from-z-height/#post-725022
I tried some g-code modification but with no success so far.
Following the CNC-Kitchen tutorial linked in the other thread I could continue prints with my Creality (ABL enabled) printer.
I was hoping Prusa staff could help out by telling us which g-code startup commands are crucial, and which ones would need to be deleted.
Of course the firmware feature would be preferred, but being able to continue prints in in a more complicated manner would be okay.
Everything would be better than loosing days of printing & filament resources.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
If a multiday print fails, it will print in the air for mutiple days if there's an undetected runout.
After the first 20 minutes the filament in the nozzle will have baked-in with cold-pulls needed. Resuming is unlikely to be feasible unless, somehow, the failue occurred at the end of a layer.
If this feature existed (or a a hint how to modify the g-code) the quality of a continued print would still be better (compared to glueing) even if it would print areas of the affected layer twice. I accomplished this before on other printers with good results
RE:
the quality of a continued print would still be better (compared to glueing) even if it would print areas of the affected layer twice
It would be a weak point. Effectively this creates a new first layer and all the issues we see with poorly levelled build sheets can be expected, just higher up. Functional prints subject to very light loading might be OK. Structural prints would always be suspect. Cosmetic prints might be saved but the resulting imperfection will require post-processing of the sort that many users are reluctant to do.
Sanding or peeling back to a layer start and printing a new top half will make glueing on a new top easier - for a structural part welding is better than glueing, use a 3D pen in the same manner as a MIG welder.
Far better than any of this is addressing the initial cause, tangled spools and low grade or contaminated filaments have already been mentioned; there the remedy is obvious. Otherwise regular maintenance and rigorous filament drying will go a long way ... and I would generally advise a slow approach to new (to you) filaments, learn their characteristics with small prints before committing to a megaprint. And speaking of slow; profiles tweaked for speed have traded away some reliability, don't use SPEED profiles for large prints, keep them for hasty production of small trinkets.
Cheerio,
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Very much agree on this 🙂
I'm able to finish a multi day Ninjatech Chinchilla print by regularly restarting/recovering the print when it failed again. Yes, sometimes you have some artifacts when you did not line the bed up perfect, or extruded a layer 2-times. But I'm also impressed how often I have no visible artifacts at all.
Take for example these bumpers made also from Chincilla. I restarted these parts about 8 times while I was trying to test feeds and speeds out. Only 2 restarts have a visible artifact, the other 6 lined up perfectly without a huge visible artifact. I tested mechanical strength and that seems to be just as good as a print without restarts. As long as your make sure you start the flow back up on the correct moment.
Chinchilla is a real challenge to print. I print it veeery slow, causing prints to quickly become multiple day prints that I don't mind restarting a few times if that lets me have a successful big print. But also huge multi day PETG or PLA parts I have restarted... saving me from finishing the part in time to be filled, painted and ready for exhibitions.
A Restart at certain height feature would hugely save me time and errors from doing manual g-code editing.
Especially if it would include a way to probe what height to restart on, without having to do the Z-calibration again.
Creative Engineer and 3D printing @ AcEcraft.eu
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Add me to the list of users requesting this.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
I would be interested. I recently posted this https://forum.prusa3d.com/forum/general-software-discussion/bgcode-block-rundown-for-restarting-prints/
and attempted a restart, but it crashed, so while I had some right, I did not get it all. I like the idea of a semi-automated restart. Not all restarts are practical, but there are definitely some that would be more than worth restarting to save both time and filament. I have projects that take 2-3 days to print that essentially tests. they are often to check whether the final outcome 'fits'. A seam here or there or other issues is no big deal while I am in that research phase, so a restart is definitely a plus if it could be accomplished.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Had a print fail overnight. It was a jam in an extruder. Regardless, the opportunity to recover presented itself. Further investigation beyond what was reported above in the BGCode post follow. I was able to successfully recover the print this time. There was no power cycle. I simply stopped the job, edited the file and started a (new) of the shortened file.
1. You have to go past all thumbnails, to the 'thumbnail end'.
2. There are a series of setup lines that end with attempting to pick the tools in the print and the tool to level the bed. In my case the lines were T2 S1 L0 D0 and T0 S1 L0 D0.
3. IMPORTANT: Just before the 'pick' in the set bed and extuder temp is the line that I believe cause the crash last time: G0 Z5. It sets the bed height at 5. This print ended at Z=7.2 so a crash was certain. I changed that line to make sure the bed was low enough to clear the existing print. For safety I set it to 25 (G0 Z25).
4. Comment out the following sections as they were performed on the previous (failed) print (you may want to perform these, but I did not):
- home Z with MBL tool
- move to the nozzle cleanup area
- nozzle cleanup
- set extruder temp
- purge initial tool
4. Change tool-1-Tool0 (layer -1) is where it gets tricky. You have to get everything set. I needed to restart on the 7.4 layer with tool 0 (extruder 1) and ended up with this being my startup sequence (commented lines start with semicolons--some lines left for reference):
; Change Tool-1 -> Tool0 (layer -1) G1 F21000 T0 S1 L0 D0 M900 K0 M142 S36 M109 S220 T0 M107 ;LAYER_CHANGE ;Z:0.2; HEIGHT:0.2 ;LAYER_CHANGE ;Z:7.4 ;HEIGHT:0.2 ;BEFORE_LAYER_CHANGE G92 E0.0 ;7.4 G1 E-1.2 F3600 G1 X143.445 Y282.904 Z7.2 F24000 G1 X166.001 Y233.599 Z8.146 ;AFTER_LAYER_CHANGE ;7.4G1 X166.001 Y233.599G1 Z7.4 F720 G1 E1.2 F1200 ;TYPE:Perimeter ;WIDTH:0.449999 G1 F1105.436 G1 X166.001 Y247.907 E.41166 G1 X165.487 Y253.864 E.17203 G1 X165.431 Y254.179 E.00921 ...
The print restarted as expected, the heaters came up, the bed lowered, each tool was picked and replaced, then tool 0 was picked, heated and went straight into the print. Close observation showed I was a bit high on my 7.4 guess, so flow was increased for the first couple layers to compensate.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Your print would have an obvious defect at the point the print failed, because the plastic cools and shrinks. I've had prints that sat for a few hours waiting for a filament change and there is always a visible line in the part.
So I'm not sure a resume is any better than slicing the part and reprinting the rest of it and glueing it together.
RE: Feature request firmware: Recover Failed Print (start print from defined z-height)
Your print would have an obvious defect at the point the print failed, because the plastic cools and shrinks. I've had prints that sat for a few hours waiting for a filament change and there is always a visible line in the part.
So I'm not sure a resume is any better than slicing the part and reprinting the rest of it and glueing it together.
Agreed. It does have the line, but in my case that issue is no big deal as it is a test print that does not have to be cosmetically perfect. Because it is TPU and I have a need to understand the flexibility/stiffness of the full assembly, that takes precedence over the look. If in the future it comes apart at that seam, no big deal, as I will have gotten the needed data long before that. There are additional parameters I need to understand that take place later in the print also.
IN the end, the option to restart at the failure point vs. starting over likely comes down to the particular print and which better addresses the needs at the time. Having the option to restart today, likely saved me a day or two and 1/3 roll of TPU.