Tool number bug fix. Updated documentation.
- [fix] Tool numbers were not being tracked and reported correctly. Now shows tool number values in $G when programmed. - [fix] Added a max tool number value check to the g-code parser. - [doc] Added a new error code for invalid tool number. Updated CSV and interface documents. - [doc] Added a implementation note for buffer state in status reports. Don’t rely on this data for streaming.
This commit is contained in:
parent
30c0f79afd
commit
67ab9280d9
@ -1,35 +1,36 @@
|
|||||||
"Error Code in v1.1+ ","Error Message in v1.0-"," Error Description"
|
Error Code in v1.1+ ,Error Message in v1.0-, Error Description
|
||||||
"1","Expected command letter","G-code words consist of a letter and a value. Letter was not found."
|
1,Expected command letter,G-code words consist of a letter and a value. Letter was not found.
|
||||||
"2","Bad number format","Missing the expected G-code word value or numeric value format is not valid."
|
2,Bad number format,Missing the expected G-code word value or numeric value format is not valid.
|
||||||
"3","Invalid statement","Grbl '$' system command was not recognized or supported."
|
3,Invalid statement,Grbl '$' system command was not recognized or supported.
|
||||||
"4","Value < 0","Negative value received for an expected positive value."
|
4,Value < 0,Negative value received for an expected positive value.
|
||||||
"5","Setting disabled","Homing cycle failure. Homing is not enabled via settings."
|
5,Setting disabled,Homing cycle failure. Homing is not enabled via settings.
|
||||||
"6","Value < 3 usec","Minimum step pulse time must be greater than 3usec."
|
6,Value < 3 usec,Minimum step pulse time must be greater than 3usec.
|
||||||
"7","EEPROM read fail. Using defaults","An EEPROM read failed. Auto-restoring affected EEPROM to default values."
|
7,EEPROM read fail. Using defaults,An EEPROM read failed. Auto-restoring affected EEPROM to default values.
|
||||||
"8","Not idle","Grbl '$' command cannot be used unless Grbl is IDLE. Ensures smooth operation during a job."
|
8,Not idle,Grbl '$' command cannot be used unless Grbl is IDLE. Ensures smooth operation during a job.
|
||||||
"9","G-code lock","G-code commands are locked out during alarm or jog state."
|
9,G-code lock,G-code commands are locked out during alarm or jog state.
|
||||||
"10","Homing not enabled","Soft limits cannot be enabled without homing also enabled."
|
10,Homing not enabled,Soft limits cannot be enabled without homing also enabled.
|
||||||
"11","Line overflow","Max characters per line exceeded. Received command line was not executed."
|
11,Line overflow,Max characters per line exceeded. Received command line was not executed.
|
||||||
"12","Step rate > 30kHz","Grbl '$' setting value cause the step rate to exceed the maximum supported."
|
12,Step rate > 30kHz,Grbl '$' setting value cause the step rate to exceed the maximum supported.
|
||||||
"13","Check Door","Safety door detected as opened and door state initiated."
|
13,Check Door,Safety door detected as opened and door state initiated.
|
||||||
"14","Line length exceeded","Build info or startup line exceeded EEPROM line length limit. Line not stored."
|
14,Line length exceeded,Build info or startup line exceeded EEPROM line length limit. Line not stored.
|
||||||
"15","Travel exceeded","Jog target exceeds machine travel. Jog command has been ignored."
|
15,Travel exceeded,Jog target exceeds machine travel. Jog command has been ignored.
|
||||||
"16","Invalid jog command","Jog command has no '=' or contains prohibited g-code."
|
16,Invalid jog command,Jog command has no '=' or contains prohibited g-code.
|
||||||
"20","Unsupported command","Unsupported or invalid g-code command found in block."
|
20,Unsupported command,Unsupported or invalid g-code command found in block.
|
||||||
"21","Modal group violation","More than one g-code command from same modal group found in block."
|
21,Modal group violation,More than one g-code command from same modal group found in block.
|
||||||
"22","Undefined feed rate","Feed rate has not yet been set or is undefined."
|
22,Undefined feed rate,Feed rate has not yet been set or is undefined.
|
||||||
"23","Invalid gcode ID:23","G-code command in block requires an integer value."
|
23,Invalid gcode ID:23,G-code command in block requires an integer value.
|
||||||
"24","Invalid gcode ID:24","More than one g-code command that requires axis words found in block."
|
24,Invalid gcode ID:24,More than one g-code command that requires axis words found in block.
|
||||||
"25","Invalid gcode ID:25","Repeated g-code word found in block."
|
25,Invalid gcode ID:25,Repeated g-code word found in block.
|
||||||
"26","Invalid gcode ID:26","No axis words found in block for g-code command or current modal state which requires them."
|
26,Invalid gcode ID:26,No axis words found in block for g-code command or current modal state which requires them.
|
||||||
"27","Invalid gcode ID:27","Line number value is invalid."
|
27,Invalid gcode ID:27,Line number value is invalid.
|
||||||
"28","Invalid gcode ID:28","G-code command is missing a required value word."
|
28,Invalid gcode ID:28,G-code command is missing a required value word.
|
||||||
"29","Invalid gcode ID:29","G59.x work coordinate systems are not supported."
|
29,Invalid gcode ID:29,G59.x work coordinate systems are not supported.
|
||||||
"30","Invalid gcode ID:30","G53 only allowed with G0 and G1 motion modes."
|
30,Invalid gcode ID:30,G53 only allowed with G0 and G1 motion modes.
|
||||||
"31","Invalid gcode ID:31","Axis words found in block when no command or current modal state uses them."
|
31,Invalid gcode ID:31,Axis words found in block when no command or current modal state uses them.
|
||||||
"32","Invalid gcode ID:32","G2 and G3 arcs require at least one in-plane axis word."
|
32,Invalid gcode ID:32,G2 and G3 arcs require at least one in-plane axis word.
|
||||||
"33","Invalid gcode ID:33","Motion command target is invalid."
|
33,Invalid gcode ID:33,Motion command target is invalid.
|
||||||
"34","Invalid gcode ID:34","Arc radius value is invalid."
|
34,Invalid gcode ID:34,Arc radius value is invalid.
|
||||||
"35","Invalid gcode ID:35","G2 and G3 arcs require at least one in-plane offset word."
|
35,Invalid gcode ID:35,G2 and G3 arcs require at least one in-plane offset word.
|
||||||
"36","Invalid gcode ID:36","Unused value words found in block."
|
36,Invalid gcode ID:36,Unused value words found in block.
|
||||||
"37","Invalid gcode ID:37","G43.1 dynamic tool length offset is not assigned to configured tool length axis."
|
37,Invalid gcode ID:37,G43.1 dynamic tool length offset is not assigned to configured tool length axis.
|
||||||
|
38,Invalid gcode ID:38,Tool number greater than max supported value.
|
|
@ -1,3 +1,13 @@
|
|||||||
|
----------------
|
||||||
|
Date: 2017-01-03
|
||||||
|
Author: Sonny Jeon
|
||||||
|
Subject: Spindle enable pin with variable spindle option fix.
|
||||||
|
|
||||||
|
- [fix] When USE_SPINDLE_DIR_AS_ENABLE_PIN is enabled in config.h, the
|
||||||
|
enable pin was not being set when spindle speed is zero. This behavior
|
||||||
|
should now be fixed.
|
||||||
|
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
Date: 2016-12-19
|
Date: 2016-12-19
|
||||||
Author: Sonny Jeon
|
Author: Sonny Jeon
|
||||||
|
@ -174,6 +174,7 @@ Every G-code block sent to Grbl and Grbl `$` system command that is terminated w
|
|||||||
| **`35`** | A `G2` or `G3` arc, traced with the offset definition, is missing the `IJK` offset word in the selected plane to trace the arc.|
|
| **`35`** | A `G2` or `G3` arc, traced with the offset definition, is missing the `IJK` offset word in the selected plane to trace the arc.|
|
||||||
| **`36`** | There are unused, leftover G-code words that aren't used by any command in the block.|
|
| **`36`** | There are unused, leftover G-code words that aren't used by any command in the block.|
|
||||||
| **`37`** | 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.|
|
| **`37`** | 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.|
|
||||||
|
| **`38`** | Tool number greater than max supported value.|
|
||||||
|
|
||||||
|
|
||||||
----------------------
|
----------------------
|
||||||
@ -567,6 +568,8 @@ Feedback messages provide non-critical information on what Grbl is doing, what i
|
|||||||
|
|
||||||
- The usage of this data is generally for debugging an interface, but is known to be used to control some GUI-specific tasks. While this is disabled by default, GUIs should expect this data field to appear, but they may ignore it, if desired.
|
- The usage of this data is generally for debugging an interface, but is known to be used to control some GUI-specific tasks. While this is disabled by default, GUIs should expect this data field to appear, but they may ignore it, if desired.
|
||||||
|
|
||||||
|
- IMPORTANT: Do not use this buffer data to control streaming. During a stream, the reported buffer will often be out-dated and may be incorrect by the time it has been received by the GUI. Instead, please use the streaming protocols outlined. They use Grbl's responses as a direct way to accurately determine the buffer state.
|
||||||
|
|
||||||
- NOTE: The buffer state values changed from showing "in-use" blocks or bytes to "available". This change does not require the GUI knowing how many block/bytes Grbl has been compiled with.
|
- NOTE: The buffer state values changed from showing "in-use" blocks or bytes to "available". This change does not require the GUI knowing how many block/bytes Grbl has been compiled with.
|
||||||
|
|
||||||
- This data field appears:
|
- This data field appears:
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3
|
#define COOLANT_FLOOD_BIT 3 // Uno Analog Pin 3
|
||||||
#define COOLANT_MIST_DDR DDRC
|
#define COOLANT_MIST_DDR DDRC
|
||||||
#define COOLANT_MIST_PORT PORTC
|
#define COOLANT_MIST_PORT PORTC
|
||||||
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 3
|
#define COOLANT_MIST_BIT 4 // Uno Analog Pin 4
|
||||||
|
|
||||||
// Define user-control controls (cycle start, reset, feed hold) input pins.
|
// Define user-control controls (cycle start, reset, feed hold) input pins.
|
||||||
// NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
|
// NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
// arbitrary value, and some GUIs may require more. So we increased it based on a max safe
|
// arbitrary value, and some GUIs may require more. So we increased it based on a max safe
|
||||||
// value when converting a float (7.2 digit precision)s to an integer.
|
// value when converting a float (7.2 digit precision)s to an integer.
|
||||||
#define MAX_LINE_NUMBER 10000000
|
#define MAX_LINE_NUMBER 10000000
|
||||||
|
#define MAX_TOOL_NUMBER 255 // Limited by max unsigned 8-bit value
|
||||||
|
|
||||||
#define AXIS_COMMAND_NONE 0
|
#define AXIS_COMMAND_NONE 0
|
||||||
#define AXIS_COMMAND_NON_MODAL 1
|
#define AXIS_COMMAND_NON_MODAL 1
|
||||||
@ -310,7 +311,10 @@ uint8_t gc_execute_line(char *line)
|
|||||||
// case 'Q': // Not supported
|
// case 'Q': // Not supported
|
||||||
case 'R': word_bit = WORD_R; gc_block.values.r = value; break;
|
case 'R': word_bit = WORD_R; gc_block.values.r = value; break;
|
||||||
case 'S': word_bit = WORD_S; gc_block.values.s = value; break;
|
case 'S': word_bit = WORD_S; gc_block.values.s = value; break;
|
||||||
case 'T': word_bit = WORD_T; break; // gc.values.t = int_value;
|
case 'T': word_bit = WORD_T;
|
||||||
|
if (value > MAX_TOOL_NUMBER) { FAIL(STATUS_GCODE_MAX_VALUE_EXCEEDED); }
|
||||||
|
gc_block.values.t = int_value;
|
||||||
|
break;
|
||||||
case 'X': word_bit = WORD_X; gc_block.values.xyz[X_AXIS] = value; axis_words |= (1<<X_AXIS); break;
|
case 'X': word_bit = WORD_X; gc_block.values.xyz[X_AXIS] = value; axis_words |= (1<<X_AXIS); break;
|
||||||
case 'Y': word_bit = WORD_Y; gc_block.values.xyz[Y_AXIS] = value; axis_words |= (1<<Y_AXIS); break;
|
case 'Y': word_bit = WORD_Y; gc_block.values.xyz[Y_AXIS] = value; axis_words |= (1<<Y_AXIS); break;
|
||||||
case 'Z': word_bit = WORD_Z; gc_block.values.xyz[Z_AXIS] = value; axis_words |= (1<<Z_AXIS); break;
|
case 'Z': word_bit = WORD_Z; gc_block.values.xyz[Z_AXIS] = value; axis_words |= (1<<Z_AXIS); break;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
// Grbl versioning system
|
// Grbl versioning system
|
||||||
#define GRBL_VERSION "1.1e"
|
#define GRBL_VERSION "1.1e"
|
||||||
#define GRBL_VERSION_BUILD "20170103"
|
#define GRBL_VERSION_BUILD "20170114"
|
||||||
|
|
||||||
// Define standard libraries used by Grbl.
|
// Define standard libraries used by Grbl.
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#define STATUS_GCODE_NO_OFFSETS_IN_PLANE 35
|
#define STATUS_GCODE_NO_OFFSETS_IN_PLANE 35
|
||||||
#define STATUS_GCODE_UNUSED_WORDS 36
|
#define STATUS_GCODE_UNUSED_WORDS 36
|
||||||
#define STATUS_GCODE_G43_DYNAMIC_AXIS_ERROR 37
|
#define STATUS_GCODE_G43_DYNAMIC_AXIS_ERROR 37
|
||||||
|
#define STATUS_GCODE_MAX_VALUE_EXCEEDED 38
|
||||||
|
|
||||||
// Define Grbl alarm codes. Valid values (1-255). 0 is reserved.
|
// Define Grbl alarm codes. Valid values (1-255). 0 is reserved.
|
||||||
#define ALARM_HARD_LIMIT_ERROR EXEC_ALARM_HARD_LIMIT
|
#define ALARM_HARD_LIMIT_ERROR EXEC_ALARM_HARD_LIMIT
|
||||||
|
Loading…
Reference in New Issue
Block a user