Spindle speed bug fix.

- Spindle speed updating wasn’t working in the g-code parser due to
some borked up logic on my part. Fixed it and should be operating as
intended for both normal and laser spindle modes.

- Elaborated a little more on the new sleep mode in the documentation.
This commit is contained in:
Sonny Jeon 2016-10-12 09:14:23 -06:00
parent d1037268c8
commit 6ab3cfbe7d
4 changed files with 50 additions and 7 deletions

View File

@ -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 wasnt 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 wasnt compatible with the
planner structs.
- Fixed a bug caused by refactoring the critical alarms in a recent
push. Soft limits werent 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 Date: 2016-09-28
Author: Sonny Jeon Author: Sonny Jeon

View File

@ -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: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:** - **Queried Feedback Messages:**

View File

@ -900,11 +900,15 @@ uint8_t gc_execute_line(char *line)
// [4. Set spindle speed ]: // [4. Set spindle speed ]:
if (gc_state.spindle_speed != gc_block.values.s) { if (gc_state.spindle_speed != gc_block.values.s) {
#ifdef VARIABLE_SPINDLE #ifdef VARIABLE_SPINDLE
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. // 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) && 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)) ) ) {
((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);
// 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); } } else {
spindle_run(gc_state.modal.spindle, gc_block.values.s);
}
} }
#else #else
if (gc_state.modal.spindle != SPINDLE_DISABLE) { spindle_run(gc_state.modal.spindle, gc_block.values.s); } if (gc_state.modal.spindle != SPINDLE_DISABLE) { spindle_run(gc_state.modal.spindle, gc_block.values.s); }

View File

@ -23,7 +23,7 @@
// Grbl versioning system // Grbl versioning system
#define GRBL_VERSION "1.1c" #define GRBL_VERSION "1.1c"
#define GRBL_VERSION_BUILD "20161011" #define GRBL_VERSION_BUILD "20161012"
// Define standard libraries used by Grbl. // Define standard libraries used by Grbl.
#include <avr/io.h> #include <avr/io.h>