Print resume fails after long pause
My selfmade Printer works well for normal prints. I have an Rotary Filament Sensor, which check´s the filament feedrate.
If, for any reason, the Printer goes in "Pause Mode", the resuming of the print works if the pause is not too long. Everytime i tried it, waiting at my printer, it works.
But if i recognize it much later (e.g. after a filament jam), the extruder has cooled down. Then i solve the problem and press Preheat. The Extruder heats up (Everything normal at this point). But If i press "Resume", the printer tries to work off the commands an feeds the filament !! X-Times !! faster than normal. Extruder can´t follow this extreme speed. Everytime I try to resume, at this point, it fails because of the very, very high Speed the Printer can not follow. After a few seconds the Rotary Filament Sensor triggers a jam. I have to cancel the print.
It is a Mystery for me. I think it is a Problem specially with my DUE Configuration.
I think it´s a bug for DUE Printers. Are there any hints? Thanks....!
Printer Config:
- Repetier Server 0.92.3 (control´s everything) with TouchDisplay
- Repetier Firmware 1.03
- Rotary Filament Sensor
Bei meinem selbstgebauten Drucker, habe ich ein Problem mit dem Fortsetzen von Drucken nach einer Pause Situation. Immer wenn ich das live am Drucker teste funktioniert das weiterdrucken problemlos. Habe alle Auslöser getestet. Es ist egal ob ich am Display Pause drücke oder ob der Filament Sensor einen Jam erkennt (z.b. wenn ich das Filament festhalte) oder ich die Pause im Code ergänze.
Nur wenn ich nicht in der Nähe des Druckers bin und dann erst nach Stunden feststelle, daß der Drucker in Pause gegangen ist (Weil z.B. ein Jam aufgetreten ist) habe ich Probleme. Nach dieser Zeit ist der Extruder bereits abgekühlt. Ich kann dann alles in Ordung bringen und Preheat drücken. Das funktioniert auch, aber wenn ich dann "Resume" drücke versucht der Drucker die Kommandos in extremer Geschwindigkeit abzuarbeiten. Weder der Extruder noch die Schrittmotoren können dieser Geschwindigkeit folgen. Es rattert nur. Der Filamentsensor erkennt dann nach 2-3 Sekunden einen Jam. Egal wie oft ich das versuche passiert immer das selben. Ich bin gezwungen den Druck abzubrechen. Nach dem Abbruch funktioniert wieder alles normal.
Ich kann mir nur denken, daß es ein Arduino DUE spezifisches Problem ist. Ich komme nur selbst nicht drauf was das Problem ist. Ich vermute jedoch den Fehler eher in der Server Software. Leider kann ich es nicht nur über den Drucker testen. Ich habe nur noch den Server mit Touchdisplay angeschlossen. Der Drucker hat kein eigenes Display mehr.
Hat irgendjemand einen Tipp? Vielen Dank...!!
Comments
To debug the problem you need to enable logging so we can see what exactly gets send on resume. I do not really expect different commands if you resume after a minute or an hour. There is no such thing in server. What might be is that a timeout in firmware has an unexpected effect.
- The File marked as Good startet printing and entered the Pause Mode at Layerchange. After a short time I tapped at the Resume Button at the Touchdisplay and the Print finishes succesfully. Then I started the second try with the same prepares.
Seems like you have 2 webcams for which you both make a video. What is your setting there that it tries to make so much snapshots suddenly? Also do you have really several G1 F7800 in a row in your gcode? These just confuse me and do not look correct. Maybe when I see your settings I can reproduce and or see why it happens. Also please check where all the identical lines come from, that is not a typical content of gcode. Repetition does not change anything.
Anyhow the many snapshots surely might add some delay in operation at that frequency. Is that the problem?
Second, i checked the Gcode, there is nowhere "G1 F7800". Also in the eventbased Server Settings. Don´t know from where it comes.... Thanks so far....
You see last E before pause is 14.3953 then after continue you have heatup and again lots of webcam snapshots, this time only for first webcam but still lots of it so still wondering how it happens. Must be pause related. Do you have set it per time? Then it might have added them during pause one per minute or whatever you had and that gets executed with continue. Would make sense also not good. Will check and add a test for pause to not add snapshots then.
Then you see the rest of continue were G92 sets E to 14.3953 correctly and next extrusion is 14.42 from print so from the commands being send that would be ok. No extra 25mm and that is also not to expect or I missed a part in your problem description.
So can you please tell more precise what you expect and what happens in the error case as the gcode send doe snot show anything unusual.
Time: 19:36:08.869 E7.698
Difference about 1,8mm per second
Printing after pause e.g.:
Time: 20:02:28.178 E14.420
Time: 20:02:29.353 E41.146
That Difference is about 22,27mm per second !!!!
I think it is not an Repetier Server Issue. It should be an Firmware Issue, I think after every "OK" from the printer, the server sends a new command. The OK´s are to fast (I think).
...
< 20:02:29.251: N136083 G1 F1200
...
You are reading the log wrong. The time between commands send has nothing to do with extrusion speed. The G1 Fxxx values set printing speed. What you measure is time between lines being send and that is completely indepedent from the printing speed. It only depend on the "ok" being returned from firmware indicating that firmware is ready to accept the next command. In both cases speed is 20mm/s but for xy moves. The E speed is linear depedent on the xy move and much lower.
One thing I did not check was if you changed speed multiplier somehow. That would increase speed without having different gcode, but is limited to 300-400%. So not the factor 10 you mention. But that method you used is imprecise. Depends mainly when a long line blocks for longer and if then on many small lines many long lines get send it will increase the virtual speed.
Would be the idea that matches what I read from log.
I will try to replay at the weekend.
If I understand you correctly all you do is pause, wait for server timeout to disable heater and then hit continue, right?