GRBL Error Codes


ERROR 0 – STATUS_OK All Good, This is an error code suggesting that there is NO error

ERROR 1 – STATUS_EXPECTED_COMMAND_LETTER Gcodes should start with a Letter, what ever was just sent to GRBL did not


ERROR 0 – STATUS_OK All Good, This is an error code suggesting that there is NO error

ERROR 1 – STATUS_EXPECTED_COMMAND_LETTER Gcodes should start with a Letter, what ever was just sent to GRBL did not

ERROR 2 – STATUS_BAD_NUMBER_FORMAT The number part of the Gcode was invalid

ERROR 3 – STATUS_INVALID_STATEMENT Usualy a bad GRBL Specific $ instruction

ERROR 4 – STATUS_NEGATIVE_VALUE Negative value received for an expected positive value.

ERROR 5 – STATUS_SETTING_DISABLED A call to a disabled function was issued – EG you issued $H for homing but your $20 (homing enable) parameter is set to 0 (off)

ERROR 6 – STATUS_SETTING_STEP_PULSE_MIN Your $0 (step pulse time) is to short, set it back to its default value, $0=10

ERROR 7 – STATUS_SETTING_READ_FAIL Corrupt EEPROM values, you will need to reconfigure all your $ values as they have been reset to default – this time once you have worked them all out, make a copy! This is a rare error.

ERROR 8 – STATUS_IDLE_ERROR You have issued a command only allowed when the machine active state is Idle. Example you sent $$ while the Active state was run (job was in progress)

ERROR 9 – STATUS_SYSTEM_GC_LOCK machine is locked in error of some sort, and you tried to issue a movement command. Did you forget to $X the machine? Or is it sitting on a Limit Switch?

ERROR 10 – STATUS_SOFT_LIMIT_ERROR You will see this if you try to enable soft limits without also enabling homing cycle. Soft limits cannot work unless you first home the machine so it knows where it is!

ERROR 11 – STATUS_OVERFLOW GRBL has a max number of charactors it will accept in one command, it received on that was too long – often happens when CAM software puts long comments in file

ERROR 12 – STATUS_MAX_STEP_RATE_EXCEEDED You tried to set a Step rate that was too high, look at your $110, $111,$112 values! ERROR 13 – STATUS_CHECK_DOOR You have the safety door funtion turned on and it is showing not closed…close it

ERROR 14 – STATUS_LINE_LENGTH_EXCEEDED You should not see this error and if you do you should know what it means!

ERROR 15 – STATUS_TRAVEL_EXCEEDED You have got soft limits turned on and configured, and the job your trying to run is larger than you have told grbl that your machine actualy is. Either fix your soft limit values and if they are correct, look at why your cam setup is trying to use more space than you actually have.

ERROR 16 – STATUS_INVALID_JOG_COMMAND Jogging command issued was not valid, possibly forgot the =… part

ERROR 17 – STATUS_SETTING_DISABLED_LASER Probrably happened when you turned on $32 wthout enableing PWM – We don’t know a lot about this error – email us if you work it out and we can add it to this list

ERROR 20 – STATUS_GCODE_UNSUPPORTED_COMMAND Unsupported or invalid g-code command found in block.


ERROR 22 – STATUS_GCODE_UNDEFINED_FEED_RATE You cannot issue a movement if no feed rate has been set – so issue something like F1000 (feed at 1000mm/min) before sending a movement command. You will likely only see this error when bashing stuff into the command prompt and not when using a gui

ERROR 23 – STATUS_GCODE_COMMAND_VALUE_NOT_INTEGER Look into the command you sent, did it include a non integer value?

ERROR 24 – STATUS_GCODE_AXIS_COMMAND_CONFLICT Two G-code commands that both require the use of the XYZ axis words were detected in the block.

ERROR 25 – STATUS_GCODE_WORD_REPEATED A G-code word was repeated in the block.

ERROR 26 – STATUS_GCODE_NO_AXIS_WORDS A G-code command implicitly or explicitly requires XYZ axis words in the block, but none were detected.

ERROR 27 – STATUS_GCODE_INVALID_LINE_NUMBER N line number value is not within the valid range of 1 – 9,999,999 – why not turn off line numbers in your CAM software

ERROR 28 – STATUS_GCODE_VALUE_WORD_MISSING A G-code command was sent, but is missing some required P or L value words in the line.

