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:
		@@ -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:**
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								grbl/gcode.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								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); }
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user