** MR-1 Working (and not) G and M code list **

One thing a few of us have been trying to get for while now is a list of codes that work and don’t work on this machine and software. As of writing this thread we’re on CutControl 22.1.1, so at a later date the software may be updated to use more codes or correct some of the issues listed below.
If you have any G or M codes that are working drop them down below this post and we can try and keep a running list of what functions. For this time I’ll be listing the more common codes (at least to me) that do or should function, and we can build it from there.
Enjoy.

Basic Movements and commands
X Y Z - All working correctly
I J K - All working correctly
L - Does not currently function. (Should be a loop code to repeat lines of code multiple times)
N - Line numbers. seemingly ignored by the software as there is no search or restart functions at this time.
R - Does not currently function. (Should be radius commands for arc movements)
P - Functions on dwell command (G04) as a timer in seconds
T - Tool number. Seemingly ignored by the control with how work offsets function.
F - Feed rate. Required for any arc movement, and only seems to operate in unit/min (mm/min or in/min)
S - Spindle speed command

G codes
G0/G00 - Working correctly. (Rapid movements)
G1/G01 - Working correctly. (Linear movement @ feed rate)
G2/G02 - Working correctly. (Clockwise arc or interpolations)
G3/G03 - Working correctly. (Counter-clockwise arc or interpolations)
G4/G04 - Working correctly. (Dwell or pause command. P value is in seconds only)
G17 - Working correctly. (Arcs will be on the XY plane / default plane)
G18 - Working correctly. (Arcs will be on the ZX plane)
G19 - Working correctly. (Arcs will be on the YZ plane)
G20 - Working correctly. (Movements will be in inches)
G21 - Working correctly. (Movements will be in mm)
G28 - Working correctly. (Used to send an axis to its home position / machine zero)
G30 - Works, but has side effects. (Used to set a temporary return position, similar to a home position)
-In CC 22.1.1 the graphic tool path displayed will be incorrect in the Z axis if a Z position is used after a G30 command-

G30.1 - Working correctly. (Returns the spindle to the return or home position set with G30)
G40 - Does not currently function. (Cutter compensation)
(This feature would be extremely helpful in thread milling)
G53 - Working correctly. (Uses machine coordinates rather than a work offset Ex: G54, G55, G56 etc.)
G54-G59 - Working correctly. (Work offset coordinates)
G8x - Does not currently function (No canned cycles currently function. G81, G82, G83 etc.)
G90 - Working correctly. (Absolute positioning)
G91 - Working correctly. (Incremental positioning)
G94 - Working correctly. (Feed rate in units/min - default)

M codes
M0/M00 - Working correctly. (Machine stop, or pause during machining. Able to resume)
M1/M01 - Does not currently function. (Optional stop during machining. No toggle exists in CC)
M2/M02 - Does not currently function. (Program end, machine stop) This needs to function properly
M3/M03 - Working correctly. (Spindle rotation in a clockwise direction)
M4/M04 - Cannot function. (Spindle rotation in a counter-clockwise direction) (mechanically unable)
M5/M05 - Working correctly. (Spindle stop)
M8/M08 - Working correctly. (Flood coolant ON)
M9/M09 - Working correctly. (Flood coolant OFF)
M30 - Does not currently function. (Same as M2/M02) This needs to function properly

As mentioned above, there are codes the would be very nice to have them function, or function properly. The M2 and M30 codes really need to function properly for safety reasons.
Hopefully in an upcoming release of CC they can resolve some of these and add more functionality.

9 Likes

Nice job.

I noticed that Langmuir publishes the source code for their altered version of GRBL. Reading the code may help figure out what else is supported.

For example here is the g-code parser:

1 Like

Thanks @AlexW.
I ran across their grbl page a little while back and noticed the “plasma focused” part early on and figured it would be somewhat limited, but hadn’t spent them time to really pick at it until doing this thread.
I will give the parser a read thru sometime though and see if there is more “useful” (very circumstantial) codes that I can post up here. Just for the start I wanted to get the basic stuff listed up that I figured most people would end up running across.

Edit: After a quick glance there is no M30 case defined in the parser for program end. Explains why the machine ignores the function.

1 Like

That git hub repository looks pretty stale. Note that there is an XR Branch, but, even so, is three years old.