M0 Pause Text and Stop Print Help

I have an MPCNC with SKR PRO and TFT screen purchased from V1. I’ve got a couple issues that I can’t sort out.

  1. Using “M0 TEXT HERE” does not display TEXT HERE on the screen. It does pause but the screen says “Pause?” I would love to get the custom text working as reminders of what’s coming next. Right now a pause window comes up but doesn’t have the custom text. I click OK on the pause window and then have to click resume again on the screen.

  2. The stop program button on the screen doesn’t stop the program. I’m using the TFT in touch mode and printing from the TFTSD. When I press stop on the screen, the screen acts like the program was stopped and moves back to another screen but the program continues to run. I then have to hit reset on the screen, my emergency stop button, or the emergency stop in ESP3d. Any of those completely kill the chance of starting the program over easily/quickly.

Anyone else have these issues or know how to fix them?

Your first issue has come across the forum several times, and I’ve never seen an answer. I’m assuming there is no fix. You can run your jobs in Marlin mode (hold the knob down for 2 seconds), and you will get the prompt.

As for your second issue, it is hard to say without knowing what g-code is being sent by the TFT firmware. There is a known Marlin issue where commands are not processed until the command reaches the front of the queue, so it may be that a legitimate pause/stop command is being issued, but that it has not reached the front of the queue before you killed your electronics.

If your TFT is issuing an Emergency Stop (M112), there is a feature in Marlin that can be enabled (requires compiling and re-flashing the firmware) that causes the stop to be processed immediately. See this code in configuration_adv.h:

/**
 * Emergency Command Parser
 *
 * Add a low-level parser to intercept certain commands as they
 * enter the serial receive buffer, so they cannot be blocked.
 * Currently handles M108, M112, M410, M876
 * NOTE: Not yet implemented for all platforms.
 */
//#define EMERGENCY_PARSER

The bad news is there is no way to recover from an emergency stop. I believe you are required to cycle the electronics, so there is no way to recover the job. The issue of an immediate pause and being able to resume the job in Marlin has come across the forum several times, and I’ve never seen a decent fix.

With some planning, and/or with some changes in your setup, you can recover the origin relative to the stock. This would allow you to re-run your job, so you would have some air cutting, but could theoritically save your stock and complete your job.

1 Like

I wonder if one of the settings in the TFT will display the messages. They do actually display but only after you resume the pause. :upside_down_face:

I bumped into a g-code that might be a workaround. I don’t have a TTF, so I have no way to test it. Does it display if a M117 is sent with the message before the M0 is sent? M117 explicitly says LCD, but since M0 eventually works…

I was actually just looking at this as I refresh the TFT firmware again. I have to check, but I think the messages might actually be there you need to tap on the status bar to see all messages. It only shows the most current one so it flashes the message, then flashes the resume button in a new “window” There are other ways to display messages but if they are just in the status bar I am okay with that.

The harder part is pause, the tft has its own pause routine built in. Pause is not much help in a CNC, since the buffer can be minutes long. The only time I can think to use it is if I forget to put the dust shoe on or maybe I want to add a hold down screw. The current pause doesn’t really work because of how it wants to move like a 3d printer. I can add our own custom Gcode for a pause though, just not sure the best way to do that since you never know how deep in a cut you are or how far from the top. So you would need a home Z and resume in there but I am not sure we can do that without probing and all that. So any Pause we get would literally be stop right where you are.