G-code Reference

The Othermill uses the Synthetos TinyG motion control board. It supports the following G-code and M-code commands.

Full TinyG reference list (copied from the Synthetos wiki)

G-code Command Parameters Description
G0 Straight traverse axes Traverse at maximum velocity. At least one axis must be present
G1 Straight feed axes, F Feed at feed rate F. At least one axis must be present
G2 Clockwise arc feed axes, F, I,J,K or R Arc at feed rate F. Offset mode IJK or radius mode R
G3 Counter clockwise arc feed axes, F, I,J,K or R Arc at feed rate F. Offset mode IJK or radius mode R
G4 Dwell P Pause for P seconds
G10 L2 Set offset parameters axes, P P selects coordinate system 1-6
G17 Select XY plane G17, G18 and G19 set the plan in which the G2/G3 arcs are drawn
G18 Select XZ plane
G19 Select YZ plane
G20 Select inches units mode All G-code from this point on will be interpreted in inches
G21 Select mm units mode All G-code from this point on will be interpreted in millimeters
G28 Go to G28.1 position axes Optional axes specify an intermediate point
G28.1 Set position for G28 The current machine position is recorded (No parameters are provided)
G28.2 Homing Sequence axes Homes all axes present in command. At least one axis must be specified
G28.3 Set Absolute Position axes Set axis to zero or other value. Use to zero axes that cannot otherwise be homed
G30 Go to G30.1 position axes Optional axes specify an intermediate point
G30.1 Set position for G30 The current machine position is recorded (No parameters are provided)
G53 Select machine absolute coordinates Non-Modal: applies only to current block. Don’t use except for probing/homing.
G54 Select machine absolute coordinate system Don’t use except for special circumstances. This will cause all your milling operations to be wrong unless you select G55 afterwards.
G55 Select default Othermill coordinate system All milling operations should use this coordinate system
G56 Select coord system 3 Reserved for special Otherplan functions
G57 Select coord system 4 Reserved for special Otherplan functions
G58 Select coord system 5 Reserved for special Otherplan functions
G59 Select coord system 6 Reserved for special Otherplan functions
G61 Exact stop mode Motion will stop between each G-code block
G61.1 Exact path mode Continuous motion between G-code blocks - exact path will be traced
G64 Continuous path mode Same as exact path mode
G80 Cancel motion mode
G90 Set absolute mode
G91 Set incremental mode
G92 Set origin offsets axes
G92.1 Reset origin offsets
G92.2 Suspend origin offsets
G92.3 Resume origin offsets
G93 Set inverse feedrate mode
G94 Cancel inverse feedrate mode
M-code Command Parameter Description
M0 Program stop
M1 Program stop Optional program stop switch is not implemented so M1 is equivalent to M0
M2 Program end
M3 Spindle on - CW S S is speed in RPM
M4 Spindle on - CCW Not supported by Othermill spindle - it only turns clockwise
M5 Spindle off
M6 Change tool T Supported by Otherplan 0.23 or higher
M7 Mist coolant on The Othermill is not equipped with coolant
M8 Flood coolant on The Othermill is not equipped with coolant
M9 All coolant off The Othermill is not equipped with coolant
M30 Program end
M60 Program stop
Other Command Parameter Description
N label G-code block line number Line numbers are allowed, handled, and may be reported back in status reports. Don’t underestimate how useful this is for debugging G-code files.
() G-code comment comment G-code comments are supported. They are stripped and ignored, except for messages (below)
; alternate comment comment A semicolon is an alternate way to delimit a comment. This is not G-code “standard”, but is used by Mach and some Reprap codes. (available as of build 378.05)
(msg….) G-code message message G-code messages are comments that begin with the characters msg (case insensitive). These will be echoed to the operator

Commands the Othermill does not support

The following commands are either not supported by TinyG, or supported by TinyG but not supported by the Othermill or by Otherplan. Files that contain unsupported commands may be unable to load, or lines containing unsupported commands may be skipped. If you find that you can’t import your file, or odd things happen like the spindle doesn’t turn on, check your file to see if it contains the following commands.

Command Name Description
G81-G85 Canned cycles A “canned cycle” is a way of performing repetitive machining functions like making holes or slots. A common one is G85, which is the “mill slot” command. It’s often used in g-code generated by PCB design software. TinyG (and thus the Othermill) doesn’t support this command, so files that contain it can’t be loaded. A workaround is to make a row of overlapping holes instead of a slot.
G54, G56, G57, G58, G59 Alternate coordinate systems Coordinate systems other than G55 are not supported by Otherplan, so make sure you use G55. In some cases, if your software uses a different coordinate system, manually editing the g-code file and changing the command (i.e. from G54 to G55) will make your file work properly.
G18 Select XZ plane An uncommon command, but occasionally used by CAM software. There is a TinyG firmware bug that causes XZ arcs to be be interpreted incorrectly. We are working to fix this issue in future firmware versions.
G93 Set inverse feedrate mode There is a TinyG firmware bug that either cancels the command as soon as you enter any other command, or causes older TinyGs to crash.
E Fixturing offset Some CAM software will try to use the E command to set a fixturing offset, but this causes Otherplan to ignore the entire line containing the E command.
G40-G51 Tool compensation Some CNC machines use commands for specifying tool compensation, but TinyG does not recognize those commands.
M4 Spindle on - CCW Not supported by Othermill spindle - it only turns clockwise
M7 Mist coolant on The Othermill is not equipped with coolant
M8 Flood coolant on The Othermill is not equipped with coolant
M9 All coolant off The Othermill is not equipped with coolant