CM - Make 'Restart Program' actually useable

Right now the ‘Restart Program’ feature requires the operator to know where to restart. Most people don’t religiously watch the ‘line number processed’ field in CM, so in the event of a disconnect, realistically no one knows where the program was when it died. CM just dumps all of its internal state without telling the user anything.

If a running program is interrupted for any reason, then CM should be able to tell the user how far it got before the program stopped. In the best possible world, the information would be recorded somewhere that could be recovered even if the program exited (or the machine turned off), once CM restarted.

The existence of the GRBL planning buffer is a concern, but knowing the last line sent to the machine is infinitely better than what we have now. The planning buffer is fixed length, so just recording (current line sent - buffer length) should give line numbers that have actually been processed by the machine.

An even better improvement would be to have CM have options to restart ‘near’ the given line, for example

  • restart at the closest previous rapid
  • restart at the closest previous tool change.
3 Likes

I agree with the closest previous point. Just take a line snapshot like once a minute and restart from the last previous captured point. Should be close enough.

1 Like

I use ncviewer and find a point that I know is done.
Select the point, take a look at what line number it is.
Restart there.

The restart option works well. I will pre position the spindle if I am worried about some collision.

1 Like

Forgive me if I’m diverting this, but as a new Shapeoko 5 Pro owner, I’m very interested in understanding the Restart Program function and making it usable. I don’t really understand what its meant for. It was mentioned to me in another thread where I asked about making quick minor Z adjustments without triggering unneeded tool prompts again. I was skeptical because obviously you can’t restart from a line mid-cut at depth without preparatory coordinate system, unit, and motor start codes plus starting at safe height. I made several attempts to use it after stopping a program by inputting a start line with the bit retracted and none worked. If this function is only meant to recover from a disconnect I’d suggest relabelling it. For those new folks who weren’t around when this feature was launched its hard to pick up the context that lead to its development.

It was meant for continuing a long run after a CM connection issue mid stream.
Life saver.

Thanks. I would never guess it from the UI.

I had not thought about using it for mid stream offset adjustments.

Since it’s an honor system to actually use the same program, If you were very careful, you could repost the gcode with different spindle speeds if needed. So long as the paths are identical.

It would be nice if the restart function worked similar to commercial CNC equipment like a Fanuc control. Add a N# search to the man readable for the tool change i.e… N5(Toolpath: Basket Ball with 90deg Vee). This way we could easily search and start the program at a tool change.

1 Like