diff --git a/Marlin/Version.h b/Marlin/Version.h
index c78bca8dc8..82dba200f1 100644
--- a/Marlin/Version.h
+++ b/Marlin/Version.h
@@ -41,7 +41,7 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
-//#define STRING_DISTRIBUTION_DATE "2024-08-25"
+//#define STRING_DISTRIBUTION_DATE "2024-08-27"
#define STRING_DISTRIBUTION_DATE __DATE__
#define STRING_DISTRIBUTION_TIME __TIME__
diff --git a/Marlin/src/feature/leds/pca9632.cpp b/Marlin/src/feature/leds/pca9632.cpp
index 07c379a815..40c16a9276 100644
--- a/Marlin/src/feature/leds/pca9632.cpp
+++ b/Marlin/src/feature/leds/pca9632.cpp
@@ -148,7 +148,7 @@ void PCA9632_set_led_color(const LEDColor &color) {
#if ENABLED(PCA9632_BUZZER)
- void PCA9632_buzz(const long, const uint16_t=0) {
+ void PCA9632_buzz(const long, const uint16_t/*=0*/) {
uint8_t data[] = PCA9632_BUZZER_DATA;
Wire.beginTransmission(I2C_ADDRESS(PCA9632_ADDRESS));
Wire.write(data, sizeof(data));
diff --git a/Marlin/src/inc/BaseConfiguration.h b/Marlin/src/inc/BaseConfiguration.h
deleted file mode 100644
index 061181af11..0000000000
--- a/Marlin/src/inc/BaseConfiguration.h
+++ /dev/null
@@ -1,1765 +0,0 @@
-/**
- * Marlin 3D Printer Firmware
- * Copyright (c) 2024 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-#pragma once
-
-/**
- * BaseConfiguration.h - Generated using makeBaseConfigs.py
- */
-
-#ifndef CONFIGURATION_H_VERSION
- #define CONFIGURATION_H_VERSION 02010300
-#endif
-#ifndef STRING_CONFIG_H_AUTHOR
- #define STRING_CONFIG_H_AUTHOR "Miguel A. Risco-Castillo (MRiscoC)"
-#endif
-#ifndef CUSTOM_VERSION_FILE
- #define CUSTOM_VERSION_FILE Version.h
-#endif
-#ifndef MOTHERBOARD
- #define MOTHERBOARD BOARD_VOXELAB_AQUILA
-#endif
-#ifndef SERIAL_PORT
- #define SERIAL_PORT 1
-#endif
-#ifndef NO_AUTO_ASSIGN_WARNING
- #define NO_AUTO_ASSIGN_WARNING
-#endif
-#ifndef NO_MAPLE_WARNING
- #define NO_MAPLE_WARNING
-#endif
-#ifndef BAUDRATE
- #define BAUDRATE 115200
-#endif
-#ifndef BAUD_RATE_GCODE
- #define BAUD_RATE_GCODE
-#endif
-#ifndef CUSTOM_MACHINE_NAME
- #define CUSTOM_MACHINE_NAME "Aquila"
-#endif
-#ifndef X_DRIVER_TYPE
- #define X_DRIVER_TYPE TMC2208_STANDALONE
-#endif
-#ifndef Y_DRIVER_TYPE
- #define Y_DRIVER_TYPE TMC2208_STANDALONE
-#endif
-#ifndef Z_DRIVER_TYPE
- #define Z_DRIVER_TYPE TMC2208_STANDALONE
-#endif
-#ifndef E0_DRIVER_TYPE
- #define E0_DRIVER_TYPE TMC2208_STANDALONE
-#endif
-#ifdef I_DRIVER_TYPE
- #ifndef AXIS4_NAME
- #define AXIS4_NAME 'A'
- #endif
- #ifndef AXIS4_ROTATES
- #define AXIS4_ROTATES
- #endif
-#endif
-#ifdef J_DRIVER_TYPE
- #ifndef AXIS5_NAME
- #define AXIS5_NAME 'B'
- #endif
- #ifndef AXIS5_ROTATES
- #define AXIS5_ROTATES
- #endif
-#endif
-#ifdef K_DRIVER_TYPE
- #ifndef AXIS6_NAME
- #define AXIS6_NAME 'C'
- #endif
- #ifndef AXIS6_ROTATES
- #define AXIS6_ROTATES
- #endif
-#endif
-#ifdef U_DRIVER_TYPE
- #ifndef AXIS7_NAME
- #define AXIS7_NAME 'U'
- #endif
-#endif
-#ifdef V_DRIVER_TYPE
- #ifndef AXIS8_NAME
- #define AXIS8_NAME 'V'
- #endif
-#endif
-#ifdef W_DRIVER_TYPE
- #ifndef AXIS9_NAME
- #define AXIS9_NAME 'W'
- #endif
-#endif
-#ifndef EXTRUDERS
- #define EXTRUDERS 1
-#endif
-#ifndef DEFAULT_NOMINAL_FILAMENT_DIA
- #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
-#endif
-#if ENABLED(SWITCHING_EXTRUDER)
- #ifndef SWITCHING_EXTRUDER_SERVO_NR
- #define SWITCHING_EXTRUDER_SERVO_NR 0
- #endif
- #ifndef SWITCHING_EXTRUDER_SERVO_ANGLES
- #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 }
- #endif
- #if EXTRUDERS > 3
- #ifndef SWITCHING_EXTRUDER_E23_SERVO_NR
- #define SWITCHING_EXTRUDER_E23_SERVO_NR 1
- #endif
- #endif
-#endif
-#if ENABLED(SWITCHING_NOZZLE)
- #ifndef SWITCHING_NOZZLE_SERVO_NR
- #define SWITCHING_NOZZLE_SERVO_NR 0
- #endif
- #ifndef SWITCHING_NOZZLE_SERVO_ANGLES
- #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }
- #endif
- #ifndef SWITCHING_NOZZLE_SERVO_DWELL
- #define SWITCHING_NOZZLE_SERVO_DWELL 2500
- #endif
-#endif
-#if ANY(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)
- #ifndef PARKING_EXTRUDER_PARKING_X
- #define PARKING_EXTRUDER_PARKING_X { -78, 184 }
- #endif
- #ifndef PARKING_EXTRUDER_GRAB_DISTANCE
- #define PARKING_EXTRUDER_GRAB_DISTANCE 1
- #endif
- #if ENABLED(PARKING_EXTRUDER)
- #ifndef PARKING_EXTRUDER_SOLENOIDS_INVERT
- #define PARKING_EXTRUDER_SOLENOIDS_INVERT
- #endif
- #ifndef PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
- #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW
- #endif
- #ifndef PARKING_EXTRUDER_SOLENOIDS_DELAY
- #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250
- #endif
- #elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
- #ifndef MPE_FAST_SPEED
- #define MPE_FAST_SPEED 9000
- #endif
- #ifndef MPE_SLOW_SPEED
- #define MPE_SLOW_SPEED 4500
- #endif
- #ifndef MPE_TRAVEL_DISTANCE
- #define MPE_TRAVEL_DISTANCE 10
- #endif
- #ifndef MPE_COMPENSATION
- #define MPE_COMPENSATION 0
- #endif
- #endif
-#endif
-#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
- #ifndef SWITCHING_TOOLHEAD_Y_POS
- #define SWITCHING_TOOLHEAD_Y_POS 235
- #endif
- #ifndef SWITCHING_TOOLHEAD_Y_SECURITY
- #define SWITCHING_TOOLHEAD_Y_SECURITY 10
- #endif
- #ifndef SWITCHING_TOOLHEAD_Y_CLEAR
- #define SWITCHING_TOOLHEAD_Y_CLEAR 60
- #endif
- #ifndef SWITCHING_TOOLHEAD_X_POS
- #define SWITCHING_TOOLHEAD_X_POS { 215, 0 }
- #endif
- #if ENABLED(SWITCHING_TOOLHEAD)
- #ifndef SWITCHING_TOOLHEAD_SERVO_NR
- #define SWITCHING_TOOLHEAD_SERVO_NR 2
- #endif
- #ifndef SWITCHING_TOOLHEAD_SERVO_ANGLES
- #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 }
- #endif
- #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
- #ifndef SWITCHING_TOOLHEAD_Y_RELEASE
- #define SWITCHING_TOOLHEAD_Y_RELEASE 5
- #endif
- #ifndef SWITCHING_TOOLHEAD_X_SECURITY
- #define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 }
- #endif
- #if ENABLED(PRIME_BEFORE_REMOVE)
- #ifndef SWITCHING_TOOLHEAD_PRIME_MM
- #define SWITCHING_TOOLHEAD_PRIME_MM 20
- #endif
- #ifndef SWITCHING_TOOLHEAD_RETRACT_MM
- #define SWITCHING_TOOLHEAD_RETRACT_MM 10
- #endif
- #ifndef SWITCHING_TOOLHEAD_PRIME_FEEDRATE
- #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300
- #endif
- #ifndef SWITCHING_TOOLHEAD_RETRACT_FEEDRATE
- #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400
- #endif
- #endif
- #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
- #ifndef SWITCHING_TOOLHEAD_Z_HOP
- #define SWITCHING_TOOLHEAD_Z_HOP 2
- #endif
- #endif
-#endif
-#if ENABLED(MIXING_EXTRUDER)
- #ifndef MIXING_STEPPERS
- #define MIXING_STEPPERS 2
- #endif
- #ifndef MIXING_VIRTUAL_TOOLS
- #define MIXING_VIRTUAL_TOOLS 16
- #endif
-#endif
-#if ENABLED(PSU_CONTROL)
- #ifndef PSU_ACTIVE_STATE
- #define PSU_ACTIVE_STATE LOW
- #endif
- #ifndef PS_EDM_RESPONSE
- #define PS_EDM_RESPONSE 250
- #endif
- #if ENABLED(AUTO_POWER_CONTROL)
- #ifndef AUTO_POWER_FANS
- #define AUTO_POWER_FANS
- #endif
- #ifndef AUTO_POWER_E_FANS
- #define AUTO_POWER_E_FANS
- #endif
- #ifndef AUTO_POWER_CONTROLLERFAN
- #define AUTO_POWER_CONTROLLERFAN
- #endif
- #ifndef AUTO_POWER_CHAMBER_FAN
- #define AUTO_POWER_CHAMBER_FAN
- #endif
- #ifndef AUTO_POWER_COOLER_FAN
- #define AUTO_POWER_COOLER_FAN
- #endif
- #ifndef AUTO_POWER_SPINDLE_LASER
- #define AUTO_POWER_SPINDLE_LASER
- #endif
- #ifndef POWER_TIMEOUT
- #define POWER_TIMEOUT 30
- #endif
- #endif
-#endif
-#ifndef TEMP_SENSOR_0
- #define TEMP_SENSOR_0 1
-#endif
-#ifndef TEMP_SENSOR_1
- #define TEMP_SENSOR_1 0
-#endif
-#ifndef TEMP_SENSOR_2
- #define TEMP_SENSOR_2 0
-#endif
-#ifndef TEMP_SENSOR_3
- #define TEMP_SENSOR_3 0
-#endif
-#ifndef TEMP_SENSOR_4
- #define TEMP_SENSOR_4 0
-#endif
-#ifndef TEMP_SENSOR_5
- #define TEMP_SENSOR_5 0
-#endif
-#ifndef TEMP_SENSOR_6
- #define TEMP_SENSOR_6 0
-#endif
-#ifndef TEMP_SENSOR_7
- #define TEMP_SENSOR_7 0
-#endif
-#ifndef TEMP_SENSOR_BED
- #define TEMP_SENSOR_BED 1
-#endif
-#ifndef TEMP_SENSOR_PROBE
- #define TEMP_SENSOR_PROBE 0
-#endif
-#ifndef TEMP_SENSOR_CHAMBER
- #define TEMP_SENSOR_CHAMBER 0
-#endif
-#ifndef TEMP_SENSOR_COOLER
- #define TEMP_SENSOR_COOLER 0
-#endif
-#ifndef TEMP_SENSOR_BOARD
- #define TEMP_SENSOR_BOARD 0
-#endif
-#ifndef TEMP_SENSOR_SOC
- #define TEMP_SENSOR_SOC 0
-#endif
-#ifndef TEMP_SENSOR_REDUNDANT
- #define TEMP_SENSOR_REDUNDANT 0
-#endif
-#ifndef DUMMY_THERMISTOR_998_VALUE
- #define DUMMY_THERMISTOR_998_VALUE 25
-#endif
-#ifndef DUMMY_THERMISTOR_999_VALUE
- #define DUMMY_THERMISTOR_999_VALUE 100
-#endif
-#if TEMP_SENSOR_IS_MAX_TC(0)
- #ifndef MAX31865_SENSOR_OHMS_0
- #define MAX31865_SENSOR_OHMS_0 100
- #endif
- #ifndef MAX31865_CALIBRATION_OHMS_0
- #define MAX31865_CALIBRATION_OHMS_0 430
- #endif
-#endif
-#if TEMP_SENSOR_IS_MAX_TC(1)
- #ifndef MAX31865_SENSOR_OHMS_1
- #define MAX31865_SENSOR_OHMS_1 100
- #endif
- #ifndef MAX31865_CALIBRATION_OHMS_1
- #define MAX31865_CALIBRATION_OHMS_1 430
- #endif
-#endif
-#if TEMP_SENSOR_IS_MAX_TC(2)
- #ifndef MAX31865_SENSOR_OHMS_2
- #define MAX31865_SENSOR_OHMS_2 100
- #endif
- #ifndef MAX31865_CALIBRATION_OHMS_2
- #define MAX31865_CALIBRATION_OHMS_2 430
- #endif
-#endif
-#if HAS_E_TEMP_SENSOR
- #ifndef TEMP_RESIDENCY_TIME
- #define TEMP_RESIDENCY_TIME 10
- #endif
- #ifndef TEMP_WINDOW
- #define TEMP_WINDOW 1
- #endif
- #ifndef TEMP_HYSTERESIS
- #define TEMP_HYSTERESIS 3
- #endif
-#endif
-#if TEMP_SENSOR_BED
- #ifndef TEMP_BED_RESIDENCY_TIME
- #define TEMP_BED_RESIDENCY_TIME 10
- #endif
- #ifndef TEMP_BED_WINDOW
- #define TEMP_BED_WINDOW 1
- #endif
- #ifndef TEMP_BED_HYSTERESIS
- #define TEMP_BED_HYSTERESIS 3
- #endif
-#endif
-#if TEMP_SENSOR_CHAMBER
- #ifndef TEMP_CHAMBER_RESIDENCY_TIME
- #define TEMP_CHAMBER_RESIDENCY_TIME 10
- #endif
- #ifndef TEMP_CHAMBER_WINDOW
- #define TEMP_CHAMBER_WINDOW 1
- #endif
- #ifndef TEMP_CHAMBER_HYSTERESIS
- #define TEMP_CHAMBER_HYSTERESIS 3
- #endif
-#endif
-#if TEMP_SENSOR_REDUNDANT
- #ifndef TEMP_SENSOR_REDUNDANT_SOURCE
- #define TEMP_SENSOR_REDUNDANT_SOURCE E1
- #endif
- #ifndef TEMP_SENSOR_REDUNDANT_TARGET
- #define TEMP_SENSOR_REDUNDANT_TARGET E0
- #endif
- #ifndef TEMP_SENSOR_REDUNDANT_MAX_DIFF
- #define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10
- #endif
-#endif
-#ifndef HEATER_0_MINTEMP
- #define HEATER_0_MINTEMP 0
-#endif
-#ifndef HEATER_1_MINTEMP
- #define HEATER_1_MINTEMP 5
-#endif
-#ifndef HEATER_2_MINTEMP
- #define HEATER_2_MINTEMP 5
-#endif
-#ifndef HEATER_3_MINTEMP
- #define HEATER_3_MINTEMP 5
-#endif
-#ifndef HEATER_4_MINTEMP
- #define HEATER_4_MINTEMP 5
-#endif
-#ifndef HEATER_5_MINTEMP
- #define HEATER_5_MINTEMP 5
-#endif
-#ifndef HEATER_6_MINTEMP
- #define HEATER_6_MINTEMP 5
-#endif
-#ifndef HEATER_7_MINTEMP
- #define HEATER_7_MINTEMP 5
-#endif
-#ifndef BED_MINTEMP
- #define BED_MINTEMP 0
-#endif
-#ifndef CHAMBER_MINTEMP
- #define CHAMBER_MINTEMP 5
-#endif
-#ifndef HEATER_0_MAXTEMP
- #define HEATER_0_MAXTEMP 315
-#endif
-#ifndef HEATER_1_MAXTEMP
- #define HEATER_1_MAXTEMP 275
-#endif
-#ifndef HEATER_2_MAXTEMP
- #define HEATER_2_MAXTEMP 275
-#endif
-#ifndef HEATER_3_MAXTEMP
- #define HEATER_3_MAXTEMP 275
-#endif
-#ifndef HEATER_4_MAXTEMP
- #define HEATER_4_MAXTEMP 275
-#endif
-#ifndef HEATER_5_MAXTEMP
- #define HEATER_5_MAXTEMP 275
-#endif
-#ifndef HEATER_6_MAXTEMP
- #define HEATER_6_MAXTEMP 275
-#endif
-#ifndef HEATER_7_MAXTEMP
- #define HEATER_7_MAXTEMP 275
-#endif
-#ifndef BED_MAXTEMP
- #define BED_MAXTEMP 120
-#endif
-#ifndef CHAMBER_MAXTEMP
- #define CHAMBER_MAXTEMP 60
-#endif
-#ifndef HOTEND_OVERSHOOT
- #define HOTEND_OVERSHOOT 15
-#endif
-#ifndef BED_OVERSHOOT
- #define BED_OVERSHOOT 10
-#endif
-#ifndef COOLER_OVERSHOOT
- #define COOLER_OVERSHOOT 2
-#endif
-#ifndef PIDTEMP
- #define PIDTEMP
-#endif
-#ifndef PID_MAX
- #define PID_MAX 255
-#endif
-#ifndef PID_K1
- #define PID_K1 0.95
-#endif
-#if ENABLED(PIDTEMP)
- #if ENABLED(PID_PARAMS_PER_HOTEND)
- #ifndef DEFAULT_Kp_LIST
- #define DEFAULT_Kp_LIST { 22.20, 22.20 }
- #endif
- #ifndef DEFAULT_Ki_LIST
- #define DEFAULT_Ki_LIST { 1.08, 1.08 }
- #endif
- #ifndef DEFAULT_Kd_LIST
- #define DEFAULT_Kd_LIST { 114.00, 114.00 }
- #endif
- #else
- #ifndef DEFAULT_Kp
- #define DEFAULT_Kp 13.19
- #endif
- #ifndef DEFAULT_Ki
- #define DEFAULT_Ki 0.77
- #endif
- #ifndef DEFAULT_Kd
- #define DEFAULT_Kd 56.05
- #endif
- #endif
-#else
- #ifndef BANG_MAX
- #define BANG_MAX 255
- #endif
-#endif
-#if ENABLED(MPCTEMP)
- #ifndef MPC_AUTOTUNE
- #define MPC_AUTOTUNE
- #endif
- #ifndef MPC_EDIT_MENU
- #define MPC_EDIT_MENU
- #endif
- #ifndef MPC_AUTOTUNE_MENU
- #define MPC_AUTOTUNE_MENU
- #endif
- #ifndef MPC_MAX
- #define MPC_MAX 255
- #endif
- #ifndef MPC_HEATER_POWER
- #define MPC_HEATER_POWER { 40.0f }
- #endif
- #ifndef MPC_INCLUDE_FAN
- #define MPC_INCLUDE_FAN
- #endif
- #ifndef MPC_BLOCK_HEAT_CAPACITY
- #define MPC_BLOCK_HEAT_CAPACITY { 16.7f }
- #endif
- #ifndef MPC_SENSOR_RESPONSIVENESS
- #define MPC_SENSOR_RESPONSIVENESS { 0.22f }
- #endif
- #ifndef MPC_AMBIENT_XFER_COEFF
- #define MPC_AMBIENT_XFER_COEFF { 0.068f }
- #endif
- #if ENABLED(MPC_INCLUDE_FAN)
- #ifndef MPC_AMBIENT_XFER_COEFF_FAN255
- #define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f }
- #endif
- #endif
- #ifndef FILAMENT_HEAT_CAPACITY_PERMM
- #define FILAMENT_HEAT_CAPACITY_PERMM { 5.6e-3f }
- #endif
- #ifndef MPC_SMOOTHING_FACTOR
- #define MPC_SMOOTHING_FACTOR 0.5f
- #endif
- #ifndef MPC_MIN_AMBIENT_CHANGE
- #define MPC_MIN_AMBIENT_CHANGE 1.0f
- #endif
- #ifndef MPC_STEADYSTATE
- #define MPC_STEADYSTATE 0.5f
- #endif
- #ifndef MPC_TUNING_POS
- #define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f }
- #endif
- #ifndef MPC_TUNING_END_Z
- #define MPC_TUNING_END_Z 10.0f
- #endif
-#endif
-#ifndef MAX_BED_POWER
- #define MAX_BED_POWER 255
-#endif
-#ifndef PIDTEMPBED
- #define PIDTEMPBED
-#endif
-#if ENABLED(PIDTEMPBED)
- #ifndef DEFAULT_bedKp
- #define DEFAULT_bedKp 128.06
- #endif
- #ifndef DEFAULT_bedKi
- #define DEFAULT_bedKi 24.95
- #endif
- #ifndef DEFAULT_bedKd
- #define DEFAULT_bedKd 438.07
- #endif
-#else
-#endif
-#ifndef MAX_CHAMBER_POWER
- #define MAX_CHAMBER_POWER 255
-#endif
-#if ENABLED(PIDTEMPCHAMBER)
- #ifndef MIN_CHAMBER_POWER
- #define MIN_CHAMBER_POWER 0
- #endif
- #ifndef DEFAULT_chamberKp
- #define DEFAULT_chamberKp 37.04
- #endif
- #ifndef DEFAULT_chamberKi
- #define DEFAULT_chamberKi 1.40
- #endif
- #ifndef DEFAULT_chamberKd
- #define DEFAULT_chamberKd 655.17
- #endif
-#endif
-#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
- #ifndef PID_FUNCTIONAL_RANGE
- #define PID_FUNCTIONAL_RANGE 10
- #endif
- #ifndef PID_EDIT_MENU
- #define PID_EDIT_MENU
- #endif
- #ifndef PID_AUTOTUNE_MENU
- #define PID_AUTOTUNE_MENU
- #endif
-#endif
-#ifndef PREVENT_COLD_EXTRUSION
- #define PREVENT_COLD_EXTRUSION
-#endif
-#ifndef EXTRUDE_MINTEMP
- #define EXTRUDE_MINTEMP 180
-#endif
-#ifndef PREVENT_LENGTHY_EXTRUDE
- #define PREVENT_LENGTHY_EXTRUDE
-#endif
-#ifndef EXTRUDE_MAXLENGTH
- #define EXTRUDE_MAXLENGTH 1000
-#endif
-#ifndef THERMAL_PROTECTION_HOTENDS
- #define THERMAL_PROTECTION_HOTENDS
-#endif
-#ifndef THERMAL_PROTECTION_BED
- #define THERMAL_PROTECTION_BED
-#endif
-#if ENABLED(POLARGRAPH)
- #ifndef POLARGRAPH_MAX_BELT_LEN
- #define POLARGRAPH_MAX_BELT_LEN 1035.0
- #endif
- #ifndef DEFAULT_SEGMENTS_PER_SECOND
- #define DEFAULT_SEGMENTS_PER_SECOND 5
- #endif
- #ifndef PEN_UP_DOWN_MENU
- #define PEN_UP_DOWN_MENU
- #endif
-#endif
-#if ENABLED(DELTA)
- #ifndef DEFAULT_SEGMENTS_PER_SECOND
- #define DEFAULT_SEGMENTS_PER_SECOND 200
- #endif
- #if ENABLED(DELTA_AUTO_CALIBRATION)
- #ifndef DELTA_CALIBRATION_DEFAULT_POINTS
- #define DELTA_CALIBRATION_DEFAULT_POINTS 4
- #endif
- #endif
- #if ANY(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU)
- #ifndef PROBE_MANUALLY_STEP
- #define PROBE_MANUALLY_STEP 0.05
- #endif
- #endif
- #ifndef PRINTABLE_RADIUS
- #define PRINTABLE_RADIUS 140.0
- #endif
- #ifndef DELTA_MAX_RADIUS
- #define DELTA_MAX_RADIUS 140.0
- #endif
- #ifndef DELTA_DIAGONAL_ROD
- #define DELTA_DIAGONAL_ROD 250.0
- #endif
- #ifndef DELTA_HEIGHT
- #define DELTA_HEIGHT 250.00
- #endif
- #ifndef DELTA_ENDSTOP_ADJ
- #define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 }
- #endif
- #ifndef DELTA_RADIUS
- #define DELTA_RADIUS 124.0
- #endif
- #ifndef DELTA_TOWER_ANGLE_TRIM
- #define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 }
- #endif
-#endif
-#if ANY(MORGAN_SCARA, MP_SCARA)
- #ifndef DEFAULT_SEGMENTS_PER_SECOND
- #define DEFAULT_SEGMENTS_PER_SECOND 200
- #endif
- #ifndef SCARA_LINKAGE_1
- #define SCARA_LINKAGE_1 150
- #endif
- #ifndef SCARA_LINKAGE_2
- #define SCARA_LINKAGE_2 150
- #endif
- #ifndef SCARA_OFFSET_X
- #define SCARA_OFFSET_X 100
- #endif
- #ifndef SCARA_OFFSET_Y
- #define SCARA_OFFSET_Y -56
- #endif
- #if ENABLED(MORGAN_SCARA)
- #ifndef FEEDRATE_SCALING
- #define FEEDRATE_SCALING
- #endif
- #ifndef MIDDLE_DEAD_ZONE_R
- #define MIDDLE_DEAD_ZONE_R 0
- #endif
- #elif ENABLED(MP_SCARA)
- #ifndef SCARA_OFFSET_THETA1
- #define SCARA_OFFSET_THETA1 12
- #endif
- #ifndef SCARA_OFFSET_THETA2
- #define SCARA_OFFSET_THETA2 131
- #endif
- #endif
-#endif
-#if ENABLED(AXEL_TPARA)
- #ifndef DEBUG_TPARA_KINEMATICS
- #define DEBUG_TPARA_KINEMATICS
- #endif
- #ifndef DEFAULT_SEGMENTS_PER_SECOND
- #define DEFAULT_SEGMENTS_PER_SECOND 200
- #endif
- #ifndef TPARA_LINKAGE_1
- #define TPARA_LINKAGE_1 120
- #endif
- #ifndef TPARA_LINKAGE_2
- #define TPARA_LINKAGE_2 120
- #endif
- #ifndef TPARA_OFFSET_X
- #define TPARA_OFFSET_X 0
- #endif
- #ifndef TPARA_OFFSET_Y
- #define TPARA_OFFSET_Y 0
- #endif
- #ifndef TPARA_OFFSET_Z
- #define TPARA_OFFSET_Z 0
- #endif
- #ifndef FEEDRATE_SCALING
- #define FEEDRATE_SCALING
- #endif
- #ifndef MIDDLE_DEAD_ZONE_R
- #define MIDDLE_DEAD_ZONE_R 0
- #endif
-#endif
-#if ENABLED(POLAR)
- #ifndef DEFAULT_SEGMENTS_PER_SECOND
- #define DEFAULT_SEGMENTS_PER_SECOND 180
- #endif
- #ifndef PRINTABLE_RADIUS
- #define PRINTABLE_RADIUS 82.0f
- #endif
- #ifndef POLAR_FAST_RADIUS
- #define POLAR_FAST_RADIUS 3.0f
- #endif
- #ifndef POLAR_CENTER_OFFSET
- #define POLAR_CENTER_OFFSET 0.0f
- #endif
- #ifndef FEEDRATE_SCALING
- #define FEEDRATE_SCALING
- #endif
-#endif
-#ifndef ENDSTOPPULLUPS
- #define ENDSTOPPULLUPS
-#endif
-#ifndef X_MIN_ENDSTOP_HIT_STATE
- #define X_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef X_MAX_ENDSTOP_HIT_STATE
- #define X_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef Y_MIN_ENDSTOP_HIT_STATE
- #define Y_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef Y_MAX_ENDSTOP_HIT_STATE
- #define Y_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef Z_MIN_ENDSTOP_HIT_STATE
- #define Z_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef Z_MAX_ENDSTOP_HIT_STATE
- #define Z_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef I_MIN_ENDSTOP_HIT_STATE
- #define I_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef I_MAX_ENDSTOP_HIT_STATE
- #define I_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef J_MIN_ENDSTOP_HIT_STATE
- #define J_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef J_MAX_ENDSTOP_HIT_STATE
- #define J_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef K_MIN_ENDSTOP_HIT_STATE
- #define K_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef K_MAX_ENDSTOP_HIT_STATE
- #define K_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef U_MIN_ENDSTOP_HIT_STATE
- #define U_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef U_MAX_ENDSTOP_HIT_STATE
- #define U_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef V_MIN_ENDSTOP_HIT_STATE
- #define V_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef V_MAX_ENDSTOP_HIT_STATE
- #define V_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef W_MIN_ENDSTOP_HIT_STATE
- #define W_MIN_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef W_MAX_ENDSTOP_HIT_STATE
- #define W_MAX_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef Z_MIN_PROBE_ENDSTOP_HIT_STATE
- #define Z_MIN_PROBE_ENDSTOP_HIT_STATE HIGH
-#endif
-#ifndef ENDSTOP_INTERRUPTS_FEATURE
- #define ENDSTOP_INTERRUPTS_FEATURE
-#endif
-#ifndef DEFAULT_AXIS_STEPS_PER_UNIT
- #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 98 }
-#endif
-#if ENABLED(LIMITED_MAX_STEPS_EDITING)
- #ifndef MAX_STEPS_EDIT_VALUES
- #define MAX_STEPS_EDIT_VALUES { 200, 200, 2000, 2000 }
- #endif
-#endif
-#ifndef EDITABLE_STEPS_PER_UNIT
- #define EDITABLE_STEPS_PER_UNIT
-#endif
-#ifndef DEFAULT_MAX_FEEDRATE
- #define DEFAULT_MAX_FEEDRATE { 800, 800, 18, 120 }
-#endif
-#if ENABLED(LIMITED_MAX_FR_EDITING)
- #ifndef MAX_FEEDRATE_EDIT_VALUES
- #define MAX_FEEDRATE_EDIT_VALUES { 1000, 1000, 40, 200 }
- #endif
-#endif
-#ifndef DEFAULT_MAX_ACCELERATION
- #define DEFAULT_MAX_ACCELERATION { 800, 800, 120, 1200 }
-#endif
-#if ENABLED(LIMITED_MAX_ACCEL_EDITING)
- #ifndef MAX_ACCEL_EDIT_VALUES
- #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 300, 9000 }
- #endif
-#endif
-#ifndef DEFAULT_ACCELERATION
- #define DEFAULT_ACCELERATION 800
-#endif
-#ifndef DEFAULT_RETRACT_ACCELERATION
- #define DEFAULT_RETRACT_ACCELERATION 800
-#endif
-#ifndef DEFAULT_TRAVEL_ACCELERATION
- #define DEFAULT_TRAVEL_ACCELERATION 1000
-#endif
-#if ENABLED(AXIS4_ROTATES)
- #ifndef DEFAULT_ANGULAR_ACCELERATION
- #define DEFAULT_ANGULAR_ACCELERATION 3000
- #endif
- #ifndef DEFAULT_ANGULAR_TRAVEL_ACCELERATION
- #define DEFAULT_ANGULAR_TRAVEL_ACCELERATION 3000
- #endif
-#endif
-#ifndef CLASSIC_JERK
- #define CLASSIC_JERK
-#endif
-#if ENABLED(CLASSIC_JERK)
- #ifndef DEFAULT_XJERK
- #define DEFAULT_XJERK 10.0
- #endif
- #ifndef DEFAULT_YJERK
- #define DEFAULT_YJERK 10.0
- #endif
- #ifndef DEFAULT_ZJERK
- #define DEFAULT_ZJERK 0.4
- #endif
- #ifndef DEFAULT_EJERK
- #define DEFAULT_EJERK 10.0
- #endif
- #if ENABLED(LIMITED_JERK_EDITING)
- #ifndef MAX_JERK_EDIT_VALUES
- #define MAX_JERK_EDIT_VALUES { 20, 20, 1, 20 }
- #endif
- #endif
-#endif
-#if DISABLED(CLASSIC_JERK)
- #ifndef JUNCTION_DEVIATION_MM
- #define JUNCTION_DEVIATION_MM 0.013
- #endif
- #ifndef JD_HANDLE_SMALL_SEGMENTS
- #define JD_HANDLE_SMALL_SEGMENTS
- #endif
-#endif
-#ifndef S_CURVE_ACCELERATION
- #define S_CURVE_ACCELERATION
-#endif
-#ifndef USE_PROBE_FOR_Z_HOMING
- #define USE_PROBE_FOR_Z_HOMING
-#endif
-#ifndef BLTOUCH
- #define BLTOUCH
-#endif
-#if ENABLED(MAGLEV4)
- #ifndef MAGLEV_TRIGGER_DELAY
- #define MAGLEV_TRIGGER_DELAY 15
- #endif
-#endif
-#if ENABLED(TOUCH_MI_PROBE)
- #ifndef TOUCH_MI_RETRACT_Z
- #define TOUCH_MI_RETRACT_Z 0.5
- #endif
-#endif
-#if ENABLED(RACK_AND_PINION_PROBE)
- #ifndef Z_PROBE_DEPLOY_X
- #define Z_PROBE_DEPLOY_X X_MIN_POS
- #endif
- #ifndef Z_PROBE_RETRACT_X
- #define Z_PROBE_RETRACT_X X_MAX_POS
- #endif
-#endif
-#if ENABLED(MAG_MOUNTED_PROBE)
- #ifndef PROBE_DEPLOY_FEEDRATE
- #define PROBE_DEPLOY_FEEDRATE (133*60)
- #endif
- #ifndef PROBE_STOW_FEEDRATE
- #define PROBE_STOW_FEEDRATE (133*60)
- #endif
- #ifndef MAG_MOUNTED_DEPLOY_1
- #define MAG_MOUNTED_DEPLOY_1 { PROBE_DEPLOY_FEEDRATE, { 245, 114, 30 } }
- #endif
- #ifndef MAG_MOUNTED_DEPLOY_2
- #define MAG_MOUNTED_DEPLOY_2 { PROBE_DEPLOY_FEEDRATE, { 210, 114, 30 } }
- #endif
- #ifndef MAG_MOUNTED_DEPLOY_3
- #define MAG_MOUNTED_DEPLOY_3 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } }
- #endif
- #ifndef MAG_MOUNTED_DEPLOY_4
- #define MAG_MOUNTED_DEPLOY_4 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } }
- #endif
- #ifndef MAG_MOUNTED_DEPLOY_5
- #define MAG_MOUNTED_DEPLOY_5 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } }
- #endif
- #ifndef MAG_MOUNTED_STOW_1
- #define MAG_MOUNTED_STOW_1 { PROBE_STOW_FEEDRATE, { 245, 114, 20 } }
- #endif
- #ifndef MAG_MOUNTED_STOW_2
- #define MAG_MOUNTED_STOW_2 { PROBE_STOW_FEEDRATE, { 245, 114, 0 } }
- #endif
- #ifndef MAG_MOUNTED_STOW_3
- #define MAG_MOUNTED_STOW_3 { PROBE_STOW_FEEDRATE, { 230, 114, 0 } }
- #endif
- #ifndef MAG_MOUNTED_STOW_4
- #define MAG_MOUNTED_STOW_4 { PROBE_STOW_FEEDRATE, { 210, 114, 20 } }
- #endif
- #ifndef MAG_MOUNTED_STOW_5
- #define MAG_MOUNTED_STOW_5 { PROBE_STOW_FEEDRATE, { 0, 0, 0 } }
- #endif
-#endif
-#if ENABLED(DUET_SMART_EFFECTOR)
- #ifndef SMART_EFFECTOR_MOD_PIN
- #define SMART_EFFECTOR_MOD_PIN -1
- #endif
-#endif
-#if ENABLED(Z_PROBE_ALLEN_KEY)
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_1
- #define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, PRINTABLE_RADIUS, 100.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_2
- #define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, PRINTABLE_RADIUS, 100.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_3
- #define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (PRINTABLE_RADIUS) * 0.75, 100.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_1
- #define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_2
- #define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_3
- #define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_4
- #define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 }
- #endif
- #ifndef Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE
- #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE
- #endif
-#endif
-#ifndef NOZZLE_TO_PROBE_OFFSET
- #define NOZZLE_TO_PROBE_OFFSET { -45.0, -7.0, 0 }
-#endif
-#ifndef PROBING_MARGIN
- #define PROBING_MARGIN 0
-#endif
-#ifndef XY_PROBE_FEEDRATE
- #define XY_PROBE_FEEDRATE (180*60)
-#endif
-#ifndef Z_PROBE_FEEDRATE_FAST
- #define Z_PROBE_FEEDRATE_FAST (9*60)
-#endif
-#ifndef Z_PROBE_FEEDRATE_SLOW
- #define Z_PROBE_FEEDRATE_SLOW (150)
-#endif
-#if ENABLED(PROBE_ACTIVATION_SWITCH)
- #ifndef PROBE_ACTIVATION_SWITCH_STATE
- #define PROBE_ACTIVATION_SWITCH_STATE LOW
- #endif
-#endif
-#if ENABLED(PROBE_TARE)
- #ifndef PROBE_TARE_TIME
- #define PROBE_TARE_TIME 200
- #endif
- #ifndef PROBE_TARE_DELAY
- #define PROBE_TARE_DELAY 200
- #endif
- #ifndef PROBE_TARE_STATE
- #define PROBE_TARE_STATE HIGH
- #endif
-#endif
-#ifndef MULTIPLE_PROBING
- #define MULTIPLE_PROBING 2
-#endif
-#ifndef Z_CLEARANCE_DEPLOY_PROBE
- #define Z_CLEARANCE_DEPLOY_PROBE 10
-#endif
-#ifndef Z_CLEARANCE_BETWEEN_PROBES
- #define Z_CLEARANCE_BETWEEN_PROBES 5
-#endif
-#ifndef Z_CLEARANCE_MULTI_PROBE
- #define Z_CLEARANCE_MULTI_PROBE 5
-#endif
-#ifndef Z_PROBE_ERROR_TOLERANCE
- #define Z_PROBE_ERROR_TOLERANCE 3
-#endif
-#ifndef Z_PROBE_LOW_POINT
- #define Z_PROBE_LOW_POINT -2
-#endif
-#ifndef Z_MIN_PROBE_REPEATABILITY_TEST
- #define Z_MIN_PROBE_REPEATABILITY_TEST
-#endif
-#if ENABLED(PREHEAT_BEFORE_PROBING)
- #ifndef PROBING_NOZZLE_TEMP
- #define PROBING_NOZZLE_TEMP 120
- #endif
- #ifndef PROBING_BED_TEMP
- #define PROBING_BED_TEMP 50
- #endif
-#endif
-#ifndef X_ENABLE_ON
- #define X_ENABLE_ON 0
-#endif
-#ifndef Y_ENABLE_ON
- #define Y_ENABLE_ON 0
-#endif
-#ifndef Z_ENABLE_ON
- #define Z_ENABLE_ON 0
-#endif
-#ifndef E_ENABLE_ON
- #define E_ENABLE_ON 0
-#endif
-#ifndef DISABLE_OTHER_EXTRUDERS
- #define DISABLE_OTHER_EXTRUDERS
-#endif
-#ifndef INVERT_X_DIR
- #define INVERT_X_DIR false
-#endif
-#ifndef INVERT_Y_DIR
- #define INVERT_Y_DIR false
-#endif
-#ifndef INVERT_Z_DIR
- #define INVERT_Z_DIR true
-#endif
-#ifndef INVERT_E0_DIR
- #define INVERT_E0_DIR false
-#endif
-#ifndef INVERT_E1_DIR
- #define INVERT_E1_DIR false
-#endif
-#ifndef INVERT_E2_DIR
- #define INVERT_E2_DIR false
-#endif
-#ifndef INVERT_E3_DIR
- #define INVERT_E3_DIR false
-#endif
-#ifndef INVERT_E4_DIR
- #define INVERT_E4_DIR false
-#endif
-#ifndef INVERT_E5_DIR
- #define INVERT_E5_DIR false
-#endif
-#ifndef INVERT_E6_DIR
- #define INVERT_E6_DIR false
-#endif
-#ifndef INVERT_E7_DIR
- #define INVERT_E7_DIR false
-#endif
-#ifndef HOME_AFTER_DEACTIVATE
- #define HOME_AFTER_DEACTIVATE
-#endif
-#ifndef Z_IDLE_HEIGHT
- #define Z_IDLE_HEIGHT Z_HOME_POS
-#endif
-#ifndef Z_CLEARANCE_FOR_HOMING
- #define Z_CLEARANCE_FOR_HOMING 10
-#endif
-#ifndef X_HOME_DIR
- #define X_HOME_DIR -1
-#endif
-#ifndef Y_HOME_DIR
- #define Y_HOME_DIR -1
-#endif
-#ifndef Z_HOME_DIR
- #define Z_HOME_DIR -1
-#endif
-#ifndef X_BED_SIZE
- #define X_BED_SIZE 220
-#endif
-#ifndef Y_BED_SIZE
- #define Y_BED_SIZE 220
-#endif
-#ifndef X_MIN_POS
- #define X_MIN_POS 0
-#endif
-#ifndef Y_MIN_POS
- #define Y_MIN_POS 0
-#endif
-#ifndef Z_MIN_POS
- #define Z_MIN_POS 0
-#endif
-#ifndef X_MAX_POS
- #define X_MAX_POS 230
-#endif
-#ifndef Y_MAX_POS
- #define Y_MAX_POS 220
-#endif
-#ifndef Z_MAX_POS
- #define Z_MAX_POS 250
-#endif
-#ifndef MIN_SOFTWARE_ENDSTOPS
- #define MIN_SOFTWARE_ENDSTOPS
-#endif
-#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
- #ifndef MIN_SOFTWARE_ENDSTOP_X
- #define MIN_SOFTWARE_ENDSTOP_X
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_Y
- #define MIN_SOFTWARE_ENDSTOP_Y
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_Z
- #define MIN_SOFTWARE_ENDSTOP_Z
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_I
- #define MIN_SOFTWARE_ENDSTOP_I
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_J
- #define MIN_SOFTWARE_ENDSTOP_J
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_K
- #define MIN_SOFTWARE_ENDSTOP_K
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_U
- #define MIN_SOFTWARE_ENDSTOP_U
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_V
- #define MIN_SOFTWARE_ENDSTOP_V
- #endif
- #ifndef MIN_SOFTWARE_ENDSTOP_W
- #define MIN_SOFTWARE_ENDSTOP_W
- #endif
-#endif
-#ifndef MAX_SOFTWARE_ENDSTOPS
- #define MAX_SOFTWARE_ENDSTOPS
-#endif
-#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
- #ifndef MAX_SOFTWARE_ENDSTOP_X
- #define MAX_SOFTWARE_ENDSTOP_X
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_Y
- #define MAX_SOFTWARE_ENDSTOP_Y
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_Z
- #define MAX_SOFTWARE_ENDSTOP_Z
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_I
- #define MAX_SOFTWARE_ENDSTOP_I
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_J
- #define MAX_SOFTWARE_ENDSTOP_J
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_K
- #define MAX_SOFTWARE_ENDSTOP_K
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_U
- #define MAX_SOFTWARE_ENDSTOP_U
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_V
- #define MAX_SOFTWARE_ENDSTOP_V
- #endif
- #ifndef MAX_SOFTWARE_ENDSTOP_W
- #define MAX_SOFTWARE_ENDSTOP_W
- #endif
-#endif
-#ifndef FILAMENT_RUNOUT_SENSOR
- #define FILAMENT_RUNOUT_SENSOR
-#endif
-#if ENABLED(FILAMENT_RUNOUT_SENSOR)
- #ifndef FIL_RUNOUT_ENABLED_DEFAULT
- #define FIL_RUNOUT_ENABLED_DEFAULT false
- #endif
- #ifndef NUM_RUNOUT_SENSORS
- #define NUM_RUNOUT_SENSORS 1
- #endif
- #ifndef FIL_RUNOUT_STATE
- #define FIL_RUNOUT_STATE HIGH
- #endif
- #ifndef FIL_RUNOUT_PULLUP
- #define FIL_RUNOUT_PULLUP
- #endif
- #ifndef FILAMENT_RUNOUT_SCRIPT
- #define FILAMENT_RUNOUT_SCRIPT "M600"
- #endif
- #ifndef FILAMENT_RUNOUT_DISTANCE_MM
- #define FILAMENT_RUNOUT_DISTANCE_MM 25
- #endif
- #ifdef FILAMENT_RUNOUT_DISTANCE_MM
- #if ENABLED(FILAMENT_MOTION_SENSOR)
- #if ENABLED(FILAMENT_SWITCH_AND_MOTION)
- #ifndef NUM_MOTION_SENSORS
- #define NUM_MOTION_SENSORS 1
- #endif
- #endif
- #endif
- #endif
-#endif
-#ifndef AUTO_BED_LEVELING_UBL
- #define AUTO_BED_LEVELING_UBL
-#endif
-#ifndef RESTORE_LEVELING_AFTER_G28
- #define RESTORE_LEVELING_AFTER_G28
-#endif
-#if ENABLED(PREHEAT_BEFORE_LEVELING)
- #ifndef LEVELING_NOZZLE_TEMP
- #define LEVELING_NOZZLE_TEMP 175
- #endif
- #ifndef LEVELING_BED_TEMP
- #define LEVELING_BED_TEMP 50
- #endif
-#endif
-#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL, PROBE_MANUALLY)
- #ifndef MANUAL_PROBE_START_Z
- #define MANUAL_PROBE_START_Z 0.2
- #endif
-#endif
-#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
- #ifndef ENABLE_LEVELING_FADE_HEIGHT
- #define ENABLE_LEVELING_FADE_HEIGHT
- #endif
- #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
- #ifndef DEFAULT_LEVELING_FADE_HEIGHT
- #define DEFAULT_LEVELING_FADE_HEIGHT 10.0
- #endif
- #endif
- #ifndef SEGMENT_LEVELED_MOVES
- #define SEGMENT_LEVELED_MOVES
- #endif
- #ifndef LEVELED_SEGMENT_LENGTH
- #define LEVELED_SEGMENT_LENGTH 5.0
- #endif
- #if ENABLED(G26_MESH_VALIDATION)
- #ifndef MESH_TEST_NOZZLE_SIZE
- #define MESH_TEST_NOZZLE_SIZE 0.4
- #endif
- #ifndef MESH_TEST_LAYER_HEIGHT
- #define MESH_TEST_LAYER_HEIGHT 0.2
- #endif
- #ifndef MESH_TEST_HOTEND_TEMP
- #define MESH_TEST_HOTEND_TEMP 205
- #endif
- #ifndef MESH_TEST_BED_TEMP
- #define MESH_TEST_BED_TEMP 60
- #endif
- #ifndef G26_XY_FEEDRATE
- #define G26_XY_FEEDRATE 20
- #endif
- #ifndef G26_XY_FEEDRATE_TRAVEL
- #define G26_XY_FEEDRATE_TRAVEL 100
- #endif
- #ifndef G26_RETRACT_MULTIPLIER
- #define G26_RETRACT_MULTIPLIER 1.0
- #endif
- #endif
-#endif
-#if ANY(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
- #ifndef GRID_MAX_POINTS_X
- #define GRID_MAX_POINTS_X 5
- #endif
- #ifndef GRID_MAX_POINTS_Y
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- #endif
- #ifndef MESH_INSET
- #define MESH_INSET 10
- #endif
- #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
- #if ENABLED(ABL_BILINEAR_SUBDIVISION)
- #ifndef BILINEAR_SUBDIVISIONS
- #define BILINEAR_SUBDIVISIONS 3
- #endif
- #endif
- #endif
-#elif ENABLED(AUTO_BED_LEVELING_UBL)
- #ifndef MESH_INSET
- #define MESH_INSET 10
- #endif
- #ifndef GRID_MAX_POINTS_X
- #define GRID_MAX_POINTS_X 7
- #endif
- #ifndef GRID_MAX_POINTS_Y
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- #endif
- #ifndef UBL_MESH_EDIT_MOVES_Z
- #define UBL_MESH_EDIT_MOVES_Z
- #endif
- #ifndef UBL_SAVE_ACTIVE_ON_M500
- #define UBL_SAVE_ACTIVE_ON_M500
- #endif
- #if ENABLED(AVOID_OBSTACLES)
- #ifndef CLIP_W
- #define CLIP_W 23
- #endif
- #ifndef CLIP_H
- #define CLIP_H 14
- #endif
- #ifndef OBSTACLE1
- #define OBSTACLE1 { (X_BED_SIZE) / 4 - (CLIP_W) / 2, 0, (X_BED_SIZE) / 4 + (CLIP_W) / 2, CLIP_H }
- #endif
- #ifndef OBSTACLE2
- #define OBSTACLE2 { (X_BED_SIZE) * 3 / 4 - (CLIP_W) / 2, 0, (X_BED_SIZE) * 3 / 4 + (CLIP_W) / 2, CLIP_H }
- #endif
- #ifndef OBSTACLE3
- #define OBSTACLE3 { (X_BED_SIZE) / 4 - (CLIP_W) / 2, (Y_BED_SIZE) - (CLIP_H), (X_BED_SIZE) / 4 + (CLIP_W) / 2, Y_BED_SIZE }
- #endif
- #ifndef OBSTACLE4
- #define OBSTACLE4 { (X_BED_SIZE) * 3 / 4 - (CLIP_W) / 2, (Y_BED_SIZE) - (CLIP_H), (X_BED_SIZE) * 3 / 4 + (CLIP_W) / 2, Y_BED_SIZE }
- #endif
- #ifndef G29J_MESH_TILT_MARGIN
- #define G29J_MESH_TILT_MARGIN ((CLIP_H) + 1)
- #endif
- #endif
-#elif ENABLED(MESH_BED_LEVELING)
- #ifndef MESH_INSET
- #define MESH_INSET 10
- #endif
- #ifndef GRID_MAX_POINTS_X
- #define GRID_MAX_POINTS_X 5
- #endif
- #ifndef GRID_MAX_POINTS_Y
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- #endif
-#endif
-#if ENABLED(LCD_BED_LEVELING)
- #ifndef MESH_EDIT_Z_STEP
- #define MESH_EDIT_Z_STEP 0.025
- #endif
- #ifndef LCD_PROBE_Z_RANGE
- #define LCD_PROBE_Z_RANGE 4
- #endif
-#endif
-#if ENABLED(LCD_BED_TRAMMING)
- #ifndef BED_TRAMMING_HEIGHT
- #define BED_TRAMMING_HEIGHT 0.0
- #endif
- #ifndef BED_TRAMMING_Z_HOP
- #define BED_TRAMMING_Z_HOP 5.0
- #endif
- #ifndef BED_TRAMMING_INCLUDE_CENTER
- #define BED_TRAMMING_INCLUDE_CENTER
- #endif
- #ifndef BED_TRAMMING_USE_PROBE
- #define BED_TRAMMING_USE_PROBE
- #endif
- #if ENABLED(BED_TRAMMING_USE_PROBE)
- #ifndef BED_TRAMMING_INSET_LFRB
- #define BED_TRAMMING_INSET_LFRB { 35, 35, 35, 35 }
- #endif
- #ifndef BED_TRAMMING_PROBE_TOLERANCE
- #define BED_TRAMMING_PROBE_TOLERANCE 0.05f
- #endif
- #ifndef BED_TRAMMING_VERIFY_RAISED
- #define BED_TRAMMING_VERIFY_RAISED
- #endif
- #else
- #ifndef BED_TRAMMING_INSET_LFRB
- #define BED_TRAMMING_INSET_LFRB { 25.4, 25.4, 25.4, 25.4 }
- #endif
- #endif
- #ifndef BED_TRAMMING_LEVELING_ORDER
- #define BED_TRAMMING_LEVELING_ORDER { LF, RF, RB, LB }
- #endif
-#else
- #ifndef BED_SCREW_INSET
- #define BED_SCREW_INSET 35
- #endif
-#endif
-#ifndef Z_SAFE_HOMING
- #define Z_SAFE_HOMING
-#endif
-#if ENABLED(Z_SAFE_HOMING)
- #ifndef Z_SAFE_HOMING_X_POINT
- #define Z_SAFE_HOMING_X_POINT X_CENTER
- #endif
- #ifndef Z_SAFE_HOMING_Y_POINT
- #define Z_SAFE_HOMING_Y_POINT Y_CENTER
- #endif
-#endif
-#ifndef HOMING_FEEDRATE_MM_M
- #define HOMING_FEEDRATE_MM_M { (60*60), (60*60), (8*60) }
-#endif
-#ifndef VALIDATE_HOMING_ENDSTOPS
- #define VALIDATE_HOMING_ENDSTOPS
-#endif
-#if ENABLED(SKEW_CORRECTION)
- #ifndef XY_DIAG_AC
- #define XY_DIAG_AC 282.8427124746
- #endif
- #ifndef XY_DIAG_BD
- #define XY_DIAG_BD 282.8427124746
- #endif
- #ifndef XY_SIDE_AD
- #define XY_SIDE_AD 200
- #endif
- #if ENABLED(SKEW_CORRECTION_FOR_Z)
- #ifndef XZ_DIAG_AC
- #define XZ_DIAG_AC 282.8427124746
- #endif
- #ifndef XZ_DIAG_BD
- #define XZ_DIAG_BD 282.8427124746
- #endif
- #ifndef YZ_DIAG_AC
- #define YZ_DIAG_AC 282.8427124746
- #endif
- #ifndef YZ_DIAG_BD
- #define YZ_DIAG_BD 282.8427124746
- #endif
- #ifndef YZ_SIDE_AD
- #define YZ_SIDE_AD 200
- #endif
- #endif
-#endif
-#ifndef EEPROM_SETTINGS
- #define EEPROM_SETTINGS
-#endif
-#ifndef EEPROM_CHITCHAT
- #define EEPROM_CHITCHAT
-#endif
-#ifndef EEPROM_BOOT_SILENT
- #define EEPROM_BOOT_SILENT
-#endif
-#if ENABLED(EEPROM_SETTINGS)
- #ifndef EEPROM_AUTO_INIT
- #define EEPROM_AUTO_INIT
- #endif
- #ifndef EEPROM_INIT_NOW
- #define EEPROM_INIT_NOW
- #endif
-#endif
-#ifndef DEFAULT_KEEPALIVE_INTERVAL
- #define DEFAULT_KEEPALIVE_INTERVAL 5
-#endif
-#ifndef BUSY_WHILE_HEATING
- #define BUSY_WHILE_HEATING
-#endif
-#ifndef PREHEAT_1_LABEL
- #define PREHEAT_1_LABEL "PLA"
-#endif
-#ifndef PREHEAT_1_TEMP_HOTEND
- #define PREHEAT_1_TEMP_HOTEND 210
-#endif
-#ifndef PREHEAT_1_TEMP_BED
- #define PREHEAT_1_TEMP_BED 60
-#endif
-#ifndef PREHEAT_1_FAN_SPEED
- #define PREHEAT_1_FAN_SPEED 0
-#endif
-#ifndef PREHEAT_2_LABEL
- #define PREHEAT_2_LABEL "ABS"
-#endif
-#ifndef PREHEAT_2_TEMP_HOTEND
- #define PREHEAT_2_TEMP_HOTEND 240
-#endif
-#ifndef PREHEAT_2_TEMP_BED
- #define PREHEAT_2_TEMP_BED 75
-#endif
-#ifndef PREHEAT_2_FAN_SPEED
- #define PREHEAT_2_FAN_SPEED 0
-#endif
-#ifndef NOZZLE_PARK_FEATURE
- #define NOZZLE_PARK_FEATURE
-#endif
-#if ENABLED(NOZZLE_PARK_FEATURE)
- #ifndef NOZZLE_PARK_POINT
- #define NOZZLE_PARK_POINT { 0, 200, 50 }
- #endif
- #ifndef NOZZLE_PARK_MOVE
- #define NOZZLE_PARK_MOVE 0
- #endif
- #ifndef NOZZLE_PARK_Z_RAISE_MIN
- #define NOZZLE_PARK_Z_RAISE_MIN 10
- #endif
- #ifndef NOZZLE_PARK_XY_FEEDRATE
- #define NOZZLE_PARK_XY_FEEDRATE 125
- #endif
- #ifndef NOZZLE_PARK_Z_FEEDRATE
- #define NOZZLE_PARK_Z_FEEDRATE 25
- #endif
-#endif
-#if ENABLED(NOZZLE_CLEAN_FEATURE)
- #ifndef NOZZLE_CLEAN_PATTERN_LINE
- #define NOZZLE_CLEAN_PATTERN_LINE
- #endif
- #ifndef NOZZLE_CLEAN_PATTERN_ZIGZAG
- #define NOZZLE_CLEAN_PATTERN_ZIGZAG
- #endif
- #ifndef NOZZLE_CLEAN_PATTERN_CIRCLE
- #define NOZZLE_CLEAN_PATTERN_CIRCLE
- #endif
- #ifndef NOZZLE_CLEAN_DEFAULT_PATTERN
- #define NOZZLE_CLEAN_DEFAULT_PATTERN 0
- #endif
- #ifndef NOZZLE_CLEAN_STROKES
- #define NOZZLE_CLEAN_STROKES 4
- #endif
- #if ENABLED(NOZZLE_CLEAN_PATTERN_ZIGZAG)
- #ifndef NOZZLE_CLEAN_TRIANGLES
- #define NOZZLE_CLEAN_TRIANGLES 3
- #endif
- #endif
- #ifndef NOZZLE_CLEAN_START_POINT
- #define NOZZLE_CLEAN_START_POINT { { 30, 30, (Z_MIN_POS + 1) } }
- #endif
- #ifndef NOZZLE_CLEAN_END_POINT
- #define NOZZLE_CLEAN_END_POINT { { 100, 30, (Z_MIN_POS + 1) } }
- #endif
- #if ENABLED(NOZZLE_CLEAN_PATTERN_CIRCLE)
- #ifndef NOZZLE_CLEAN_CIRCLE_RADIUS
- #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
- #endif
- #ifndef NOZZLE_CLEAN_CIRCLE_FN
- #define NOZZLE_CLEAN_CIRCLE_FN 10
- #endif
- #ifndef NOZZLE_CLEAN_CIRCLE_MIDDLE
- #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
- #endif
- #endif
- #ifndef NOZZLE_CLEAN_GOBACK
- #define NOZZLE_CLEAN_GOBACK
- #endif
- #ifndef NOZZLE_CLEAN_MIN_TEMP
- #define NOZZLE_CLEAN_MIN_TEMP 170
- #endif
- #ifndef WIPE_SEQUENCE_COMMANDS
- #define WIPE_SEQUENCE_COMMANDS "G0X2Y200Z50\nG0Z0.3\nG0Z0.3\nG92E0\nG1Y140E10F1500\nG1X2.3F5000\nG92E0\nG1Y10E10F1200\nG92E0"
- #endif
-#endif
-#ifndef PRINTJOB_TIMER_AUTOSTART
- #define PRINTJOB_TIMER_AUTOSTART
-#endif
-#ifndef PRINTCOUNTER
- #define PRINTCOUNTER
-#endif
-#if ENABLED(PRINTCOUNTER)
- #ifndef PRINTCOUNTER_SAVE_INTERVAL
- #define PRINTCOUNTER_SAVE_INTERVAL 60
- #endif
-#endif
-#if ENABLED(PASSWORD_FEATURE)
- #ifndef PASSWORD_LENGTH
- #define PASSWORD_LENGTH 4
- #endif
- #ifndef PASSWORD_ON_STARTUP
- #define PASSWORD_ON_STARTUP
- #endif
- #ifndef PASSWORD_UNLOCK_GCODE
- #define PASSWORD_UNLOCK_GCODE
- #endif
- #ifndef PASSWORD_CHANGE_GCODE
- #define PASSWORD_CHANGE_GCODE
- #endif
-#endif
-#ifndef SDSUPPORT
- #define SDSUPPORT
-#endif
-#ifndef LCD_LANGUAGE
- #define LCD_LANGUAGE en
-#endif
-#ifndef DISPLAY_CHARSET_HD44780
- #define DISPLAY_CHARSET_HD44780 JAPANESE
-#endif
-#ifndef LCD_INFO_SCREEN_STYLE
- #define LCD_INFO_SCREEN_STYLE 0
-#endif
-#ifndef ENCODER_PULSES_PER_STEP
- #define ENCODER_PULSES_PER_STEP 4
-#endif
-#ifndef ENCODER_STEPS_PER_MENU_ITEM
- #define ENCODER_STEPS_PER_MENU_ITEM 1
-#endif
-#ifndef REVERSE_ENCODER_DIRECTION
- #define REVERSE_ENCODER_DIRECTION
-#endif
-#if ENABLED(ENCODER_NOISE_FILTER)
- #ifndef ENCODER_SAMPLES
- #define ENCODER_SAMPLES 10
- #endif
-#endif
-#ifndef INDIVIDUAL_AXIS_HOMING_SUBMENU
- #define INDIVIDUAL_AXIS_HOMING_SUBMENU
-#endif
-#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
- #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
-#endif
-#ifndef LCD_FEEDBACK_FREQUENCY_HZ
- #define LCD_FEEDBACK_FREQUENCY_HZ 5000
-#endif
-#if ENABLED(SAV_3DGLCD)
- #ifndef U8GLIB_SSD1306
- #define U8GLIB_SSD1306
- #endif
-#endif
-#if DGUS_UI_IS(MKS)
- #ifndef USE_MKS_GREEN_UI
- #define USE_MKS_GREEN_UI
- #endif
-#elif DGUS_UI_IS(IA_CREALITY)
-#endif
-#if ENABLED(TFT_GENERIC)
- #ifndef TFT_DRIVER
- #define TFT_DRIVER AUTO
- #endif
-#endif
-#if ENABLED(TFT_COLOR_UI)
- #ifndef TFT_FONT
- #define TFT_FONT NOTOSANS
- #endif
- #ifndef TFT_THEME
- #define TFT_THEME BLACK_MARLIN
- #endif
- #ifndef COMPACT_MARLIN_BOOT_LOGO
- #define COMPACT_MARLIN_BOOT_LOGO
- #endif
-#endif
-#ifndef DWIN_LCD_PROUI
- #define DWIN_LCD_PROUI
-#endif
-#if ENABLED(DWIN_LCD_PROUI)
- #ifndef PROUI_EX
- #define PROUI_EX 1
- #endif
- #ifndef HAS_GCODE_PREVIEW
- #define HAS_GCODE_PREVIEW 1
- #endif
- #ifndef DISABLE_TUNING_GRAPH
- #define DISABLE_TUNING_GRAPH 0
- #endif
- #ifndef HAS_ESDIAG
- #define HAS_ESDIAG 1
- #endif
- #ifndef USE_GRID_MESHVIEWER
- #define USE_GRID_MESHVIEWER 1
- #endif
- #ifndef HAS_CUSTOM_COLORS
- #define HAS_CUSTOM_COLORS 1
- #endif
- #ifndef ALT_COLOR_MENU
- #define ALT_COLOR_MENU 0
- #endif
- #if ENABLED(BLTOUCH)
- #ifndef HS_MENU_ITEM
- #define HS_MENU_ITEM
- #endif
- #endif
- #if DISABLED(DISABLE_TUNING_GRAPH)
- #ifndef PROUI_ITEM_PLOT
- #define PROUI_ITEM_PLOT
- #endif
- #endif
- #ifndef PROUI_ITEM_ADVK
- #define PROUI_ITEM_ADVK
- #endif
- #ifndef SHOW_REAL_POS
- #define SHOW_REAL_POS
- #endif
- #ifndef PROUI_ITEM_TRAM
- #define PROUI_ITEM_TRAM
- #endif
- #ifndef PROUI_MEDIASORT
- #define PROUI_MEDIASORT
- #endif
- #ifndef PROUI_ITEM_ENC
- #define PROUI_ITEM_ENC
- #endif
- #ifndef SHOW_SPEED_IND
- #define SHOW_SPEED_IND
- #endif
- #ifndef PROUI_ITEM_ABRT
- #define PROUI_ITEM_ABRT
- #endif
-#endif
-#if ENABLED(CR10_STOCKDISPLAY)
- #ifndef RET6_12864_LCD
- #define RET6_12864_LCD
- #endif
-#endif
-#if ENABLED(TOUCH_SCREEN)
- #ifndef BUTTON_DELAY_EDIT
- #define BUTTON_DELAY_EDIT 50
- #endif
- #ifndef BUTTON_DELAY_MENU
- #define BUTTON_DELAY_MENU 250
- #endif
- #ifndef TOUCH_SCREEN_CALIBRATION
- #define TOUCH_SCREEN_CALIBRATION
- #endif
- #if ALL(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS)
- #ifndef TOUCH_CALIBRATION_AUTO_SAVE
- #define TOUCH_CALIBRATION_AUTO_SAVE
- #endif
- #endif
-#endif
-#ifndef FAN_SOFT_PWM
- #define FAN_SOFT_PWM
-#endif
-#ifndef SOFT_PWM_SCALE
- #define SOFT_PWM_SCALE 0
-#endif
-#if ANY(RGB_LED, RGBW_LED, PCA9632)
- #if ENABLED(RGB_STARTUP_TEST)
- #ifndef RGB_STARTUP_TEST_INNER_MS
- #define RGB_STARTUP_TEST_INNER_MS 10
- #endif
- #endif
-#endif
-#if ENABLED(NEOPIXEL_LED)
- #ifndef NEOPIXEL_TYPE
- #define NEOPIXEL_TYPE NEO_GRBW
- #endif
- #ifndef NEOPIXEL_PIN
- #define NEOPIXEL_PIN PA13
- #endif
- #ifndef NEOPIXEL_PIXELS
- #define NEOPIXEL_PIXELS 30
- #endif
- #ifndef NEOPIXEL_IS_SEQUENTIAL
- #define NEOPIXEL_IS_SEQUENTIAL
- #endif
- #ifndef NEOPIXEL_BRIGHTNESS
- #define NEOPIXEL_BRIGHTNESS 127
- #endif
- #if ENABLED(NEOPIXEL2_SEPARATE)
- #ifndef NEOPIXEL2_PIXELS
- #define NEOPIXEL2_PIXELS 15
- #endif
- #ifndef NEOPIXEL2_BRIGHTNESS
- #define NEOPIXEL2_BRIGHTNESS 127
- #endif
- #ifndef NEOPIXEL2_STARTUP_TEST
- #define NEOPIXEL2_STARTUP_TEST
- #endif
- #ifndef NEOPIXEL_M150_DEFAULT
- #define NEOPIXEL_M150_DEFAULT -1
- #endif
- #else
- #endif
-#endif
-#if ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED)
- #ifndef PRINTER_EVENT_LEDS
- #define PRINTER_EVENT_LEDS
- #endif
-#endif
-#ifndef SERVO_DELAY
- #define SERVO_DELAY { 300 }
-#endif
diff --git a/Marlin/src/inc/BaseConfiguration_adv.h b/Marlin/src/inc/BaseConfiguration_adv.h
deleted file mode 100644
index f7b0ffaf04..0000000000
--- a/Marlin/src/inc/BaseConfiguration_adv.h
+++ /dev/null
@@ -1,2934 +0,0 @@
-/**
- * Marlin 3D Printer Firmware
- * Copyright (c) 2024 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-#pragma once
-
-/**
- * BaseConfiguration_adv.h - Generated using makeBaseConfigs.py
- */
-
-#ifndef CONFIGURATION_ADV_H_VERSION
- #define CONFIGURATION_ADV_H_VERSION 02010300
-#endif
-#ifndef THERMOCOUPLE_MAX_ERRORS
- #define THERMOCOUPLE_MAX_ERRORS 15
-#endif
-#if TEMP_SENSOR_0 == 1000
- #ifndef HOTEND0_PULLUP_RESISTOR_OHMS
- #define HOTEND0_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND0_RESISTANCE_25C_OHMS
- #define HOTEND0_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND0_BETA
- #define HOTEND0_BETA 3950
- #endif
- #ifndef HOTEND0_SH_C_COEFF
- #define HOTEND0_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_1 == 1000
- #ifndef HOTEND1_PULLUP_RESISTOR_OHMS
- #define HOTEND1_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND1_RESISTANCE_25C_OHMS
- #define HOTEND1_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND1_BETA
- #define HOTEND1_BETA 3950
- #endif
- #ifndef HOTEND1_SH_C_COEFF
- #define HOTEND1_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_2 == 1000
- #ifndef HOTEND2_PULLUP_RESISTOR_OHMS
- #define HOTEND2_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND2_RESISTANCE_25C_OHMS
- #define HOTEND2_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND2_BETA
- #define HOTEND2_BETA 3950
- #endif
- #ifndef HOTEND2_SH_C_COEFF
- #define HOTEND2_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_3 == 1000
- #ifndef HOTEND3_PULLUP_RESISTOR_OHMS
- #define HOTEND3_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND3_RESISTANCE_25C_OHMS
- #define HOTEND3_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND3_BETA
- #define HOTEND3_BETA 3950
- #endif
- #ifndef HOTEND3_SH_C_COEFF
- #define HOTEND3_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_4 == 1000
- #ifndef HOTEND4_PULLUP_RESISTOR_OHMS
- #define HOTEND4_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND4_RESISTANCE_25C_OHMS
- #define HOTEND4_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND4_BETA
- #define HOTEND4_BETA 3950
- #endif
- #ifndef HOTEND4_SH_C_COEFF
- #define HOTEND4_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_5 == 1000
- #ifndef HOTEND5_PULLUP_RESISTOR_OHMS
- #define HOTEND5_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND5_RESISTANCE_25C_OHMS
- #define HOTEND5_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND5_BETA
- #define HOTEND5_BETA 3950
- #endif
- #ifndef HOTEND5_SH_C_COEFF
- #define HOTEND5_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_6 == 1000
- #ifndef HOTEND6_PULLUP_RESISTOR_OHMS
- #define HOTEND6_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND6_RESISTANCE_25C_OHMS
- #define HOTEND6_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND6_BETA
- #define HOTEND6_BETA 3950
- #endif
- #ifndef HOTEND6_SH_C_COEFF
- #define HOTEND6_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_7 == 1000
- #ifndef HOTEND7_PULLUP_RESISTOR_OHMS
- #define HOTEND7_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef HOTEND7_RESISTANCE_25C_OHMS
- #define HOTEND7_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef HOTEND7_BETA
- #define HOTEND7_BETA 3950
- #endif
- #ifndef HOTEND7_SH_C_COEFF
- #define HOTEND7_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_BED == 1000
- #ifndef BED_PULLUP_RESISTOR_OHMS
- #define BED_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef BED_RESISTANCE_25C_OHMS
- #define BED_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef BED_BETA
- #define BED_BETA 3950
- #endif
- #ifndef BED_SH_C_COEFF
- #define BED_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_CHAMBER == 1000
- #ifndef CHAMBER_PULLUP_RESISTOR_OHMS
- #define CHAMBER_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef CHAMBER_RESISTANCE_25C_OHMS
- #define CHAMBER_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef CHAMBER_BETA
- #define CHAMBER_BETA 3950
- #endif
- #ifndef CHAMBER_SH_C_COEFF
- #define CHAMBER_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_COOLER == 1000
- #ifndef COOLER_PULLUP_RESISTOR_OHMS
- #define COOLER_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef COOLER_RESISTANCE_25C_OHMS
- #define COOLER_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef COOLER_BETA
- #define COOLER_BETA 3950
- #endif
- #ifndef COOLER_SH_C_COEFF
- #define COOLER_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_PROBE == 1000
- #ifndef PROBE_PULLUP_RESISTOR_OHMS
- #define PROBE_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef PROBE_RESISTANCE_25C_OHMS
- #define PROBE_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef PROBE_BETA
- #define PROBE_BETA 3950
- #endif
- #ifndef PROBE_SH_C_COEFF
- #define PROBE_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_BOARD == 1000
- #ifndef BOARD_PULLUP_RESISTOR_OHMS
- #define BOARD_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef BOARD_RESISTANCE_25C_OHMS
- #define BOARD_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef BOARD_BETA
- #define BOARD_BETA 3950
- #endif
- #ifndef BOARD_SH_C_COEFF
- #define BOARD_SH_C_COEFF 0
- #endif
-#endif
-#if TEMP_SENSOR_REDUNDANT == 1000
- #ifndef REDUNDANT_PULLUP_RESISTOR_OHMS
- #define REDUNDANT_PULLUP_RESISTOR_OHMS 4700
- #endif
- #ifndef REDUNDANT_RESISTANCE_25C_OHMS
- #define REDUNDANT_RESISTANCE_25C_OHMS 100000
- #endif
- #ifndef REDUNDANT_BETA
- #define REDUNDANT_BETA 3950
- #endif
- #ifndef REDUNDANT_SH_C_COEFF
- #define REDUNDANT_SH_C_COEFF 0
- #endif
-#endif
-#if ENABLED(HEPHESTOS2_HEATED_BED_KIT)
- #ifndef HEATER_BED_INVERTING
- #define HEATER_BED_INVERTING true
- #endif
-#endif
-#if DISABLED(PIDTEMPBED)
- #ifndef BED_CHECK_INTERVAL
- #define BED_CHECK_INTERVAL 5000
- #endif
- #if ENABLED(BED_LIMIT_SWITCHING)
- #ifndef BED_HYSTERESIS
- #define BED_HYSTERESIS 2
- #endif
- #endif
-#endif
-#if DISABLED(PIDTEMPCHAMBER)
- #ifndef CHAMBER_CHECK_INTERVAL
- #define CHAMBER_CHECK_INTERVAL 5000
- #endif
- #if ENABLED(CHAMBER_LIMIT_SWITCHING)
- #ifndef CHAMBER_HYSTERESIS
- #define CHAMBER_HYSTERESIS 2
- #endif
- #endif
-#endif
-#if TEMP_SENSOR_CHAMBER
- #if ENABLED(CHAMBER_FAN)
- #ifndef CHAMBER_FAN_MODE
- #define CHAMBER_FAN_MODE 2
- #endif
- #if CHAMBER_FAN_MODE == 0
- #ifndef CHAMBER_FAN_BASE
- #define CHAMBER_FAN_BASE 255
- #endif
- #elif CHAMBER_FAN_MODE == 1
- #ifndef CHAMBER_FAN_BASE
- #define CHAMBER_FAN_BASE 128
- #endif
- #ifndef CHAMBER_FAN_FACTOR
- #define CHAMBER_FAN_FACTOR 25
- #endif
- #elif CHAMBER_FAN_MODE == 2
- #ifndef CHAMBER_FAN_BASE
- #define CHAMBER_FAN_BASE 128
- #endif
- #ifndef CHAMBER_FAN_FACTOR
- #define CHAMBER_FAN_FACTOR 25
- #endif
- #elif CHAMBER_FAN_MODE == 3
- #ifndef CHAMBER_FAN_BASE
- #define CHAMBER_FAN_BASE 128
- #endif
- #ifndef CHAMBER_FAN_FACTOR
- #define CHAMBER_FAN_FACTOR 25
- #endif
- #endif
- #endif
- #if ENABLED(CHAMBER_VENT)
- #ifndef CHAMBER_VENT_SERVO_NR
- #define CHAMBER_VENT_SERVO_NR 1
- #endif
- #ifndef HIGH_EXCESS_HEAT_LIMIT
- #define HIGH_EXCESS_HEAT_LIMIT 5
- #endif
- #ifndef LOW_EXCESS_HEAT_LIMIT
- #define LOW_EXCESS_HEAT_LIMIT 3
- #endif
- #ifndef MIN_COOLING_SLOPE_TIME_CHAMBER_VENT
- #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20
- #endif
- #ifndef MIN_COOLING_SLOPE_DEG_CHAMBER_VENT
- #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5
- #endif
- #endif
-#endif
-#if TEMP_SENSOR_COOLER
- #ifndef COOLER_MINTEMP
- #define COOLER_MINTEMP 8
- #endif
- #ifndef COOLER_MAXTEMP
- #define COOLER_MAXTEMP 26
- #endif
- #ifndef COOLER_DEFAULT_TEMP
- #define COOLER_DEFAULT_TEMP 16
- #endif
- #ifndef TEMP_COOLER_HYSTERESIS
- #define TEMP_COOLER_HYSTERESIS 1
- #endif
- #ifndef COOLER_PIN
- #define COOLER_PIN 8
- #endif
- #ifndef COOLER_INVERTING
- #define COOLER_INVERTING false
- #endif
- #ifndef TEMP_COOLER_PIN
- #define TEMP_COOLER_PIN 15
- #endif
- #ifndef COOLER_FAN
- #define COOLER_FAN
- #endif
- #ifndef COOLER_FAN_INDEX
- #define COOLER_FAN_INDEX 0
- #endif
- #if ENABLED(COOLER_FAN)
- #ifndef COOLER_FAN_BASE
- #define COOLER_FAN_BASE 100
- #endif
- #ifndef COOLER_FAN_FACTOR
- #define COOLER_FAN_FACTOR 25
- #endif
- #endif
-#endif
-#if TEMP_SENSOR_BOARD
- #ifndef THERMAL_PROTECTION_BOARD
- #define THERMAL_PROTECTION_BOARD
- #endif
- #ifndef BOARD_MINTEMP
- #define BOARD_MINTEMP 8
- #endif
- #ifndef BOARD_MAXTEMP
- #define BOARD_MAXTEMP 70
- #endif
-#endif
-#if TEMP_SENSOR_SOC
- #ifndef THERMAL_PROTECTION_SOC
- #define THERMAL_PROTECTION_SOC
- #endif
- #ifndef SOC_MAXTEMP
- #define SOC_MAXTEMP 85
- #endif
-#endif
-#if ALL(HAS_HOTEND, THERMAL_PROTECTION_HOTENDS)
- #ifndef THERMAL_PROTECTION_PERIOD
- #define THERMAL_PROTECTION_PERIOD 40
- #endif
- #ifndef THERMAL_PROTECTION_HYSTERESIS
- #define THERMAL_PROTECTION_HYSTERESIS 4
- #endif
- #ifndef WATCH_TEMP_PERIOD
- #define WATCH_TEMP_PERIOD 40
- #endif
- #ifndef WATCH_TEMP_INCREASE
- #define WATCH_TEMP_INCREASE 2
- #endif
-#endif
-#if TEMP_SENSOR_BED && ENABLED(THERMAL_PROTECTION_BED)
- #ifndef THERMAL_PROTECTION_BED_PERIOD
- #define THERMAL_PROTECTION_BED_PERIOD 60
- #endif
- #ifndef THERMAL_PROTECTION_BED_HYSTERESIS
- #define THERMAL_PROTECTION_BED_HYSTERESIS 2
- #endif
- #ifndef WATCH_BED_TEMP_PERIOD
- #define WATCH_BED_TEMP_PERIOD 60
- #endif
- #ifndef WATCH_BED_TEMP_INCREASE
- #define WATCH_BED_TEMP_INCREASE 2
- #endif
-#endif
-#if TEMP_SENSOR_CHAMBER && ENABLED(THERMAL_PROTECTION_CHAMBER)
- #ifndef THERMAL_PROTECTION_CHAMBER_PERIOD
- #define THERMAL_PROTECTION_CHAMBER_PERIOD 20
- #endif
- #ifndef THERMAL_PROTECTION_CHAMBER_HYSTERESIS
- #define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2
- #endif
- #ifndef WATCH_CHAMBER_TEMP_PERIOD
- #define WATCH_CHAMBER_TEMP_PERIOD 60
- #endif
- #ifndef WATCH_CHAMBER_TEMP_INCREASE
- #define WATCH_CHAMBER_TEMP_INCREASE 2
- #endif
-#endif
-#if TEMP_SENSOR_COOLER && ENABLED(THERMAL_PROTECTION_COOLER)
- #ifndef THERMAL_PROTECTION_COOLER_PERIOD
- #define THERMAL_PROTECTION_COOLER_PERIOD 10
- #endif
- #ifndef THERMAL_PROTECTION_COOLER_HYSTERESIS
- #define THERMAL_PROTECTION_COOLER_HYSTERESIS 3
- #endif
- #ifndef WATCH_COOLER_TEMP_PERIOD
- #define WATCH_COOLER_TEMP_PERIOD 60
- #endif
- #ifndef WATCH_COOLER_TEMP_INCREASE
- #define WATCH_COOLER_TEMP_INCREASE 3
- #endif
-#endif
-#if ENABLED(PIDTEMP)
- #if ENABLED(PID_EXTRUSION_SCALING)
- #ifndef DEFAULT_Kc
- #define DEFAULT_Kc (100)
- #endif
- #ifndef LPQ_MAX_LEN
- #define LPQ_MAX_LEN 50
- #endif
- #endif
- #if ENABLED(PID_FAN_SCALING)
- #if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION)
- #ifndef PID_FAN_SCALING_AT_FULL_SPEED
- #define PID_FAN_SCALING_AT_FULL_SPEED 13.0
- #endif
- #ifndef PID_FAN_SCALING_AT_MIN_SPEED
- #define PID_FAN_SCALING_AT_MIN_SPEED 6.0
- #endif
- #ifndef PID_FAN_SCALING_MIN_SPEED
- #define PID_FAN_SCALING_MIN_SPEED 10.0
- #endif
- #ifndef DEFAULT_Kf
- #define DEFAULT_Kf (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED)
- #endif
- #ifndef PID_FAN_SCALING_LIN_FACTOR
- #define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0
- #endif
- #else
- #ifndef PID_FAN_SCALING_LIN_FACTOR
- #define PID_FAN_SCALING_LIN_FACTOR (0)
- #endif
- #ifndef DEFAULT_Kf
- #define DEFAULT_Kf 10
- #endif
- #ifndef PID_FAN_SCALING_MIN_SPEED
- #define PID_FAN_SCALING_MIN_SPEED 10
- #endif
- #endif
- #endif
-#endif
-#ifndef AUTOTEMP
- #define AUTOTEMP
-#endif
-#if ENABLED(AUTOTEMP)
- #ifndef AUTOTEMP_OLDWEIGHT
- #define AUTOTEMP_OLDWEIGHT 0.98
- #endif
- #ifndef AUTOTEMP_MIN
- #define AUTOTEMP_MIN 210
- #endif
- #ifndef AUTOTEMP_MAX
- #define AUTOTEMP_MAX 250
- #endif
- #ifndef AUTOTEMP_FACTOR
- #define AUTOTEMP_FACTOR 0.1f
- #endif
- #if ENABLED(AUTOTEMP_PROPORTIONAL)
- #ifndef AUTOTEMP_MIN_P
- #define AUTOTEMP_MIN_P 0
- #endif
- #ifndef AUTOTEMP_MAX_P
- #define AUTOTEMP_MAX_P 5
- #endif
- #ifndef AUTOTEMP_FACTOR_P
- #define AUTOTEMP_FACTOR_P 1
- #endif
- #endif
-#endif
-#if ENABLED(EXTRUDER_RUNOUT_PREVENT)
- #ifndef EXTRUDER_RUNOUT_MINTEMP
- #define EXTRUDER_RUNOUT_MINTEMP 190
- #endif
- #ifndef EXTRUDER_RUNOUT_SECONDS
- #define EXTRUDER_RUNOUT_SECONDS 30
- #endif
- #ifndef EXTRUDER_RUNOUT_SPEED
- #define EXTRUDER_RUNOUT_SPEED 1500
- #endif
- #ifndef EXTRUDER_RUNOUT_EXTRUDE
- #define EXTRUDER_RUNOUT_EXTRUDE 5
- #endif
-#endif
-#ifndef HOTEND_IDLE_TIMEOUT
- #define HOTEND_IDLE_TIMEOUT
-#endif
-#if ENABLED(HOTEND_IDLE_TIMEOUT)
- #ifndef HOTEND_IDLE_TIMEOUT_SEC
- #define HOTEND_IDLE_TIMEOUT_SEC (6*60)
- #endif
- #ifndef HOTEND_IDLE_MIN_TRIGGER
- #define HOTEND_IDLE_MIN_TRIGGER 180
- #endif
- #ifndef HOTEND_IDLE_NOZZLE_TARGET
- #define HOTEND_IDLE_NOZZLE_TARGET 0
- #endif
- #ifndef HOTEND_IDLE_BED_TARGET
- #define HOTEND_IDLE_BED_TARGET 0
- #endif
-#endif
-#ifndef TEMP_SENSOR_AD595_OFFSET
- #define TEMP_SENSOR_AD595_OFFSET 0.0
-#endif
-#ifndef TEMP_SENSOR_AD595_GAIN
- #define TEMP_SENSOR_AD595_GAIN 1.0
-#endif
-#ifndef TEMP_SENSOR_AD8495_OFFSET
- #define TEMP_SENSOR_AD8495_OFFSET 0.0
-#endif
-#ifndef TEMP_SENSOR_AD8495_GAIN
- #define TEMP_SENSOR_AD8495_GAIN 1.0
-#endif
-#if ENABLED(USE_CONTROLLER_FAN)
- #ifndef CONTROLLERFAN_SPEED_MIN
- #define CONTROLLERFAN_SPEED_MIN 0
- #endif
- #ifndef CONTROLLERFAN_SPEED_ACTIVE
- #define CONTROLLERFAN_SPEED_ACTIVE 255
- #endif
- #ifndef CONTROLLERFAN_SPEED_IDLE
- #define CONTROLLERFAN_SPEED_IDLE 0
- #endif
- #ifndef CONTROLLERFAN_IDLE_TIME
- #define CONTROLLERFAN_IDLE_TIME 60
- #endif
- #if ENABLED(CONTROLLER_FAN_EDITABLE)
- #ifndef CONTROLLER_FAN_MENU
- #define CONTROLLER_FAN_MENU
- #endif
- #endif
-#endif
-#ifndef FAN_MIN_PWM
- #define FAN_MIN_PWM 50
-#endif
-#if ENABLED(FAST_PWM_FAN)
- #ifndef FAST_PWM_FAN_FREQUENCY
- #ifdef __AVR__
- #ifndef FAST_PWM_FAN_FREQUENCY
- #define FAST_PWM_FAN_FREQUENCY ((F_CPU) / (2 * 255 * 1))
- #endif
- #else
- #ifndef FAST_PWM_FAN_FREQUENCY
- #define FAST_PWM_FAN_FREQUENCY 1000U
- #endif
- #endif
- #endif
-#endif
-#ifndef E0_AUTO_FAN_PIN
- #define E0_AUTO_FAN_PIN -1
-#endif
-#ifndef E1_AUTO_FAN_PIN
- #define E1_AUTO_FAN_PIN -1
-#endif
-#ifndef E2_AUTO_FAN_PIN
- #define E2_AUTO_FAN_PIN -1
-#endif
-#ifndef E3_AUTO_FAN_PIN
- #define E3_AUTO_FAN_PIN -1
-#endif
-#ifndef E4_AUTO_FAN_PIN
- #define E4_AUTO_FAN_PIN -1
-#endif
-#ifndef E5_AUTO_FAN_PIN
- #define E5_AUTO_FAN_PIN -1
-#endif
-#ifndef E6_AUTO_FAN_PIN
- #define E6_AUTO_FAN_PIN -1
-#endif
-#ifndef E7_AUTO_FAN_PIN
- #define E7_AUTO_FAN_PIN -1
-#endif
-#ifndef CHAMBER_AUTO_FAN_PIN
- #define CHAMBER_AUTO_FAN_PIN -1
-#endif
-#ifndef COOLER_AUTO_FAN_PIN
- #define COOLER_AUTO_FAN_PIN -1
-#endif
-#ifndef EXTRUDER_AUTO_FAN_TEMPERATURE
- #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
-#endif
-#ifndef EXTRUDER_AUTO_FAN_SPEED
- #define EXTRUDER_AUTO_FAN_SPEED 255
-#endif
-#ifndef CHAMBER_AUTO_FAN_TEMPERATURE
- #define CHAMBER_AUTO_FAN_TEMPERATURE 30
-#endif
-#ifndef CHAMBER_AUTO_FAN_SPEED
- #define CHAMBER_AUTO_FAN_SPEED 255
-#endif
-#ifndef COOLER_AUTO_FAN_TEMPERATURE
- #define COOLER_AUTO_FAN_TEMPERATURE 18
-#endif
-#ifndef COOLER_AUTO_FAN_SPEED
- #define COOLER_AUTO_FAN_SPEED 255
-#endif
-#ifndef FANMUX0_PIN
- #define FANMUX0_PIN -1
-#endif
-#ifndef FANMUX1_PIN
- #define FANMUX1_PIN -1
-#endif
-#ifndef FANMUX2_PIN
- #define FANMUX2_PIN -1
-#endif
-#if ENABLED(CASE_LIGHT_ENABLE)
- #ifndef INVERT_CASE_LIGHT
- #define INVERT_CASE_LIGHT false
- #endif
- #ifndef CASE_LIGHT_DEFAULT_ON
- #define CASE_LIGHT_DEFAULT_ON true
- #endif
- #ifndef CASE_LIGHT_DEFAULT_BRIGHTNESS
- #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105
- #endif
- #if ANY(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED)
- #ifndef CASE_LIGHT_DEFAULT_COLOR
- #define CASE_LIGHT_DEFAULT_COLOR { 255, 255, 255, 255 }
- #endif
- #endif
-#endif
-#if ENABLED(DUAL_X_CARRIAGE)
- #ifndef X1_MIN_POS
- #define X1_MIN_POS X_MIN_POS
- #endif
- #ifndef X1_MAX_POS
- #define X1_MAX_POS X_BED_SIZE
- #endif
- #ifndef X2_MIN_POS
- #define X2_MIN_POS 80
- #endif
- #ifndef X2_MAX_POS
- #define X2_MAX_POS 353
- #endif
- #ifndef X2_HOME_POS
- #define X2_HOME_POS X2_MAX_POS
- #endif
- #ifndef DEFAULT_DUAL_X_CARRIAGE_MODE
- #define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_AUTO_PARK_MODE
- #endif
- #ifndef DEFAULT_DUPLICATION_X_OFFSET
- #define DEFAULT_DUPLICATION_X_OFFSET 100
- #endif
-#endif
-#if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE)
- #if ENABLED(X_DUAL_ENDSTOPS)
- #ifndef X2_ENDSTOP_ADJUSTMENT
- #define X2_ENDSTOP_ADJUSTMENT 0
- #endif
- #endif
-#endif
-#if HAS_Y2_STEPPER
- #if ENABLED(Y_DUAL_ENDSTOPS)
- #ifndef Y2_ENDSTOP_ADJUSTMENT
- #define Y2_ENDSTOP_ADJUSTMENT 0
- #endif
- #endif
-#endif
-#ifdef Z2_DRIVER_TYPE
- #if ENABLED(Z_MULTI_ENDSTOPS)
- #ifndef Z2_ENDSTOP_ADJUSTMENT
- #define Z2_ENDSTOP_ADJUSTMENT 0
- #endif
- #endif
- #ifdef Z3_DRIVER_TYPE
- #if ENABLED(Z_MULTI_ENDSTOPS)
- #ifndef Z3_ENDSTOP_ADJUSTMENT
- #define Z3_ENDSTOP_ADJUSTMENT 0
- #endif
- #endif
- #endif
- #ifdef Z4_DRIVER_TYPE
- #if ENABLED(Z_MULTI_ENDSTOPS)
- #ifndef Z4_ENDSTOP_ADJUSTMENT
- #define Z4_ENDSTOP_ADJUSTMENT 0
- #endif
- #endif
- #endif
-#endif
-#ifndef HOMING_BUMP_MM
- #define HOMING_BUMP_MM { 5, 5, 2 }
-#endif
-#ifndef HOMING_BUMP_DIVISOR
- #define HOMING_BUMP_DIVISOR { 2, 2, 4 }
-#endif
-#ifndef QUICK_HOME
- #define QUICK_HOME
-#endif
-#if ENABLED(BLTOUCH)
- #ifndef BLTOUCH_DELAY
- #define BLTOUCH_DELAY 200
- #endif
- #ifndef BLTOUCH_HS_MODE
- #define BLTOUCH_HS_MODE true
- #endif
- #ifdef BLTOUCH_HS_MODE
- #ifndef BLTOUCH_HS_EXTRA_CLEARANCE
- #define BLTOUCH_HS_EXTRA_CLEARANCE 7
- #endif
- #endif
-#endif
-#if ENABLED(Z_STEPPER_AUTO_ALIGN)
- #ifndef Z_STEPPER_ALIGN_STEPPER_XY
- #ifndef Z_STEPPER_ALIGN_AMP
- #define Z_STEPPER_ALIGN_AMP 1.0
- #endif
- #endif
- #ifndef G34_MAX_GRADE
- #define G34_MAX_GRADE 5
- #endif
- #ifndef Z_STEPPER_ALIGN_ITERATIONS
- #define Z_STEPPER_ALIGN_ITERATIONS 5
- #endif
- #ifndef Z_STEPPER_ALIGN_ACC
- #define Z_STEPPER_ALIGN_ACC 0.02
- #endif
- #ifndef RESTORE_LEVELING_AFTER_G34
- #define RESTORE_LEVELING_AFTER_G34
- #endif
- #ifndef HOME_AFTER_G34
- #define HOME_AFTER_G34
- #endif
-#endif
-#if ENABLED(ASSISTED_TRAMMING)
- #ifndef TRAMMING_POINT_XY
- #define TRAMMING_POINT_XY { { 29, 29 }, { 199, 29 }, { 199, 199 }, { 29, 199 } }
- #endif
- #ifndef TRAMMING_POINT_NAME_1
- #define TRAMMING_POINT_NAME_1 "Front-Left"
- #endif
- #ifndef TRAMMING_POINT_NAME_2
- #define TRAMMING_POINT_NAME_2 "Front-Right"
- #endif
- #ifndef TRAMMING_POINT_NAME_3
- #define TRAMMING_POINT_NAME_3 "Back-Right"
- #endif
- #ifndef TRAMMING_POINT_NAME_4
- #define TRAMMING_POINT_NAME_4 "Back-Left"
- #endif
- #ifndef RESTORE_LEVELING_AFTER_G35
- #define RESTORE_LEVELING_AFTER_G35
- #endif
- #ifndef TRAMMING_SCREW_THREAD
- #define TRAMMING_SCREW_THREAD 40
- #endif
-#endif
-#if ENABLED(FT_MOTION)
- #ifndef FTM_DEFAULT_DYNFREQ_MODE
- #define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED
- #endif
- #ifndef FTM_DEFAULT_SHAPER_X
- #define FTM_DEFAULT_SHAPER_X ftMotionShaper_NONE
- #endif
- #ifndef FTM_DEFAULT_SHAPER_Y
- #define FTM_DEFAULT_SHAPER_Y ftMotionShaper_NONE
- #endif
- #ifndef FTM_SHAPING_DEFAULT_FREQ_X
- #define FTM_SHAPING_DEFAULT_FREQ_X 37.0f
- #endif
- #ifndef FTM_SHAPING_DEFAULT_FREQ_Y
- #define FTM_SHAPING_DEFAULT_FREQ_Y 37.0f
- #endif
- #ifndef FTM_LINEAR_ADV_DEFAULT_ENA
- #define FTM_LINEAR_ADV_DEFAULT_ENA false
- #endif
- #ifndef FTM_LINEAR_ADV_DEFAULT_K
- #define FTM_LINEAR_ADV_DEFAULT_K 0
- #endif
- #ifndef FTM_SHAPING_ZETA_X
- #define FTM_SHAPING_ZETA_X 0.1f
- #endif
- #ifndef FTM_SHAPING_ZETA_Y
- #define FTM_SHAPING_ZETA_Y 0.1f
- #endif
- #ifndef FTM_SHAPING_V_TOL_X
- #define FTM_SHAPING_V_TOL_X 0.05f
- #endif
- #ifndef FTM_SHAPING_V_TOL_Y
- #define FTM_SHAPING_V_TOL_Y 0.05f
- #endif
- #ifndef FTM_UNIFIED_BWS
- #define FTM_UNIFIED_BWS
- #endif
- #if ENABLED(FTM_UNIFIED_BWS)
- #ifndef FTM_BW_SIZE
- #define FTM_BW_SIZE 100
- #endif
- #else
- #ifndef FTM_WINDOW_SIZE
- #define FTM_WINDOW_SIZE 200
- #endif
- #ifndef FTM_BATCH_SIZE
- #define FTM_BATCH_SIZE 100
- #endif
- #endif
- #ifndef FTM_FS
- #define FTM_FS 1000
- #endif
- #ifndef FTM_TS
- #define FTM_TS 0.001f
- #endif
- #if DISABLED(COREXY)
- #ifndef FTM_STEPPER_FS
- #define FTM_STEPPER_FS 20000
- #endif
- #ifndef FTM_STEPPERCMD_BUFF_SIZE
- #define FTM_STEPPERCMD_BUFF_SIZE 3000
- #endif
- #else
- #ifndef FTM_STEPPER_FS
- #define FTM_STEPPER_FS 30000
- #endif
- #ifndef FTM_STEPPERCMD_BUFF_SIZE
- #define FTM_STEPPERCMD_BUFF_SIZE 6000
- #endif
- #endif
- #ifndef FTM_STEPS_PER_UNIT_TIME
- #define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS)
- #endif
- #ifndef FTM_CTS_COMPARE_VAL
- #define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2)
- #endif
- #ifndef FTM_MIN_TICKS
- #define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS))
- #endif
- #ifndef FTM_MIN_SHAPE_FREQ
- #define FTM_MIN_SHAPE_FREQ 10
- #endif
- #ifndef FTM_RATIO
- #define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ)
- #endif
- #ifndef FTM_ZMAX
- #define FTM_ZMAX (FTM_RATIO * 2)
- #endif
-#endif
-#if ANY(INPUT_SHAPING_X, INPUT_SHAPING_Y, INPUT_SHAPING_Z)
- #if ENABLED(INPUT_SHAPING_X)
- #ifndef SHAPING_FREQ_X
- #define SHAPING_FREQ_X 40.0
- #endif
- #ifndef SHAPING_ZETA_X
- #define SHAPING_ZETA_X 0.15
- #endif
- #endif
- #if ENABLED(INPUT_SHAPING_Y)
- #ifndef SHAPING_FREQ_Y
- #define SHAPING_FREQ_Y 40.0
- #endif
- #ifndef SHAPING_ZETA_Y
- #define SHAPING_ZETA_Y 0.15
- #endif
- #endif
- #if ENABLED(INPUT_SHAPING_Z)
- #ifndef SHAPING_FREQ_Z
- #define SHAPING_FREQ_Z 40.0
- #endif
- #ifndef SHAPING_ZETA_Z
- #define SHAPING_ZETA_Z 0.15
- #endif
- #endif
- #ifndef SHAPING_MENU
- #define SHAPING_MENU
- #endif
-#endif
-#ifndef AXIS_RELATIVE_MODES
- #define AXIS_RELATIVE_MODES { false, false, false, false }
-#endif
-#ifndef STEP_STATE_X
- #define STEP_STATE_X HIGH
-#endif
-#ifndef STEP_STATE_Y
- #define STEP_STATE_Y HIGH
-#endif
-#ifndef STEP_STATE_Z
- #define STEP_STATE_Z HIGH
-#endif
-#ifndef STEP_STATE_I
- #define STEP_STATE_I HIGH
-#endif
-#ifndef STEP_STATE_J
- #define STEP_STATE_J HIGH
-#endif
-#ifndef STEP_STATE_K
- #define STEP_STATE_K HIGH
-#endif
-#ifndef STEP_STATE_U
- #define STEP_STATE_U HIGH
-#endif
-#ifndef STEP_STATE_V
- #define STEP_STATE_V HIGH
-#endif
-#ifndef STEP_STATE_W
- #define STEP_STATE_W HIGH
-#endif
-#ifndef STEP_STATE_E
- #define STEP_STATE_E HIGH
-#endif
-#ifndef DEFAULT_STEPPER_TIMEOUT_SEC
- #define DEFAULT_STEPPER_TIMEOUT_SEC 360
-#endif
-#ifndef DISABLE_IDLE_X
- #define DISABLE_IDLE_X
-#endif
-#ifndef DISABLE_IDLE_Y
- #define DISABLE_IDLE_Y
-#endif
-#ifndef DISABLE_IDLE_Z
- #define DISABLE_IDLE_Z
-#endif
-#ifndef DISABLE_IDLE_E
- #define DISABLE_IDLE_E
-#endif
-#ifndef DEFAULT_MINIMUMFEEDRATE
- #define DEFAULT_MINIMUMFEEDRATE 0.0
-#endif
-#ifndef DEFAULT_MINTRAVELFEEDRATE
- #define DEFAULT_MINTRAVELFEEDRATE 0.0
-#endif
-#if HAS_ROTATIONAL_AXES
- #ifndef DEFAULT_ANGULAR_MINIMUMFEEDRATE
- #define DEFAULT_ANGULAR_MINIMUMFEEDRATE 0.0
- #endif
- #ifndef DEFAULT_ANGULAR_MINTRAVELFEEDRATE
- #define DEFAULT_ANGULAR_MINTRAVELFEEDRATE 0.0
- #endif
-#endif
-#ifndef DEFAULT_MINSEGMENTTIME
- #define DEFAULT_MINSEGMENTTIME 50000
-#endif
-#ifndef SLOWDOWN
- #define SLOWDOWN
-#endif
-#if ENABLED(SLOWDOWN)
- #ifndef SLOWDOWN_DIVISOR
- #define SLOWDOWN_DIVISOR 4
- #endif
-#endif
-#ifdef XY_FREQUENCY_LIMIT
- #ifndef XY_FREQUENCY_MIN_PERCENT
- #define XY_FREQUENCY_MIN_PERCENT 5
- #endif
-#endif
-#if ENABLED(BACKLASH_COMPENSATION)
- #ifndef BACKLASH_DISTANCE_MM
- #define BACKLASH_DISTANCE_MM { 0, 0, 0 }
- #endif
- #ifndef BACKLASH_CORRECTION
- #define BACKLASH_CORRECTION 0.0
- #endif
- #if ENABLED(BACKLASH_GCODE)
- #ifndef MEASURE_BACKLASH_WHEN_PROBING
- #define MEASURE_BACKLASH_WHEN_PROBING
- #endif
- #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
- #ifndef BACKLASH_MEASUREMENT_LIMIT
- #define BACKLASH_MEASUREMENT_LIMIT 0.5
- #endif
- #ifndef BACKLASH_MEASUREMENT_RESOLUTION
- #define BACKLASH_MEASUREMENT_RESOLUTION 0.005
- #endif
- #ifndef BACKLASH_MEASUREMENT_FEEDRATE
- #define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_FEEDRATE_SLOW
- #endif
- #endif
- #endif
-#endif
-#if ENABLED(CALIBRATION_GCODE)
- #ifndef CALIBRATION_FEEDRATE_SLOW
- #define CALIBRATION_FEEDRATE_SLOW 60
- #endif
- #ifndef CALIBRATION_FEEDRATE_FAST
- #define CALIBRATION_FEEDRATE_FAST 1200
- #endif
- #ifndef CALIBRATION_FEEDRATE_TRAVEL
- #define CALIBRATION_FEEDRATE_TRAVEL 3000
- #endif
- #ifndef CALIBRATION_NOZZLE_TIP_HEIGHT
- #define CALIBRATION_NOZZLE_TIP_HEIGHT 1.0
- #endif
- #ifndef CALIBRATION_NOZZLE_OUTER_DIAMETER
- #define CALIBRATION_NOZZLE_OUTER_DIAMETER 2.0
- #endif
- #ifndef CALIBRATION_OBJECT_CENTER
- #define CALIBRATION_OBJECT_CENTER { 264.0, -22.0, -2.0 }
- #endif
- #ifndef CALIBRATION_OBJECT_DIMENSIONS
- #define CALIBRATION_OBJECT_DIMENSIONS { 10.0, 10.0, 10.0 }
- #endif
- #ifndef CALIBRATION_MEASURE_RIGHT
- #define CALIBRATION_MEASURE_RIGHT
- #endif
- #ifndef CALIBRATION_MEASURE_FRONT
- #define CALIBRATION_MEASURE_FRONT
- #endif
- #ifndef CALIBRATION_MEASURE_LEFT
- #define CALIBRATION_MEASURE_LEFT
- #endif
- #ifndef CALIBRATION_MEASURE_BACK
- #define CALIBRATION_MEASURE_BACK
- #endif
- #ifndef CALIBRATION_PIN
- #ifndef CALIBRATION_PIN_INVERTING
- #define CALIBRATION_PIN_INVERTING false
- #endif
- #ifndef CALIBRATION_PIN_PULLUP
- #define CALIBRATION_PIN_PULLUP
- #endif
- #endif
-#endif
-#ifndef MULTISTEPPING_LIMIT
- #define MULTISTEPPING_LIMIT 16
-#endif
-#ifndef OLD_ADAPTIVE_MULTISTEPPING
- #define OLD_ADAPTIVE_MULTISTEPPING 1
-#endif
-#ifndef ADAPTIVE_STEP_SMOOTHING
- #define ADAPTIVE_STEP_SMOOTHING
-#endif
-#ifndef MICROSTEP_MODES
- #define MICROSTEP_MODES { 16, 16, 16, 16, 16, 16 }
-#endif
-#if ANY(DIGIPOT_MCP4018, DIGIPOT_MCP4451)
- #ifndef DIGIPOT_I2C_NUM_CHANNELS
- #define DIGIPOT_I2C_NUM_CHANNELS 8
- #endif
- #ifndef DIGIPOT_I2C_MOTOR_CURRENTS
- #define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }
- #endif
-#endif
-#if HAS_MANUAL_MOVE_MENU
- #ifndef MANUAL_FEEDRATE
- #define MANUAL_FEEDRATE { 60*60, 60*60, 10*60, 2*60 }
- #endif
- #ifndef FINE_MANUAL_MOVE
- #define FINE_MANUAL_MOVE 0.025
- #endif
- #if IS_ULTIPANEL
- #ifndef MANUAL_E_MOVES_RELATIVE
- #define MANUAL_E_MOVES_RELATIVE
- #endif
- #ifndef ULTIPANEL_FEEDMULTIPLY
- #define ULTIPANEL_FEEDMULTIPLY
- #endif
- #endif
-#endif
-#ifndef ENCODER_RATE_MULTIPLIER
- #define ENCODER_RATE_MULTIPLIER
-#endif
-#if ENABLED(ENCODER_RATE_MULTIPLIER)
- #ifndef ENCODER_5X_STEPS_PER_SEC
- #define ENCODER_5X_STEPS_PER_SEC 40
- #endif
- #ifndef ENCODER_10X_STEPS_PER_SEC
- #define ENCODER_10X_STEPS_PER_SEC 70
- #endif
- #ifndef ENCODER_100X_STEPS_PER_SEC
- #define ENCODER_100X_STEPS_PER_SEC 110
- #endif
-#endif
-#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
- #ifndef FEEDRATE_CHANGE_BEEP_DURATION
- #define FEEDRATE_CHANGE_BEEP_DURATION 10
- #endif
- #ifndef FEEDRATE_CHANGE_BEEP_FREQUENCY
- #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
- #endif
-#endif
-#if HAS_BED_PROBE && ANY(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI)
- #ifndef PROBE_OFFSET_WIZARD
- #define PROBE_OFFSET_WIZARD
- #endif
- #if ENABLED(PROBE_OFFSET_WIZARD)
- #ifndef PROBE_OFFSET_WIZARD_START_Z
- #define PROBE_OFFSET_WIZARD_START_Z -1.0
- #endif
- #ifndef PROBE_OFFSET_WIZARD_XY_POS
- #define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
- #endif
- #endif
-#endif
-#if HAS_MARLINUI_MENU
- #if HAS_BED_PROBE
- #if ENABLED(X_AXIS_TWIST_COMPENSATION)
- #ifndef XATC_START_Z
- #define XATC_START_Z 0.0
- #endif
- #ifndef XATC_MAX_POINTS
- #define XATC_MAX_POINTS 3
- #endif
- #ifndef XATC_Y_POSITION
- #define XATC_Y_POSITION Y_CENTER
- #endif
- #ifndef XATC_Z_OFFSETS
- #define XATC_Z_OFFSETS { 0, 0, 0 }
- #endif
- #endif
- #ifndef PROBE_DEPLOY_STOW_MENU
- #define PROBE_DEPLOY_STOW_MENU
- #endif
- #endif
- #ifndef LCD_INFO_MENU
- #define LCD_INFO_MENU
- #endif
- #ifndef MANUAL_MOVE_DISTANCE_MM
- #define MANUAL_MOVE_DISTANCE_MM 10, 1.0, 0.1
- #endif
- #ifndef MANUAL_MOVE_DISTANCE_IN
- #define MANUAL_MOVE_DISTANCE_IN 0.100, 0.010, 0.001
- #endif
- #ifndef MANUAL_MOVE_DISTANCE_DEG
- #define MANUAL_MOVE_DISTANCE_DEG 90, 45, 22.5, 5, 1
- #endif
-#endif
-#if HAS_DISPLAY
- #ifndef SHOW_BOOTSCREEN
- #define SHOW_BOOTSCREEN
- #endif
- #if ENABLED(SHOW_BOOTSCREEN)
- #ifndef BOOTSCREEN_TIMEOUT
- #define BOOTSCREEN_TIMEOUT 1100
- #endif
- #if ANY(HAS_MARLINUI_U8GLIB, TOUCH_UI_FTDI_EVE, HAS_MARLINUI_HD44780)
- #ifndef SHOW_CUSTOM_BOOTSCREEN
- #define SHOW_CUSTOM_BOOTSCREEN
- #endif
- #endif
- #endif
- #ifndef SOUND_MENU_ITEM
- #define SOUND_MENU_ITEM
- #endif
- #ifndef SOUND_ON_DEFAULT
- #define SOUND_ON_DEFAULT
- #endif
- #ifndef STATUS_MESSAGE_SCROLLING
- #define STATUS_MESSAGE_SCROLLING
- #endif
- #ifndef STATUS_MESSAGE_TIMEOUT_SEC
- #define STATUS_MESSAGE_TIMEOUT_SEC 45
- #endif
- #if ENABLED(LED_CONTROL_MENU)
- #ifndef LED_COLOR_PRESETS
- #define LED_COLOR_PRESETS
- #endif
- #if ENABLED(LED_COLOR_PRESETS)
- #ifndef LED_USER_PRESET_RED
- #define LED_USER_PRESET_RED 255
- #endif
- #ifndef LED_USER_PRESET_GREEN
- #define LED_USER_PRESET_GREEN 128
- #endif
- #ifndef LED_USER_PRESET_BLUE
- #define LED_USER_PRESET_BLUE 0
- #endif
- #ifndef LED_USER_PRESET_WHITE
- #define LED_USER_PRESET_WHITE 255
- #endif
- #ifndef LED_USER_PRESET_BRIGHTNESS
- #define LED_USER_PRESET_BRIGHTNESS 255
- #endif
- #endif
- #if ENABLED(NEO2_COLOR_PRESETS)
- #ifndef NEO2_USER_PRESET_RED
- #define NEO2_USER_PRESET_RED 255
- #endif
- #ifndef NEO2_USER_PRESET_GREEN
- #define NEO2_USER_PRESET_GREEN 128
- #endif
- #ifndef NEO2_USER_PRESET_BLUE
- #define NEO2_USER_PRESET_BLUE 0
- #endif
- #ifndef NEO2_USER_PRESET_WHITE
- #define NEO2_USER_PRESET_WHITE 255
- #endif
- #ifndef NEO2_USER_PRESET_BRIGHTNESS
- #define NEO2_USER_PRESET_BRIGHTNESS 255
- #endif
- #endif
- #endif
-#endif
-#if HAS_FEEDRATE_EDIT
- #ifndef SPEED_EDIT_MIN
- #define SPEED_EDIT_MIN 10
- #endif
- #ifndef SPEED_EDIT_MAX
- #define SPEED_EDIT_MAX 999
- #endif
-#endif
-#if HAS_FLOW_EDIT
- #ifndef FLOW_EDIT_MIN
- #define FLOW_EDIT_MIN 10
- #endif
- #ifndef FLOW_EDIT_MAX
- #define FLOW_EDIT_MAX 999
- #endif
-#endif
-#ifndef SET_PROGRESS_MANUALLY
- #define SET_PROGRESS_MANUALLY
-#endif
-#if ENABLED(SET_PROGRESS_MANUALLY)
- #ifndef SET_PROGRESS_PERCENT
- #define SET_PROGRESS_PERCENT
- #endif
- #ifndef SET_REMAINING_TIME
- #define SET_REMAINING_TIME
- #endif
- #ifndef M73_REPORT
- #define M73_REPORT
- #endif
-#endif
-#if HAS_DISPLAY && ANY(HAS_MEDIA, SET_PROGRESS_MANUALLY)
- #ifndef SHOW_PROGRESS_PERCENT
- #define SHOW_PROGRESS_PERCENT
- #endif
- #ifndef SHOW_ELAPSED_TIME
- #define SHOW_ELAPSED_TIME
- #endif
- #ifndef SHOW_REMAINING_TIME
- #define SHOW_REMAINING_TIME
- #endif
- #if ENABLED(SET_INTERACTION_TIME)
- #ifndef SHOW_INTERACTION_TIME
- #define SHOW_INTERACTION_TIME
- #endif
- #endif
- #if ANY(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
- #if ENABLED(LCD_PROGRESS_BAR)
- #ifndef PROGRESS_BAR_BAR_TIME
- #define PROGRESS_BAR_BAR_TIME 2000
- #endif
- #ifndef PROGRESS_BAR_MSG_TIME
- #define PROGRESS_BAR_MSG_TIME 3000
- #endif
- #ifndef PROGRESS_MSG_EXPIRE
- #define PROGRESS_MSG_EXPIRE 0
- #endif
- #endif
- #endif
-#endif
-#if HAS_MEDIA
- #ifndef SD_PROCEDURE_DEPTH
- #define SD_PROCEDURE_DEPTH 1
- #endif
- #ifndef SD_FINISHED_STEPPERRELEASE
- #define SD_FINISHED_STEPPERRELEASE true
- #endif
- #ifndef SD_FINISHED_RELEASECOMMAND
- #define SD_FINISHED_RELEASECOMMAND "G27P2"
- #endif
- #ifndef EVENT_GCODE_SD_ABORT
- #define EVENT_GCODE_SD_ABORT "M84XYE"
- #endif
- #if ENABLED(PRINTER_EVENT_LEDS)
- #ifndef PE_LEDS_COMPLETED_TIME
- #define PE_LEDS_COMPLETED_TIME (30*60)
- #endif
- #endif
- #if ENABLED(POWER_LOSS_RECOVERY)
- #ifndef PLR_ENABLED_DEFAULT
- #define PLR_ENABLED_DEFAULT true
- #endif
- #ifndef POWER_LOSS_MIN_Z_CHANGE
- #define POWER_LOSS_MIN_Z_CHANGE 0.05
- #endif
- #endif
- #ifndef SDCARD_SORT_ALPHA
- #define SDCARD_SORT_ALPHA
- #endif
- #if ENABLED(SDCARD_SORT_ALPHA)
- #ifndef SDSORT_REVERSE
- #define SDSORT_REVERSE false
- #endif
- #ifndef SDSORT_LIMIT
- #define SDSORT_LIMIT 80
- #endif
- #ifndef SDSORT_FOLDERS
- #define SDSORT_FOLDERS -1
- #endif
- #ifndef SDSORT_GCODE
- #define SDSORT_GCODE true
- #endif
- #ifndef SDSORT_USES_RAM
- #define SDSORT_USES_RAM true
- #endif
- #ifndef SDSORT_USES_STACK
- #define SDSORT_USES_STACK false
- #endif
- #ifndef SDSORT_CACHE_NAMES
- #define SDSORT_CACHE_NAMES true
- #endif
- #ifndef SDSORT_DYNAMIC_RAM
- #define SDSORT_DYNAMIC_RAM true
- #endif
- #ifndef SDSORT_CACHE_VFATS
- #define SDSORT_CACHE_VFATS 2
- #endif
- #endif
- #ifndef LONG_FILENAME_HOST_SUPPORT
- #define LONG_FILENAME_HOST_SUPPORT
- #endif
- #ifndef LONG_FILENAME_WRITE_SUPPORT
- #define LONG_FILENAME_WRITE_SUPPORT
- #endif
- #ifndef SCROLL_LONG_FILENAMES
- #define SCROLL_LONG_FILENAMES
- #endif
- #ifndef AUTO_REPORT_SD_STATUS
- #define AUTO_REPORT_SD_STATUS
- #endif
- #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
- #ifndef DISABLE_DUE_SD_MMC
- #define DISABLE_DUE_SD_MMC
- #endif
- #if DISABLED(USE_OTG_USB_HOST)
- #ifndef USB_CS_PIN
- #define USB_CS_PIN SDSS
- #endif
- #ifndef USB_INTR_PIN
- #define USB_INTR_PIN SD_DETECT_PIN
- #endif
- #endif
- #endif
- #if ENABLED(SD_FIRMWARE_UPDATE)
- #ifndef SD_FIRMWARE_UPDATE_EEPROM_ADDR
- #define SD_FIRMWARE_UPDATE_EEPROM_ADDR 0x1FF
- #endif
- #ifndef SD_FIRMWARE_UPDATE_ACTIVE_VALUE
- #define SD_FIRMWARE_UPDATE_ACTIVE_VALUE 0xF0
- #endif
- #ifndef SD_FIRMWARE_UPDATE_INACTIVE_VALUE
- #define SD_FIRMWARE_UPDATE_INACTIVE_VALUE 0xFF
- #endif
- #endif
- #if ENABLED(MULTI_VOLUME)
- #ifndef VOLUME_SD_ONBOARD
- #define VOLUME_SD_ONBOARD
- #endif
- #ifndef VOLUME_USB_FLASH_DRIVE
- #define VOLUME_USB_FLASH_DRIVE
- #endif
- #ifndef DEFAULT_VOLUME
- #define DEFAULT_VOLUME SV_SD_ONBOARD
- #endif
- #ifndef DEFAULT_SHARED_VOLUME
- #define DEFAULT_SHARED_VOLUME SV_USB_FLASH_DRIVE
- #endif
- #endif
-#endif
-#if HAS_MARLINUI_U8GLIB
- #ifndef XYZ_HOLLOW_FRAME
- #define XYZ_HOLLOW_FRAME
- #endif
- #if IS_U8GLIB_ST7920
- #if ENABLED(LIGHTWEIGHT_UI)
- #ifndef STATUS_EXPIRE_SECONDS
- #define STATUS_EXPIRE_SECONDS 20
- #endif
- #endif
- #endif
- #ifndef STATUS_HOTEND_INVERTED
- #define STATUS_HOTEND_INVERTED
- #endif
- #ifndef STATUS_HOTEND_ANIM
- #define STATUS_HOTEND_ANIM
- #endif
- #ifndef STATUS_BED_ANIM
- #define STATUS_BED_ANIM
- #endif
- #ifndef STATUS_CHAMBER_ANIM
- #define STATUS_CHAMBER_ANIM
- #endif
-#endif
-#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI
- #ifndef MENU_HOLLOW_FRAME
- #define MENU_HOLLOW_FRAME
- #endif
-#endif
-#if HAS_DGUS_LCD
- #ifndef LCD_BAUDRATE
- #define LCD_BAUDRATE 115200
- #endif
- #ifndef DGUS_RX_BUFFER_SIZE
- #define DGUS_RX_BUFFER_SIZE 128
- #endif
- #ifndef DGUS_TX_BUFFER_SIZE
- #define DGUS_TX_BUFFER_SIZE 48
- #endif
- #ifndef DGUS_UPDATE_INTERVAL_MS
- #define DGUS_UPDATE_INTERVAL_MS 500
- #endif
- #if DGUS_UI_IS(FYSETC, MKS, HIPRECY)
- #ifndef DGUS_PRINT_FILENAME
- #define DGUS_PRINT_FILENAME
- #endif
- #ifndef DGUS_PREHEAT_UI
- #define DGUS_PREHEAT_UI
- #endif
- #if !(DGUS_UI_IS(FYSETC, MKS))
- #ifndef DGUS_UI_MOVE_DIS_OPTION
- #define DGUS_UI_MOVE_DIS_OPTION
- #endif
- #endif
- #ifndef DGUS_FILAMENT_LOADUNLOAD
- #define DGUS_FILAMENT_LOADUNLOAD
- #endif
- #if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
- #ifndef DGUS_FILAMENT_PURGE_LENGTH
- #define DGUS_FILAMENT_PURGE_LENGTH 10
- #endif
- #ifndef DGUS_FILAMENT_LOAD_LENGTH_PER_TIME
- #define DGUS_FILAMENT_LOAD_LENGTH_PER_TIME 0.5
- #endif
- #endif
- #ifndef DGUS_UI_WAITING
- #define DGUS_UI_WAITING
- #endif
- #if ENABLED(DGUS_UI_WAITING)
- #ifndef DGUS_UI_WAITING_STATUS
- #define DGUS_UI_WAITING_STATUS 10
- #endif
- #ifndef DGUS_UI_WAITING_STATUS_PERIOD
- #define DGUS_UI_WAITING_STATUS_PERIOD 8
- #endif
- #endif
- #elif DGUS_UI_IS(E3S1PRO)
- #ifndef DGUS_SOFTWARE_AUTOSCROLL
- #define DGUS_SOFTWARE_AUTOSCROLL
- #endif
- #ifndef DGUS_AUTOSCROLL_START_CYCLES
- #define DGUS_AUTOSCROLL_START_CYCLES 1
- #endif
- #ifndef DGUS_AUTOSCROLL_END_CYCLES
- #define DGUS_AUTOSCROLL_END_CYCLES 1
- #endif
- #ifndef DGUS_ADVANCED_SDCARD
- #define DGUS_ADVANCED_SDCARD
- #endif
- #ifndef DGUS_USERCONFIRM
- #define DGUS_USERCONFIRM
- #endif
- #endif
-#endif
-#if ENABLED(ANYCUBIC_LCD_CHIRON)
- #ifndef AC_SD_FOLDER_VIEW
- #define AC_SD_FOLDER_VIEW
- #endif
-#endif
-#if ENABLED(TOUCH_UI_FTDI_EVE)
- #if ENABLED(OTHER_PIN_LAYOUT)
- #ifndef CLCD_MOD_RESET
- #define CLCD_MOD_RESET 9
- #endif
- #ifndef CLCD_SPI_CS
- #define CLCD_SPI_CS 10
- #endif
- #if ENABLED(CLCD_USE_SOFT_SPI)
- #ifndef CLCD_SOFT_SPI_MOSI
- #define CLCD_SOFT_SPI_MOSI 11
- #endif
- #ifndef CLCD_SOFT_SPI_MISO
- #define CLCD_SOFT_SPI_MISO 12
- #endif
- #ifndef CLCD_SOFT_SPI_SCLK
- #define CLCD_SOFT_SPI_SCLK 13
- #endif
- #endif
- #endif
- #if ENABLED(TOUCH_UI_USE_UTF8)
- #ifndef TOUCH_UI_UTF8_WESTERN_CHARSET
- #define TOUCH_UI_UTF8_WESTERN_CHARSET
- #endif
- #endif
- #ifndef TOUCH_UI_FIT_TEXT
- #define TOUCH_UI_FIT_TEXT
- #endif
-#endif
-#ifndef LCD_BACKLIGHT_TIMEOUT_MINS
- #define LCD_BACKLIGHT_TIMEOUT_MINS 10
-#endif
-#if defined(DISPLAY_SLEEP_MINUTES) || defined(LCD_BACKLIGHT_TIMEOUT_MINS)
- #ifndef EDITABLE_DISPLAY_TIMEOUT
- #define EDITABLE_DISPLAY_TIMEOUT
- #endif
-#endif
-#if HAS_ADC_BUTTONS
- #ifndef ADC_BUTTON_DEBOUNCE_DELAY
- #define ADC_BUTTON_DEBOUNCE_DELAY 16
- #endif
-#endif
-#ifndef USE_WATCHDOG
- #define USE_WATCHDOG
-#endif
-#ifndef BABYSTEPPING
- #define BABYSTEPPING
-#endif
-#if ENABLED(BABYSTEPPING)
- #ifndef BABYSTEP_WITHOUT_HOMING
- #define BABYSTEP_WITHOUT_HOMING
- #endif
- #ifndef BABYSTEP_ALWAYS_AVAILABLE
- #define BABYSTEP_ALWAYS_AVAILABLE
- #endif
- #ifndef BABYSTEP_MULTIPLICATOR_Z
- #define BABYSTEP_MULTIPLICATOR_Z 1
- #endif
- #ifndef BABYSTEP_MULTIPLICATOR_XY
- #define BABYSTEP_MULTIPLICATOR_XY 1
- #endif
- #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
- #ifndef DOUBLECLICK_MAX_INTERVAL
- #define DOUBLECLICK_MAX_INTERVAL 1250
- #endif
- #if ENABLED(MOVE_Z_WHEN_IDLE)
- #ifndef MOVE_Z_IDLE_MULTIPLICATOR
- #define MOVE_Z_IDLE_MULTIPLICATOR 1
- #endif
- #endif
- #endif
- #ifndef BABYSTEP_ZPROBE_OFFSET
- #define BABYSTEP_ZPROBE_OFFSET
- #endif
-#endif
-#ifndef LIN_ADVANCE
- #define LIN_ADVANCE
-#endif
-#if ENABLED(LIN_ADVANCE)
- #if ENABLED(DISTINCT_E_FACTORS)
- #ifndef ADVANCE_K
- #define ADVANCE_K { 0.00 }
- #endif
- #else
- #ifndef ADVANCE_K
- #define ADVANCE_K 0.00
- #endif
- #endif
-#endif
-#if ENABLED(G29_RETRY_AND_RECOVER)
- #ifndef G29_MAX_RETRIES
- #define G29_MAX_RETRIES 3
- #endif
- #ifndef G29_HALT_ON_FAILURE
- #define G29_HALT_ON_FAILURE
- #endif
- #ifndef G29_SUCCESS_COMMANDS
- #define G29_SUCCESS_COMMANDS "M117 Bed leveling done."
- #endif
- #ifndef G29_RECOVER_COMMANDS
- #define G29_RECOVER_COMMANDS "M117 Probe failed. Rewiping.\nG28\nG12 P0 S12 T0"
- #endif
- #ifndef G29_FAILURE_COMMANDS
- #define G29_FAILURE_COMMANDS "M117 Bed leveling failed.\nG0 Z10\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nG4 S1"
- #endif
-#endif
-#if ANY(PTC_PROBE, PTC_BED, PTC_HOTEND)
- #if ENABLED(PTC_PROBE)
- #ifndef PTC_PROBE_START
- #define PTC_PROBE_START 30
- #endif
- #ifndef PTC_PROBE_RES
- #define PTC_PROBE_RES 5
- #endif
- #ifndef PTC_PROBE_COUNT
- #define PTC_PROBE_COUNT 10
- #endif
- #ifndef PTC_PROBE_ZOFFS
- #define PTC_PROBE_ZOFFS { 0 }
- #endif
- #endif
- #if ENABLED(PTC_BED)
- #ifndef PTC_BED_START
- #define PTC_BED_START 60
- #endif
- #ifndef PTC_BED_RES
- #define PTC_BED_RES 5
- #endif
- #ifndef PTC_BED_COUNT
- #define PTC_BED_COUNT 10
- #endif
- #ifndef PTC_BED_ZOFFS
- #define PTC_BED_ZOFFS { 0 }
- #endif
- #endif
- #if ENABLED(PTC_HOTEND)
- #ifndef PTC_HOTEND_START
- #define PTC_HOTEND_START 180
- #endif
- #ifndef PTC_HOTEND_RES
- #define PTC_HOTEND_RES 5
- #endif
- #ifndef PTC_HOTEND_COUNT
- #define PTC_HOTEND_COUNT 20
- #endif
- #ifndef PTC_HOTEND_ZOFFS
- #define PTC_HOTEND_ZOFFS { 0 }
- #endif
- #endif
- #if ALL(PTC_PROBE, PTC_BED)
- #ifndef PTC_PARK_POS
- #define PTC_PARK_POS { 0, 0, 100 }
- #endif
- #ifndef PTC_PROBE_POS
- #define PTC_PROBE_POS { 90, 100 }
- #endif
- #ifndef PTC_PROBE_TEMP
- #define PTC_PROBE_TEMP 30
- #endif
- #ifndef PTC_PROBE_HEATING_OFFSET
- #define PTC_PROBE_HEATING_OFFSET 0.5
- #endif
- #endif
-#endif
-#ifndef ARC_SUPPORT
- #define ARC_SUPPORT
-#endif
-#if ENABLED(ARC_SUPPORT)
- #ifndef MIN_ARC_SEGMENT_MM
- #define MIN_ARC_SEGMENT_MM 0.1
- #endif
- #ifndef MAX_ARC_SEGMENT_MM
- #define MAX_ARC_SEGMENT_MM 1.0
- #endif
- #ifndef MIN_CIRCLE_SEGMENTS
- #define MIN_CIRCLE_SEGMENTS 72
- #endif
- #ifndef N_ARC_CORRECTION
- #define N_ARC_CORRECTION 25
- #endif
- #ifndef ARC_P_CIRCLES
- #define ARC_P_CIRCLES
- #endif
-#endif
-#if ENABLED(G38_PROBE_TARGET)
- #ifndef G38_MINIMUM_MOVE
- #define G38_MINIMUM_MOVE 0.0275
- #endif
-#endif
-#ifndef MIN_STEPS_PER_SEGMENT
- #define MIN_STEPS_PER_SEGMENT 4
-#endif
-#if ALL(HAS_MEDIA, DIRECT_STEPPING)
- #ifndef BLOCK_BUFFER_SIZE
- #define BLOCK_BUFFER_SIZE 32
- #endif
-#elif HAS_MEDIA
- #ifndef BLOCK_BUFFER_SIZE
- #define BLOCK_BUFFER_SIZE 32
- #endif
-#else
- #ifndef BLOCK_BUFFER_SIZE
- #define BLOCK_BUFFER_SIZE 32
- #endif
-#endif
-#ifndef MAX_CMD_SIZE
- #define MAX_CMD_SIZE 96
-#endif
-#ifndef BUFSIZE
- #define BUFSIZE 32
-#endif
-#ifndef TX_BUFFER_SIZE
- #define TX_BUFFER_SIZE 64
-#endif
-#ifndef EMERGENCY_PARSER
- #define EMERGENCY_PARSER
-#endif
-#ifndef SERIAL_OVERRUN_PROTECTION
- #define SERIAL_OVERRUN_PROTECTION
-#endif
-#ifndef PROPORTIONAL_FONT_RATIO
- #define PROPORTIONAL_FONT_RATIO 1.0
-#endif
-#ifndef FWRETRACT
- #define FWRETRACT
-#endif
-#if ENABLED(FWRETRACT)
- #if ENABLED(FWRETRACT_AUTORETRACT)
- #ifndef MIN_AUTORETRACT
- #define MIN_AUTORETRACT 0.1
- #endif
- #ifndef MAX_AUTORETRACT
- #define MAX_AUTORETRACT 10.0
- #endif
- #endif
- #ifndef RETRACT_LENGTH
- #define RETRACT_LENGTH 5
- #endif
- #ifndef RETRACT_LENGTH_SWAP
- #define RETRACT_LENGTH_SWAP 13
- #endif
- #ifndef RETRACT_FEEDRATE
- #define RETRACT_FEEDRATE 40
- #endif
- #ifndef RETRACT_ZRAISE
- #define RETRACT_ZRAISE 0.2
- #endif
- #ifndef RETRACT_RECOVER_LENGTH
- #define RETRACT_RECOVER_LENGTH 0
- #endif
- #ifndef RETRACT_RECOVER_LENGTH_SWAP
- #define RETRACT_RECOVER_LENGTH_SWAP 0
- #endif
- #ifndef RETRACT_RECOVER_FEEDRATE
- #define RETRACT_RECOVER_FEEDRATE 40
- #endif
- #ifndef RETRACT_RECOVER_FEEDRATE_SWAP
- #define RETRACT_RECOVER_FEEDRATE_SWAP 8
- #endif
-#endif
-#if HAS_MULTI_EXTRUDER
- #ifndef TOOLCHANGE_ZRAISE
- #define TOOLCHANGE_ZRAISE 2
- #endif
- #if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
- #ifndef TOOLCHANGE_FS_LENGTH
- #define TOOLCHANGE_FS_LENGTH 12
- #endif
- #ifndef TOOLCHANGE_FS_EXTRA_RESUME_LENGTH
- #define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0
- #endif
- #ifndef TOOLCHANGE_FS_RETRACT_SPEED
- #define TOOLCHANGE_FS_RETRACT_SPEED (50*60)
- #endif
- #ifndef TOOLCHANGE_FS_UNRETRACT_SPEED
- #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60)
- #endif
- #ifndef TOOLCHANGE_FS_EXTRA_PRIME
- #define TOOLCHANGE_FS_EXTRA_PRIME 0
- #endif
- #ifndef TOOLCHANGE_FS_PRIME_SPEED
- #define TOOLCHANGE_FS_PRIME_SPEED (4.6*60)
- #endif
- #ifndef TOOLCHANGE_FS_WIPE_RETRACT
- #define TOOLCHANGE_FS_WIPE_RETRACT 0
- #endif
- #ifndef TOOLCHANGE_FS_FAN
- #define TOOLCHANGE_FS_FAN -1
- #endif
- #ifndef TOOLCHANGE_FS_FAN_SPEED
- #define TOOLCHANGE_FS_FAN_SPEED 255
- #endif
- #ifndef TOOLCHANGE_FS_FAN_TIME
- #define TOOLCHANGE_FS_FAN_TIME 10
- #endif
- #ifndef TOOLCHANGE_MIGRATION_FEATURE
- #define TOOLCHANGE_MIGRATION_FEATURE
- #endif
- #endif
- #if ENABLED(TOOLCHANGE_PARK)
- #ifndef TOOLCHANGE_PARK_XY
- #define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
- #endif
- #ifndef TOOLCHANGE_PARK_XY_FEEDRATE
- #define TOOLCHANGE_PARK_XY_FEEDRATE 6000
- #endif
- #endif
-#endif
-#ifndef ADVANCED_PAUSE_FEATURE
- #define ADVANCED_PAUSE_FEATURE
-#endif
-#if ENABLED(ADVANCED_PAUSE_FEATURE)
- #ifndef PAUSE_PARK_RETRACT_FEEDRATE
- #define PAUSE_PARK_RETRACT_FEEDRATE 60
- #endif
- #ifndef PAUSE_PARK_RETRACT_LENGTH
- #define PAUSE_PARK_RETRACT_LENGTH 2
- #endif
- #ifndef FILAMENT_CHANGE_UNLOAD_FEEDRATE
- #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 20
- #endif
- #ifndef FILAMENT_CHANGE_UNLOAD_ACCEL
- #define FILAMENT_CHANGE_UNLOAD_ACCEL 25
- #endif
- #ifndef FILAMENT_CHANGE_UNLOAD_LENGTH
- #define FILAMENT_CHANGE_UNLOAD_LENGTH 120
- #endif
- #ifndef FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE
- #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6
- #endif
- #ifndef FILAMENT_CHANGE_SLOW_LOAD_LENGTH
- #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 50
- #endif
- #ifndef FILAMENT_CHANGE_FAST_LOAD_FEEDRATE
- #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 12
- #endif
- #ifndef FILAMENT_CHANGE_FAST_LOAD_ACCEL
- #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25
- #endif
- #ifndef FILAMENT_CHANGE_FAST_LOAD_LENGTH
- #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 10
- #endif
- #ifndef ADVANCED_PAUSE_PURGE_FEEDRATE
- #define ADVANCED_PAUSE_PURGE_FEEDRATE 3
- #endif
- #ifndef ADVANCED_PAUSE_PURGE_LENGTH
- #define ADVANCED_PAUSE_PURGE_LENGTH 50
- #endif
- #ifndef ADVANCED_PAUSE_RESUME_PRIME
- #define ADVANCED_PAUSE_RESUME_PRIME 0
- #endif
- #ifndef FILAMENT_UNLOAD_PURGE_RETRACT
- #define FILAMENT_UNLOAD_PURGE_RETRACT 13
- #endif
- #ifndef FILAMENT_UNLOAD_PURGE_DELAY
- #define FILAMENT_UNLOAD_PURGE_DELAY 5000
- #endif
- #ifndef FILAMENT_UNLOAD_PURGE_LENGTH
- #define FILAMENT_UNLOAD_PURGE_LENGTH 8
- #endif
- #ifndef FILAMENT_UNLOAD_PURGE_FEEDRATE
- #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25
- #endif
- #ifndef PAUSE_PARK_NOZZLE_TIMEOUT
- #define PAUSE_PARK_NOZZLE_TIMEOUT 180
- #endif
- #ifndef FILAMENT_CHANGE_ALERT_BEEPS
- #define FILAMENT_CHANGE_ALERT_BEEPS 5
- #endif
- #ifndef PAUSE_PARK_NO_STEPPER_TIMEOUT
- #define PAUSE_PARK_NO_STEPPER_TIMEOUT
- #endif
- #ifndef PARK_HEAD_ON_PAUSE
- #define PARK_HEAD_ON_PAUSE
- #endif
- #ifndef FILAMENT_LOAD_UNLOAD_GCODES
- #define FILAMENT_LOAD_UNLOAD_GCODES
- #endif
- #ifndef CONFIGURE_FILAMENT_CHANGE
- #define CONFIGURE_FILAMENT_CHANGE
- #endif
-#endif
-#if HAS_TRINAMIC_CONFIG || HAS_TMC26X
- #ifndef HOLD_MULTIPLIER
- #define HOLD_MULTIPLIER 0.5
- #endif
- #ifndef INTERPOLATE
- #define INTERPOLATE true
- #endif
- #if AXIS_IS_TMC_CONFIG(X)
- #ifndef X_CURRENT
- #define X_CURRENT 800
- #endif
- #ifndef X_CURRENT_HOME
- #define X_CURRENT_HOME X_CURRENT
- #endif
- #ifndef X_MICROSTEPS
- #define X_MICROSTEPS 16
- #endif
- #ifndef X_RSENSE
- #define X_RSENSE 0.11
- #endif
- #ifndef X_CHAIN_POS
- #define X_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(X2)
- #ifndef X2_CURRENT
- #define X2_CURRENT X_CURRENT
- #endif
- #ifndef X2_CURRENT_HOME
- #define X2_CURRENT_HOME X_CURRENT_HOME
- #endif
- #ifndef X2_MICROSTEPS
- #define X2_MICROSTEPS X_MICROSTEPS
- #endif
- #ifndef X2_RSENSE
- #define X2_RSENSE X_RSENSE
- #endif
- #ifndef X2_CHAIN_POS
- #define X2_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Y)
- #ifndef Y_CURRENT
- #define Y_CURRENT 800
- #endif
- #ifndef Y_CURRENT_HOME
- #define Y_CURRENT_HOME Y_CURRENT
- #endif
- #ifndef Y_MICROSTEPS
- #define Y_MICROSTEPS 16
- #endif
- #ifndef Y_RSENSE
- #define Y_RSENSE 0.11
- #endif
- #ifndef Y_CHAIN_POS
- #define Y_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Y2)
- #ifndef Y2_CURRENT
- #define Y2_CURRENT Y_CURRENT
- #endif
- #ifndef Y2_CURRENT_HOME
- #define Y2_CURRENT_HOME Y_CURRENT_HOME
- #endif
- #ifndef Y2_MICROSTEPS
- #define Y2_MICROSTEPS Y_MICROSTEPS
- #endif
- #ifndef Y2_RSENSE
- #define Y2_RSENSE Y_RSENSE
- #endif
- #ifndef Y2_CHAIN_POS
- #define Y2_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Z)
- #ifndef Z_CURRENT
- #define Z_CURRENT 800
- #endif
- #ifndef Z_CURRENT_HOME
- #define Z_CURRENT_HOME Z_CURRENT
- #endif
- #ifndef Z_MICROSTEPS
- #define Z_MICROSTEPS 16
- #endif
- #ifndef Z_RSENSE
- #define Z_RSENSE 0.11
- #endif
- #ifndef Z_CHAIN_POS
- #define Z_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Z2)
- #ifndef Z2_CURRENT
- #define Z2_CURRENT Z_CURRENT
- #endif
- #ifndef Z2_CURRENT_HOME
- #define Z2_CURRENT_HOME Z_CURRENT_HOME
- #endif
- #ifndef Z2_MICROSTEPS
- #define Z2_MICROSTEPS Z_MICROSTEPS
- #endif
- #ifndef Z2_RSENSE
- #define Z2_RSENSE Z_RSENSE
- #endif
- #ifndef Z2_CHAIN_POS
- #define Z2_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Z3)
- #ifndef Z3_CURRENT
- #define Z3_CURRENT Z_CURRENT
- #endif
- #ifndef Z3_CURRENT_HOME
- #define Z3_CURRENT_HOME Z_CURRENT_HOME
- #endif
- #ifndef Z3_MICROSTEPS
- #define Z3_MICROSTEPS Z_MICROSTEPS
- #endif
- #ifndef Z3_RSENSE
- #define Z3_RSENSE Z_RSENSE
- #endif
- #ifndef Z3_CHAIN_POS
- #define Z3_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(Z4)
- #ifndef Z4_CURRENT
- #define Z4_CURRENT Z_CURRENT
- #endif
- #ifndef Z4_CURRENT_HOME
- #define Z4_CURRENT_HOME Z_CURRENT_HOME
- #endif
- #ifndef Z4_MICROSTEPS
- #define Z4_MICROSTEPS Z_MICROSTEPS
- #endif
- #ifndef Z4_RSENSE
- #define Z4_RSENSE Z_RSENSE
- #endif
- #ifndef Z4_CHAIN_POS
- #define Z4_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(I)
- #ifndef I_CURRENT
- #define I_CURRENT 800
- #endif
- #ifndef I_CURRENT_HOME
- #define I_CURRENT_HOME I_CURRENT
- #endif
- #ifndef I_MICROSTEPS
- #define I_MICROSTEPS 16
- #endif
- #ifndef I_RSENSE
- #define I_RSENSE 0.11
- #endif
- #ifndef I_CHAIN_POS
- #define I_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(J)
- #ifndef J_CURRENT
- #define J_CURRENT 800
- #endif
- #ifndef J_CURRENT_HOME
- #define J_CURRENT_HOME J_CURRENT
- #endif
- #ifndef J_MICROSTEPS
- #define J_MICROSTEPS 16
- #endif
- #ifndef J_RSENSE
- #define J_RSENSE 0.11
- #endif
- #ifndef J_CHAIN_POS
- #define J_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(K)
- #ifndef K_CURRENT
- #define K_CURRENT 800
- #endif
- #ifndef K_CURRENT_HOME
- #define K_CURRENT_HOME K_CURRENT
- #endif
- #ifndef K_MICROSTEPS
- #define K_MICROSTEPS 16
- #endif
- #ifndef K_RSENSE
- #define K_RSENSE 0.11
- #endif
- #ifndef K_CHAIN_POS
- #define K_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(U)
- #ifndef U_CURRENT
- #define U_CURRENT 800
- #endif
- #ifndef U_CURRENT_HOME
- #define U_CURRENT_HOME U_CURRENT
- #endif
- #ifndef U_MICROSTEPS
- #define U_MICROSTEPS 8
- #endif
- #ifndef U_RSENSE
- #define U_RSENSE 0.11
- #endif
- #ifndef U_CHAIN_POS
- #define U_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(V)
- #ifndef V_CURRENT
- #define V_CURRENT 800
- #endif
- #ifndef V_CURRENT_HOME
- #define V_CURRENT_HOME V_CURRENT
- #endif
- #ifndef V_MICROSTEPS
- #define V_MICROSTEPS 8
- #endif
- #ifndef V_RSENSE
- #define V_RSENSE 0.11
- #endif
- #ifndef V_CHAIN_POS
- #define V_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(W)
- #ifndef W_CURRENT
- #define W_CURRENT 800
- #endif
- #ifndef W_CURRENT_HOME
- #define W_CURRENT_HOME W_CURRENT
- #endif
- #ifndef W_MICROSTEPS
- #define W_MICROSTEPS 8
- #endif
- #ifndef W_RSENSE
- #define W_RSENSE 0.11
- #endif
- #ifndef W_CHAIN_POS
- #define W_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E0)
- #ifndef E0_CURRENT
- #define E0_CURRENT 800
- #endif
- #ifndef E0_MICROSTEPS
- #define E0_MICROSTEPS 16
- #endif
- #ifndef E0_RSENSE
- #define E0_RSENSE 0.11
- #endif
- #ifndef E0_CHAIN_POS
- #define E0_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E1)
- #ifndef E1_CURRENT
- #define E1_CURRENT E0_CURRENT
- #endif
- #ifndef E1_MICROSTEPS
- #define E1_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E1_RSENSE
- #define E1_RSENSE E0_RSENSE
- #endif
- #ifndef E1_CHAIN_POS
- #define E1_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E2)
- #ifndef E2_CURRENT
- #define E2_CURRENT E0_CURRENT
- #endif
- #ifndef E2_MICROSTEPS
- #define E2_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E2_RSENSE
- #define E2_RSENSE E0_RSENSE
- #endif
- #ifndef E2_CHAIN_POS
- #define E2_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E3)
- #ifndef E3_CURRENT
- #define E3_CURRENT E0_CURRENT
- #endif
- #ifndef E3_MICROSTEPS
- #define E3_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E3_RSENSE
- #define E3_RSENSE E0_RSENSE
- #endif
- #ifndef E3_CHAIN_POS
- #define E3_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E4)
- #ifndef E4_CURRENT
- #define E4_CURRENT E0_CURRENT
- #endif
- #ifndef E4_MICROSTEPS
- #define E4_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E4_RSENSE
- #define E4_RSENSE E0_RSENSE
- #endif
- #ifndef E4_CHAIN_POS
- #define E4_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E5)
- #ifndef E5_CURRENT
- #define E5_CURRENT E0_CURRENT
- #endif
- #ifndef E5_MICROSTEPS
- #define E5_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E5_RSENSE
- #define E5_RSENSE E0_RSENSE
- #endif
- #ifndef E5_CHAIN_POS
- #define E5_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E6)
- #ifndef E6_CURRENT
- #define E6_CURRENT E0_CURRENT
- #endif
- #ifndef E6_MICROSTEPS
- #define E6_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E6_RSENSE
- #define E6_RSENSE E0_RSENSE
- #endif
- #ifndef E6_CHAIN_POS
- #define E6_CHAIN_POS -1
- #endif
- #endif
- #if AXIS_IS_TMC_CONFIG(E7)
- #ifndef E7_CURRENT
- #define E7_CURRENT E0_CURRENT
- #endif
- #ifndef E7_MICROSTEPS
- #define E7_MICROSTEPS E0_MICROSTEPS
- #endif
- #ifndef E7_RSENSE
- #define E7_RSENSE E0_RSENSE
- #endif
- #ifndef E7_CHAIN_POS
- #define E7_CHAIN_POS -1
- #endif
- #endif
- #if HAS_STEALTHCHOP
- #ifndef STEALTHCHOP_XY
- #define STEALTHCHOP_XY
- #endif
- #ifndef STEALTHCHOP_Z
- #define STEALTHCHOP_Z
- #endif
- #ifndef STEALTHCHOP_I
- #define STEALTHCHOP_I
- #endif
- #ifndef STEALTHCHOP_J
- #define STEALTHCHOP_J
- #endif
- #ifndef STEALTHCHOP_K
- #define STEALTHCHOP_K
- #endif
- #ifndef STEALTHCHOP_U
- #define STEALTHCHOP_U
- #endif
- #ifndef STEALTHCHOP_V
- #define STEALTHCHOP_V
- #endif
- #ifndef STEALTHCHOP_W
- #define STEALTHCHOP_W
- #endif
- #ifndef STEALTHCHOP_E
- #define STEALTHCHOP_E
- #endif
- #endif
- #ifndef CHOPPER_TIMING
- #define CHOPPER_TIMING CHOPPER_DEFAULT_24V
- #endif
- #if ENABLED(MONITOR_DRIVER_STATUS)
- #ifndef CURRENT_STEP_DOWN
- #define CURRENT_STEP_DOWN 50
- #endif
- #ifndef REPORT_CURRENT_CHANGE
- #define REPORT_CURRENT_CHANGE
- #endif
- #ifndef STOP_ON_ERROR
- #define STOP_ON_ERROR
- #endif
- #endif
- #ifndef X_HYBRID_THRESHOLD
- #define X_HYBRID_THRESHOLD 100
- #endif
- #ifndef X2_HYBRID_THRESHOLD
- #define X2_HYBRID_THRESHOLD 100
- #endif
- #ifndef Y_HYBRID_THRESHOLD
- #define Y_HYBRID_THRESHOLD 100
- #endif
- #ifndef Y2_HYBRID_THRESHOLD
- #define Y2_HYBRID_THRESHOLD 100
- #endif
- #ifndef Z_HYBRID_THRESHOLD
- #define Z_HYBRID_THRESHOLD 3
- #endif
- #ifndef Z2_HYBRID_THRESHOLD
- #define Z2_HYBRID_THRESHOLD 3
- #endif
- #ifndef Z3_HYBRID_THRESHOLD
- #define Z3_HYBRID_THRESHOLD 3
- #endif
- #ifndef Z4_HYBRID_THRESHOLD
- #define Z4_HYBRID_THRESHOLD 3
- #endif
- #ifndef I_HYBRID_THRESHOLD
- #define I_HYBRID_THRESHOLD 3
- #endif
- #ifndef J_HYBRID_THRESHOLD
- #define J_HYBRID_THRESHOLD 3
- #endif
- #ifndef K_HYBRID_THRESHOLD
- #define K_HYBRID_THRESHOLD 3
- #endif
- #ifndef U_HYBRID_THRESHOLD
- #define U_HYBRID_THRESHOLD 3
- #endif
- #ifndef V_HYBRID_THRESHOLD
- #define V_HYBRID_THRESHOLD 3
- #endif
- #ifndef W_HYBRID_THRESHOLD
- #define W_HYBRID_THRESHOLD 3
- #endif
- #ifndef E0_HYBRID_THRESHOLD
- #define E0_HYBRID_THRESHOLD 30
- #endif
- #ifndef E1_HYBRID_THRESHOLD
- #define E1_HYBRID_THRESHOLD 30
- #endif
- #ifndef E2_HYBRID_THRESHOLD
- #define E2_HYBRID_THRESHOLD 30
- #endif
- #ifndef E3_HYBRID_THRESHOLD
- #define E3_HYBRID_THRESHOLD 30
- #endif
- #ifndef E4_HYBRID_THRESHOLD
- #define E4_HYBRID_THRESHOLD 30
- #endif
- #ifndef E5_HYBRID_THRESHOLD
- #define E5_HYBRID_THRESHOLD 30
- #endif
- #ifndef E6_HYBRID_THRESHOLD
- #define E6_HYBRID_THRESHOLD 30
- #endif
- #ifndef E7_HYBRID_THRESHOLD
- #define E7_HYBRID_THRESHOLD 30
- #endif
- #if ANY(SENSORLESS_HOMING, SENSORLESS_PROBING)
- #ifndef X_STALL_SENSITIVITY
- #define X_STALL_SENSITIVITY 8
- #endif
- #ifndef X2_STALL_SENSITIVITY
- #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY
- #endif
- #ifndef Y_STALL_SENSITIVITY
- #define Y_STALL_SENSITIVITY 8
- #endif
- #ifndef Y2_STALL_SENSITIVITY
- #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY
- #endif
- #endif
- #ifndef EDGE_STEPPING
- #define EDGE_STEPPING
- #endif
- #ifndef TMC_ADV
- #define TMC_ADV () { }
- #endif
-#endif
-#if ENABLED(EXPERIMENTAL_I2CBUS)
- #ifndef I2C_SLAVE_ADDRESS
- #define I2C_SLAVE_ADDRESS 0
- #endif
-#endif
-#if ENABLED(PHOTO_GCODE)
- #ifdef PHOTO_PULSES_US
- #ifndef PHOTO_PULSE_DELAY_US
- #define PHOTO_PULSE_DELAY_US 13
- #endif
- #endif
-#endif
-#if ANY(SPINDLE_FEATURE, LASER_FEATURE)
- #ifndef SPINDLE_LASER_ACTIVE_STATE
- #define SPINDLE_LASER_ACTIVE_STATE LOW
- #endif
- #ifndef SPINDLE_LASER_USE_PWM
- #define SPINDLE_LASER_USE_PWM
- #endif
- #if ENABLED(SPINDLE_LASER_USE_PWM)
- #ifndef SPINDLE_LASER_PWM_INVERT
- #define SPINDLE_LASER_PWM_INVERT false
- #endif
- #ifndef SPINDLE_LASER_FREQUENCY
- #define SPINDLE_LASER_FREQUENCY 2500
- #endif
- #endif
- #if ENABLED(AIR_EVACUATION)
- #ifndef AIR_EVACUATION_ACTIVE
- #define AIR_EVACUATION_ACTIVE LOW
- #endif
- #endif
- #if ENABLED(AIR_ASSIST)
- #ifndef AIR_ASSIST_ACTIVE
- #define AIR_ASSIST_ACTIVE LOW
- #endif
- #endif
- #ifdef SPINDLE_SERVO
- #ifndef SPINDLE_SERVO_NR
- #define SPINDLE_SERVO_NR 0
- #endif
- #ifndef SPINDLE_SERVO_MIN
- #define SPINDLE_SERVO_MIN 10
- #endif
- #endif
- #ifndef CUTTER_POWER_UNIT
- #define CUTTER_POWER_UNIT PWM255
- #endif
- #if ENABLED(SPINDLE_FEATURE)
- #ifndef SPINDLE_CHANGE_DIR_STOP
- #define SPINDLE_CHANGE_DIR_STOP
- #endif
- #ifndef SPINDLE_INVERT_DIR
- #define SPINDLE_INVERT_DIR false
- #endif
- #ifndef SPINDLE_LASER_POWERUP_DELAY
- #define SPINDLE_LASER_POWERUP_DELAY 5000
- #endif
- #ifndef SPINDLE_LASER_POWERDOWN_DELAY
- #define SPINDLE_LASER_POWERDOWN_DELAY 5000
- #endif
- #if ENABLED(SPINDLE_LASER_USE_PWM)
- #ifndef SPEED_POWER_INTERCEPT
- #define SPEED_POWER_INTERCEPT 0
- #endif
- #ifndef SPEED_POWER_MIN
- #define SPEED_POWER_MIN 5000
- #endif
- #ifndef SPEED_POWER_MAX
- #define SPEED_POWER_MAX 30000
- #endif
- #ifndef SPEED_POWER_STARTUP
- #define SPEED_POWER_STARTUP 25000
- #endif
- #endif
- #else
- #if ENABLED(SPINDLE_LASER_USE_PWM)
- #ifndef SPEED_POWER_INTERCEPT
- #define SPEED_POWER_INTERCEPT 0
- #endif
- #ifndef SPEED_POWER_MIN
- #define SPEED_POWER_MIN 0
- #endif
- #ifndef SPEED_POWER_MAX
- #define SPEED_POWER_MAX 100
- #endif
- #ifndef SPEED_POWER_STARTUP
- #define SPEED_POWER_STARTUP 80
- #endif
- #endif
- #ifndef LASER_TEST_PULSE_MIN
- #define LASER_TEST_PULSE_MIN 1
- #endif
- #ifndef LASER_TEST_PULSE_MAX
- #define LASER_TEST_PULSE_MAX 999
- #endif
- #ifndef SPINDLE_LASER_POWERUP_DELAY
- #define SPINDLE_LASER_POWERUP_DELAY 50
- #endif
- #ifndef SPINDLE_LASER_POWERDOWN_DELAY
- #define SPINDLE_LASER_POWERDOWN_DELAY 50
- #endif
- #ifndef LASER_SAFETY_TIMEOUT_MS
- #define LASER_SAFETY_TIMEOUT_MS 1000
- #endif
- #if ENABLED(I2C_AMMETER)
- #ifndef I2C_AMMETER_IMAX
- #define I2C_AMMETER_IMAX 0.1
- #endif
- #ifndef I2C_AMMETER_SHUNT_RESISTOR
- #define I2C_AMMETER_SHUNT_RESISTOR 0.1
- #endif
- #endif
- #if ENABLED(LASER_COOLANT_FLOW_METER)
- #ifndef FLOWMETER_PIN
- #define FLOWMETER_PIN 20
- #endif
- #ifndef FLOWMETER_PPL
- #define FLOWMETER_PPL 5880
- #endif
- #ifndef FLOWMETER_INTERVAL
- #define FLOWMETER_INTERVAL 1000
- #endif
- #ifndef FLOWMETER_SAFETY
- #define FLOWMETER_SAFETY
- #endif
- #if ENABLED(FLOWMETER_SAFETY)
- #ifndef FLOWMETER_MIN_LITERS_PER_MINUTE
- #define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5
- #endif
- #endif
- #endif
- #endif
-#endif
-#if ENABLED(COOLANT_CONTROL)
- #ifndef COOLANT_MIST
- #define COOLANT_MIST
- #endif
- #ifndef COOLANT_FLOOD
- #define COOLANT_FLOOD
- #endif
- #ifndef COOLANT_MIST_INVERT
- #define COOLANT_MIST_INVERT false
- #endif
- #ifndef COOLANT_FLOOD_INVERT
- #define COOLANT_FLOOD_INVERT false
- #endif
-#endif
-#if ENABLED(FILAMENT_WIDTH_SENSOR)
- #ifndef FILAMENT_SENSOR_EXTRUDER_NUM
- #define FILAMENT_SENSOR_EXTRUDER_NUM 0
- #endif
- #ifndef MEASUREMENT_DELAY_CM
- #define MEASUREMENT_DELAY_CM 14
- #endif
- #ifndef FILWIDTH_ERROR_MARGIN
- #define FILWIDTH_ERROR_MARGIN 1.0
- #endif
- #ifndef MAX_MEASUREMENT_DELAY
- #define MAX_MEASUREMENT_DELAY 20
- #endif
- #ifndef DEFAULT_MEASURED_FILAMENT_DIA
- #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA
- #endif
-#endif
-#if ENABLED(POWER_MONITOR_CURRENT)
- #ifndef POWER_MONITOR_VOLTS_PER_AMP
- #define POWER_MONITOR_VOLTS_PER_AMP 0.05000
- #endif
- #ifndef POWER_MONITOR_CURRENT_OFFSET
- #define POWER_MONITOR_CURRENT_OFFSET 0
- #endif
- #ifndef POWER_MONITOR_FIXED_VOLTAGE
- #define POWER_MONITOR_FIXED_VOLTAGE 13.6
- #endif
-#endif
-#if ENABLED(POWER_MONITOR_VOLTAGE)
- #ifndef POWER_MONITOR_VOLTS_PER_VOLT
- #define POWER_MONITOR_VOLTS_PER_VOLT 0.077933
- #endif
- #ifndef POWER_MONITOR_VOLTAGE_OFFSET
- #define POWER_MONITOR_VOLTAGE_OFFSET 0
- #endif
-#endif
-#if DISABLED(NO_VOLUMETRICS)
- #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT)
- #ifndef DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT
- #define DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT 0.00
- #endif
- #ifndef VOLUMETRIC_EXTRUDER_LIMIT_MAX
- #define VOLUMETRIC_EXTRUDER_LIMIT_MAX 20
- #endif
- #endif
-#endif
-#ifndef M114_DETAIL
- #define M114_DETAIL
-#endif
-#ifndef AUTO_REPORT_TEMPERATURES
- #define AUTO_REPORT_TEMPERATURES
-#endif
-#if ENABLED(AUTO_REPORT_POSITION)
- #ifndef AUTO_REPORT_REAL_POSITION
- #define AUTO_REPORT_REAL_POSITION
- #endif
-#endif
-#ifndef CAPABILITIES_REPORT
- #define CAPABILITIES_REPORT
-#endif
-#if ENABLED(CAPABILITIES_REPORT)
- #ifndef EXTENDED_CAPABILITIES_REPORT
- #define EXTENDED_CAPABILITIES_REPORT
- #endif
- #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
- #ifndef M115_GEOMETRY_REPORT
- #define M115_GEOMETRY_REPORT
- #endif
- #endif
-#endif
-#ifndef FASTER_GCODE_PARSER
- #define FASTER_GCODE_PARSER
-#endif
-#ifndef MEATPACK_ON_SERIAL_PORT_1
- #define MEATPACK_ON_SERIAL_PORT_1
-#endif
-#if ENABLED(GCODE_MACROS)
- #ifndef GCODE_MACROS_SLOTS
- #define GCODE_MACROS_SLOTS 5
- #endif
- #ifndef GCODE_MACROS_SLOT_SIZE
- #define GCODE_MACROS_SLOT_SIZE 50
- #endif
-#endif
-#if ENABLED(CUSTOM_MENU_MAIN)
- #ifndef CUSTOM_MENU_MAIN_SCRIPT_DONE
- #define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done"
- #endif
- #ifndef CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK
- #define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK
- #endif
- #ifndef CUSTOM_MENU_MAIN_ONLY_IDLE
- #define CUSTOM_MENU_MAIN_ONLY_IDLE
- #endif
- #ifndef MAIN_MENU_ITEM_1_DESC
- #define MAIN_MENU_ITEM_1_DESC "Home & UBL Info"
- #endif
- #ifndef MAIN_MENU_ITEM_1_GCODE
- #define MAIN_MENU_ITEM_1_GCODE "G28\nG29 W"
- #endif
- #ifndef MAIN_MENU_ITEM_2_DESC
- #define MAIN_MENU_ITEM_2_DESC "Preheat for " PREHEAT_1_LABEL
- #endif
- #ifndef MAIN_MENU_ITEM_2_GCODE
- #define MAIN_MENU_ITEM_2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
- #endif
-#endif
-#if ENABLED(CUSTOM_MENU_CONFIG)
- #ifndef CUSTOM_MENU_CONFIG_SCRIPT_DONE
- #define CUSTOM_MENU_CONFIG_SCRIPT_DONE "M117 Wireless Script Done"
- #endif
- #ifndef CUSTOM_MENU_CONFIG_SCRIPT_AUDIBLE_FEEDBACK
- #define CUSTOM_MENU_CONFIG_SCRIPT_AUDIBLE_FEEDBACK
- #endif
- #ifndef CUSTOM_MENU_CONFIG_ONLY_IDLE
- #define CUSTOM_MENU_CONFIG_ONLY_IDLE
- #endif
- #ifndef CONFIG_MENU_ITEM_1_DESC
- #define CONFIG_MENU_ITEM_1_DESC "Wifi ON"
- #endif
- #ifndef CONFIG_MENU_ITEM_1_GCODE
- #define CONFIG_MENU_ITEM_1_GCODE "M118 [ESP110] WIFI-STA pwd=12345678"
- #endif
- #ifndef CONFIG_MENU_ITEM_2_DESC
- #define CONFIG_MENU_ITEM_2_DESC "Bluetooth ON"
- #endif
- #ifndef CONFIG_MENU_ITEM_2_GCODE
- #define CONFIG_MENU_ITEM_2_GCODE "M118 [ESP110] BT pwd=12345678"
- #endif
-#endif
-#if ENABLED(CUSTOM_USER_BUTTONS)
- #if PIN_EXISTS(BUTTON1)
- #ifndef BUTTON1_HIT_STATE
- #define BUTTON1_HIT_STATE LOW
- #endif
- #ifndef BUTTON1_WHEN_PRINTING
- #define BUTTON1_WHEN_PRINTING false
- #endif
- #ifndef BUTTON1_GCODE
- #define BUTTON1_GCODE "G28"
- #endif
- #ifndef BUTTON1_DESC
- #define BUTTON1_DESC "Homing"
- #endif
- #endif
- #if PIN_EXISTS(BUTTON2)
- #ifndef BUTTON2_HIT_STATE
- #define BUTTON2_HIT_STATE LOW
- #endif
- #ifndef BUTTON2_WHEN_PRINTING
- #define BUTTON2_WHEN_PRINTING false
- #endif
- #ifndef BUTTON2_GCODE
- #define BUTTON2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
- #endif
- #ifndef BUTTON2_DESC
- #define BUTTON2_DESC "Preheat for " PREHEAT_1_LABEL
- #endif
- #endif
- #if PIN_EXISTS(BUTTON3)
- #ifndef BUTTON3_HIT_STATE
- #define BUTTON3_HIT_STATE LOW
- #endif
- #ifndef BUTTON3_WHEN_PRINTING
- #define BUTTON3_WHEN_PRINTING false
- #endif
- #ifndef BUTTON3_GCODE
- #define BUTTON3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
- #endif
- #ifndef BUTTON3_DESC
- #define BUTTON3_DESC "Preheat for " PREHEAT_2_LABEL
- #endif
- #endif
-#endif
-#ifndef HOST_ACTION_COMMANDS
- #define HOST_ACTION_COMMANDS
-#endif
-#if ENABLED(HOST_ACTION_COMMANDS)
- #ifndef HOST_PROMPT_SUPPORT
- #define HOST_PROMPT_SUPPORT
- #endif
-#endif
-#ifndef CANCEL_OBJECTS
- #define CANCEL_OBJECTS
-#endif
-#if ENABLED(CANCEL_OBJECTS)
- #ifndef CANCEL_OBJECTS_REPORTING
- #define CANCEL_OBJECTS_REPORTING
- #endif
-#endif
-#if ENABLED(I2C_POSITION_ENCODERS)
- #ifndef I2CPE_ENCODER_CNT
- #define I2CPE_ENCODER_CNT 1
- #endif
- #ifndef I2CPE_ENC_1_ADDR
- #define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X
- #endif
- #ifndef I2CPE_ENC_1_AXIS
- #define I2CPE_ENC_1_AXIS X_AXIS
- #endif
- #ifndef I2CPE_ENC_1_TYPE
- #define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR
- #endif
- #ifndef I2CPE_ENC_1_TICKS_UNIT
- #define I2CPE_ENC_1_TICKS_UNIT 2048
- #endif
- #ifndef I2CPE_ENC_1_EC_METHOD
- #define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_MICROSTEP
- #endif
- #ifndef I2CPE_ENC_1_EC_THRESH
- #define I2CPE_ENC_1_EC_THRESH 0.10
- #endif
- #ifndef I2CPE_ENC_2_ADDR
- #define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y
- #endif
- #ifndef I2CPE_ENC_2_AXIS
- #define I2CPE_ENC_2_AXIS Y_AXIS
- #endif
- #ifndef I2CPE_ENC_2_TYPE
- #define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
- #endif
- #ifndef I2CPE_ENC_2_TICKS_UNIT
- #define I2CPE_ENC_2_TICKS_UNIT 2048
- #endif
- #ifndef I2CPE_ENC_2_EC_METHOD
- #define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_MICROSTEP
- #endif
- #ifndef I2CPE_ENC_2_EC_THRESH
- #define I2CPE_ENC_2_EC_THRESH 0.10
- #endif
- #ifndef I2CPE_ENC_3_ADDR
- #define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z
- #endif
- #ifndef I2CPE_ENC_3_AXIS
- #define I2CPE_ENC_3_AXIS Z_AXIS
- #endif
- #ifndef I2CPE_ENC_4_ADDR
- #define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E
- #endif
- #ifndef I2CPE_ENC_4_AXIS
- #define I2CPE_ENC_4_AXIS E_AXIS
- #endif
- #ifndef I2CPE_ENC_5_ADDR
- #define I2CPE_ENC_5_ADDR 34
- #endif
- #ifndef I2CPE_ENC_5_AXIS
- #define I2CPE_ENC_5_AXIS E_AXIS
- #endif
- #ifndef I2CPE_DEF_TYPE
- #define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
- #endif
- #ifndef I2CPE_DEF_ENC_TICKS_UNIT
- #define I2CPE_DEF_ENC_TICKS_UNIT 2048
- #endif
- #ifndef I2CPE_DEF_TICKS_REV
- #define I2CPE_DEF_TICKS_REV (16 * 200)
- #endif
- #ifndef I2CPE_DEF_EC_METHOD
- #define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
- #endif
- #ifndef I2CPE_DEF_EC_THRESH
- #define I2CPE_DEF_EC_THRESH 0.1
- #endif
- #ifndef I2CPE_TIME_TRUSTED
- #define I2CPE_TIME_TRUSTED 10000
- #endif
- #ifndef I2CPE_MIN_UPD_TIME_MS
- #define I2CPE_MIN_UPD_TIME_MS 4
- #endif
- #ifndef I2CPE_ERR_ROLLING_AVERAGE
- #define I2CPE_ERR_ROLLING_AVERAGE
- #endif
-#endif
-#if ENABLED(JOYSTICK)
- #ifndef JOY_X_PIN
- #define JOY_X_PIN 5
- #endif
- #ifndef JOY_Y_PIN
- #define JOY_Y_PIN 10
- #endif
- #ifndef JOY_Z_PIN
- #define JOY_Z_PIN 12
- #endif
- #ifndef JOY_EN_PIN
- #define JOY_EN_PIN 44
- #endif
- #ifndef JOY_X_LIMITS
- #define JOY_X_LIMITS { 5600, 8190-100, 8190+100, 10800 }
- #endif
- #ifndef JOY_Y_LIMITS
- #define JOY_Y_LIMITS { 5600, 8250-100, 8250+100, 11000 }
- #endif
- #ifndef JOY_Z_LIMITS
- #define JOY_Z_LIMITS { 4800, 8080-100, 8080+100, 11550 }
- #endif
-#endif
-#if ENABLED(MECHANICAL_GANTRY_CALIBRATION)
- #ifndef GANTRY_CALIBRATION_CURRENT
- #define GANTRY_CALIBRATION_CURRENT 600
- #endif
- #ifndef GANTRY_CALIBRATION_EXTRA_HEIGHT
- #define GANTRY_CALIBRATION_EXTRA_HEIGHT 15
- #endif
- #ifndef GANTRY_CALIBRATION_FEEDRATE
- #define GANTRY_CALIBRATION_FEEDRATE 500
- #endif
- #ifndef GANTRY_CALIBRATION_COMMANDS_POST
- #define GANTRY_CALIBRATION_COMMANDS_POST "G28"
- #endif
-#endif
-#if ENABLED(FREEZE_FEATURE)
- #ifndef FREEZE_STATE
- #define FREEZE_STATE LOW
- #endif
-#endif
-#if ENABLED(MAX7219_DEBUG)
- #ifndef MAX7219_CLK_PIN
- #define MAX7219_CLK_PIN 64
- #endif
- #ifndef MAX7219_DIN_PIN
- #define MAX7219_DIN_PIN 57
- #endif
- #ifndef MAX7219_LOAD_PIN
- #define MAX7219_LOAD_PIN 44
- #endif
- #ifndef MAX7219_INIT_TEST
- #define MAX7219_INIT_TEST 2
- #endif
- #ifndef MAX7219_NUMBER_UNITS
- #define MAX7219_NUMBER_UNITS 1
- #endif
- #ifndef MAX7219_ROTATE
- #define MAX7219_ROTATE 0
- #endif
- #ifndef MAX7219_DEBUG_PRINTER_ALIVE
- #define MAX7219_DEBUG_PRINTER_ALIVE
- #endif
- #ifndef MAX7219_DEBUG_PLANNER_HEAD
- #define MAX7219_DEBUG_PLANNER_HEAD 2
- #endif
- #ifndef MAX7219_DEBUG_PLANNER_TAIL
- #define MAX7219_DEBUG_PLANNER_TAIL 4
- #endif
- #ifndef MAX7219_DEBUG_PLANNER_QUEUE
- #define MAX7219_DEBUG_PLANNER_QUEUE 0
- #endif
- #ifndef MAX7219_DEBUG_PROFILE
- #define MAX7219_DEBUG_PROFILE 6
- #endif
-#endif
-#if HAS_ETHERNET
- #ifndef MAC_ADDRESS
- #define MAC_ADDRESS { 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0x0D }
- #endif
-#endif
-#if !(HAS_PRUSA_MMU1) && (HAS_PRUSA_MMU2 || HAS_PRUSA_MMU3)
-
- #ifndef MMU2_SERIAL_PORT
- #define MMU2_SERIAL_PORT 2
- #endif
- #ifndef MMU_BAUD
- #define MMU_BAUD 115200
- #endif
- #if HAS_PRUSA_MMU2
- #ifndef MMU2_FILAMENT_RUNOUT_SCRIPT
- #define MMU2_FILAMENT_RUNOUT_SCRIPT "M600"
- #endif
- #endif
- #ifndef MMU2_FILAMENTCHANGE_EJECT_FEED
- #define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0
- #endif
- #ifndef MMU2_EXTRUDER_PTFE_LENGTH
- #define MMU2_EXTRUDER_PTFE_LENGTH 42.3
- #endif
- #ifndef MMU2_EXTRUDER_HEATBREAK_LENGTH
- #define MMU2_EXTRUDER_HEATBREAK_LENGTH 17.7
- #endif
- #ifndef MMU2_LOAD_TO_NOZZLE_SEQUENCE
- #define MMU2_LOAD_TO_NOZZLE_SEQUENCE { MMU2_EXTRUDER_PTFE_LENGTH, MMM_TO_MMS(810) }, { MMU2_EXTRUDER_HEATBREAK_LENGTH, MMM_TO_MMS(198) }
- #endif
- #ifndef MMU2_RAMMING_SEQUENCE
- #define MMU2_RAMMING_SEQUENCE { 0.2816, MMM_TO_MMS(1339.0) }, { 0.3051, MMM_TO_MMS(1451.0) }, { 0.3453, MMM_TO_MMS(1642.0) }, { 0.3990, MMM_TO_MMS(1897.0) }, { 0.4761, MMM_TO_MMS(2264.0) }, { 0.5767, MMM_TO_MMS(2742.0) }, { 0.5691, MMM_TO_MMS(3220.0) }, { 0.1081, MMM_TO_MMS(3220.0) }, { 0.7644, MMM_TO_MMS(3635.0) }, { 0.8248, MMM_TO_MMS(3921.0) }, { 0.8483, MMM_TO_MMS(4033.0) }, { -15.0, MMM_TO_MMS(6000.0) }, { -24.5, MMM_TO_MMS(1200.0) }, { -7.0, MMM_TO_MMS( 600.0) }, { -3.5, MMM_TO_MMS( 360.0) }, { 20.0, MMM_TO_MMS( 454.0) }, { -20.0, MMM_TO_MMS( 303.0) }, { -35.0, MMM_TO_MMS(2000.0) }
- #endif
- #if HAS_PRUSA_MMU2S
- #ifndef MMU2_C0_RETRY
- #define MMU2_C0_RETRY 5
- #endif
- #ifndef MMU2_CAN_LOAD_FEEDRATE
- #define MMU2_CAN_LOAD_FEEDRATE 800
- #endif
- #ifndef MMU2_CAN_LOAD_SEQUENCE
- #define MMU2_CAN_LOAD_SEQUENCE { 5.0, MMU2_CAN_LOAD_FEEDRATE }, { 15.0, MMU2_CAN_LOAD_FEEDRATE }, { -10.0, MMU2_CAN_LOAD_FEEDRATE }
- #endif
- #ifndef MMU2_CAN_LOAD_RETRACT
- #define MMU2_CAN_LOAD_RETRACT 6.0
- #endif
- #ifndef MMU2_CAN_LOAD_DEVIATION
- #define MMU2_CAN_LOAD_DEVIATION 0.8
- #endif
- #ifndef MMU2_CAN_LOAD_INCREMENT
- #define MMU2_CAN_LOAD_INCREMENT 0.2
- #endif
- #ifndef MMU2_CAN_LOAD_INCREMENT_SEQUENCE
- #define MMU2_CAN_LOAD_INCREMENT_SEQUENCE { -MMU2_CAN_LOAD_INCREMENT, MMU2_CAN_LOAD_FEEDRATE }
- #endif
- #elif HAS_PRUSA_MMU3
- #ifndef MMU2_MAX_RETRIES
- #define MMU2_MAX_RETRIES 3
- #endif
- #ifndef MMU2_LOAD_TO_NOZZLE_LENGTH
- #define MMU2_LOAD_TO_NOZZLE_LENGTH 87.0 + 5.0
- #endif
- #ifndef MMU2_FILAMENT_SENSOR_POSITION
- #define MMU2_FILAMENT_SENSOR_POSITION 0
- #endif
- #ifndef MMU2_LOAD_DISTANCE_PAST_GEARS
- #define MMU2_LOAD_DISTANCE_PAST_GEARS 5
- #endif
- #ifndef MMU2_TOOL_CHANGE_LOAD_LENGTH
- #define MMU2_TOOL_CHANGE_LOAD_LENGTH MMU2_FILAMENT_SENSOR_POSITION + MMU2_LOAD_DISTANCE_PAST_GEARS
- #endif
- #ifndef MMU2_LOAD_TO_NOZZLE_FEED_RATE
- #define MMU2_LOAD_TO_NOZZLE_FEED_RATE 20.0
- #endif
- #ifndef MMU2_UNLOAD_TO_FINDA_FEED_RATE
- #define MMU2_UNLOAD_TO_FINDA_FEED_RATE 120.0
- #endif
- #ifndef MMU2_VERIFY_LOAD_TO_NOZZLE_FEED_RATE
- #define MMU2_VERIFY_LOAD_TO_NOZZLE_FEED_RATE 50.0
- #endif
- #ifndef MMU2_VERIFY_LOAD_TO_NOZZLE_TWEAK
- #define MMU2_VERIFY_LOAD_TO_NOZZLE_TWEAK -5.0
- #endif
- #ifndef MMU2_RETRY_UNLOAD_TO_FINDA_LENGTH
- #define MMU2_RETRY_UNLOAD_TO_FINDA_LENGTH 80.0
- #endif
- #ifndef MMU2_RETRY_UNLOAD_TO_FINDA_FEED_RATE
- #define MMU2_RETRY_UNLOAD_TO_FINDA_FEED_RATE 80.0
- #endif
- #ifndef MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH
- #define MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH (MMU2_EXTRUDER_PTFE_LENGTH + MMU2_EXTRUDER_HEATBREAK_LENGTH + MMU2_VERIFY_LOAD_TO_NOZZLE_TWEAK + MMU2_FILAMENT_SENSOR_POSITION)
- #endif
- #ifndef MMU_HAS_CUTTER
- #define MMU_HAS_CUTTER
- #endif
- #else
- #if ENABLED(MMU_EXTRUDER_SENSOR)
- #ifndef MMU_LOADING_ATTEMPTS_NR
- #define MMU_LOADING_ATTEMPTS_NR 5
- #endif
- #endif
- #endif
-#endif
-#if ENABLED(PRINTCOUNTER)
- #ifndef SERVICE_WARNING_BUZZES
- #define SERVICE_WARNING_BUZZES 3
- #endif
-#endif
diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h
index 6e822d5e25..fdbdd3a27a 100644
--- a/Marlin/src/inc/Conditionals_LCD.h
+++ b/Marlin/src/inc/Conditionals_LCD.h
@@ -1214,7 +1214,7 @@
#if !HAS_MARLINUI_HD44780
#undef LCD_INFO_SCREEN_STYLE
#endif
-#if NONE(HAS_MARLINUI_U8GLIB, HAS_TFT_LVGL_UI)
+#if NONE(HAS_MARLINUI_U8GLIB, HAS_TFT_LVGL_UI, DGUS_LCD_UI_E3S1PRO)
#undef LCD_LANGUAGE
#endif
diff --git a/Marlin/src/inc/MarlinConfigPre.h b/Marlin/src/inc/MarlinConfigPre.h
index cc7f3402db..6972c16f3d 100644
--- a/Marlin/src/inc/MarlinConfigPre.h
+++ b/Marlin/src/inc/MarlinConfigPre.h
@@ -26,8 +26,9 @@
#endif
#if __has_include("../../Config.h")
- #define USE_BASE_CONFIGS 1
#include "../../Config.h"
+#else
+ #define USE_STD_CONFIGS 1
#endif
//
@@ -41,13 +42,11 @@
#include "../core/boards.h"
-//#include "../../../configurations/_Undef_Configuration.h" //**EXPERIMENTAL** Uncomment to use
-//#include "../../../configurations/_Define_Configuration.h" //**EXPERIMENTAL** Uncomment to use
-#if USE_BASE_CONFIGS
- #include "BaseConfiguration.h"
-#else
+#if USE_STD_CONFIGS
#include "../../Configuration.h"
#endif
+//#include "../../../configurations/_Undef_Configuration.h" //**EXPERIMENTAL** Uncomment to use
+//#include "../../../configurations/_Define_Configuration.h" //**EXPERIMENTAL** Uncomment to use
#ifdef CUSTOM_VERSION_FILE
#if __has_include(STRINGIFY(../../CUSTOM_VERSION_FILE))
@@ -65,13 +64,11 @@
#include "../core/drivers.h"
-//#include "../../../configurations/_Undef_Configuration_adv.h" //**EXPERIMENTAL** Uncomment to use
-//#include "../../../configurations/_Define_Configuration_adv.h" //**EXPERIMENTAL** Uncomment to use
-#if USE_BASE_CONFIGS
- #include "BaseConfiguration_adv.h"
-#else
+#if USE_STD_CONFIGS
#include "../../Configuration_adv.h"
#endif
+//#include "../../../configurations/_Undef_Configuration_adv.h" //**EXPERIMENTAL** Uncomment to use
+//#include "../../../configurations/_Define_Configuration_adv.h" //**EXPERIMENTAL** Uncomment to use
#include "Conditionals_adv.h"
diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h
index 35d3b9e375..d1b7e17768 100644
--- a/Marlin/src/inc/Version.h
+++ b/Marlin/src/inc/Version.h
@@ -42,7 +42,7 @@
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
- #define STRING_DISTRIBUTION_DATE "2024-08-25"
+ #define STRING_DISTRIBUTION_DATE "2024-08-27"
#endif
/**
diff --git a/Marlin/src/inc/Warnings.cpp b/Marlin/src/inc/Warnings.cpp
index 2d0105aa93..f740f3eeba 100644
--- a/Marlin/src/inc/Warnings.cpp
+++ b/Marlin/src/inc/Warnings.cpp
@@ -60,7 +60,7 @@
#endif
#endif
-#if USE_BASE_CONFIGS
+#if !USE_STD_CONFIGS
#if __has_include("../../Configuration.h")
#define HAS_IGNORED_CONFIGS
#elif __has_include("../../Configuration_adv.h")
diff --git a/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp b/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
index 435f40e3a4..071a88e475 100644
--- a/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
+++ b/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
@@ -833,8 +833,6 @@ void MarlinUI::draw_status_message(const bool blink) {
#if HAS_PRINT_PROGRESS
#define TPOFFSET (LCD_WIDTH - 1)
- static uint8_t timepos = TPOFFSET - 6;
- static char buffer[8];
#if ENABLED(SHOW_PROGRESS_PERCENT)
static lcd_uint_t pc = 0, pr = 2;
@@ -853,8 +851,9 @@ void MarlinUI::draw_status_message(const bool blink) {
#if ENABLED(SHOW_REMAINING_TIME)
void MarlinUI::drawRemain() {
if (printJobOngoing()) {
+ char buffer[8];
const duration_t remaint = get_remaining_time();
- timepos = TPOFFSET - remaint.toDigital(buffer);
+ const uint8_t timepos = TPOFFSET - remaint.toDigital(buffer);
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'R');
lcd_put_u8str(buffer);
@@ -866,7 +865,8 @@ void MarlinUI::draw_status_message(const bool blink) {
void MarlinUI::drawInter() {
const duration_t interactt = interaction_time;
if (printingIsActive() && interactt.value) {
- timepos = TPOFFSET - interactt.toDigital(buffer);
+ char buffer[8];
+ const uint8_t timepos = TPOFFSET - interactt.toDigital(buffer);
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'C');
lcd_put_u8str(buffer);
@@ -877,8 +877,9 @@ void MarlinUI::draw_status_message(const bool blink) {
#if ENABLED(SHOW_ELAPSED_TIME)
void MarlinUI::drawElapsed() {
if (printJobOngoing()) {
+ char buffer[8];
const duration_t elapsedt = print_job_timer.duration();
- timepos = TPOFFSET - elapsedt.toDigital(buffer);
+ const uint8_t timepos = TPOFFSET - elapsedt.toDigital(buffer);
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'E');
lcd_put_u8str(buffer);
diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
index eb4ce135db..6a80044a34 100644
--- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
+++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
@@ -601,7 +601,6 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
#if HAS_PRINT_PROGRESS // UNTESTED!!!
#define TPOFFSET (LCD_WIDTH - 1)
- static uint8_t timepos = TPOFFSET - 6;
#if ENABLED(SHOW_PROGRESS_PERCENT)
void MarlinUI::drawPercent() {
@@ -619,7 +618,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
if (printJobOngoing()) {
const duration_t remaint = ui.get_remaining_time();
char buffer[10];
- timepos = TPOFFSET - remaint.toDigital(buffer);
+ const uint8_t timepos = TPOFFSET - remaint.toDigital(buffer);
lcd_moveto(timepos, 1);
lcd.write('R');
lcd.print(buffer);
@@ -631,7 +630,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
const duration_t interactt = ui.interaction_time;
if (printingIsActive() && interactt.value) {
char buffer[10];
- timepos = TPOFFSET - interactt.toDigital(buffer);
+ const uint8_t timepos = TPOFFSET - interactt.toDigital(buffer);
lcd_moveto(timepos, 1);
lcd.write('C');
lcd.print(buffer);
@@ -643,7 +642,7 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
if (printJobOngoing()) {
const duration_t elapsedt = print_job_timer.duration();
char buffer[10];
- timepos = TPOFFSET - elapsedt.toDigital(buffer);
+ const uint8_t timepos = TPOFFSET - elapsedt.toDigital(buffer);
lcd_moveto(timepos, 1);
lcd.write('E');
lcd.print(buffer);
diff --git a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler.h b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler.h
index 8844184271..22fb489496 100644
--- a/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler.h
+++ b/Marlin/src/lcd/extui/dgus_e3s1pro/DGUSSDCardHandler.h
@@ -22,7 +22,7 @@
#pragma once
#include
-#include "../../../sd/cardreader.h"
+#include "../../../sd/SdFatConfig.h"
#define DGUS_E3S1PRO_BASIC_SDCARD_MAX_FILES 20
#define DGUS_E3S1PRO_BASIC_SDCARD_FILES_PER_PAGE 5
diff --git a/Marlin/src/lcd/extui/dgus_e3s1pro/config/DGUS_Data.h b/Marlin/src/lcd/extui/dgus_e3s1pro/config/DGUS_Data.h
index 237cec7795..05f9a1db43 100644
--- a/Marlin/src/lcd/extui/dgus_e3s1pro/config/DGUS_Data.h
+++ b/Marlin/src/lcd/extui/dgus_e3s1pro/config/DGUS_Data.h
@@ -23,6 +23,13 @@
#include
+#include "../../../../inc/MarlinConfigPre.h"
+
+#ifndef LCD_LANGUAGE
+ #define LCD_LANGUAGE en
+ #warning "LCD_LANGUAGE not defined, defaulting to English."
+#endif
+
namespace DGUS_Data {
// RX constants
diff --git a/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp b/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp
index d408b49e83..a0551fa28c 100644
--- a/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus_reloaded/DGUSRxHandler.cpp
@@ -804,13 +804,13 @@ void DGUSRxHandler::pidSetTemp(DGUS_VP &vp, void *data_ptr) {
return;
}
- uint16_t temp = BE16_P(data_ptr);
+ celsius_t temp = BE16_P(data_ptr);
switch (screen.pid_heater) {
default: return;
#if HAS_HEATED_BED
case DGUS_Data::Heater::BED:
- LIMIT(temp, BED_MINTEMP, BED_MAX_TARGET);
+ LIMIT(temp, celsius_t(BED_MINTEMP), celsius_t(BED_MAX_TARGET));
break;
#endif
#if HAS_HOTEND
diff --git a/Marlin/src/lcd/extui/mks_ui/draw_number_key.cpp b/Marlin/src/lcd/extui/mks_ui/draw_number_key.cpp
index 7ca15e712e..7d490a11d9 100644
--- a/Marlin/src/lcd/extui/mks_ui/draw_number_key.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/draw_number_key.cpp
@@ -68,7 +68,6 @@ enum {
static void disp_key_value() {
char *temp;
- TERN_(HAS_TRINAMIC_CONFIG, float milliamps);
switch (value) {
default: break;
diff --git a/Marlin/src/module/ft_motion.cpp b/Marlin/src/module/ft_motion.cpp
index 9e6a1f6451..9b33932919 100644
--- a/Marlin/src/module/ft_motion.cpp
+++ b/Marlin/src/module/ft_motion.cpp
@@ -92,12 +92,12 @@ uint32_t FTMotion::interpIdx = 0; // Index of current data point b
// Shaping variables.
#if HAS_FTM_SHAPING
FTMotion::shaping_t FTMotion::shaping = {
- 0,
+ 0
#if HAS_X_AXIS
- x:{ false, { 0.0f }, { 0.0f }, { 0 }, 0 } // ena, d_zi[], Ai[], Ni[], max_i
+ , x:{ false, { 0.0f }, { 0.0f }, { 0 }, 0 } // ena, d_zi[], Ai[], Ni[], max_i
#endif
#if HAS_Y_AXIS
- y:{ false, { 0.0f }, { 0.0f }, { 0 }, 0 } // ena, d_zi[], Ai[], Ni[], max_i
+ , y:{ false, { 0.0f }, { 0.0f }, { 0 }, 0 } // ena, d_zi[], Ai[], Ni[], max_i
#endif
};
#endif
diff --git a/buildroot/bin/build_all_examples b/buildroot/bin/build_all_examples
index 11c456e188..e8d4990355 100755
--- a/buildroot/bin/build_all_examples
+++ b/buildroot/bin/build_all_examples
@@ -3,6 +3,7 @@
# Usage:
#
# build_all_examples [-b|--branch=] - Branch to fetch from Configurations repo (import-2.1.x)
+# [-B|--base] - Base path of configurations, overriding -b
# [-c|--continue] - Continue the paused build
# [-p|--purge] - Purge the status file and start over
# [-s|--skip] - Continue the paused build, skipping one
@@ -10,6 +11,7 @@
# [-e|--export=N] - Set CONFIG_EXPORT and export into each config folder
# [-d|--debug] - Print extra debug output (after)
# [-l|--limit=#] - Limit the number of builds in this run
+# [-a|--archive] - Copy the binary to the export location
# [-n|--nobuild] - Don't actually build anything
# [-f|--nofail] - Don't stop on a failed build
# [-h|--help] - Print usage and exit
@@ -25,6 +27,7 @@ STAT_FILE=./.pio/.buildall
usage() { echo "Usage:
build_all_examples [-b|--branch=] - Branch to fetch from Configurations repo (import-2.1.x)
+ [-B|--base] - Base path of configurations, overriding -b
[-c|--continue] - Continue the paused build
[-p|--purge] - Purge the status file and start over
[-s|--skip] - Continue the paused build, skipping one
@@ -32,6 +35,7 @@ build_all_examples [-b|--branch=] - Branch to fetch from Configurations
[-e|--export=N] - Set CONFIG_EXPORT and export into each config folder
[-d|--debug] - Print extra debug output (after)
[-l|--limit=#] - Limit the number of builds in this run
+ [-a|--archive] - Copy the binary to the export location
[-n|--nobuild] - Don't actually build anything
[-f|--nofail] - Don't stop on a failed build
[-h|--help] - Print usage and exit
@@ -44,32 +48,36 @@ unset FIRST_CONF
EXIT_USAGE=
LIMIT=1000
-while getopts 'b:ce:fdhl:npr:sv-:' OFLAG; do
+while getopts 'aB:b:ce:fdhl:npr:sv-:' OFLAG; do
case "${OFLAG}" in
- b) BRANCH=$OPTARG ; bugout "Branch: $BRANCH" ;;
- f) NOFAIL=1 ; bugout "Continue on Fail" ;;
- r) ISRES=1 ; FIRST_CONF="$OPTARG" ; bugout "Resume: $FIRST_CONF" ;;
- c) CONTINUE=1 ; bugout "Continue" ;;
- s) CONTSKIP=1 ; bugout "Continue, skipping" ;;
- e) CEXPORT="$OPTARG" ; bugout "Export $CEXPORT" ;;
+ a) ARCHIVE=1 ; bugout "Archiving" ;;
+ B) OPATH=$OPTARG ; bugout "Base: $OPATH" ;;
+ b) BRANCH=$OPTARG ; bugout "Branch: $BRANCH" ;;
+ f) NOFAIL=1 ; bugout "Continue on Fail" ;;
+ r) ISRES=1 ; FIRST_CONF=$OPTARG ; bugout "Resume: $FIRST_CONF" ;;
+ c) CONTINUE=1 ; bugout "Continue" ;;
+ s) CONTSKIP=1 ; bugout "Continue, skipping" ;;
+ e) CEXPORT=$OPTARG ; bugout "Export $CEXPORT" ;;
h) EXIT_USAGE=1 ; break ;;
- l) LIMIT=$OPTARG ; bugout "Limit to $LIMIT build(s)" ;;
- d|v) DEBUG=1 ; bugout "Debug ON" ;;
- n) DRYRUN=1 ; bugout "Dry Run" ;;
- p) PURGE=1 ; bugout "Purge stat file" ;;
+ l) LIMIT=$OPTARG ; bugout "Limit to $LIMIT build(s)" ;;
+ d|v) DEBUG=1 ; bugout "Debug ON" ;;
+ n) DRYRUN=1 ; bugout "Dry Run" ;;
+ p) PURGE=1 ; bugout "Purge stat file" ;;
-) IFS="=" read -r ONAM OVAL <<< "$OPTARG"
case "$ONAM" in
- branch) BRANCH=$OVAL ; bugout "Branch: $BRANCH" ;;
- nofail) NOFAIL=1 ; bugout "Continue on Fail" ;;
- resume) ISRES=1 ; FIRST_CONF="$OVAL" ; bugout "Resume: $FIRST_CONF" ;;
- continue) CONTINUE=1 ; bugout "Continue" ;;
- skip) CONTSKIP=1 ; bugout "Continue, skipping" ;;
- export) CEXPORT="$OVAL" ; bugout "Export $EXPORT" ;;
- limit) LIMIT=$OVAL ; bugout "Limit to $LIMIT build(s)" ;;
+ archive) ARCHIVE=1 ; bugout "Archiving" ;;
+ base) OPATH=$OVAL ; bugout "Base: $OPATH" ;;
+ branch) BRANCH=$OVAL ; bugout "Branch: $BRANCH" ;;
+ nofail) NOFAIL=1 ; bugout "Continue on Fail" ;;
+ resume) ISRES=1 ; FIRST_CONF=$OVAL ; bugout "Resume: $FIRST_CONF" ;;
+ continue) CONTINUE=1 ; bugout "Continue" ;;
+ skip) CONTSKIP=1 ; bugout "Continue, skipping" ;;
+ export) CEXPORT=$OVAL ; bugout "Export $EXPORT" ;;
+ limit) LIMIT=$OVAL ; bugout "Limit to $LIMIT build(s)" ;;
help) [[ -z "$OVAL" ]] || perror "option can't take value $OVAL" $ONAM ; EXIT_USAGE=1 ;;
- debug) DEBUG=1 ; bugout "Debug ON" ;;
- nobuild) DRYRUN=1 ; bugout "Dry Run" ;;
- purge) PURGE=1 ; bugout "Purge stat file" ;;
+ debug) DEBUG=1 ; bugout "Debug ON" ;;
+ nobuild) DRYRUN=1 ; bugout "Dry Run" ;;
+ purge) PURGE=1 ; bugout "Purge stat file" ;;
*) EXIT_USAGE=2 ; echo "$SELF: unrecognized option \`--$ONAM'" ; break ;;
esac
;;
@@ -90,7 +98,7 @@ echo "Restore your configs with 'git checkout -f' or 'git reset --hard HEAD'."
echo
[[ -n $PURGE ]] && rm -f "$STAT_FILE"
-[[ -z $FIRST_CONF && -f $STAT_FILE ]] && IFS='*' read BRANCH FIRST_CONF <"$STAT_FILE"
+[[ -z $FIRST_CONF && -f "$STAT_FILE" ]] && IFS='*' read BRANCH FIRST_CONF <"$STAT_FILE"
# If -c is given start from the last attempted build
if ((CONTINUE)); then
@@ -117,26 +125,30 @@ else
fi
# Create a temporary folder inside .pio
-TMP=./.pio/build-$BRANCH
-[[ -d "$TMP" ]] || mkdir -p $TMP
-
-# Download Configurations into the temporary folder
-if [[ ! -e "$TMP/README.md" ]]; then
- echo "Fetching Configurations from GitHub to $TMP"
- git clone --depth=1 --single-branch --branch "$BRANCH" $GITREPO "$TMP" || { echo "Failed to clone the configuration repository"; exit ; }
+if [[ -n $OPATH ]]; then
+ [[ -d "$OPATH" ]] || { echo "Given base -B $OPATH not found." ; exit ; }
else
- echo "Using cached Configurations at $TMP"
+ # Make a Configurations temporary folder if needed
+ OPATH=./.pio/build-$BRANCH
+ [[ -d "$OPATH" ]] || mkdir -p "$OPATH"
+ # Download the specified Configurations branch if needed
+ if [[ ! -e "$OPATH/README.md" ]]; then
+ echo "Fetching Configurations from GitHub to $OPATH"
+ git clone --depth=1 --single-branch --branch "$BRANCH" $GITREPO "$OPATH" || { echo "Failed to clone the configuration repository"; exit ; }
+ fi
fi
-echo -e "Start build...\n====================="
+# Build
+echo -e "=====================\nProceed with builds...\n====================="
shopt -s nullglob
+shopt -s globstar
IFS='
'
-CONF_TREE=$( ls -d "$TMP"/configurations/*/ "$TMP"/configurations/*/*/ "$TMP"/configurations/*/*/*/ "$TMP"/configurations/*/*/*/*/ | grep -vE ".+\.(\w+)$" )
+CONF_TREE=$( ls -d "$OPATH"/configurations/**/ | grep -vE ".+\.(\w+)$" )
for CONF in $CONF_TREE ; do
# Get a config's directory name
- DIR=$( echo $CONF | "$SED" "s|$TMP/configurations/||" )
+ DIR=$( echo "$CONF" | "$SED" "s|$OPATH/configurations/||" )
# If looking for a config, skip others
[[ $FIRST_CONF ]] && [[ $FIRST_CONF != $DIR && "$FIRST_CONF/" != $DIR ]] && continue
@@ -146,11 +158,11 @@ for CONF in $CONF_TREE ; do
# If skipping, don't build the found one
[[ $SKIP_CONF ]] && { unset SKIP_CONF ; continue ; }
- # ...if skipping, don't build this one
- compgen -G "${CONF}Con*.h" > /dev/null || continue
+ # At least one config file is required here
+ compgen -G "${CONF}Configuration*.h" > /dev/null || continue
# Command arguments for 'build_example'
- CARGS=("-b" "$TMP" "-c" "$DIR")
+ CARGS=("-b" "$OPATH" "-c" "$DIR")
# Exporting? Add -e argument
((CEXPORT)) && CARGS+=("-e" "$CEXPORT")
@@ -158,13 +170,17 @@ for CONF in $CONF_TREE ; do
# Continue on fail? Add -n argument
((NOFAIL)) && CARGS+=("-n")
+ # Archive the build? Add -a argument
+ ((ARCHIVE)) && CARGS+=("-a")
+
# Build or print build command for --nobuild
- if [[ $DRYRUN ]]; then
+ if ((DRYRUN)); then
echo -e "\033[0;32m[DRYRUN] build_example ${CARGS[@]}\033[0m"
else
# Remember where we are in case of failure
echo "${BRANCH}*${DIR}" >"$STAT_FILE"
((DEBUG)) && echo "\"$HERE/build_example\" ${CARGS[@]}"
+ # Invoke build_example
"$HERE"/build_example "${CARGS[@]}" || { echo "Failed to build $DIR" ; exit ; }
fi
diff --git a/buildroot/bin/build_example b/buildroot/bin/build_example
index 7686a0a58f..4114ddc894 100755
--- a/buildroot/bin/build_example
+++ b/buildroot/bin/build_example
@@ -2,40 +2,47 @@
#
# Usage:
#
-# build_example -b|--base= - Configurations root folder (e.g., ./.pio/build-BRANCH)
-# -c|--config= - Path of the configs to build (within config/examples)
+# build_example -b|--base= - Configurations root folder (e.g., ./.pio/build-BRANCH)
+# -c|--config= - Sub-path of the configs to build (within config/examples)
# [-e|--export=N] - Set CONFIG_EXPORT before build and export into the config folder
# [-n|--nofail] - Don't stop on a failed build
# [-r|--reveal] - Reveal the config folder after the build
# [-h|--help] - Print usage and exit
+# [-a|--archive] - Archive the build (to the export location)
# [--allow] - Allow this script to run standalone
#
HERE=`dirname $0`
-. "$HERE/mfutil"
+source "$HERE/mfutil"
+
+annc() { echo -e "\033[0;32m$1\033[0m" ; }
# Get arguments
-CLEANER=1
-ALLOW=""
-BASE=""
-CONFIG=""
-REVEAL=""
-EXPNUM=""
-NOFAIL=""
-while getopts 'b:c:e:hinr-:' OFLAG; do
+BUILD=./.pio/build
+CLEANER=
+ALLOW=
+ARCHIVE=
+BASE=
+CONFIG=
+REVEAL=
+EXPNUM=
+NOFAIL=
+while getopts 'ab:c:e:hinr-:' OFLAG; do
case "${OFLAG}" in
- b) BASE="$OPTARG" ;;
- c) CONFIG="$OPTARG" ;;
+ a) ARCHIVE=1 ;;
+ b) BASE="${OPTARG%/}" ;;
+ c) CONFIG="${OPTARG%/}" ;;
e) EXPNUM="$OPTARG" ;;
h) EXIT_USAGE=1 ; break ;;
n) NOFAIL=1 ;;
r) REVEAL=1 ;;
-) IFS="=" read -r ONAM OVAL <<< "$OPTARG"
case "$ONAM" in
+ archive) ARCHIVE=1 ;;
allow) ALLOW=1 ;;
- base) BASE="$OVAL" ;;
- config) CONFIG="$OVAL" ;;
+ base) BASE="${OVAL%/}" ;;
+ config) CONFIG="${OVAL%/}" ;;
export) EXPNUM="$OVAL" ;;
help) EXIT_USAGE=1 ; break ;;
nofail) NOFAIL=1 ;;
@@ -46,28 +53,32 @@ while getopts 'b:c:e:hinr-:' OFLAG; do
esac
done
+# Must be called from another script (or with --allow)
[[ $ALLOW || $SHLVL -gt 2 ]] || { echo "Don't call this script directly, use build_all_examples instead." ; exit 1 ; }
+# -b|--base and -c|--config are required
+[[ -z $BASE ]] && { echo "-b|--base is required" ; exit 1 ; }
+[[ -z $CONFIG ]] && { echo "-c|--config is required" ; exit 1 ; }
+
# Make sure the examples exist
SUB1="$BASE/configurations"
-[[ -d "$SUB1" ]] || { echo "--base $BASE doesn't contain configurations" ; exit 1 ; }
+[[ -d "$SUB1" ]] || { echo "-b|--base $BASE doesn't contain configurations" ; exit 1 ; }
# Make sure the specific config folder exists
-SUB=$SUB1/$CONFIG
-[[ -d "$SUB" ]] || { echo "--config $CONFIG doesn't exist" ; exit 1 ; }
+SUB="$SUB1/$CONFIG"
+[[ -d "$SUB" ]] || { echo "-c|--config $CONFIG doesn't exist" ; exit 1 ; }
-compgen -G "${SUB}Con*.h" > /dev/null || { echo "No configuration files found in $SUB" ; exit 1 ; }
+# ...and contains Configuration.h or Configuration_adv.h
+[[ -n $(compgen -G "$SUB/Configuration*.h") ]] || { echo "No configuration files found in $SUB" ; exit 1 ; }
-# Delete any previous exported configs
-rm -f Marlin/Config.h Marlin/Config-export.h
+# Delete any config files from previous builds
+rm -f Marlin/_Bootscreen.h Marlin/_Statusscreen.h
+# Copy configurations into the Marlin folder
echo "Getting configuration files from $SUB"
-cp "$BASE/configurations/Andrew427"/*.h Marlin/
-cp "$SUB"/Config.h Marlin/ 2>/dev/null
-cp "$SUB"/Configuration.h Marlin/ 2>/dev/null
-cp "$SUB"/Configuration_adv.h Marlin/ 2>/dev/null
-cp "$SUB"/_Bootscreen.h Marlin/ 2>/dev/null
-cp "$SUB"/_Statusscreen.h Marlin/ 2>/dev/null
+cp "$BASE/configurations/Andrew427"/*.h "$SUB"/*.h Marlin/ 2>/dev/null
+
+rm -f Marlin/Config.h Marlin/Config-export.h
set -e
@@ -90,40 +101,67 @@ if ((CLEANER)); then
opt_add NO_LCD_CONTRAST_WARNING
opt_add NO_MICROPROBE_WARNING
opt_add NO_CONFIGURATION_EMBEDDING_WARNING
+ opt_add NO_HOMING_CURRENT_WARNING
fi
-FNAME=("-name" "marlin_config.json" \
+ENAME=("-name" "marlin_config.json" \
"-o" "-name" "config.ini" \
"-o" "-name" "schema.json" \
"-o" "-name" "schema.yml")
+BNAME=("-type" "f" \
+ "-name" 'firmware*.hex' \
+ "-o" "-name" "firmware*.bin" \
+ "-o" "-name" "project*.bin" \
+ "-o" "-name" "Robin*.bin" \
+ "-o" "-name" "main_*.bin")
+
+mkdir -p "$BUILD"
+
# If EXPNUM is set then apply to the config before build
if [[ $EXPNUM ]]; then
opt_set CONFIG_EXPORT $EXPNUM
# Clean up old exports
- find ./.pio/build \( "${FNAME[@]}" \) -exec rm "{}" \;
+ find "$BUILD" \( "${ENAME[@]}" \) -exec rm "{}" \;
fi
+((ARCHIVE)) && find "$BUILD" \( "${BNAME[@]}" \) -exec rm "{}" \;
+
set +e
-echo "Building the firmware now..."
+echo "Building example $CONFIG ..."
"$HERE/mftest" -s -a -n1 ; ERR=$?
-[[ $ERR -eq 0 ]] && echo "Success" || echo "Failed"
+((ERR)) && echo "Failed" || echo "Success"
set -e
# Copy exports back to the configs
-if [[ $EXPNUM ]]; then
- echo "Exporting $EXPNUM"
+if [[ -n $EXPNUM ]]; then
+ annc "Exporting $EXPNUM"
[[ -f Marlin/Config-export.h ]] && { cp Marlin/Config-export.h "$SUB"/Config.h ; }
- find ./.pio/build/ "${FNAME[@]}" -exec cp "{}" "$SUB" \;
+ find "$BUILD" "${ENAME[@]}" -exec cp "{}" "$SUB" \;
+fi
+
+if ((ARCHIVE)); then
+ annc "Archiving"
+ find "$BUILD" \( "${BNAME[@]}" \) -exec sh -c '
+ SUB="$1"
+ shift 1
+ for file in "$@"; do
+ cd "$(dirname "$file")"
+ base=$(basename "$file")
+ tar -czf "$SUB/$base.tar.gz" "$base"
+ rm "$base"
+ cd - >/dev/null
+ done
+ ' sh "$SUB" {} +
fi
# Exit with error unless --nofail is set
[[ $ERR -gt 0 && -z $NOFAIL ]] && exit $ERR
# Reveal the configs after the build, if requested
-((REVEAL)) && { echo "Revealing $SUB" ; open "$SUB" ; }
+((REVEAL)) && { annc "Revealing $SUB" ; open "$SUB" ; }
exit 0
diff --git a/buildroot/share/PlatformIO/scripts/signature.py b/buildroot/share/PlatformIO/scripts/signature.py
index 1a6c262dba..046f02dd3e 100755
--- a/buildroot/share/PlatformIO/scripts/signature.py
+++ b/buildroot/share/PlatformIO/scripts/signature.py
@@ -216,7 +216,7 @@ def tryint(key):
if not conf_schema: exit(1)
# Start with a preferred @section ordering
- preorder = ('info','machine','extruder','stepper drivers','geometry','homing','endstops','probes','lcd','interface','host','reporting')
+ preorder = ('info','user','machine','extruder','bed temp','fans','stepper drivers','geometry','homing','endstops','probes','lcd','interface','host','reporting')
sections = { key:{} for key in preorder }
# Group options by schema @section
diff --git a/buildroot/share/scripts/makeBaseConfigs.py b/buildroot/share/scripts/makeBaseConfigs.py
deleted file mode 100755
index 4050d62be8..0000000000
--- a/buildroot/share/scripts/makeBaseConfigs.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python3
-#
-# makeBaseConfigs.py
-#
-# Create "base" config files that can be overridden by a minimal config file.
-# The intention is to include base config files as part of the Marlin package
-# so users can use a minimal configuration with the familiar header format.
-# This provides an Arduino-compatible way to apply configurations without the
-# complications that come from a plain config.ini solution.
-#
-import re
-from pathlib import Path
-
-def make_base_configs():
- no_disabled = True
-
- # Create a regex to match options and capture line parts
- define_patt = re.compile(r'^(\s*)((//\s*)?#define\s+)([A-Z0-9_]+\b)(\s*)(.*?)(\s*)(//.*)?$', re.IGNORECASE)
- ifndef_patt = re.compile(r'^(\s*#ifndef\s*.*?)(\s*//.*)?$', re.IGNORECASE)
- ifstat_patt = re.compile(r'^(\s*#(((if|ifn?def|elif)\s*.*?)|else|endif))(\s*//.*)?$', re.IGNORECASE)
- coment_patt = re.compile(r'/\*.*?\*/', re.DOTALL)
- contin_patt = re.compile(r'\\\n\s*')
-
- # Wrap all config options in #ifndef
- for file in ('Configuration.h', 'Configuration_adv.h'):
- fullpath = Path('Marlin', file)
- fulltext = fullpath.read_text(encoding='utf-8')
- fulltext = coment_patt.sub('', fulltext)
- fulltext = contin_patt.sub(' ', fulltext)
-
- is_ifndef = False
-
- lines_out = []
- for line in fulltext.split('\n'):
-
- was_ifndef = is_ifndef # Previous line was #ifndef?
- is_ifndef = ifndef_patt.match(line) # This line is #ifndef?
-
- m = ifstat_patt.match(line)
- if m: lines_out += [m[1]] ; continue
-
- m = define_patt.match(line)
- if m:
- if no_disabled and line.strip().startswith('//'): continue
-
- name = m[4]
- if name in ('CONFIG_EXAMPLES_DIR', 'CONFIG_EXPORT'): continue
- if name.startswith('_'): continue
-
- if not was_ifndef: lines_out += [f'{m[1]}#ifndef {name}']
-
- entab = '' if was_ifndef else ' '
- indented = f'{entab}{m[1]}{m[2]}{m[4]} {m[6]}'.rstrip()
- lines_out += [indented]
-
- if not was_ifndef: lines_out += [f'{m[1]}#endif']
-
- # Final text needs some additional cleanup to remove empty blocks
- empty_patt = re.compile(r'(\s*#if.+)(\n\s*#el.+)*(\n\s*#endif.*)')
- ifelse_patt = re.compile(r'(\s*#(el)?if\s+)(.+)\n\s*#else')
- ifelif_patt = re.compile(r'(\s*#if\s+)(.+)\n\s*#elif\s*(.+)')
- out_text = '\n'.join(lines_out)
- while True:
- old_text = out_text
- out_text = ifelse_patt.sub(r'\1!(\3)', out_text)
- out_text = ifelif_patt.sub(r'\1!(\2) && (\3)\n', out_text)
- out_text = empty_patt.sub('', out_text)
- if out_text == old_text: break
-
- # Store the final result to Marlin/src/inc/BaseConfiguration.h BaseConfiguration_adv.h
- outname = f'Base{file}'
- outpath = Path('Marlin', 'src', 'inc', outname)
-
- with outpath.open('w') as outfile:
-
- from datetime import datetime
- header_tpl = Path('buildroot', 'share', 'extras', 'file_header.h').read_text(encoding='utf-8')
- header_tpl = re.sub(r'(\(c\))\s*\d+\s*(MarlinFirmware)', rf'\1 {datetime.now().year} \2', header_tpl)
- header_tpl = re.sub(r'\*/\n+/\*\*', '*/\n#pragma once\n\n/**', header_tpl)
- header_tpl = header_tpl.replace(r'$(filename)', f"{outname} - Generated using makeBaseConfigs.py")
-
- outfile.write(header_tpl + out_text + '\n')
-
-# Always run from the command line.
-# Later we can add a "minimal" flag to config to do this automatically.
-if __name__ == "__main__":
- import sys
- args = sys.argv[1:]
- if len(args) > 0:
- print(f"Usage: {sys.argv[0]}")
- elif not Path('Marlin', 'src').is_dir():
- print(f"Please run {sys.argv[0]} from the root of the Marlin workspace.")
- else:
- make_base_configs()