diff --git a/doc/log/commit_log_v1.1.txt b/doc/log/commit_log_v1.1.txt index bfc9ddf..e914bb3 100644 --- a/doc/log/commit_log_v1.1.txt +++ b/doc/log/commit_log_v1.1.txt @@ -1,3 +1,41 @@ +---------------- +Date: 2016-10-11 +Author: Sonny Jeon +Subject: v1.1c: New sleep mode. Laser mode and other bug fixes. + +- New $SLP sleep mode that will disable spindle, coolant, and stepper +enable pins. Allows users to disable their steppers without having to +alter their settings. A reset is required to exit and re-initializes in +alarm state. + +- Laser mode wasn’t updating the spindle PWM correctly (effected +spindle speed overrides) and not checking for modal states either. +Fixed both issues. + +- While in laser mode, parking motions are ignored, since the power off +delay with the retract motion would burn the material. It will just +turn off and not move. A restore immediately powers up and resumes. No +delays. + +- Changing rpm max and min settings did not update the spindle PWM +calculations. Now fixed. + +- Increased default planner buffer from 16 to 17 block. It seems to be +stable, but need to monitor this carefully. + +- Removed software debounce routine for limit pins. Obsolete. + +- Fixed a couple parking motion bugs. One related to restoring +incorrectly and the other the parking rate wasn’t compatible with the +planner structs. + +- Fixed a bug caused by refactoring the critical alarms in a recent +push. Soft limits weren’t invoking a critical alarm. + +- Updated the documentation with the new sleep feature and added some +more details to the change summary. + + ---------------- Date: 2016-09-28 Author: Sonny Jeon diff --git a/doc/markdown/interface.md b/doc/markdown/interface.md index 29f2cad..5c276c3 100644 --- a/doc/markdown/interface.md +++ b/doc/markdown/interface.md @@ -250,7 +250,8 @@ Feedback messages provide non-critical information on what Grbl is doing, what i - `[MSG:Restoring defaults]` - Appears as an acknowledgement message when restoring EEPROM defaults via a `$RST=` command. An 'ok' still appears immediately after to denote the `$RST=` was parsed and executed. - - `[MSG:Sleeping]` - Appears as an acknowledgement message when Grbl's sleep mode is invoked by issuing a `$SLP` command when idle. Note that Grbl-Mega may invoke this at any time when the sleep timer option has been enabled and the timeout has been exceeded. Grbl may only be exited by a reset in the sleep state and will automatically enter an alarm state since the steppers were disabled. + - `[MSG:Sleeping]` - Appears as an acknowledgement message when Grbl's sleep mode is invoked by issuing a `$SLP` command when in IDLE or ALARM states. Note that Grbl-Mega may invoke this at any time when the sleep timer option has been enabled and the timeout has been exceeded. Grbl may only be exited by a reset in the sleep state and will automatically enter an alarm state since the steppers were disabled. + - NOTE: Sleep will also invoke the parking motion, if it's enabled. However, if sleep is commanded during an ALARM, Grbl will not park and will simply de-energize everything and go to sleep. - **Queried Feedback Messages:** diff --git a/grbl/gcode.c b/grbl/gcode.c index ba8fb10..009702f 100644 --- a/grbl/gcode.c +++ b/grbl/gcode.c @@ -900,11 +900,15 @@ uint8_t gc_execute_line(char *line) // [4. Set spindle speed ]: if (gc_state.spindle_speed != gc_block.values.s) { #ifdef VARIABLE_SPINDLE - // Do not stop motion if in laser mode and a G1, G2, or G3 motion is being executed. - if ( (bit_isfalse(settings.flags,BITFLAG_LASER_MODE) && (axis_command == AXIS_COMMAND_MOTION_MODE) && - ((gc_block.modal.motion == MOTION_MODE_LINEAR ) || (gc_block.modal.motion == MOTION_MODE_CW_ARC) || (gc_block.modal.motion == MOTION_MODE_CCW_ARC)) ) ) { - // Update running spindle only if not in check mode and not already enabled. - if (gc_state.modal.spindle != SPINDLE_DISABLE) { spindle_run(gc_state.modal.spindle, gc_block.values.s); } + if (gc_state.modal.spindle != SPINDLE_DISABLE) { + if ( bit_istrue(settings.flags, BITFLAG_LASER_MODE) ) { + // Do not stop motion if in laser mode and a G1, G2, or G3 motion is being executed. + if (!( (axis_command == AXIS_COMMAND_MOTION_MODE) && ((gc_block.modal.motion == MOTION_MODE_LINEAR ) || (gc_block.modal.motion == MOTION_MODE_CW_ARC) || (gc_block.modal.motion == MOTION_MODE_CCW_ARC)) ) ) { + spindle_run(gc_state.modal.spindle, gc_block.values.s); + } + } else { + spindle_run(gc_state.modal.spindle, gc_block.values.s); + } } #else if (gc_state.modal.spindle != SPINDLE_DISABLE) { spindle_run(gc_state.modal.spindle, gc_block.values.s); } diff --git a/grbl/grbl.h b/grbl/grbl.h index d0a262c..2668550 100644 --- a/grbl/grbl.h +++ b/grbl/grbl.h @@ -23,7 +23,7 @@ // Grbl versioning system #define GRBL_VERSION "1.1c" -#define GRBL_VERSION_BUILD "20161011" +#define GRBL_VERSION_BUILD "20161012" // Define standard libraries used by Grbl. #include