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:
parent
d1037268c8
commit
6ab3cfbe7d
@ -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
|
||||
|
@ -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:**
|
||||
|
||||
|
12
grbl/gcode.c
12
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
|
||||
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 ( (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 (!( (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); }
|
||||
|
@ -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 <avr/io.h>
|
||||
|
Loading…
Reference in New Issue
Block a user