Heaters turn off mid print V2Calibration (FW 3.0.6-RC2)
I installed the new 3.0.6-RC2 firmware on my MK2 this evening and proceeded to reset and redo the X/Y calibration and run the V2Calibration.gcode file from the SD card to check and adjust my Live-Z settings. While doing this I saw an odd behavior that I hadn't noticed before.
The extruder heater and print bed heater turn off and start cooling down about 2/3 through the print. I double checked the V2Calibration.gcode to see if there was anything funny, but everything looks fine. the M104 and M140 commands are at the end to turn off the heaters.
I ran this multiple times and the temperatures reset in the same spot every time. It happens when printing the line at Y=95 at just past the center of the print bed (line 30 of the gcode file "G1 X50 Y95 E3.62773"). I've captured a video during one of the runs which clearly shows something resetting in the middle of printing the line, although the print then finishes just fine and appears to be executing the rest of the gcode instructions.
I printed this from the SD card and had nothing plugged in to the USB port at the time.
Has anyone else noticed this happening?
Roger
Re: Heaters turn off mid print V2Calibration (FW 3.0.6-RC2)
Dear Roger.
Thanks for pointing out this issue. I confirm, that the V2Calibration G-code switches the heating off prematurely. Please try the attached G-code. The only difference is an addition of a G4 line after the last printing movement.
I investigated the behavior of the heating control in our firmware and it confirmed my suspicion. The Prusa3D firmware is based on the Marlin firmware. The Marlin firmware executes the G-codes mostly synchronously as they are received from the USB or read from the SD card with two exceptions: The path planning and the fan control. To achieve smooth movements, the Marlin firmware maintains a queue of maximum 16 linear movements. Each time a new line is added to the planner queue, the velocities over the planner buffer are adjusted to achieve the highest maximum velocity while meeting the maximum allowed velocities, accelerations and jerk values. Without an explicit synchronization of the planner with the G-code reader, the planner may be 16 movements late before the G-code reader. So with the current Marlin firmware it is quite possible to have the printer still printing after the following G-codes are executed:
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
The solution is to prepend
G4
before the M104 command, which forces Marlin to wait for the planner to finish the planned movements.
As a temporary solution, G4 shall be added a the start of an end G-code in the slicing software used.
In reality the current behavior may only cause troubles if one prints large straight boxes with sharp corners. Usually the G-code contains short movements, which are processed very quickly after the heaters are switched off.
In the future, we need to discuss as whether to change the firmware to wait for the planner, or just change the G-codes.
Vojtech
Re: Heaters turn off mid print V2Calibration (FW 3.0.6-RC2)
the modified V2 calibration code is attached.
Vojtech
Re: Heaters turn off mid print V2Calibration (FW 3.0.6-RC2)
I noticed this when the V2 calibration file was first released but thought it was by design.
Re: Heaters turn off mid print V2Calibration (FW 3.0.6-RC2)
Thanks a bunch for the support Vojtech! I ran the V2calibration with the G4 command and everything works great! I guess as Richard stated, it's been happening all along, and I just never noticed it before now as I'm usually focused on the print head looking for that perfect squish. 😉 I just happened to catch the temperatures reset out of the corner of my eye this time and thought "hmm, that seems funny."
I very much appreciate the work you, Josef, and the rest of the Prusa Research team do to evolve the i3 design and operation, and deal with any issues along the way.
Now I'm off to update my slicer profiles....
Thanks again,
Roger