ERROR 29 – STATUS_GCODE_UNSUPPORTED_COORD_SYS Grbl supports six work coordinate systems G54-G59. G59.1, G59.2, and G59.3 are not supported.

ERROR 30 – STATUS_GCODE_G53_INVALID_MOTION_MODE The G53 G-code command requires either a G0 seek or G1 feed motion mode to be active. A different motion was active.

ERROR 31 – STATUS_GCODE_AXIS_WORDS_EXIST There are unused axis words in the block and G80 motion mode cancel is active.

ERROR 32 – STATUS_GCODE_NO_AXIS_WORDS_IN_PLANE A G2 or G3 arc was commanded but there are no XYZ axis words in the selected plane to trace the arc.

ERROR 33 – STATUS_GCODE_INVALID_TARGET The motion command has an invalid target. G2, G3, and G38.2 generates this error, if the arc is impossible to generate or if the probe target is the current position.

ERROR 34 – STATUS_GCODE_ARC_RADIUS_ERROR A G2 or G3 arc, traced with the radius definition, had a mathematical error when computing the arc geometry. Try either breaking up the arc into semi-circles or quadrants, or redefine them with the arc offset definition.

ERROR 35 – STATUS_GCODE_NO_OFFSETS_IN_PLANE A G2 or G3 arc, traced with the offset definition, is missing the IJK offset word in the selected plane to trace the arc.

ERROR 36 – STATUS_GCODE_UNUSED_WORDS There are unused, leftover G-code words that aren’t used by any command in the block.

ERROR 37 – STATUS_GCODE_G43_DYNAMIC_AXIS_ERROR The G43.1 dynamic tool length offset command cannot apply an offset to an axis other than its configured axis. The Grbl default axis is the Z-axis.

ERROR 38 – STATUS_GCODE_MAX_VALUE_EXCEEDED You sent a number higher than expected, maybe for a tool change you tried to select tool 50000 or something?


ALARM 1 – EXEC_ALARM_HARD_LIMIT Hard Limit Error, A limit switch was triggered, this always results in the end of your job. The only time a limit switch should be hit is during a homing cycle, at any other time it will stop the system. Either your machine went to far in one direction and hit a switch or you have electrical noise getting into your limit switch wiring. Do not restart your jhob without rehoming or resetting / confirming the machines position, it will unliely be correct still!

ALARM 2 – EXEC_ALARM_SOFT_LIMIT Soft Limit Error, Either you or a Gcode file tried to send some axis past further than you have suggested it can in your $130, $131 ,$132 parameters

ALARM 3 – EXEC_ALARM_ABORT_CYCLE The Estop was hit! Same as a hard limit, just a different button – look at details above for Alarm 1

ALARM 4 – EXEC_ALARM_PROBE_FAIL_INITIAL Grbl was expecting your probe to be in a state other than that it is before starting a probing cycle – ie your tool is already touching the probe or similar

ALARM 5 – EXEC_ALARM_PROBE_FAIL_CONTACT Z axis was sent down as far as it dared (instructed) and did not hit a switch. Instead of digging to china it assumes you forgot to put an aligator clip on or that something else is wrong and so stops.

ALARM 6 – EXEC_ALARM_HOMING_FAIL_RESET Reset was issued during a homing cycle, or maybe falsely triggered by electrical noise in your system/environment if your estop button is connected to the Abort pin and not to the reset pin that is

ALARM 7 – EXEC_ALARM_HOMING_FAIL_DOOR Safety door was opened during a homing cycle, or maybe falsely triggered by electrical noise in your system/environment

ALARM 8 – EXEC_ALARM_HOMING_FAIL_PULLOFF Grbl tries to pull back of a switch and hit it a second time (slowly) during a homing cycle. Your Homing Pulloff value was not sufficient to enable the axis to move far enough away from the switch. Increase $27 to maybe 3 or 5mm – $27=5.000

ALARM 9 – EXEC_ALARM_HOMING_FAIL_APPROACH When homing, grbl will not travel further than the values in parameters $130, $131 ,$132 while trying to locate a limit switch. So even if your soft limits are off, make sure these values are correct or larger than your machine. Homing fail. Could not find limit switch within search distance. Defined as 1.5 * max_travel on search and 5 * pulloff on locate phases.







Author: Zalophus Dokdo

Designer, Maker

Leave a Reply