28 .stepper_idle_lock_time = DEFAULT_STEPPER_IDLE_LOCK_TIME,
29 .step_invert_mask = DEFAULT_STEPPING_INVERT_MASK,
30 .dir_invert_mask = DEFAULT_DIRECTION_INVERT_MASK,
31 .status_report_mask = DEFAULT_STATUS_REPORT_MASK,
32 .junction_deviation = DEFAULT_JUNCTION_DEVIATION,
33 .arc_tolerance = DEFAULT_ARC_TOLERANCE,
34 .rpm_max = DEFAULT_SPINDLE_RPM_MAX,
35 .rpm_min = DEFAULT_SPINDLE_RPM_MIN,
36 .homing_dir_mask = DEFAULT_HOMING_DIR_MASK,
37 .homing_feed_rate = DEFAULT_HOMING_FEED_RATE,
38 .homing_seek_rate = DEFAULT_HOMING_SEEK_RATE,
39 .homing_debounce_delay = DEFAULT_HOMING_DEBOUNCE_DELAY,
40 .homing_pulloff = DEFAULT_HOMING_PULLOFF,
49 .steps_per_mm[
X_AXIS] = DEFAULT_X_STEPS_PER_MM,
50 .steps_per_mm[
Y_AXIS] = DEFAULT_Y_STEPS_PER_MM,
51 .steps_per_mm[
Z_AXIS] = DEFAULT_Z_STEPS_PER_MM,
52 .max_rate[
X_AXIS] = DEFAULT_X_MAX_RATE,
53 .max_rate[
Y_AXIS] = DEFAULT_Y_MAX_RATE,
54 .max_rate[
Z_AXIS] = DEFAULT_Z_MAX_RATE,
55 .acceleration[
X_AXIS] = DEFAULT_X_ACCELERATION,
56 .acceleration[
Y_AXIS] = DEFAULT_Y_ACCELERATION,
57 .acceleration[
Z_AXIS] = DEFAULT_Z_ACCELERATION,
58 .max_travel[
X_AXIS] = (-DEFAULT_X_MAX_TRAVEL),
59 .max_travel[
Y_AXIS] = (-DEFAULT_Y_MAX_TRAVEL),
60 .max_travel[
Z_AXIS] = (-DEFAULT_Z_MAX_TRAVEL)};
66 #ifdef FORCE_BUFFER_SYNC_DURING_EEPROM_WRITE
86 #ifdef FORCE_BUFFER_SYNC_DURING_EEPROM_WRITE
113 memset(&coord_data, 0,
sizeof(coord_data));
118 #if N_STARTUP_LINE > 0
122 #if N_STARTUP_LINE > 1
205 #ifdef MAX_STEP_RATE_HZ
211 #ifdef MAX_STEP_RATE_HZ
229 uint8_t int_value = trunc(value);
290 #ifdef VARIABLE_SPINDLE
319 if ( axis_idx ==
X_AXIS ) {
return((1<<X_STEP_BIT)); }
320 if ( axis_idx ==
Y_AXIS ) {
return((1<<Y_STEP_BIT)); }
321 return((1<<Z_STEP_BIT));
328 if ( axis_idx ==
X_AXIS ) {
return((1<<X_DIRECTION_BIT)); }
329 if ( axis_idx ==
Y_AXIS ) {
return((1<<Y_DIRECTION_BIT)); }
330 return((1<<Z_DIRECTION_BIT));
337 if ( axis_idx ==
X_AXIS ) {
return((1<<X_LIMIT_BIT)); }
338 if ( axis_idx ==
Y_AXIS ) {
return((1<<Y_LIMIT_BIT)); }
339 return((1<<Z_LIMIT_BIT));
void eeprom_put_char(unsigned int addr, unsigned char new_value)
Write byte to EEPROM.
unsigned char eeprom_get_char(unsigned int addr)
Read byte from EEPROM.
int memcpy_from_eeprom_with_checksum(char *destination, unsigned int source, unsigned int size)
void memcpy_to_eeprom_with_checksum(unsigned int destination, char *source, unsigned int size)
#define bit_isfalse(x, mask)
#define clear_vector_float(a)
void probe_configure_invert_mask(uint8_t is_probe_away)
void protocol_buffer_synchronize()
static char line[LINE_BUFFER_SIZE]
void report_grbl_settings()
void report_status_message(uint8_t status_code)
#define STATUS_SOFT_LIMIT_ERROR
#define STATUS_SETTING_STEP_PULSE_MIN
#define STATUS_MAX_STEP_RATE_EXCEEDED
#define STATUS_NEGATIVE_VALUE
#define STATUS_INVALID_STATEMENT
#define STATUS_SETTING_DISABLED_LASER
#define STATUS_SETTING_READ_FAIL
const __flash settings_t defaults
uint8_t settings_read_startup_line(uint8_t n, char *line)
void write_global_settings()
void settings_store_build_info(char *line)
void settings_store_startup_line(uint8_t n, char *line)
uint8_t settings_store_global_setting(uint8_t parameter, float value)
uint8_t settings_read_build_info(char *line)
uint8_t get_limit_pin_mask(uint8_t axis_idx)
void settings_write_coord_data(uint8_t coord_select, float *coord_data)
uint8_t get_direction_pin_mask(uint8_t axis_idx)
void settings_restore(uint8_t restore_flag)
uint8_t settings_read_coord_data(uint8_t coord_select, float *coord_data)
uint8_t get_step_pin_mask(uint8_t axis_idx)
uint8_t read_global_settings()
#define BIT_REPORT_INCHES
#define BIT_INVERT_ST_ENABLE
#define BITFLAG_HARD_LIMIT_ENABLE
#define BITFLAG_HOMING_ENABLE
#define BIT_INVERT_PROBE_PIN
#define BIT_INVERT_LIMIT_PINS
#define SETTINGS_RESTORE_STARTUP_LINES
#define BITFLAG_INVERT_LIMIT_PINS
#define AXIS_SETTINGS_START_VAL
#define BITFLAG_SOFT_LIMIT_ENABLE
#define BITFLAG_INVERT_ST_ENABLE
#define BITFLAG_LASER_MODE
#define BIT_HOMING_ENABLE
#define AXIS_SETTINGS_INCREMENT
#define SETTINGS_RESTORE_PARAMETERS
#define SETTINGS_RESTORE_BUILD_INFO
#define EEPROM_ADDR_BUILD_INFO
#define BITFLAG_REPORT_INCHES
#define EEPROM_ADDR_PARAMETERS
#define SETTING_INDEX_NCOORD
#define BIT_HARD_LIMIT_ENABLE
#define BITFLAG_INVERT_PROBE_PIN
#define SETTINGS_RESTORE_DEFAULTS
#define BIT_SOFT_LIMIT_ENABLE
#define EEPROM_ADDR_GLOBAL
#define EEPROM_ADDR_STARTUP_BLOCK
void st_generate_step_dir_invert_masks()
float steps_per_mm[N_AXIS]
uint8_t status_report_mask
uint16_t homing_debounce_delay
uint8_t stepper_idle_lock_time
float acceleration[N_AXIS]
uint8_t pulse_microseconds
void system_flag_wco_change()