Mandate all probe cycles ignore feed overrides.

- For repeatability reasons, all G38.x probe cycles ignore feed rate
overrides and move at their programmed speed.

- The mandate can be removed with a new config.h option.

- Updated the documentation to reflect the change.
This commit is contained in:
chamnit 2016-10-25 20:03:30 -06:00
parent a6f6431515
commit 3854d200bb
6 changed files with 26 additions and 0 deletions

View File

@ -7,6 +7,7 @@
"Z","Homing force origin","Enabled" "Z","Homing force origin","Enabled"
"H","Homing single axis commands","Enabled" "H","Homing single axis commands","Enabled"
"L","Two limit switches on axis","Enabled" "L","Two limit switches on axis","Enabled"
"A","Allow feed rate overrides in probe cycles","Enabled"
"R","Classic compatibility mode","Enabled" "R","Classic compatibility mode","Enabled"
"*","Restore all EEPROM command","Disabled" "*","Restore all EEPROM command","Disabled"
"$","Restore EEPROM `$` settings command","Disabled" "$","Restore EEPROM `$` settings command","Disabled"

1 OPT: Code Build-Option Description State
7 Z Homing force origin Enabled
8 H Homing single axis commands Enabled
9 L Two limit switches on axis Enabled
10 A Allow feed rate overrides in probe cycles Enabled
11 R Classic compatibility mode Enabled
12 * Restore all EEPROM command Disabled
13 $ Restore EEPROM `$` settings command Disabled

View File

@ -1,3 +1,14 @@
----------------
Date: 2016-10-25
Author: chamnit
Subject: Resolved parking accessory handling issue.
- Yikes. Totally borked the last parking “fix”. Testing shows that all
accessories are now properly handled when retracting and restoring. It
was caused by not accounting for the planner re-factoring correctly in
the parking code.
---------------- ----------------
Date: 2016-10-24 Date: 2016-10-24
Author: Sonny Jeon Author: Sonny Jeon

View File

@ -311,6 +311,7 @@ Feedback messages provide non-critical information on what Grbl is doing, what i
| **`Z`** | Homing force origin enabled | | **`Z`** | Homing force origin enabled |
| **`H`** | Homing single axis enabled | | **`H`** | Homing single axis enabled |
| **`L`** | Two limit switches on axis enabled | | **`L`** | Two limit switches on axis enabled |
| **`A`** | Allow feed rate overrides in probe cycles |
| **`R`** | Classic compatiblity mode enabled | | **`R`** | Classic compatiblity mode enabled |
| **`*`** | Restore all EEPROM disabled | | **`*`** | Restore all EEPROM disabled |
| **`$`** | Restore EEPROM `$` settings disabled | | **`$`** | Restore EEPROM `$` settings disabled |

View File

@ -540,6 +540,13 @@
// that any of these commands are used need continuous motions through them. // that any of these commands are used need continuous motions through them.
#define FORCE_BUFFER_SYNC_DURING_WCO_CHANGE // Default enabled. Comment to disable. #define FORCE_BUFFER_SYNC_DURING_WCO_CHANGE // Default enabled. Comment to disable.
// By default, Grbl disables feed rate overrides for all G38.x probe cycle commands. Although this
// may be different than some pro-class machine control, it's arguable that it should be this way.
// Most probe sensors produce different levels of error that is dependent on rate of speed. By
// keeping probing cycles to their programmed feed rates, the probe sensor should be a lot more
// repeatable. If needed, you can disable this behavior by uncommenting the define below.
// #define ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES // Default disabled. Uncomment to enable.
// Enables and configures parking motion methods upon a safety door state. Primarily for OEMs // Enables and configures parking motion methods upon a safety door state. Primarily for OEMs
// that desire this feature for their integrated machines. At the moment, Grbl assumes that // that desire this feature for their integrated machines. At the moment, Grbl assumes that
// the parking motion only involves one axis, although the parking implementation was written // the parking motion only involves one axis, although the parking implementation was written

View File

@ -1040,6 +1040,9 @@ uint8_t gc_execute_line(char *line)
} else { } else {
// NOTE: gc_block.values.xyz is returned from mc_probe_cycle with the updated position value. So // NOTE: gc_block.values.xyz is returned from mc_probe_cycle with the updated position value. So
// upon a successful probing cycle, the machine position and the returned value should be the same. // upon a successful probing cycle, the machine position and the returned value should be the same.
#ifndef ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES
pl_data->condition |= PL_COND_FLAG_NO_FEED_OVERRIDE;
#endif
uint8_t is_probe_away = false; uint8_t is_probe_away = false;
uint8_t is_no_error = false; uint8_t is_no_error = false;
if ((gc_state.modal.motion == MOTION_MODE_PROBE_AWAY) || (gc_state.modal.motion == MOTION_MODE_PROBE_AWAY_NO_ERROR)) { is_probe_away = true; } if ((gc_state.modal.motion == MOTION_MODE_PROBE_AWAY) || (gc_state.modal.motion == MOTION_MODE_PROBE_AWAY_NO_ERROR)) { is_probe_away = true; }

View File

@ -569,6 +569,9 @@ void report_build_info(char *line)
#ifdef LIMITS_TWO_SWITCHES_ON_AXES #ifdef LIMITS_TWO_SWITCHES_ON_AXES
serial_write('L'); serial_write('L');
#endif #endif
#ifdef ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES
serial_write('A');
#endif
#ifdef USE_CLASSIC_GRBL_INTERFACE #ifdef USE_CLASSIC_GRBL_INTERFACE
serial_write('R'); serial_write('R');
#endif #endif