Added setting options for clearing rapids and feed overrids on soft reset to $676, defaults to on. Ref. issue #803.

Added realtime report of distance-to-go. Ref. PR #802.
This commit is contained in:
Terje Io
2025-09-10 21:34:20 +02:00
parent 75b1a23839
commit a61e5e1089
8 changed files with 72 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
## grblHAL ##
Latest build date is 20250829, see the [changelog](changelog.md) for details.
Latest build date is 20250910, see the [changelog](changelog.md) for details.
> [!NOTE]
> A settings reset will be performed on an update of builds prior to 20241208. Backup and restore of settings is recommended.

View File

@@ -1,5 +1,27 @@
## grblHAL changelog
<a name="20250910">Build 20250910
Core:
* Added setting options for clearing rapids and feed overrids on soft reset to `$676`, defaults to on. Ref. issue [#803](https://github.com/grblHAL/core/issues/803).
* Added realtime report of distance-to-go. Ref. PR [#802](https://github.com/grblHAL/core/pull/802).
Drivers:
* iMXRT1062: fix for crash when basic on/off spindle is configured.
* STM32F4xx: workaround for PWM LED strip code setting output pin as high-Z when idle.
* STM32F7xx: improved spindle encoder code.
Plugins:
* Misc, eventout: fix for mixup of spindle on/off and spindle-at-speed events.
---
<a name="20250902">Build 20250902
Core:
@@ -10,7 +32,7 @@ Core:
Drivers:
* ESP32, TM4C123: updated for changed `ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING` symbol.
* ESP32, SAM3X8E and TM4C123: updated for changed `ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING` symbol.
* RP2040: updated BTT SKR Pico v1 map to use _Servo_ port for reset/estop in four motor configurations. Ref discussion [#110](https://github.com/grblHAL/RP2040/discussions/110).

View File

@@ -902,7 +902,7 @@ to a reset during motion.
/*! /def DEFAULT_KEEP_OFFSETS_ON_RESET
\brief
Enable this setting to keep offsets (except G92 which is always kept) over a soft reset.
\internal Bit 14 in settings.flags.
\internal Bit 17 in settings.flags.
*/
///@{
#if !defined DEFAULT_KEEP_OFFSETS_ON_RESET || defined __DOXYGEN__
@@ -910,6 +910,30 @@ Enable this setting to keep offsets (except G92 which is always kept) over a sof
#endif
///@}
/*! /def DEFAULT_KEEP_RAPIDS_OVR_ON_RESET
\brief
Enable this setting to keep rapids override over a soft reset.
\internal Bit 21 in settings.flags.
*/
///@{
#if !defined DEFAULT_KEEP_RAPIDS_OVR_ON_RESET || defined __DOXYGEN__
#define DEFAULT_KEEP_RAPIDS_OVR_ON_RESET Off
#endif
///@}
/*! /def DEFAULT_KEEP_FEED_OVR_ON_RESET
\brief
Enable this setting to feedrate override over a soft reset.
\internal Bit 22 in settings.flags.
*/
///@{
#if !defined DEFAULT_KEEP_FEED_OVR_ON_RESET || defined __DOXYGEN__
#define DEFAULT_KEEP_FEED_OVR_ON_RESET Off
#endif
///@}
// Control signals settings (Group_ControlSignals)
#ifndef __DOXYGEN__ // For now do not include in documentation

4
grbl.h
View File

@@ -42,7 +42,7 @@
#else
#define GRBL_VERSION "1.1f"
#endif
#define GRBL_BUILD 20250902
#define GRBL_BUILD 20250910
#define GRBL_URL "https://github.com/grblHAL"
@@ -120,7 +120,7 @@
#define CMD_OPTIONAL_STOP_TOGGLE 0x88
#define CMD_SINGLE_BLOCK_TOGGLE 0x89
#define CMD_OVERRIDE_FAN0_TOGGLE 0x8A //!< Toggle Fan 0 on/off, not implemented by the core.
#define CMD_MPG_MODE_TOGGLE 0x8B //!< Toggle MPG mode on/off, not implemented by the core.
#define CMD_MPG_MODE_TOGGLE 0x8B //!< Toggle MPG mode on/off, available when the MPG stream is enabled with MPG mode 2.
#define CMD_AUTO_REPORTING_TOGGLE 0x8C //!< Toggle auto real time reporting if configured.
#define CMD_OVERRIDE_FEED_RESET 0x90 //!< Restores feed override value to 100%.
#define CMD_OVERRIDE_FEED_COARSE_PLUS 0x91

View File

@@ -420,14 +420,18 @@ int grbl_enter (void)
// Reset report entry points
report_init_fns();
overrides_t override;
memcpy(&override, &sys.override, sizeof(overrides_t));
if(!sys.position_lost || settings.homing.flags.keep_on_reset)
memset(&sys, 0, offsetof(system_t, homed)); // Clear system variables except alarm & homed status.
else
memset(&sys, 0, offsetof(system_t, alarm)); // Clear system variables except state & alarm.
sys.var5399 = -2; // Clear last M66 result
sys.override.feed_rate = DEFAULT_FEED_OVERRIDE; // Set to 100%
sys.override.rapid_rate = DEFAULT_RAPID_OVERRIDE; // Set to 100%
sys.var5399 = -2; // Clear last M66 result
sys.override.feed_rate = sys.cold_start || !settings.flags.keep_feed_override_on_reset ? DEFAULT_FEED_OVERRIDE : override.feed_rate;
sys.override.rapid_rate = sys.cold_start || !settings.flags.keep_rapids_override_on_reset ? DEFAULT_RAPID_OVERRIDE : override.rapid_rate;
do {
if(spindle_is_enabled(--spindle_num))
spindle_get(spindle_num)->param->override_pct = DEFAULT_SPINDLE_RPM_OVERRIDE; // Set to 100%

View File

@@ -1264,8 +1264,8 @@ void report_realtime_status (stream_write_ptr stream_write)
dist_remaining[idx] = cur_block->target_mm[idx] - dist_remaining[idx];
}
hal.stream.write_all("|DTG:");
hal.stream.write_all(get_axis_values(dist_remaining));
stream_write("|DTG:");
stream_write(get_axis_values(dist_remaining));
}
}

View File

@@ -91,6 +91,8 @@ PROGMEM const settings_t defaults = {
.flags.tool_change_fast_pulloff = DEFAULT_TOOLCHANGE_FAST_PROBE_PULLOFF,
.flags.no_unlock_after_estop = DEFAULT_NO_UNLOCK_AFTER_ESTOP,
.flags.keep_offsets_on_reset = DEFAULT_KEEP_OFFSETS_ON_RESET,
.flags.keep_rapids_override_on_reset = DEFAULT_KEEP_RAPIDS_OVR_ON_RESET,
.flags.keep_feed_override_on_reset = DEFAULT_KEEP_FEED_OVR_ON_RESET,
.flags.tool_persistent = DEFAULT_PERSIST_TOOL,
.probe.disable_probe_pullup = DEFAULT_PROBE_SIGNAL_DISABLE_PULLUP,
@@ -1049,6 +1051,8 @@ static status_code_t set_reset_actions (setting_id_t id, uint_fast16_t int_value
{
settings.homing.flags.keep_on_reset = bit_isfalse(int_value, bit(0));
settings.flags.keep_offsets_on_reset = bit_isfalse(int_value, bit(1));
settings.flags.keep_rapids_override_on_reset = bit_isfalse(int_value, bit(2));
settings.flags.keep_feed_override_on_reset = bit_isfalse(int_value, bit(3));
return Status_OK;
}
@@ -1660,7 +1664,10 @@ static uint32_t get_int (setting_id_t id)
break;
#endif
case Setting_ResetActions:
value = (!settings.homing.flags.keep_on_reset) | ((!settings.flags.keep_offsets_on_reset) << 1);
value = (!settings.homing.flags.keep_on_reset) |
((!settings.flags.keep_offsets_on_reset) << 1) |
((!settings.flags.keep_rapids_override_on_reset) << 2) |
((!settings.flags.keep_feed_override_on_reset) << 3);
break;
default:
@@ -2162,7 +2169,7 @@ PROGMEM static const setting_detail_t setting_detail[] = {
{ Setting_MotorWarningsInvert, Group_Stepper, "Invert motor warning inputs", NULL, Format_AxisMask, NULL, NULL, NULL, Setting_IsExtended, &settings.motor_warning_invert, NULL, is_setting_available },
{ Setting_MotorFaultsEnable, Group_Stepper, "Motor fault inputs enable", NULL, Format_AxisMask, NULL, NULL, NULL, Setting_IsExtended, &settings.motor_fault_enable, NULL, is_setting_available },
{ Setting_MotorFaultsInvert, Group_Stepper, "Invert motor fault inputs", NULL, Format_AxisMask, NULL, NULL, NULL, Setting_IsExtended, &settings.motor_fault_invert, NULL, is_setting_available },
{ Setting_ResetActions, Group_General, "Reset actions", NULL, Format_Bitfield, "Clear homed status if position was lost,Clear offsets (except G92)", NULL, NULL, Setting_IsExtendedFn, set_reset_actions, get_int, NULL },
{ Setting_ResetActions, Group_General, "Reset actions", NULL, Format_Bitfield, "Clear homed status if position was lost,Clear offsets (except G92),Clear rapids override,Clear feed override", NULL, NULL, Setting_IsExtendedFn, set_reset_actions, get_int, NULL },
{ Setting_StepperEnableDelay, Group_Stepper, "Stepper enable delay", "ms", Format_Int16, "##0", NULL, "250", Setting_IsExtended, &settings.stepper_enable_delay, NULL, NULL },
};

View File

@@ -602,7 +602,9 @@ typedef union {
tool_change_at_g30 :1,
tool_change_fast_pulloff :1,
tool_persistent :1,
unassigned :11;
keep_rapids_override_on_reset :1,
keep_feed_override_on_reset :1,
unassigned :9;
};
} settingflags_t;