Some much needed functionality for pausing during jobs

(Jonathan K) #1

@robgrz I would really appreciate the ability to use the MDI during a pause to turn the spindle off and do a z-retract in order to clear things around the cutter mid-job, as well as know what line in the program the job is on.

Could we get this functionality in an upcoming release, or might there be a ‘secret key combo’ to get the MDI up during a pause?

Basically I want to be able to pause the spindle so I can clean out the work area without needing to be in a huge rush, and also give the spindle a break on really long jobs.


(mikep) #2

Apollo answers here:

(Jonathan K) #3

Actually that’s @robgrz chiming in, not Apollo :wink:

But, his answer doesn’t explain why GRBL would need to be involved—since the job is streamed rather than dumped whole onto the machine to run, it should be possible in Carbide Motion to note what line the program is on when the pause fully goes into effect, and then issue a z-retract of known value and a spindle stop, just as if they had been in-line commands in the source g-code.

I realize that there’s probably a substantial amount of read-ahead and path-planning on the controller board going on, so I get that could be a factor, but I’m sure there’s some reasonable “block end” at which you could plan ahead slightly and break the execution, saving your spot in the original g-code program for coming back to.

You could also then open up the MDI to jog the spindle out of the way, clean up the part, add some lube, whatever you need to do. When you’re done and you press “resume” it could prompt the user with a “is it safe to continue where the job left off?” dialog to remind the operator to ensure the workspace is clear, and then it could do some logic to review current position relative to program prior position, and if in any doubt, it could even home again to ensure that the program position and world position haven’t been ruined along the way anywhere.

Then it’d make an X & Y move first to get above where it was in Z at the step where it left off, it’d kick the spindle back on (searching back through the g-code for the last issued spindle speed command, it’d reissue that speed) and plunge slowly back into cutting position, and then resume the job from that line.

Even better would be to have it go to a point several moves prior so it can get the momentum/inertia right too.

Yes, it’d require implementing some logic, yes it’d require some fancy footwork on the Carbide Motion side. I didn’t say it’d be easy, I said it’d be extremely helpful :wink:

(mikep) #4

I don’t disagree. I think the issue is that the lookahead is kind of long (5-6 commands, depending how long your lines of gcode are), if it’s a particularly long command (a slow traverse from one end to the other for example) there’s no place to pause except the end of the command, and that’s kind of a usability issue, and more importantly, the latest GRBL already has the functionality. Carbide just isn’t supporting it yet. There are a LOT of things I wish motion would do, like give me the current line number, let me pick up at a given line number (instead of needing to edit - the prolog is pretty easy to find, do the prolog, then skip to where I want to), as you say, a pause that is actually helpful,

There are a bunch of fixes in the latest GRBL, not sure when they are planning to support it. Apollo has hinted it would be “later in the year.” I’ve heard a rumor they’ve got some other stuff brewing in the shop, so maybe that is taking precedence right now.

Although I understand the desire to keep IP in house, and motion would be an attractive tool for the “no-name” cnc mill shops out there, I do kind of wish they would open source CM so others could add things to it.

(Allen Shipman) #5

+1 on supporting this functionality. Both the full function pause and the ability display which line of G-code the machine is on would be super helpful.