MR1 ignored M30 code

Just ran into a sketchy situation last night while wrapping up a part on my mill. Long story short, I needed to skim the top surface of the part after machining the profile in the same program file. So I opened the program in my NC editor on the machine’s pc and added the Z home command and M30 after the face pass was complete. This was around line 150/25000, so there was plenty of program left after the M30, which should have been irrelevant.
I loaded the program into CC and scrolled down to make sure the M30 was after the face pass, and already had a feeling I was going to have to manually stop the machine because it was still displaying all the tool path after the M30 I placed in the program. Sure enough, it finished the face pass went home on the Z axis and then proceeded right past the M30 and moved to the next cut from the original program but with the spindle stopped…
Now I could have deleted the program after the facing operation, but since this is a part I am making multiple of, the simple solution was to drop in an M30 and after facing the part in the machine take it back out to proceed as normal.

Anyone else seen this happen?
I’ve done a little research and it seems like an earlier version of GRBL had a similar problem, but I’m not sure what is used in the MR1.

Tagging @langmuir-daniel on this one to see if he has some insight. If nothing else, it could be something to add/fix in the future CC build.
It’s not something that everyone will encounter, but I think it’s worth bringing attention to.

Thanks all

2 Likes

Did you try M2 instead?

Langmuir doesn’t document what G-Code is supported which is a real problem for hand writing anything for the machine or building custom post processors.

1 Like

I haven’t yet, but I will next time I’m in the shop.
The normal program ends with M30 though, which makes me believe that the MR1 is just reading code until it runs to the end of the file.

1 Like

Update
I had a minute to swing by the shop this afternoon and tried a few things. I wrote a short program with interpolations and an M01, M00, M30, and M02 before each.
The machine ignored the M01, which I expected since there is no option to have optional stops on the control screen.
The machine DID stop on the M0/M00 with a pop up window saying the program was paused.
And neither the M30 or M02 stopped the machine from running.


This is the pop up for an M0/M00 command in a cycle for reference.

I can’t imagine there would be a lot of times that M30 and M02 not functioning at all would cause an issue except for the times like my instance where I only wanted to run part of a program.
In the future I guess I can use M0/M00 codes to stop it after certain cycles. Which would be handy for checking dimensions mid run also.

It would definitely make me sleep better at night to know what codes do function on this machine.
I may end up sitting here with a note pad and trying each to see what functions and what doesn’t.

2 Likes