I encountered a potential bug where if the first bit of Feed hold actions $63 (i.e., Disable laser during hold) is false, the power set-point is not restored on resume and therefore the laser does not continue firing.
I have tested and the issue appears to be resolved by adding:
sys.step_control.update_spindle_rpm = On;
following line 694 in state_machine.c
|
default: |
|
if (!settings.flags.restore_after_feed_hold) { |
|
if (!restore_condition.spindle[restore_condition.spindle_num].hal->get_state(restore_condition.spindle[restore_condition.spindle_num].hal).on) |
|
gc_spindle_off(); |
|
sys.override.spindle_stop.value = 0; // Clear spindle stop override states |
|
} else { |
|
|
|
if (restore_condition.spindle[restore_condition.spindle_num].state.on != restore_condition.spindle[restore_condition.spindle_num].hal->get_state(restore_condition.spindle[restore_condition.spindle_num].hal).on) { |
|
grbl.report.feedback_message(Message_SpindleRestore); |
|
state_spindle_restore(&restore_condition.spindle[restore_condition.spindle_num], settings.spindle.on_delay); |
|
} |
|
|
|
if (restore_condition.coolant.value != hal.coolant.get_state().value) { |
|
// NOTE: Laser mode will honor this delay. An exhaust system is often controlled by coolant signals. |
|
coolant_restore(restore_condition.coolant, settings.coolant.on_delay); |
|
gc_coolant(restore_condition.coolant); |
|
} |
|
|
|
sys.override.spindle_stop.value = 0; // Clear spindle stop override states |
|
|
|
grbl.report.feedback_message(Message_None); |
|
} |
|
break; |
|
} |
|
|
I encountered a potential bug where if the first bit of Feed hold actions
$63(i.e., Disable laser during hold) is false, the power set-point is not restored on resume and therefore the laser does not continue firing.I have tested and the issue appears to be resolved by adding:
sys.step_control.update_spindle_rpm = On;following line 694 in state_machine.c
core/state_machine.c
Lines 676 to 700 in b9a05f1