This page is incomplete and just has answers to some recent questions.
We use the standard Grbl 1.1 status report. This is done to preserve compatibility with gcode senders This has some limitations, so it cannot report individual switches on axes with multiple switches.
The command to get status is the '?' character. It is an immediate command. It does not wait for other commands to complete and it will not return an OK response.
A typical response looks like this.
<Idle|MPos:151.000,149.000,-1.000|Pn:XP|FS:0,0|WCO:12.000,28.000,78.000>
Each section of the response is separated by the '|' character.
This shows the current mode of the machine. It will be one of the following.
Idle
Alarm
Check
This shows that the machine is in check mode. This is a special mode that allows gcode to run and be checked without actually sending I/O.Homing
Run
Jog
Hold
Hold:0
Hold complete. Ready to resume.Hold:1
Hold in-progress. Reset will throw an alarm.Door
Door:0
Door closed. Ready to resume.Door:1
Machine stopped. Door still ajar. Can't resume until closed.Door:2
Door opened. Hold (or parking retract) in-progress. Reset will throw an alarm.Door:3
Door closed and resuming. Restoring from park, if applicable. Reset will throw an alarmSleep
This section shows the current position. It will report MPos for machine position and WPos for work position. You can change type with $10=1 for MPos and $10=2 for WPos. It will show a value for each axis you have defined. It does not label the values, so they are always in XYZABC order. Therefore you cannot skip an axis in your config file.
The Pn: section shows any switches in the currently active state. It does not show the state of individual limit switches. It shows the axis as active if any limit switch on that is active. We have a $Limits command to show those for debugging.
XYZABC
Limit switchesP
Probe SwitchR
Reset SwitchS
Cycle start switchF
Feed hold switchD
Door switch0123
Macro switch statusThis is the section FS: section and tells the current feed rate and spindle speed. The feed rate is actual feed rate, so it shows intermediate values when acceleration to the requested speed.
This show the current work offset from the machine position. This allows you to calculate WPos from MPos, or the other way. This will only show up in the report when it has changed. It is also sent periodically, even if it has not change. The WCO results from things like zero'ing an axis or setting a G54-G59 offset.
This gives you the current Feed:Rapid:Spindle override values. The numbers are in percent.
<Idle|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100>
This shows the percent complete SD:nn.nn
of the file sent from an SD card to the FluidNC motion planner. FluidNC still has to complete the last motion commands after they have all been sent. This is only present while an SD card job is running.
<Run|MPos:0.000,0.000,0.000|FS:0,0|Ov:100,100,100|SD:47.32>