Must "Stop Print" manually after print finishes

Hello, I have the latest version of Repetier Server running on a Raspberry Pi 3b+ connected to 3 printers with SKR 1.4 boards running Marlin 2.0.3. Everything works great except for one thing that I've noticed: when a print finishes, the printer still thinks the print is running. According to Repetier Server, the print job has finished and the printer is idle. But on the printer LCD, the print timer keeps incrementing and I have to manually click "Stop Print" on the LCD. Then the printer goes through it's stop code.

However, I don't actually have to Stop Print - I can keep printing using Repetier Server normally without manually clicking "Stop Print", so this isn't a huge issue. I would just expect that the printer is "stopped" at the end of each print. Do I have something misconfigured or is this a bug? Thank you!

Comments

  • Extra note - I do not have any "event gcode" configured for the "Run after job" event. I do have some gcode defined for the "Run if job aborted" event, but I don't think that has anything to do with this issue.
  • In server definition for Marlin we have

    <command type="startPrint">M530 S1 L{i:numLayer}
    M531 {s:filename}
    M532 X0 L0
    </command>
    <command type="stopPrint">M530 S0</command>
    <command type="sendProgress">M532 X{f:progress} L{i:currentLayer}</command>
    That are commands send to update print state in Marlin, but currently not supported when I check
    https://marlinfw.org/docs/gcode/M077.html

    So I wonder if the timer you are talking about is M75 and M77 also we never send M75. So question 1 would be why it starts and second question is if M77 would stop it. In that case add it to the end gcode event. I will also put it into stopPrint for next update just to be on the save side. But feedback if it works is appreciated so I know it is what happens.
  • You are correct! I manually issued M77 through Repetier Server console to one of my printers that was finished (but Marlin thought it was still printing). The timer on LCD stopped immediately and "Stop Print" is no longer an option on the LCD. Good guess! <span>:smile:</span>

  • FYI the relevant bit of Marlin code that automatically starts the timer is in Configuration.h. I don't think PRINTJOB_TIMER_AUTOSTART is enabled by default - I remember enabling it awhile back, so that must have been when this behavior started. I think if you include it in stopPrint that will be sufficient to handle this edge case. Thank you!

    /**
     * Print Job Timer
     *
     * Automatically start and stop the print job timer on M104/M109/M190.
     *
     *   M104 (hotend, no wait) - high temp = none,        low temp = stop timer
     *   M109 (hotend, wait)    - high temp = start timer, low temp = stop timer
     *   M190 (bed, wait)       - high temp = start timer, low temp = none
     *
     * The timer can also be controlled with the following commands:
     *
     *   M75 - Start the print job timer
     *   M76 - Pause the print job timer
     *   M77 - Stop the print job timer
     */
    #define PRINTJOB_TIMER_AUTOSTART
  • Thanks. Will include it just in case someone has it on autostart. Won't hurt to send unused command.
  • Hello - just a follow-up to this. I think this was actually a bug in Marlin. Users reported the same problem when stopping a print from Octoprint here: https://github.com/MarlinFirmware/Marlin/issues/16907

    I haven't had a chance to test the latest bugfix branch without the custom "M77" in the End Print gcode event, but I report back when I can. Regardless, I still don't think an extra M77 will hurt anything if you want to include it.

  • Yes, it was a bit unexpected that you suddenly need to stop a timer you never started. But will leave it as safety and for users with broken version.
Sign In or Register to comment.