Recovering from stopping/GRBL CTRL-X mid-job

I will try this firsthand when I get a few minutes, but it occurred to me that if I home the unit, zero it out, then move to my work start and notate the precise X,Y before zeroing again… I now have a reliable means of finding my work start position again should I need. Sound correct?

My question stems from those cases (I use chilipepper for control) where something goes wrong and you have to stop and ctrl-X the system to recover. When doing so, you lose all relative positioning and, in my experience, end up totally screwed on starting over accurately with any kind of proper alignment.

On a related note: is there a way to stop the gcode flow from chilipepper and purge the SPJS buffer without ctrl-X? So far I can’t seen to find a way. I’d love to be able to safely stop when/before I see a problem, clear the buffer but not lose my coordinates. Then I could just go to 0,0 as my work start point and start anew without the procedure I mention above.

Obviously, I am talking about situations that don’t involve a crash and/or step skip in that last question. In those situations I don’t see any choice but my initial home-relative move to starting coords, followed by re-zeroing.


  • Aaron

I have installed a start, feed/hold and cancel button on my X-Carve. I have pressed the cancel button when I notice an issue (usually something I did in creating the G-Code), fixed the issue and restarted without losing my location.

This does send the rest of the code still in the buffer before it stops, but current location is not lost.

I use UGS and not Chilipeppr, but it would be the same.

I made a touch plate for zeroing all three axis at one time through a g-code file. I can actually stop a project that has not finished, remove the work piece from the machine, replace it on the machine at an entirely different location, re-zero all three axis, and restart the cutting process without any visible signs in the finished project. I actually did this just to test my theory. The only limiting factor is that when you put your work piece on the cnc, it must be square to the table for the initial cut and square for subsequent cuts.

As a practical application of my touch plate and G-code Generator for zeroing, You could cancel a job when you see an issue happening or about to happen (clamps in the way maybe). Then correct what ever issue you had. If you had to hit the E-Stop button then you would have lost your machine position. No problem. Just re-zero the machine (not home), with the touch plate, and restart your job with the same file or modified file. As long as your work piece either hasn’t moved or still square to the table if you did move it, the machine will then continue the cut and you will never see any evidence of a problem.

The trick is having a reliable method of zeroing all three axis that will give the exact same zero reference point for all three axis. You can get very close by eyeballing it but that is never going to be exactly the same every time. The 3 axis touch plate does this for you.



Do a search and learn about G28 and G28.1

You can tell grbl to remember a location so that you can return to that location at a later time.

Home your machine, jog to your position, set G28.1

Oh, S**t.

Stop everything and fix the problem.

Home your machine, issue G28 to return to the set position, continue your work.

G28.1 settings survive even a power off to the Arduino.


How to recover a zero position, I lost it, and now I need to finish my work, after changing drill bit.

Hey my friend Phil, thanks for answering, finally I could find the zero point I used, but, it was also my mistake, because I planned wrong cuts, and I had to stop spindle suddenly, I made a bad planning for carving and then cuts. thank God I solved.

1 Like

Phil, what dustshoe do u recommend me?

let me see it!