Rare planner bug fix and added simulator defaults.
- Planner bug when moving along a diagonal back and forth on the same path. Rare for the fact that most CAM programs don’t program this type of motion, neither does jogging. Fixed in this update. - Added grbl_sim defaults for testing purposes.
This commit is contained in:
		
							
								
								
									
										36
									
								
								defaults.h
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								defaults.h
									
									
									
									
									
								
							@@ -263,4 +263,40 @@
 | 
			
		||||
  #define DEFAULT_HOMING_PULLOFF 1.0 // mm
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef DEFAULTS_SIMULATOR
 | 
			
		||||
  // Settings only for Grbl Simulator (www.github.com/grbl/grbl-sim)
 | 
			
		||||
  // Grbl generic default settings. Should work across different machines.
 | 
			
		||||
  #define DEFAULT_X_STEPS_PER_MM 1000.0
 | 
			
		||||
  #define DEFAULT_Y_STEPS_PER_MM 1000.0
 | 
			
		||||
  #define DEFAULT_Z_STEPS_PER_MM 1000.0
 | 
			
		||||
  #define DEFAULT_X_MAX_RATE 1000.0 // mm/min
 | 
			
		||||
  #define DEFAULT_Y_MAX_RATE 1000.0 // mm/min
 | 
			
		||||
  #define DEFAULT_Z_MAX_RATE 1000.0 // mm/min
 | 
			
		||||
  #define DEFAULT_X_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
 | 
			
		||||
  #define DEFAULT_Y_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
 | 
			
		||||
  #define DEFAULT_Z_ACCELERATION (100.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
 | 
			
		||||
  #define DEFAULT_X_MAX_TRAVEL 1000.0 // mm
 | 
			
		||||
  #define DEFAULT_Y_MAX_TRAVEL 1000.0 // mm
 | 
			
		||||
  #define DEFAULT_Z_MAX_TRAVEL 1000.0 // mm
 | 
			
		||||
  #define DEFAULT_STEP_PULSE_MICROSECONDS 10
 | 
			
		||||
  #define DEFAULT_STEPPING_INVERT_MASK 0
 | 
			
		||||
  #define DEFAULT_DIRECTION_INVERT_MASK 0
 | 
			
		||||
  #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)
 | 
			
		||||
  #define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION))
 | 
			
		||||
  #define DEFAULT_JUNCTION_DEVIATION 0.02 // mm
 | 
			
		||||
  #define DEFAULT_ARC_TOLERANCE 0.002 // mm
 | 
			
		||||
  #define DEFAULT_REPORT_INCHES 0 // false
 | 
			
		||||
  #define DEFAULT_AUTO_START 1 // true
 | 
			
		||||
  #define DEFAULT_INVERT_ST_ENABLE 0 // false
 | 
			
		||||
  #define DEFAULT_INVERT_LIMIT_PINS 0 // false
 | 
			
		||||
  #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false
 | 
			
		||||
  #define DEFAULT_HARD_LIMIT_ENABLE 0  // false
 | 
			
		||||
  #define DEFAULT_HOMING_ENABLE 0  // false
 | 
			
		||||
  #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
 | 
			
		||||
  #define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min
 | 
			
		||||
  #define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min
 | 
			
		||||
  #define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)
 | 
			
		||||
  #define DEFAULT_HOMING_PULLOFF 1.0 // mm
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -388,6 +388,7 @@ uint8_t plan_check_full_buffer()
 | 
			
		||||
       change the overall maximum entry speed conditions of all blocks.
 | 
			
		||||
    */
 | 
			
		||||
    // NOTE: Computed without any expensive trig, sin() or acos(), by trig half angle identity of cos(theta).
 | 
			
		||||
    junction_cos_theta = min(junction_cos_theta, 1.0); // Check for numerical round-off.
 | 
			
		||||
    float sin_theta_d2 = sqrt(0.5*(1.0-junction_cos_theta)); // Trig half angle identity. Always positive.
 | 
			
		||||
 | 
			
		||||
    // TODO: Technically, the acceleration used in calculation needs to be limited by the minimum of the
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define GRBL_VERSION "0.9h"
 | 
			
		||||
#define GRBL_VERSION_BUILD "20150117"
 | 
			
		||||
#define GRBL_VERSION_BUILD "20150204"
 | 
			
		||||
 | 
			
		||||
// Version of the EEPROM data. Will be used to migrate existing data from older versions of Grbl
 | 
			
		||||
// when firmware is upgraded. Always stored in byte 0 of eeprom
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								system.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								system.c
									
									
									
									
									
								
							@@ -214,6 +214,9 @@ uint8_t system_execute_line(char *line)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Returns machine position of axis 'idx'. Must be sent a 'step' array.
 | 
			
		||||
// NOTE: If motor steps and machine position are not in the same coordinate frame, this function
 | 
			
		||||
//   serves as a central place to compute the transformation.
 | 
			
		||||
float system_convert_axis_steps_to_mpos(int32_t *steps, uint8_t idx)
 | 
			
		||||
{
 | 
			
		||||
  float pos;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user