Go to the documentation of this file.
32 #ifndef _GRBL_CONFIG_H_
33 #define _GRBL_CONFIG_H_
50 #if (!defined AXIS_REMAP_ABC2UVW && (N_AXIS > 3 && N_AXIS < 7)) || defined __DOXYGEN__
51 #define AXIS_REMAP_ABC2UVW Off
57 #if !defined N_SPINDLE || defined __DOXYGEN__
64 #if !defined N_SYS_SPINDLE || defined __DOXYGEN__
65 #define N_SYS_SPINDLE 1
71 #if !defined BUILD_INFO || defined __DOXYGEN__
89 #if !defined COMPATIBILITY_LEVEL || defined __DOXYGEN__
90 #define COMPATIBILITY_LEVEL 0
101 #if !defined ENABLE_SPINDLE_LINEARIZATION || defined __DOXYGEN__
102 #define ENABLE_SPINDLE_LINEARIZATION 0
108 #if !defined SPINDLE_NPWM_PIECES || defined __DOXYGEN__
109 #define SPINDLE_NPWM_PIECES 4
120 #if !defined MASLOW_ROUTER || defined __DOXYGEN__
123 #define MASLOW_ROUTER Off
130 #if !defined WALL_PLOTTER || defined __DOXYGEN__
131 #define WALL_PLOTTER Off
138 #if !defined DELTA_ROBOT || defined __DOXYGEN__
139 #define DELTA_ROBOT Off
143 #if DELTA_ROBOT && !defined MINIMUM_FEED_RATE
144 #define MINIMUM_FEED_RATE 0.1f
151 #if !defined POLAR_ROBOT || defined __DOXYGEN__
152 #define POLAR_ROBOT Off
165 #if !defined COREXY || defined __DOXYGEN__
176 #if !defined CHECK_MODE_DELAY || defined __DOXYGEN__
177 #define CHECK_MODE_DELAY 0
185 #if !defined DEBOUNCE_DELAY || defined __DOXYGEN__
186 #define DEBOUNCE_DELAY 40
192 #define ENABLE_PATH_BLENDING Off
210 #if !defined REPORT_OVERRIDE_REFRESH_BUSY_COUNT || defined __DOXYGEN__
211 #define REPORT_OVERRIDE_REFRESH_BUSY_COUNT 20
213 #if !defined REPORT_OVERRIDE_REFRESH_IDLE_COUNT || defined __DOXYGEN__
214 #define REPORT_OVERRIDE_REFRESH_IDLE_COUNT 10
216 #if !defined REPORT_WCO_REFRESH_BUSY_COUNT || defined __DOXYGEN__
217 #define REPORT_WCO_REFRESH_BUSY_COUNT 30
219 #if !defined REPORT_WCO_REFRESH_IDLE_COUNT || defined __DOXYGEN__
220 #define REPORT_WCO_REFRESH_IDLE_COUNT 10
234 #if !defined ACCELERATION_TICKS_PER_SECOND || defined __DOXYGEN__
235 #define ACCELERATION_TICKS_PER_SECOND 100
255 #if !defined REPORT_ECHO_LINE_RECEIVED || defined __DOXYGEN__
256 #define REPORT_ECHO_LINE_RECEIVED Off
265 #if !defined TOOL_LENGTH_OFFSET_AXIS || defined __DOXYGEN__
266 #define TOOL_LENGTH_OFFSET_AXIS -1
278 #if !defined MINIMUM_JUNCTION_SPEED || defined __DOXYGEN__
279 #define MINIMUM_JUNCTION_SPEED 0.0f
289 #if !defined MINIMUM_FEED_RATE || defined __DOXYGEN__
290 #define MINIMUM_FEED_RATE 1.0f
300 #if !defined N_ARC_CORRECTION || defined __DOXYGEN__
301 #define N_ARC_CORRECTION 12
315 #if !defined ARC_ANGULAR_TRAVEL_EPSILON || defined __DOXYGEN__
316 #define ARC_ANGULAR_TRAVEL_EPSILON 5E-7f
323 #if !defined BEZIER_MIN_STEP || defined __DOXYGEN__
324 #define BEZIER_MIN_STEP 0.002f
326 #if !defined BEZIER_MAX_STEP || defined __DOXYGEN__
327 #define BEZIER_MAX_STEP 0.1f
329 #if !defined BEZIER_SIGMA || defined __DOXYGEN__
330 #define BEZIER_SIGMA 0.1f
342 #if !defined DWELL_TIME_STEP || defined __DOXYGEN__
343 #define DWELL_TIME_STEP 50
355 #if !defined SEGMENT_BUFFER_SIZE || defined __DOXYGEN__
356 #define SEGMENT_BUFFER_SIZE 10
364 #if !defined SET_CHECK_MODE_PROBE_TO_START || defined __DOXYGEN__
365 #define SET_CHECK_MODE_PROBE_TO_START Off
379 #if !defined HARD_LIMIT_FORCE_STATE_CHECK || defined __DOXYGEN__
380 #define HARD_LIMIT_FORCE_STATE_CHECK Off
394 #if !defined HOMING_AXIS_SEARCH_SCALAR || defined __DOXYGEN__
395 #define HOMING_AXIS_SEARCH_SCALAR 1.5f
397 #if !defined HOMING_AXIS_LOCATE_SCALAR || defined __DOXYGEN__
398 #define HOMING_AXIS_LOCATE_SCALAR 10.0f
409 #if !defined ENABLE_RESTORE_NVS_WIPE_ALL || defined __DOXYGEN__
410 #define ENABLE_RESTORE_NVS_WIPE_ALL On
412 #if !defined ENABLE_RESTORE_NVS_DEFAULT_SETTINGS || defined __DOXYGEN__
413 #define ENABLE_RESTORE_NVS_DEFAULT_SETTINGS On
415 #if !defined ENABLE_RESTORE_NVS_CLEAR_PARAMETERS || defined __DOXYGEN__
416 #define ENABLE_RESTORE_NVS_CLEAR_PARAMETERS On
418 #if !defined ENABLE_RESTORE_NVS_DRIVER_PARAMETERS || defined __DOXYGEN__
419 #define ENABLE_RESTORE_NVS_DRIVER_PARAMETERS On
433 #if !defined SETTINGS_RESTORE_DEFAULTS || defined __DOXYGEN__
434 #define SETTINGS_RESTORE_DEFAULTS On
436 #if !defined SETTINGS_RESTORE_PARAMETERS || defined __DOXYGEN__
437 #define SETTINGS_RESTORE_PARAMETERS On
439 #if !defined SETTINGS_RESTORE_STARTUP_LINES || defined __DOXYGEN__
440 #define SETTINGS_RESTORE_STARTUP_LINES On
442 #if !defined SETTINGS_RESTORE_BUILD_INFO || defined __DOXYGEN__
443 #define SETTINGS_RESTORE_BUILD_INFO On
445 #if !defined SETTINGS_RESTORE_DRIVER_PARAMETERS || defined __DOXYGEN__
446 #define SETTINGS_RESTORE_DRIVER_PARAMETERS On
456 #if !defined DISABLE_BUILD_INFO_WRITE_COMMAND || defined __DOXYGEN__
457 #define DISABLE_BUILD_INFO_WRITE_COMMAND Off
474 #if !defined SLEEP_DURATION || defined __DOXYGEN__
475 #define SLEEP_DURATION 5.0f
483 #if !defined NVSDATA_BUFFER_ENABLE || defined __DOXYGEN__
484 #define NVSDATA_BUFFER_ENABLE On
496 #if !defined TOOLSETTER_RADIUS || defined __DOXYGEN__
497 #define TOOLSETTER_RADIUS 5.0f
500 #if !defined ENABLE_BACKLASH_COMPENSATION || defined __DOXYGEN__
501 #define ENABLE_BACKLASH_COMPENSATION Off
504 #if COMPATIBILITY_LEVEL == 0 || defined __DOXYGEN__
509 #if !defined N_TOOLS || defined __DOXYGEN__
520 #if !defined NGC_EXPRESSIONS_ENABLE || defined __DOXYGEN__
521 #define NGC_EXPRESSIONS_ENABLE Off
528 #if !defined NGC_PARAMETERS_ENABLE || defined __DOXYGEN__
529 #define NGC_PARAMETERS_ENABLE On
536 #if (NGC_EXPRESSIONS_ENABLE && !defined NGC_N_ASSIGN_PARAMETERS_PER_BLOCK) || defined __DOXYGEN__
537 #define NGC_N_ASSIGN_PARAMETERS_PER_BLOCK 10
544 #if !defined LATHE_UVW_OPTION || defined __DOXYGEN__
545 #define LATHE_UVW_OPTION Off
572 #if !defined DEFAULT_REPORT_MACHINE_POSITION || defined __DOXYGEN__
573 #define DEFAULT_REPORT_MACHINE_POSITION On
581 #if !defined DEFAULT_REPORT_BUFFER_STATE || defined __DOXYGEN__
582 #define DEFAULT_REPORT_BUFFER_STATE On
592 #if !defined DEFAULT_REPORT_LINE_NUMBERS || defined __DOXYGEN__
593 #define DEFAULT_REPORT_LINE_NUMBERS On
602 #if !defined DEFAULT_REPORT_CURRENT_FEED_SPEED || defined __DOXYGEN__
603 #define DEFAULT_REPORT_CURRENT_FEED_SPEED On
612 #if !defined DEFAULT_REPORT_PIN_STATE || defined __DOXYGEN__
613 #define DEFAULT_REPORT_PIN_STATE On
622 #if !defined DEFAULT_REPORT_WORK_COORD_OFFSET || defined __DOXYGEN__
623 #define DEFAULT_REPORT_WORK_COORD_OFFSET On
632 #if !defined DEFAULT_REPORT_OVERRIDES || defined __DOXYGEN__
633 #define DEFAULT_REPORT_OVERRIDES On
643 #if !defined DEFAULT_REPORT_PROBE_COORDINATES || defined __DOXYGEN__
644 #define DEFAULT_REPORT_PROBE_COORDINATES On
657 #if !defined DEFAULT_REPORT_SYNC_ON_WCO_CHANGE || defined __DOXYGEN__
658 #define DEFAULT_REPORT_SYNC_ON_WCO_CHANGE On
668 #if !defined DEFAULT_REPORT_PARSER_STATE || defined __DOXYGEN__
669 #define DEFAULT_REPORT_PARSER_STATE Off
682 #if !defined DEFAULT_REPORT_ALARM_SUBSTATE || defined __DOXYGEN__
683 #define DEFAULT_REPORT_ALARM_SUBSTATE Off
695 #if !defined DEFAULT_REPORT_RUN_SUBSTATE || defined __DOXYGEN__
696 #define DEFAULT_REPORT_RUN_SUBSTATE Off
705 #if !defined DEFAULT_JUNCTION_DEVIATION || defined __DOXYGEN__
706 #define DEFAULT_JUNCTION_DEVIATION 0.01f
714 #if !defined DEFAULT_ARC_TOLERANCE || defined __DOXYGEN__
715 #define DEFAULT_ARC_TOLERANCE 0.002f
724 #if !defined DEFAULT_REPORT_INCHES || defined __DOXYGEN__
725 #define DEFAULT_REPORT_INCHES Off
734 #if !defined DEFAULT_G73_RETRACT || defined __DOXYGEN__
735 #define DEFAULT_G73_RETRACT 0.1f
743 #if !defined DEFAULT_LASER_MODE || defined __DOXYGEN__
744 #define DEFAULT_LASER_MODE Off
746 #if !defined DEFAULT_LATHE_MODE || defined __DOXYGEN__
747 #define DEFAULT_LATHE_MODE Off
760 #if !defined DEFAULT_LEGACY_RTCOMMANDS || defined __DOXYGEN__
761 #define DEFAULT_LEGACY_RTCOMMANDS On
768 #if !defined DEFAULT_RESET_OVERRIDES || defined __DOXYGEN__
769 #define DEFAULT_RESET_OVERRIDES Off
776 #if !defined DEFAULT_SLEEP_ENABLE || defined __DOXYGEN__
777 #define DEFAULT_SLEEP_ENABLE Off
788 #if !defined DEFAULT_DISABLE_LASER_DURING_HOLD || defined __DOXYGEN__
789 #define DEFAULT_DISABLE_LASER_DURING_HOLD On
798 #if !defined DEFAULT_RESTORE_AFTER_FEED_HOLD || defined __DOXYGEN__
799 #define DEFAULT_RESTORE_AFTER_FEED_HOLD On
812 #if !defined DEFAULT_FORCE_INITIALIZATION_ALARM || defined __DOXYGEN__
813 #define DEFAULT_FORCE_INITIALIZATION_ALARM Off
823 #if !defined DEFAULT_DISABLE_G92_PERSISTENCE || defined __DOXYGEN__
824 #if COMPATIBILITY_LEVEL <= 1
825 #define DEFAULT_DISABLE_G92_PERSISTENCE Off
827 #define DEFAULT_DISABLE_G92_PERSISTENCE On
840 #if !defined DEFAULT_PLANNER_BUFFER_BLOCKS || defined __DOXYGEN__
841 #define DEFAULT_PLANNER_BUFFER_BLOCKS 100
854 #define SIGNALS_RESET_BIT (1<<0)
855 #define SIGNALS_FEEDHOLD_BIT (1<<1)
856 #define SIGNALS_CYCLESTART_BIT (1<<2)
857 #define SIGNALS_SAFETYDOOR_BIT (1<<3)
858 #define SIGNALS_BLOCKDELETE_BIT (1<<4)
859 #define SIGNALS_STOPDISABLE_BIT (1<<5)
860 #define SIGNALS_ESTOP_BIT (1<<6)
861 #define SIGNALS_PROBE_CONNECTED_BIT (1<<7)
862 #define SIGNALS_MOTOR_FAULT_BIT (1<<8)
863 #define SIGNALS_BITMASK (SIGNALS_RESET_BIT|SIGNALS_FEEDHOLD_BIT|SIGNALS_CYCLESTART_BIT|SIGNALS_SAFETYDOOR_BIT|SIGNALS_BLOCKDELETE_BIT|SIGNALS_STOPDISABLE_BIT|SIGNALS_ESTOP_BIT|SIGNALS_PROBE_CONNECTED_BIT|SIGNALS_MOTOR_FAULT_BIT)
874 #if !defined DEFAULT_CONTROL_SIGNALS_INVERT_MASK || defined __DOXYGEN__
875 #define DEFAULT_CONTROL_SIGNALS_INVERT_MASK 0
893 #if !defined DEFAULT_DISABLE_CONTROL_PINS_PULL_UP_MASK || defined __DOXYGEN__
894 #define DEFAULT_DISABLE_CONTROL_PINS_PULL_UP_MASK 0
908 #if !defined DEFAULT_LIMIT_SIGNALS_INVERT_MASK || defined __DOXYGEN__
909 #define DEFAULT_LIMIT_SIGNALS_INVERT_MASK 0
920 #if !defined DEFAULT_LIMIT_SIGNALS_PULLUP_DISABLE_MASK || defined __DOXYGEN__
921 #define DEFAULT_LIMIT_SIGNALS_PULLUP_DISABLE_MASK 0
928 #if !defined DEFAULT_SOFT_LIMIT_ENABLE || defined __DOXYGEN__
929 #define DEFAULT_SOFT_LIMIT_ENABLE Off
943 #if !defined DEFAULT_HARD_LIMIT_ENABLE || defined __DOXYGEN__
944 #define DEFAULT_HARD_LIMIT_ENABLE Off
946 #if !defined DEFAULT_CHECK_LIMITS_AT_INIT || defined __DOXYGEN__
947 #define DEFAULT_CHECK_LIMITS_AT_INIT Off
949 #if !defined DEFAULT_HARD_LIMITS_DISABLE_FOR_ROTARY || defined __DOXYGEN__
950 #define DEFAULT_HARD_LIMITS_DISABLE_FOR_ROTARY Off
968 #if !defined DEFAULT_DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT || defined __DOXYGEN__
969 #define DEFAULT_DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0f
976 #if !defined DEFAULT_DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN || defined __DOXYGEN__
977 #define DEFAULT_DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5f
985 #if !defined DEFAULT_DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX || defined __DOXYGEN__
986 #define DEFAULT_DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0f
997 #if !defined DEFAULT_INVERT_COOLANT_FLOOD_PIN || defined __DOXYGEN__
998 #define DEFAULT_INVERT_COOLANT_FLOOD_PIN Off
1000 #if !defined DEFAULT_INVERT_COOLANT_MIST_PIN || defined __DOXYGEN__
1001 #define DEFAULT_INVERT_COOLANT_MIST_PIN Off
1010 #if !defined DEFAULT_SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED || defined __DOXYGEN__
1011 #define DEFAULT_SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED Off
1019 #if !defined DEFAULT_INVERT_SPINDLE_ENABLE_PIN || defined __DOXYGEN__
1020 #define DEFAULT_INVERT_SPINDLE_ENABLE_PIN Off
1022 #if !defined DEFAULT_INVERT_SPINDLE_CCW_PIN || defined __DOXYGEN__
1023 #define DEFAULT_INVERT_SPINDLE_CCW_PIN Off
1025 #if !defined DEFAULT_INVERT_SPINDLE_PWM_PIN || defined __DOXYGEN__
1026 #define DEFAULT_INVERT_SPINDLE_PWM_PIN Off
1033 #if !defined DEFAULT_SPINDLE_RPM_MAX || defined __DOXYGEN__
1034 #define DEFAULT_SPINDLE_RPM_MAX 1000.0f
1041 #if !defined DEFAULT_SPINDLE_RPM_MIN || defined __DOXYGEN__
1042 #define DEFAULT_SPINDLE_RPM_MIN 0.0f
1049 #if !defined DEFAULT_SPINDLE_PWM_FREQ || defined __DOXYGEN__
1050 #define DEFAULT_SPINDLE_PWM_FREQ 5000
1057 #if !defined DEFAULT_SPINDLE_PWM_OFF_VALUE || defined __DOXYGEN__
1058 #define DEFAULT_SPINDLE_PWM_OFF_VALUE 0.0f
1074 #if !defined DEFAULT_SPINDLE_PWM_MIN_VALUE || defined __DOXYGEN__
1075 #define DEFAULT_SPINDLE_PWM_MIN_VALUE 0.0f
1082 #if !defined DEFAULT_SPINDLE_PWM_MAX_VALUE || defined __DOXYGEN__
1083 #define DEFAULT_SPINDLE_PWM_MAX_VALUE 100.0f
1095 #if !defined DEFAULT_SPINDLE_PPR || defined __DOXYGEN__
1096 #define DEFAULT_SPINDLE_PPR 0
1103 #if !defined DEFAULT_SPINDLE_AT_SPEED_TOLERANCE || defined __DOXYGEN__
1104 #define DEFAULT_SPINDLE_AT_SPEED_TOLERANCE 0.0f
1117 #ifndef DEFAULT_SPINDLE_P_GAIN
1118 #define DEFAULT_SPINDLE_P_GAIN 1.0f
1120 #ifndef DEFAULT_SPINDLE_I_GAIN
1121 #define DEFAULT_SPINDLE_I_GAIN 0.01f
1123 #ifndef DEFAULT_SPINDLE_D_GAIN
1124 #define DEFAULT_SPINDLE_D_GAIN 0.0f
1126 #ifndef DEFAULT_SPINDLE_I_MAX
1127 #define DEFAULT_SPINDLE_I_MAX 10.0f
1130 #if ENABLE_SPINDLE_LINEARIZATION || defined __DOXYGEN__
1136 #if !defined DEFAULT_RPM_POINT01 || defined __DOXYGEN__
1137 #define DEFAULT_RPM_POINT01 NAN
1139 #if !defined DEFAULT_RPM_LINE_A1 || defined __DOXYGEN__
1140 #define DEFAULT_RPM_LINE_A1 3.197101e-03f
1142 #if !defined DEFAULT_RPM_LINE_B1 || defined __DOXYGEN__
1143 #define DEFAULT_RPM_LINE_B1 -3.526076e-1f
1151 #if !defined DEFAULT_RPM_POINT12 || defined __DOXYGEN__
1152 #define DEFAULT_RPM_POINT12 NAN
1154 #if !defined DEFAULT_RPM_LINE_A2 || defined __DOXYGEN__
1155 #define DEFAULT_RPM_LINE_A2 1.722950e-2f
1157 #if !defined DEFAULT_RPM_LINE_B2 || defined __DOXYGEN__
1158 #define DEFAULT_RPM_LINE_B2 1.0f,
1166 #if !defined DEFAULT_RPM_POINT23 || defined __DOXYGEN__
1167 #define DEFAULT_RPM_POINT23 NAN
1169 #if !defined DEFAULT_RPM_LINE_A3 || defined __DOXYGEN__
1170 #define DEFAULT_RPM_LINE_A3 5.901518e-02f
1172 #if !defined DEFAULT_RPM_LINE_B3 || defined __DOXYGEN__
1173 #define DEFAULT_RPM_LINE_B3 4.881851e+02f
1181 #if !defined DEFAULT_RPM_POINT34 || defined __DOXYGEN__
1182 #define DEFAULT_RPM_POINT34 NAN
1184 #if !defined DEFAULT_RPM_LINE_A4 || defined __DOXYGEN__
1185 #define DEFAULT_RPM_LINE_A4 1.203413e-01f
1187 #if !defined DEFAULT_RPM_LINE_B4 || defined __DOXYGEN__
1188 #define DEFAULT_RPM_LINE_B4 1.151360e+03f
1200 #if !defined DEFAULT_TOOLCHANGE_MODE || defined __DOXYGEN__
1201 #define DEFAULT_TOOLCHANGE_MODE 0
1208 #if !defined DEFAULT_TOOLCHANGE_PROBING_DISTANCE || defined __DOXYGEN__
1209 #define DEFAULT_TOOLCHANGE_PROBING_DISTANCE 30
1216 #if !defined DEFAULT_TOOLCHANGE_FEED_RATE || defined __DOXYGEN__
1217 #define DEFAULT_TOOLCHANGE_FEED_RATE 25.0f
1225 #if !defined DEFAULT_TOOLCHANGE_SEEK_RATE || defined __DOXYGEN__
1226 #define DEFAULT_TOOLCHANGE_SEEK_RATE 200.0f
1233 #if !defined DEFAULT_TOOLCHANGE_PULLOFF_RATE || defined __DOXYGEN__
1234 #define DEFAULT_TOOLCHANGE_PULLOFF_RATE 200.0f
1241 #if !defined DEFAULT_TOOLCHANGE_NO_RESTORE_POSITION || defined __DOXYGEN__
1242 #define DEFAULT_TOOLCHANGE_NO_RESTORE_POSITION Off
1254 #if !defined DEFAULT_HOMING_ENABLE || defined __DOXYGEN__
1255 #define DEFAULT_HOMING_ENABLE Off
1265 #if !defined DEFAULT_HOMING_SINGLE_AXIS_COMMANDS || defined __DOXYGEN__
1266 #define DEFAULT_HOMING_SINGLE_AXIS_COMMANDS Off
1276 #if !defined DEFAULT_HOMING_INIT_LOCK || defined __DOXYGEN__
1277 #define DEFAULT_HOMING_INIT_LOCK Off
1287 #if !defined DEFAULT_HOMING_FORCE_SET_ORIGIN || defined __DOXYGEN__
1288 #define DEFAULT_HOMING_FORCE_SET_ORIGIN Off
1301 #if !defined DEFAULT_LIMITS_TWO_SWITCHES_ON_AXES || defined __DOXYGEN__
1302 #define DEFAULT_LIMITS_TWO_SWITCHES_ON_AXES Off
1312 #if !defined DEFAULT_HOMING_ALLOW_MANUAL || defined __DOXYGEN__
1313 #define DEFAULT_HOMING_ALLOW_MANUAL Off
1322 #if !defined DEFAULT_HOMING_OVERRIDE_LOCKS || defined __DOXYGEN__
1323 #define DEFAULT_HOMING_OVERRIDE_LOCKS Off
1332 #if !defined DEFAULT_HOMING_KEEP_STATUS_ON_RESET || defined __DOXYGEN__
1333 #define DEFAULT_HOMING_KEEP_STATUS_ON_RESET Off
1342 #if !defined DEFAULT_HOMING_USE_LIMIT_SWITCHES || defined __DOXYGEN__
1343 #define DEFAULT_HOMING_USE_LIMIT_SWITCHES Off
1352 #if !defined DEFAULT_HOMING_DIR_MASK || defined __DOXYGEN__
1353 #define DEFAULT_HOMING_DIR_MASK 0
1360 #if !defined DEFAULT_HOMING_FEED_RATE || defined __DOXYGEN__
1361 #define DEFAULT_HOMING_FEED_RATE 25.0f
1368 #if !defined DEFAULT_HOMING_SEEK_RATE || defined __DOXYGEN__
1369 #define DEFAULT_HOMING_SEEK_RATE 500.0f
1376 #if !defined DEFAULT_HOMING_DEBOUNCE_DELAY || defined __DOXYGEN__
1377 #define DEFAULT_HOMING_DEBOUNCE_DELAY 250
1384 #if !defined DEFAULT_HOMING_PULLOFF || defined __DOXYGEN__
1385 #define DEFAULT_HOMING_PULLOFF 1.0f
1395 #if !defined DEFAULT_N_HOMING_LOCATE_CYCLE || defined __DOXYGEN__
1396 #define DEFAULT_N_HOMING_LOCATE_CYCLE 1
1421 #if !defined DEFAULT_HOMING_CYCLE_0 || defined __DOXYGEN__
1422 #define DEFAULT_HOMING_CYCLE_0 (Z_AXIS_BIT)
1429 #if !defined DEFAULT_HOMING_CYCLE_1 || defined __DOXYGEN__
1431 #define DEFAULT_HOMING_CYCLE_1 (X_AXIS_BIT)
1433 #define DEFAULT_HOMING_CYCLE_1 (X_AXIS_BIT|Y_AXIS_BIT)
1441 #if !defined DEFAULT_HOMING_CYCLE_2 || defined __DOXYGEN__
1443 #define DEFAULT_HOMING_CYCLE_2 (Y_AXIS_BIT)
1445 #define DEFAULT_HOMING_CYCLE_2 0
1453 #if (defined A_AXIS && !defined DEFAULT_HOMING_CYCLE_3) || defined __DOXYGEN__
1454 #define DEFAULT_HOMING_CYCLE_3 0
1462 #if (defined B_AXIS && !defined DEFAULT_HOMING_CYCLE_4) || defined __DOXYGEN__
1463 #define DEFAULT_HOMING_CYCLE_4 0
1470 #if (defined C_AXIS && !defined DEFAULT_HOMING_CYCLE_5) || defined __DOXYGEN__
1471 #define DEFAULT_HOMING_CYCLE_5 0
1483 #if !defined DEFAULT_HOME_SIGNALS_INVERT_MASK || defined __DOXYGEN__
1484 #define DEFAULT_HOME_SIGNALS_INVERT_MASK 0
1494 #if !defined DEFAULT_PROBE_SIGNAL_INVERT || defined __DOXYGEN__
1495 #define DEFAULT_PROBE_SIGNAL_INVERT Off
1502 #if !defined DEFAULT_PROBE_SIGNAL_DISABLE_PULLUP || defined __DOXYGEN__
1503 #define DEFAULT_PROBE_SIGNAL_DISABLE_PULLUP Off
1515 #if !defined DEFAULT_ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES || defined __DOXYGEN__
1516 #define DEFAULT_ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES Off
1522 #ifdef DEFAULT_HOMING_ENABLE
1541 #if !defined DEFAULT_PARKING_ENABLE || defined __DOXYGEN__
1542 #define DEFAULT_PARKING_ENABLE Off
1550 #if !defined DEFAULT_DEACTIVATE_PARKING_UPON_INIT || defined __DOXYGEN__
1551 #define DEFAULT_DEACTIVATE_PARKING_UPON_INIT Off
1553 #if !defined DEFAULT_ENABLE_PARKING_OVERRIDE_CONTROL || defined __DOXYGEN__
1554 #define DEFAULT_ENABLE_PARKING_OVERRIDE_CONTROL Off
1562 #if !defined DEFAULT_PARKING_AXIS || defined __DOXYGEN__
1563 #define DEFAULT_PARKING_AXIS Z_AXIS
1570 #if !defined DEFAULT_PARKING_PULLOUT_INCREMENT || defined __DOXYGEN__
1571 #define DEFAULT_PARKING_PULLOUT_INCREMENT 5.0f
1579 #if !defined DEFAULT_PARKING_PULLOUT_RATE || defined __DOXYGEN__
1580 #define DEFAULT_PARKING_PULLOUT_RATE 100.0f
1588 #if !defined DEFAULT_PARKING_TARGET || defined __DOXYGEN__
1589 #define DEFAULT_PARKING_TARGET -5.0f
1597 #if !defined DEFAULT_PARKING_RATE || defined __DOXYGEN__
1598 #define DEFAULT_PARKING_RATE 500.0f
1610 #if !defined DEFAULT_DOOR_IGNORE_WHEN_IDLE || defined __DOXYGEN__
1611 #define DEFAULT_DOOR_IGNORE_WHEN_IDLE Off
1617 #if !defined DEFAULT_DOOR_KEEP_COOLANT_ON || defined __DOXYGEN__
1618 #define DEFAULT_DOOR_KEEP_COOLANT_ON Off
1627 #if !defined DEFAULT_SAFETY_DOOR_SPINDLE_DELAY || defined __DOXYGEN__
1628 #define DEFAULT_SAFETY_DOOR_SPINDLE_DELAY 4.0f
1638 #if !defined DEFAULT_SAFETY_DOOR_COOLANT_DELAY || defined __DOXYGEN__
1639 #define DEFAULT_SAFETY_DOOR_COOLANT_DELAY 1.0f
1654 #if !defined DEFAULT_JOG_LIMIT_ENABLE || defined __DOXYGEN__
1655 #define DEFAULT_JOG_LIMIT_ENABLE Off
1673 #if !defined DEFAULT_STEP_PULSE_MICROSECONDS || defined __DOXYGEN__
1674 #define DEFAULT_STEP_PULSE_MICROSECONDS 10.0f
1686 #if !defined DEFAULT_STEPPER_IDLE_LOCK_TIME || defined __DOXYGEN__
1687 #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25
1696 #if !defined DEFAULT_STEP_SIGNALS_INVERT_MASK || defined __DOXYGEN__
1697 #define DEFAULT_STEP_SIGNALS_INVERT_MASK 0
1706 #if !defined DEFAULT_DIR_SIGNALS_INVERT_MASK || defined __DOXYGEN__
1707 #define DEFAULT_DIR_SIGNALS_INVERT_MASK 0
1723 #if !defined DEFAULT_ENABLE_SIGNALS_INVERT_MASK || defined __DOXYGEN__
1724 #define DEFAULT_ENABLE_SIGNALS_INVERT_MASK AXES_BITMASK
1733 #if !defined DEFAULT_GANGED_DIRECTION_INVERT_MASK || defined __DOXYGEN__
1734 #define DEFAULT_GANGED_DIRECTION_INVERT_MASK 0
1741 #if !defined DEFAULT_STEP_PULSE_DELAY || defined __DOXYGEN__
1742 #define DEFAULT_STEP_PULSE_DELAY 0.0f
1752 #if !defined DEFAULT_STEPPER_DEENERGIZE_MASK || defined __DOXYGEN__
1753 #define DEFAULT_STEPPER_DEENERGIZE_MASK 0
1763 #if !defined DEFAULT_AXIS_ROTATIONAL_MASK || defined __DOXYGEN__
1764 #define DEFAULT_AXIS_ROTATIONAL_MASK 0
1772 #if !defined DEFAULT_AUTOREPORT_INTERVAL || defined __DOXYGEN__
1773 #define DEFAULT_AUTOREPORT_INTERVAL 0
1781 #if !defined DEFAULT_TIMEZONE_OFFSET || defined __DOXYGEN__
1782 #define DEFAULT_TIMEZONE_OFFSET 0.0f
1792 #if !defined DEFAULT_X_STEPS_PER_MM || defined __DOXYGEN__
1793 #define DEFAULT_X_STEPS_PER_MM 250.0f
1795 #if !defined DEFAULT_Y_STEPS_PER_MM || defined __DOXYGEN__
1796 #define DEFAULT_Y_STEPS_PER_MM 250.0f
1798 #if !defined DEFAULT_Z_STEPS_PER_MM || defined __DOXYGEN__
1799 #define DEFAULT_Z_STEPS_PER_MM 250.0f
1801 #if (defined A_AXIS && !defined DEFAULT_A_STEPS_PER_MM) || defined __DOXYGEN__
1802 #define DEFAULT_A_STEPS_PER_MM 250.0f
1804 #if (defined B_AXIS && !defined DEFAULT_B_STEPS_PER_MM) || defined __DOXYGEN__
1805 #define DEFAULT_B_STEPS_PER_MM 250.0f
1807 #if (defined C_AXIS && !defined DEFAULT_C_STEPS_PER_MM) || defined __DOXYGEN__
1808 #define DEFAULT_C_STEPS_PER_MM 250.0f
1810 #if (defined U_AXIS && !defined DEFAULT_U_STEPS_PER_MM) || defined __DOXYGEN__
1811 #define DEFAULT_U_STEPS_PER_MM 250.0f
1813 #if (defined V_AXIS && !defined DEFAULT_V_STEPS_PER_MM) || defined __DOXYGEN__
1814 #define DEFAULT_V_STEPS_PER_MM 250.0f
1822 #if !defined DEFAULT_X_MAX_RATE || defined __DOXYGEN__
1823 #define DEFAULT_X_MAX_RATE 500.0f
1825 #if !defined DEFAULT_Y_MAX_RATE || defined __DOXYGEN__
1826 #define DEFAULT_Y_MAX_RATE 500.0f
1828 #if !defined DEFAULT_Z_MAX_RATE || defined __DOXYGEN__
1829 #define DEFAULT_Z_MAX_RATE 500.0f
1831 #if (defined A_AXIS && !defined DEFAULT_A_MAX_RATE) || defined __DOXYGEN__
1832 #define DEFAULT_A_MAX_RATE 500.0f
1834 #if (defined B_AXIS && !defined DEFAULT_B_MAX_RATE) || defined __DOXYGEN__
1835 #define DEFAULT_B_MAX_RATE 500.0f
1837 #if (defined C_AXIS && !defined DEFAULT_C_MAX_RATE) || defined __DOXYGEN__
1838 #define DEFAULT_C_MAX_RATE 500.0f
1840 #if (defined U_AXIS && !defined DEFAULT_U_MAX_RATE) || defined __DOXYGEN__
1841 #define DEFAULT_U_MAX_RATE 500.0f
1843 #if (defined V_AXIS && !defined DEFAULT_V_MAX_RATE) || defined __DOXYGEN__
1844 #define DEFAULT_V_MAX_RATE 500.0f
1851 #if !defined DEFAULT_X_ACCELERATION || defined __DOXYGEN__
1852 #define DEFAULT_X_ACCELERATION 10.0f
1854 #if !defined DEFAULT_Y_ACCELERATION || defined __DOXYGEN__
1855 #define DEFAULT_Y_ACCELERATION 10.0f
1857 #if !defined DEFAULT_Z_ACCELERATION || defined __DOXYGEN__
1858 #define DEFAULT_Z_ACCELERATION 10.0f
1860 #if (defined A_AXIS && !defined DEFAULT_A_ACCELERATION) || defined __DOXYGEN__
1861 #define DEFAULT_A_ACCELERATION 10.0f
1863 #if (defined B_AXIS && !defined DEFAULT_B_ACCELERATION) || defined __DOXYGEN__
1864 #define DEFAULT_B_ACCELERATION 10.0f
1866 #if (defined C_AXIS && !defined DEFAULT_C_ACCELERATION) || defined __DOXYGEN__
1867 #define DEFAULT_C_ACCELERATION 10.0f
1869 #if (defined U_AXIS && !defined DEFAULT_U_ACCELERATION) || defined __DOXYGEN__
1870 #define DEFAULT_U_ACCELERATION 10.0f
1872 #if (defined V_AXIS && !defined DEFAULT_V_ACCELERATION) || defined __DOXYGEN__
1873 #define DEFAULT_V_ACCELERATION 10.0f
1881 #if !defined DEFAULT_X_MAX_TRAVEL || defined __DOXYGEN__
1882 #define DEFAULT_X_MAX_TRAVEL 200.0f
1884 #if !defined DEFAULT_Y_MAX_TRAVEL || defined __DOXYGEN__
1885 #define DEFAULT_Y_MAX_TRAVEL 200.0f
1887 #if !defined DEFAULT_Z_MAX_TRAVEL || defined __DOXYGEN__
1888 #define DEFAULT_Z_MAX_TRAVEL 200.0f
1890 #if (defined A_AXIS && !defined DEFAULT_A_MAX_TRAVEL) || defined __DOXYGEN__
1891 #define DEFAULT_A_MAX_TRAVEL 200.0f
1893 #if (defined B_AXIS && !defined DEFAULT_B_MAX_TRAVEL) || defined __DOXYGEN__
1894 #define DEFAULT_B_MAX_TRAVEL 200.0f
1896 #if (defined C_AXIS && !defined DEFAULT_C_MAX_TRAVEL) || defined __DOXYGEN__
1897 #define DEFAULT_C_MAX_TRAVEL 200.0f
1899 #if (defined U_AXIS && !defined DEFAULT_U_MAX_TRAVEL) || defined __DOXYGEN__
1900 #define DEFAULT_U_MAX_TRAVEL 200.0f
1902 #if (defined V_AXIS && !defined DEFAULT_V_MAX_TRAVEL) || defined __DOXYGEN__
1903 #define DEFAULT_V_MAX_TRAVEL 200.0f
1911 #if !defined DEFAULT_X_CURRENT || defined __DOXYGEN__
1912 #define DEFAULT_X_CURRENT 500.0f
1914 #if !defined DEFAULT_Y_CURRENT || defined __DOXYGEN__
1915 #define DEFAULT_Y_CURRENT 500.0f
1917 #if !defined DEFAULT_Z_CURRENT || defined __DOXYGEN__
1918 #define DEFAULT_Z_CURRENT 500.0f
1920 #if (defined A_AXIS && !defined DEFAULT_A_CURRENT) || defined __DOXYGEN__
1921 #define DEFAULT_A_CURRENT 500.0f
1923 #if (defined B_AXIS && !defined DEFAULT_B_CURRENT) || defined __DOXYGEN__
1924 #define DEFAULT_B_CURRENT 500.0f
1926 #if (defined C_AXIS && !defined DEFAULT_C_CURRENT) || defined __DOXYGEN__
1927 #define DEFAULT_C_CURRENT 500.0f
1929 #if (defined U_AXIS && !defined DEFAULT_U_CURRENT) || defined __DOXYGEN__
1930 #define DEFAULT_U_CURRENT 500.0f
1932 #if (defined V_AXIS && !defined DEFAULT_V_CURRENT) || defined __DOXYGEN__
1933 #define DEFAULT_V_CURRENT 500.0f
1940 #if defined(N_TOOLS) && N_TOOLS == 0
1944 #if defined(N_TOOLS) && N_TOOLS > 32
1949 #if N_SYS_SPINDLE > N_SPINDLE
1950 #undef N_SYS_SPINDLE
1951 #define N_SYS_SPINDLE N_SPINDLE
1954 #if N_SYS_SPINDLE < 1
1955 #undef N_SYS_SPINDLE
1956 #define N_SYS_SPINDLE 1
1959 #if N_SYS_SPINDLE > 8
1960 #undef N_SYS_SPINDLE
1961 #define N_SYS_SPINDLE 8
1964 #if NGC_EXPRESSIONS_ENABLE && !NGC_PARAMETERS_ENABLE
1965 #undef NGC_PARAMETERS_ENABLE
1966 #define NGC_PARAMETERS_ENABLE On
1969 #if (REPORT_WCO_REFRESH_BUSY_COUNT < REPORT_WCO_REFRESH_IDLE_COUNT)
1970 #error "WCO busy refresh is less than idle refresh."
1972 #if (REPORT_OVERRIDE_REFRESH_BUSY_COUNT < REPORT_OVERRIDE_REFRESH_IDLE_COUNT)
1973 #error "Override busy refresh is less than idle refresh."
1975 #if (REPORT_WCO_REFRESH_IDLE_COUNT < 2)
1976 #error "WCO refresh must be greater than one."
1978 #if (REPORT_OVERRIDE_REFRESH_IDLE_COUNT < 1)
1979 #error "Override refresh must be greater than zero."
1982 #if DEFAULT_LASER_MODE && DEFAULT_LATHE_MODE
1983 #error "Cannot enable laser and lathe mode at the same time!"
1986 #if LATHE_UVW_OPTION && (N_AXIS > 6 || AXIS_REMAP_ABC2UVW)
1987 #warning "Cannot enable lathe UVW option when N_AXIS > 6 or ABC words are remapped!"
1988 #undef LATHE_UVW_OPTION
1989 #define LATHE_UVW_OPTION Off
1992 #if DEFAULT_CONTROL_SIGNALS_INVERT_MASK < 0
1993 #undef DEFAULT_CONTROL_SIGNALS_INVERT_MASK
1994 #define DEFAULT_CONTROL_SIGNALS_INVERT_MASK SIGNALS_BITMASK
1997 #if DEFAULT_LIMIT_SIGNALS_INVERT_MASK < 0
1998 #undef DEFAULT_LIMIT_SIGNALS_INVERT_MASK
1999 #define DEFAULT_LIMIT_SIGNALS_INVERT_MASK AXES_BITMASK
2002 #if DEFAULT_LIMIT_SIGNALS_PULLUP_DISABLE_MASK < 0
2003 #undef DEFAULT_LIMIT_SIGNALS_PULLUP_DISABLE_MASK
2004 #define DEFAULT_LIMIT_SIGNALS_PULLUP_DISABLE_MASK AXES_BITMASK
2007 #if DEFAULT_STEP_SIGNALS_INVERT_MASK < 0
2008 #undef DEFAULT_STEP_SIGNALS_INVERT_MASK
2009 #define DEFAULT_STEP_SIGNALS_INVERT_MASK AXES_BITMASK
2012 #if DEFAULT_ENABLE_SIGNALS_INVERT_MASK < 0
2013 #undef DEFAULT_ENABLE_SIGNALS_INVERT_MASK
2014 #define DEFAULT_ENABLE_SIGNALS_INVERT_MASK AXES_BITMASK
2017 #if DEFAULT_PARKING_ENABLE > 0
2018 #if DEFAULT_HOMING_FORCE_SET_ORIGIN > 0
2019 #error "DEFAULT_HOMING_FORCE_SET_ORIGIN is not supported with DEFAULT_PARKING_ENABLE at this time."
2023 #if DEFAULT_ENABLE_PARKING_OVERRIDE_CONTROL > 0
2024 #if DEFAULT_PARKING_ENABLE < 1
2025 #error "DEFAULT_ENABLE_PARKING_OVERRIDE_CONTROL must be enabled with DEFAULT_PARKING_ENABLE."