From 4ce942161541d44d093fb4f256e7925b7f2d4653 Mon Sep 17 00:00:00 2001 From: PeaceNira <72322069+PeaceNira@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:54:29 +0100 Subject: [PATCH 1/4] Update Configuration.h updated config to 2.1.2.4 --- .../Configuration.h | 721 ++++++------------ 1 file changed, 234 insertions(+), 487 deletions(-) diff --git a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration.h b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration.h index d15fc2bf8ec..d06de52ec5b 100644 --- a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration.h +++ b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration.h @@ -1,6 +1,6 @@ /** * Marlin 3D Printer Firmware - * Copyright (c) 2023 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm @@ -20,8 +20,6 @@ * */ #pragma once -#error "Don't build with import-2.1.x configurations!" -#error "Use the 'bugfix...' or 'release...' configurations matching your Marlin version." /** * Configuration.h @@ -37,7 +35,7 @@ * * Advanced settings can be found in Configuration_adv.h */ -#define CONFIGURATION_H_VERSION 02010300 +#define CONFIGURATION_H_VERSION 02010204 //=========================================================================== //============================= Getting Started ============================= @@ -52,7 +50,7 @@ * * Calibration Guides: https://reprap.org/wiki/Calibration * https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide - * https://web.archive.org/web/20220907014303/sites.google.com/site/repraplogphase/calibration-of-your-reprap + * https://web.archive.org/web/20220907014303/https://sites.google.com/site/repraplogphase/calibration-of-your-reprap * https://youtu.be/wAL9d7FgInk * https://teachingtechyt.github.io/calibration.html * @@ -66,6 +64,26 @@ #define STRING_CONFIG_H_AUTHOR "(PeaceNira, Ender-5)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) +/** + * *** VENDORS PLEASE READ *** + * + * Marlin allows you to add a custom boot image for Graphical LCDs. + * With this option Marlin will first show your custom screen followed + * by the standard Marlin logo with version number and web URL. + * + * We encourage you to take advantage of this new feature and we also + * respectfully request that you retain the unmodified Marlin boot screen. + */ + +// Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** +#define SHOW_BOOTSCREEN + +// Show the bitmap in Marlin/_Bootscreen.h on startup. +//#define SHOW_CUSTOM_BOOTSCREEN + +// Show the bitmap in Marlin/_Statusscreen.h on the status screen. +//#define CUSTOM_STATUS_SCREEN_IMAGE + // @section machine // Choose the name from boards.h that matches your setup @@ -79,10 +97,9 @@ * Serial port -1 is the USB emulated serial port, if available. * Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader. * - * :[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ -#define SERIAL_PORT 2 - +#define SERIAL_PORT -1 /** * Serial Port Baud Rate * This is the default communication speed for all serial ports. @@ -101,34 +118,24 @@ /** * Select a secondary serial port on the board to use for communication with the host. * Currently Ethernet (-2) is only supported on Teensy 4.1 boards. - * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ -#define SERIAL_PORT_2 -1 +//#define SERIAL_PORT_2 -1 //#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE /** * Select a third serial port on the board to use for communication with the host. * Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1 - * :[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ //#define SERIAL_PORT_3 1 //#define BAUDRATE_3 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE -/** - * Select a serial port to communicate with RS485 protocol - * :[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - */ -//#define RS485_SERIAL_PORT 1 -#ifdef RS485_SERIAL_PORT - //#define M485_PROTOCOL 1 // Check your host for protocol compatibility - //#define RS485_BUS_BUFFER_SIZE 128 -#endif - // Enable the Bluetooth serial interface on AT90USB devices //#define BLUETOOTH // Name displayed in the LCD "Ready" message and Info menu -#define CUSTOM_MACHINE_NAME "Ender-5" +//#define CUSTOM_MACHINE_NAME "3D Printer" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 @@ -147,9 +154,9 @@ * Options: A4988, A5984, DRV8825, LV8729, TB6560, TB6600, TMC2100, * TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE, * TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE, - * TMC2660, TMC2660_STANDALONE, TMC5130, TMC5130_STANDALONE, - * TMC5160, TMC5160_STANDALONE - * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] + * TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, + * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE + * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ #define X_DRIVER_TYPE TMC2209 #define Y_DRIVER_TYPE TMC2209 @@ -245,13 +252,7 @@ #endif #endif -// Switch extruders by bumping the toolhead. Requires EVENT_GCODE_TOOLCHANGE_#. -//#define MECHANICAL_SWITCHING_EXTRUDER - -/** - * A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles. - * Can be combined with SWITCHING_EXTRUDER. - */ +// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles //#define SWITCHING_NOZZLE #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 0 @@ -261,9 +262,6 @@ #define SWITCHING_NOZZLE_SERVO_DWELL 2500 // Dwell time to wait for servo to make physical move #endif -// Switch nozzles by bumping the toolhead. Requires EVENT_GCODE_TOOLCHANGE_#. -//#define MECHANICAL_SWITCHING_NOZZLE - /** * Two separate X-carriages with extruders that connect to a moving part * via a solenoid docking mechanism. Requires SOL1_PIN and SOL2_PIN. @@ -280,7 +278,7 @@ */ //#define MAGNETIC_PARKING_EXTRUDER -#if ANY(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER) +#if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER) #define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder @@ -413,18 +411,9 @@ //#define PS_OFF_SOUND // Beep 1s when power off #define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box - //#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 - //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power - //#define LED_POWEROFF_TIMEOUT 10000 // (ms) Turn off LEDs after power-off, with this amount of delay - - //#define PSU_OFF_REDUNDANT // Second pin for redundant power control - //#define PSU_OFF_REDUNDANT_INVERTED // Redundant pin state is the inverse of PSU_ACTIVE_STATE - - //#define PS_ON1_PIN 6 // Redundant pin required to enable power in combination with PS_ON_PIN - - //#define PS_ON_EDM_PIN 8 // External Device Monitoring pins for external power control relay feedback. Fault on mismatch. - //#define PS_ON1_EDM_PIN 9 - #define PS_EDM_RESPONSE 250 // (ms) Time to allow for relay action + //#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 + //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power + //#define LED_POWEROFF_TIMEOUT 10000 // (ms) Turn off LEDs after power-off, with this amount of delay //#define POWER_OFF_TIMER // Enable M81 D to power off after a delay //#define POWER_OFF_WAIT_FOR_COOLDOWN // Enable M81 S to power off only after cooldown @@ -439,11 +428,10 @@ #define AUTO_POWER_CONTROLLERFAN // Turn on PSU for Controller Fan #define AUTO_POWER_CHAMBER_FAN // Turn on PSU for Chamber Fan #define AUTO_POWER_COOLER_FAN // Turn on PSU for Cooler Fan - #define AUTO_POWER_SPINDLE_LASER // Turn on PSU for Spindle/Laser #define POWER_TIMEOUT 30 // (s) Turn off power if the machine is idle for this duration //#define POWER_OFF_DELAY 60 // (s) Delay of poweroff after M81 command. Useful to let fans run for extra time. #endif - #if ANY(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN) + #if EITHER(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN) //#define AUTO_POWER_E_TEMP 50 // (°C) PSU on if any extruder is over this temperature //#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) PSU on if the chamber is over this temperature //#define AUTO_POWER_COOLER_TEMP 26 // (°C) PSU on if the cooler is over this temperature @@ -551,11 +539,6 @@ * -1 : AD595 with Thermocouple * * ================================================================ - * SoC internal sensor - * ================================================================ - * 100 : SoC internal sensor - * - * ================================================================ * Custom/Dummy/Other Thermal Sensors * ================================================================ * 0 : not used @@ -578,7 +561,6 @@ #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 #define TEMP_SENSOR_BOARD 0 -#define TEMP_SENSOR_SOC 0 #define TEMP_SENSOR_REDUNDANT 0 // Dummy thermistor constant temperature readings, for use with 998 and 999 @@ -657,7 +639,7 @@ #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 -#define BED_MAXTEMP 125 +#define BED_MAXTEMP 150 #define CHAMBER_MAXTEMP 60 /** @@ -684,7 +666,7 @@ * MPCTEMP : Predictive Model temperature control. (~1.8K without auto-tune) */ #define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning -//#define MPCTEMP // See https://marlinfw.org/docs/features/model_predictive_control.html +//#define MPCTEMP // ** EXPERIMENTAL ** See https://marlinfw.org/docs/features/model_predictive_control.html #define PID_MAX 255 // Limit hotend current while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #define PID_K1 0.95 // Smoothing factor within any PID loop @@ -694,13 +676,12 @@ //#define PID_PARAMS_PER_HOTEND // Use separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with G-code: M301 E[extruder number, 0-2] - // Creality Ender-5 Pro #if ENABLED(PID_PARAMS_PER_HOTEND) // Specify up to one value per hotend here, according to your setup. // If there are fewer values, the last one applies to the remaining hotends. - #define DEFAULT_Kp_LIST { 21.73, 21.73 } - #define DEFAULT_Ki_LIST { 1.54, 1.54 } - #define DEFAULT_Kd_LIST { 76.55, 76.55 } + #define DEFAULT_Kp_LIST { 22.20, 22.20 } + #define DEFAULT_Ki_LIST { 1.08, 1.08 } + #define DEFAULT_Kd_LIST { 114.00, 114.00 } #else #define DEFAULT_Kp 21.73 #define DEFAULT_Ki 1.54 @@ -715,14 +696,10 @@ * * Use a physical model of the hotend to control temperature. When configured correctly this gives * better responsiveness and stability than PID and removes the need for PID_EXTRUSION_SCALING - * and PID_FAN_SCALING. Enable MPC_AUTOTUNE and use M306 T to autotune the model. + * and PID_FAN_SCALING. Use M306 T to autotune the model. * @section mpctemp */ #if ENABLED(MPCTEMP) - #define MPC_AUTOTUNE // Include a method to do MPC auto-tuning (~6.3K bytes of flash) - #if ENABLED(MPC_AUTOTUNE) - //#define MPC_AUTOTUNE_DEBUG // Enable MPC debug logging (~870 bytes of flash) - #endif //#define MPC_EDIT_MENU // Add MPC editing to the "Advanced Settings" menu. (~1.3K bytes of flash) //#define MPC_AUTOTUNE_MENU // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash) @@ -795,18 +772,15 @@ // 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) // from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) - #define DEFAULT_bedKp 36.7 - #define DEFAULT_bedKi 1.96 - #define DEFAULT_bedKd 456.7 + #define DEFAULT_bedKp 50.71 + #define DEFAULT_bedKi 9.88 + #define DEFAULT_bedKd 173.43 // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #else //#define BED_LIMIT_SWITCHING // Keep the bed temperature within BED_HYSTERESIS of the target #endif -// Add 'M190 R T' for more gradual M190 R bed cooling. -//#define BED_ANNEALING_GCODE - //=========================================================================== //==================== PID > Chamber Temperature Control ==================== //=========================================================================== @@ -924,9 +898,6 @@ // //#define MARKFORGED_XY //#define MARKFORGED_YX -#if ANY(MARKFORGED_XY, MARKFORGED_YX) - //#define MARKFORGED_INVERSE // Enable for an inverted Markforged kinematics belt path -#endif // Enable for a belt style printer with endless "Z" motion //#define BELTPRINTER @@ -936,7 +907,6 @@ #if ENABLED(POLARGRAPH) #define POLARGRAPH_MAX_BELT_LEN 1035.0 // (mm) Belt length at full extension. Override with M665 H. #define DEFAULT_SEGMENTS_PER_SECOND 5 // Move segmentation based on duration - #define PEN_UP_DOWN_MENU // Add "Pen Up" and "Pen Down" to the MarlinUI menu #endif // @section delta @@ -966,13 +936,13 @@ #define DELTA_CALIBRATION_DEFAULT_POINTS 4 #endif - #if ANY(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) + #if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) // Step size for paper-test probing #define PROBE_MANUALLY_STEP 0.05 // (mm) #endif // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define PRINTABLE_RADIUS 140.0 // (mm) + #define DELTA_PRINTABLE_RADIUS 140.0 // (mm) // Maximum reachable area #define DELTA_MAX_RADIUS 140.0 // (mm) @@ -1010,7 +980,7 @@ */ //#define MORGAN_SCARA //#define MP_SCARA -#if ANY(MORGAN_SCARA, MP_SCARA) +#if EITHER(MORGAN_SCARA, MP_SCARA) // If movement is choppy try lowering this value #define DEFAULT_SEGMENTS_PER_SECOND 200 @@ -1026,11 +996,14 @@ #if ENABLED(MORGAN_SCARA) //#define DEBUG_SCARA_KINEMATICS - #define FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly + #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly // Radius around the center where the arm cannot reach #define MIDDLE_DEAD_ZONE_R 0 // (mm) + #define THETA_HOMING_OFFSET 0 // Calculated from Calibration Guide and M360 / M114. See https://www.morgan3dp.com/morgan-calibration-guide/ + #define PSI_HOMING_OFFSET 0 // Calculated from Calibration Guide and M364 / M114. See https://www.morgan3dp.com/morgan-calibration-guide/ + #elif ENABLED(MP_SCARA) #define SCARA_OFFSET_THETA1 12 // degrees @@ -1049,72 +1022,23 @@ #define DEFAULT_SEGMENTS_PER_SECOND 200 // Length of inner and outer support arms. Measure arm lengths precisely. - #define TPARA_LINKAGE_1 120 // (mm) - #define TPARA_LINKAGE_2 120 // (mm) + #define TPARA_LINKAGE_1 120 // (mm) + #define TPARA_LINKAGE_2 120 // (mm) - // TPARA tower offset (position of Tower relative to bed zero position) - // This needs to be reasonably accurate as it defines the printbed position in the TPARA space. - #define TPARA_OFFSET_X 0 // (mm) - #define TPARA_OFFSET_Y 0 // (mm) - #define TPARA_OFFSET_Z 0 // (mm) + // SCARA tower offset (position of Tower relative to bed zero position) + // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. + #define TPARA_OFFSET_X 0 // (mm) + #define TPARA_OFFSET_Y 0 // (mm) + #define TPARA_OFFSET_Z 0 // (mm) - #define FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly + #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly // Radius around the center where the arm cannot reach #define MIDDLE_DEAD_ZONE_R 0 // (mm) -#endif - -// @section polar -/** - * POLAR Kinematics - * developed by Kadir ilkimen for PolarBear CNC and babyBear - * https://github.com/kadirilkimen/Polar-Bear-Cnc-Machine - * https://github.com/kadirilkimen/babyBear-3D-printer - * - * A polar machine can have different configurations. - * This kinematics is only compatible with the following configuration: - * X : Independent linear - * Y or B : Polar - * Z : Independent linear - * - * For example, PolarBear has CoreXZ plus Polar Y or B. - * - * Motion problem for Polar axis near center / origin: - * - * 3D printing: - * Movements very close to the center of the polar axis take more time than others. - * This brief delay results in more material deposition due to the pressure in the nozzle. - * - * Current Kinematics and feedrate scaling deals with this by making the movement as fast - * as possible. It works for slow movements but doesn't work well with fast ones. A more - * complicated extrusion compensation must be implemented. - * - * Ideally, it should estimate that a long rotation near the center is ahead and will cause - * unwanted deposition. Therefore it can compensate the extrusion beforehand. - * - * Laser cutting: - * Same thing would be a problem for laser engraving too. As it spends time rotating at the - * center point, more likely it will burn more material than it should. Therefore similar - * compensation would be implemented for laser-cutting operations. - * - * Milling: - * This shouldn't be a problem for cutting/milling operations. - */ -//#define POLAR -#if ENABLED(POLAR) - #define DEFAULT_SEGMENTS_PER_SECOND 180 // If movement is choppy try lowering this value - #define PRINTABLE_RADIUS 82.0f // (mm) Maximum travel of X axis - - // Movements fall inside POLAR_FAST_RADIUS are assigned the highest possible feedrate - // to compensate unwanted deposition related to the near-origin motion problem. - #define POLAR_FAST_RADIUS 3.0f // (mm) - - // Radius which is unreachable by the tool. - // Needed if the tool is not perfectly aligned to the center of the polar axis. - #define POLAR_CENTER_OFFSET 0.0f // (mm) - - #define FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly + // Calculated from Calibration Guide and M360 / M114. See https://www.morgan3dp.com/morgan-calibration-guide/ + #define THETA_HOMING_OFFSET 0 + #define PSI_HOMING_OFFSET 0 #endif // @section machine @@ -1132,6 +1056,28 @@ // @section endstops +// Specify here all the endstop connectors that are connected to any endstop or probe. +// Almost all printers will be using one per axis. Probes will use one or more of the +// extra connectors. Leave undefined any used for non-endstop and non-probe purposes. +//#define USE_XMIN_PLUG +//#define USE_YMIN_PLUG +#define USE_ZMIN_PLUG +//#define USE_IMIN_PLUG +//#define USE_JMIN_PLUG +//#define USE_KMIN_PLUG +//#define USE_UMIN_PLUG +//#define USE_VMIN_PLUG +//#define USE_WMIN_PLUG +#define USE_XMAX_PLUG +#define USE_YMAX_PLUG +//#define USE_ZMAX_PLUG +//#define USE_IMAX_PLUG +//#define USE_JMAX_PLUG +//#define USE_KMAX_PLUG +//#define USE_UMAX_PLUG +//#define USE_VMAX_PLUG +//#define USE_WMAX_PLUG + // Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS #if DISABLED(ENDSTOPPULLUPS) @@ -1182,29 +1128,26 @@ //#define ENDSTOPPULLDOWN_ZMIN_PROBE #endif -/** - * Endstop "Hit" State - * Set to the state (HIGH or LOW) that applies to each endstop. - */ -#define X_MIN_ENDSTOP_HIT_STATE HIGH -#define X_MAX_ENDSTOP_HIT_STATE HIGH -#define Y_MIN_ENDSTOP_HIT_STATE HIGH -#define Y_MAX_ENDSTOP_HIT_STATE HIGH -#define Z_MIN_ENDSTOP_HIT_STATE HIGH -#define Z_MAX_ENDSTOP_HIT_STATE HIGH -#define I_MIN_ENDSTOP_HIT_STATE HIGH -#define I_MAX_ENDSTOP_HIT_STATE HIGH -#define J_MIN_ENDSTOP_HIT_STATE HIGH -#define J_MAX_ENDSTOP_HIT_STATE HIGH -#define K_MIN_ENDSTOP_HIT_STATE HIGH -#define K_MAX_ENDSTOP_HIT_STATE HIGH -#define U_MIN_ENDSTOP_HIT_STATE HIGH -#define U_MAX_ENDSTOP_HIT_STATE HIGH -#define V_MIN_ENDSTOP_HIT_STATE HIGH -#define V_MAX_ENDSTOP_HIT_STATE HIGH -#define W_MIN_ENDSTOP_HIT_STATE HIGH -#define W_MAX_ENDSTOP_HIT_STATE HIGH -#define Z_MIN_PROBE_ENDSTOP_HIT_STATE HIGH +// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). +#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe. // Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. @@ -1249,22 +1192,17 @@ /** * Default Axis Steps Per Unit (linear=steps/mm, rotational=steps/°) - * Override with M92 (when enabled below) + * Override with M92 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 415 } - -/** - * Enable support for M92. Disable to save at least ~530 bytes of flash. - */ -#define EDITABLE_STEPS_PER_UNIT +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 385 } /** * Default Max Feed Rate (linear=mm/s, rotational=°/s) * Override with M203 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 65 } +#define DEFAULT_MAX_FEEDRATE { 500, 500, 10, 50 } //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) @@ -1291,16 +1229,10 @@ * M204 P Acceleration * M204 R Retract Acceleration * M204 T Travel Acceleration - * M204 I Angular Acceleration - * M204 J Angular Travel Acceleration */ -#define DEFAULT_ACCELERATION 500 // X, Y, Z ... and E acceleration for printing moves -#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts -#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z ... acceleration for travel (non printing) moves -#if ENABLED(AXIS4_ROTATES) - #define DEFAULT_ANGULAR_ACCELERATION 3000 // I, J, K acceleration for rotational-only printing moves - #define DEFAULT_ANGULAR_TRAVEL_ACCELERATION 3000 // I, J, K acceleration for rotational-only travel (non printing) moves -#endif +#define DEFAULT_ACCELERATION 500 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves /** * Default Jerk limits (mm/s) @@ -1312,8 +1244,8 @@ */ #define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) - #define DEFAULT_XJERK 8.0 - #define DEFAULT_YJERK 8.0 + #define DEFAULT_XJERK 8.0 + #define DEFAULT_YJERK 8.0 #define DEFAULT_ZJERK 0.3 #define DEFAULT_EJERK 5.0 //#define DEFAULT_IJERK 0.3 @@ -1331,6 +1263,8 @@ #endif #endif +#define DEFAULT_EJERK 5.0 // May be used by Linear Advance + /** * Junction Deviation Factor * @@ -1339,7 +1273,7 @@ * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html */ #if DISABLED(CLASSIC_JERK) - #define JUNCTION_DEVIATION_MM 0.08 // (mm) Distance from real junction edge + #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle // for small segments (< 1mm) with large junction angles (> 135°). #endif @@ -1420,9 +1354,6 @@ //#define Z_PROBE_SERVO_NR 0 #ifdef Z_PROBE_SERVO_NR //#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles - //#define Z_SERVO_MEASURE_ANGLE 45 // Use if the servo must move to a "free" position for measuring after deploy - //#define Z_SERVO_INTERMEDIATE_STOW // Stow the probe between points - //#define Z_SERVO_DEACTIVATE_AFTER_STOW // Deactivate the servo when probe is stowed #endif /** @@ -1449,7 +1380,7 @@ * on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position. * * Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING, - * and a minimum Z_CLEARANCE_FOR_HOMING of 10. + * and a minimum Z_HOMING_HEIGHT of 10. */ //#define TOUCH_MI_PROBE #if ENABLED(TOUCH_MI_PROBE) @@ -1458,29 +1389,6 @@ //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) #endif -/** - * Bed Distance Sensor - * - * Measures the distance from bed to nozzle with accuracy of 0.01mm. - * For information about this sensor https://github.com/markniu/Bed_Distance_sensor - * Uses I2C port, so it requires I2C library markyue/Panda_SoftMasterI2C. - */ -//#define BD_SENSOR -#if ENABLED(BD_SENSOR) - //#define BD_SENSOR_PROBE_NO_STOP // Probe bed without stopping at each probe point -#endif - -/** - * BIQU MicroProbe - * - * A lightweight, solenoid-driven probe. - * For information about this sensor https://github.com/bigtreetech/MicroProbe - * - * Also requires: PROBE_ENABLE_DISABLE - */ -//#define BIQU_MICROPROBE_V1 // Triggers HIGH -//#define BIQU_MICROPROBE_V2 // Triggers LOW - // A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) //#define SOLENOID_PROBE @@ -1540,13 +1448,13 @@ // 2 or 3 sets of coordinates for deploying and retracting the spring loaded touch probe on G29, // if servo actuated touch probe is not defined. Uncomment as appropriate for your printer/probe. - #define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, PRINTABLE_RADIUS, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE - #define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, PRINTABLE_RADIUS, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10 - #define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (PRINTABLE_RADIUS) * 0.75, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE #define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // Move the probe into position @@ -1603,23 +1511,17 @@ * | [-] | * O-- FRONT --+ */ -#define NOZZLE_TO_PROBE_OFFSET { -44, -16, 0 } - -// Enable and set to use a specific tool for probing. Disable to allow any tool. -#define PROBING_TOOL 0 -#ifdef PROBING_TOOL - //#define PROBE_TOOLCHANGE_NO_MOVE // Suppress motion on probe tool-change -#endif +#define NOZZLE_TO_PROBE_OFFSET { -44, -16, -0.8 } // Most probes should stay away from the edges of the bed, but // with NOZZLE_AS_PROBE this can be negative for a wider probing area. -#define PROBING_MARGIN 15 +#define PROBING_MARGIN 10 // X and Y axis travel speed (mm/min) between probes -#define XY_PROBE_FEEDRATE (500*60) +#define XY_PROBE_FEEDRATE (200*60) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) -#define Z_PROBE_FEEDRATE_FAST (8*60) +#define Z_PROBE_FEEDRATE_FAST (6*60) // Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2) @@ -1689,18 +1591,13 @@ #define Z_CLEARANCE_DEPLOY_PROBE 10 // (mm) Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // (mm) Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // (mm) Z Clearance between multiple probes -#define Z_PROBE_ERROR_TOLERANCE 3 // (mm) Tolerance for early trigger (<= -probe.offset.z + ZPET) //#define Z_AFTER_PROBING 5 // (mm) Z position after probing is done #define Z_PROBE_LOW_POINT -2 // (mm) Farthest distance below the trigger-point to go before stopping -// For M851 provide ranges for adjusting the X, Y, and Z probe offsets -//#define PROBE_OFFSET_XMIN -50 // (mm) -//#define PROBE_OFFSET_XMAX 50 // (mm) -//#define PROBE_OFFSET_YMIN -50 // (mm) -//#define PROBE_OFFSET_YMAX 50 // (mm) -//#define PROBE_OFFSET_ZMIN -20 // (mm) -//#define PROBE_OFFSET_ZMAX 20 // (mm) +// For M851 give a range for adjusting the Z probe offset +#define Z_PROBE_OFFSET_RANGE_MIN -20 +#define Z_PROBE_OFFSET_RANGE_MAX 20 // Enable the M48 repeatability test to test probe accuracy #define Z_MIN_PROBE_REPEATABILITY_TEST @@ -1735,8 +1632,6 @@ #define PROBING_BED_TEMP 50 #endif -// @section stepper drivers - // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // :{ 0:'Low', 1:'High' } #define X_ENABLE_ON 0 @@ -1768,7 +1663,7 @@ // @section extruder //#define DISABLE_E // Disable the extruder when not stepping -//#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled +#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled // @section motion @@ -1807,13 +1702,10 @@ */ //#define Z_IDLE_HEIGHT Z_HOME_POS -//#define Z_CLEARANCE_FOR_HOMING 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... - // You'll need this much clearance above Z_MAX_POS to avoid grinding. - -//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing (if Z was homed) -//#define XY_AFTER_HOMING { 10, 10 } // (mm) Move to an XY position after homing (and raising Z) +#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... + // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding. -//#define EVENT_GCODE_AFTER_HOMING "M300 P440 S200" // Commands to run after G28 (and move to XY_AFTER_HOMING) +//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z // Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] @@ -1827,26 +1719,11 @@ //#define V_HOME_DIR -1 //#define W_HOME_DIR -1 -/** - * Safety Stops - * If an axis has endstops on both ends the one specified above is used for - * homing, while the other can be used for things like SD_ABORT_ON_ENDSTOP_HIT. - */ -//#define X_SAFETY_STOP -//#define Y_SAFETY_STOP -//#define Z_SAFETY_STOP -//#define I_SAFETY_STOP -//#define J_SAFETY_STOP -//#define K_SAFETY_STOP -//#define U_SAFETY_STOP -//#define V_SAFETY_STOP -//#define W_SAFETY_STOP - // @section geometry // The size of the printable area -#define X_BED_SIZE 230 -#define Y_BED_SIZE 225 +#define X_BED_SIZE 220 +#define Y_BED_SIZE 220 // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. #define X_MIN_POS 0 @@ -1905,13 +1782,11 @@ #define MAX_SOFTWARE_ENDSTOP_W #endif -#if ANY(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) - #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD +#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) + #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #endif /** - * @section filament runout sensors - * * Filament Runout Sensors * Mechanical or opto endstops are used to check for the presence of filament. * @@ -1983,47 +1858,6 @@ // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM // large enough to avoid false positives.) //#define FILAMENT_MOTION_SENSOR - - #if ENABLED(FILAMENT_MOTION_SENSOR) - //#define FILAMENT_SWITCH_AND_MOTION - #if ENABLED(FILAMENT_SWITCH_AND_MOTION) - #define NUM_MOTION_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_MOTION#_PIN for each. - //#define FIL_MOTION1_PIN -1 - - // Override individually if the motion sensors vary - //#define FIL_MOTION1_STATE LOW - //#define FIL_MOTION1_PULLUP - //#define FIL_MOTION1_PULLDOWN - - //#define FIL_MOTION2_STATE LOW - //#define FIL_MOTION2_PULLUP - //#define FIL_MOTION2_PULLDOWN - - //#define FIL_MOTION3_STATE LOW - //#define FIL_MOTION3_PULLUP - //#define FIL_MOTION3_PULLDOWN - - //#define FIL_MOTION4_STATE LOW - //#define FIL_MOTION4_PULLUP - //#define FIL_MOTION4_PULLDOWN - - //#define FIL_MOTION5_STATE LOW - //#define FIL_MOTION5_PULLUP - //#define FIL_MOTION5_PULLDOWN - - //#define FIL_MOTION6_STATE LOW - //#define FIL_MOTION6_PULLUP - //#define FIL_MOTION6_PULLDOWN - - //#define FIL_MOTION7_STATE LOW - //#define FIL_MOTION7_PULLUP - //#define FIL_MOTION7_PULLDOWN - - //#define FIL_MOTION8_STATE LOW - //#define FIL_MOTION8_PULLUP - //#define FIL_MOTION8_PULLDOWN - #endif - #endif #endif #endif @@ -2067,15 +1901,15 @@ */ //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR -#define AUTO_BED_LEVELING_BILINEAR -//#define AUTO_BED_LEVELING_UBL +//#define AUTO_BED_LEVELING_BILINEAR +#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING /** * Commands to execute at the end of G29 probing. * Useful to retract or move the Z probe out of the way. */ -//#define EVENT_GCODE_AFTER_G29 "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" +//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" /** * Normally G28 leaves leveling disabled on completion. Enable one of @@ -2083,7 +1917,7 @@ * leveling immediately after G28. */ #define RESTORE_LEVELING_AFTER_G28 -//#define ENABLE_LEVELING_AFTER_G28 + /** * Auto-leveling needs preheating @@ -2094,6 +1928,15 @@ #define LEVELING_BED_TEMP 60 #endif +/** + * Bed Distance Sensor + * + * Measures the distance from bed to nozzle with accuracy of 0.01mm. + * For information about this sensor https://github.com/markniu/Bed_Distance_sensor + * Uses I2C port, so it requires I2C library markyue/Panda_SoftMasterI2C. + */ +//#define BD_SENSOR + /** * Enable detailed logging of G28, G29, M48, etc. * Turn on with the command 'M111 S32'. @@ -2114,15 +1957,9 @@ */ #define ENABLE_LEVELING_FADE_HEIGHT #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - #define DEFAULT_LEVELING_FADE_HEIGHT 5.0 // (mm) Default fade height. + #define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height. #endif - /** - * Add Z offset (M424 Z) that applies to all moves at the planner level. - * This Z offset will be automatically set to the middle value with G29. - */ - //#define GLOBAL_MESH_Z_OFFSET - /** * For Cartesian machines, instead of dividing moves on mesh boundaries, * split up moves into short segments like a Delta. This follows the @@ -2138,7 +1975,7 @@ #if ENABLED(G26_MESH_VALIDATION) #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for G26. - #define MESH_TEST_HOTEND_TEMP 180 // (°C) Default nozzle temperature for G26. + #define MESH_TEST_HOTEND_TEMP 205 // (°C) Default nozzle temperature for G26. #define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for G26. #define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for G26 XY moves. #define G26_XY_FEEDRATE_TRAVEL 100 // (mm/s) Feedrate for G26 XY travel moves. @@ -2147,10 +1984,10 @@ #endif -#if ANY(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) +#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) // Set the number of grid points per dimension. - #define GRID_MAX_POINTS_X 5 + #define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X // Probe along the Y axis, advancing X after each column @@ -2160,13 +1997,13 @@ // Beyond the probed grid, continue the implied tilt? // Default is to maintain the height of the nearest edge. - #define EXTRAPOLATE_BEYOND_GRID + //#define EXTRAPOLATE_BEYOND_GRID // // Subdivision of the grid by Catmull-Rom method. // Synthesizes intermediate points to produce a more detailed mesh. // - #define ABL_BILINEAR_SUBDIVISION + //#define ABL_BILINEAR_SUBDIVISION #if ENABLED(ABL_BILINEAR_SUBDIVISION) // Number of subdivisions between probe points #define BILINEAR_SUBDIVISIONS 3 @@ -2180,17 +2017,14 @@ //========================= Unified Bed Leveling ============================ //=========================================================================== - #define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh + //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh - #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed - #define GRID_MAX_POINTS_X 9 // Don't use more than 15 points per axis, implementation limited. + #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X //#define UBL_HILBERT_CURVE // Use Hilbert distribution for less travel when probing multiple points - //#define UBL_TILT_ON_MESH_POINTS // Use nearest mesh points with G29 J for better Z reference - //#define UBL_TILT_ON_MESH_POINTS_3POINT // Use nearest mesh points with G29 J0 (3-point) - #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 @@ -2199,25 +2033,6 @@ //#define UBL_MESH_WIZARD // Run several commands in a row to get a complete mesh - /** - * Probing not allowed within the position of an obstacle. - */ - //#define AVOID_OBSTACLES - #if ENABLED(AVOID_OBSTACLES) - #define CLIP_W 23 // Bed clip width, should be padded a few mm over its physical size - #define CLIP_H 14 // Bed clip height, should be padded a few mm over its physical size - - // Obstacle Rectangles defined as { X1, Y1, X2, Y2 } - #define OBSTACLE1 { (X_BED_SIZE) / 4 - (CLIP_W) / 2, 0, (X_BED_SIZE) / 4 + (CLIP_W) / 2, CLIP_H } - #define OBSTACLE2 { (X_BED_SIZE) * 3 / 4 - (CLIP_W) / 2, 0, (X_BED_SIZE) * 3 / 4 + (CLIP_W) / 2, CLIP_H } - #define OBSTACLE3 { (X_BED_SIZE) / 4 - (CLIP_W) / 2, (Y_BED_SIZE) - (CLIP_H), (X_BED_SIZE) / 4 + (CLIP_W) / 2, Y_BED_SIZE } - #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 } - - // The probed grid must be inset for G29 J. This is okay, since it is - // only used to compute a linear transformation for the mesh itself. - #define G29J_MESH_TILT_MARGIN ((CLIP_H) + 1) - #endif - #elif ENABLED(MESH_BED_LEVELING) //=========================================================================== @@ -2241,16 +2056,16 @@ #if ENABLED(LCD_BED_LEVELING) #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. #define LCD_PROBE_Z_RANGE 4 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment - #define MESH_EDIT_MENU // Add a menu to edit mesh points + #define MESH_EDIT_MENU // Add a menu to edit mesh points #endif // Add a menu item to move between bed corners for manual bed adjustment -#define LCD_BED_TRAMMING +//#define LCD_BED_TRAMMING #if ENABLED(LCD_BED_TRAMMING) #define BED_TRAMMING_INSET_LFRB { 30, 30, 30, 30 } // (mm) Left, Front, Right, Back insets #define BED_TRAMMING_HEIGHT 0.0 // (mm) Z height of nozzle at tramming points - #define BED_TRAMMING_Z_HOP 4.0 // (mm) Z raise between tramming points + #define BED_TRAMMING_Z_HOP 4.0 // (mm) Z height of nozzle between tramming points //#define BED_TRAMMING_INCLUDE_CENTER // Move to the center after the last corner //#define BED_TRAMMING_USE_PROBE #if ENABLED(BED_TRAMMING_USE_PROBE) @@ -2308,7 +2123,6 @@ #if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT X_CENTER // (mm) X point for Z homing #define Z_SAFE_HOMING_Y_POINT Y_CENTER // (mm) Y point for Z homing - //#define Z_SAFE_HOMING_POINT_ABSOLUTE // Ignore home offsets (M206) for Z homing position #endif // Homing speeds (linear=mm/min, rotational=°/min) @@ -2390,12 +2204,12 @@ * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) */ -#define EEPROM_SETTINGS // Persistent storage with M500 and M501 +#define EEPROM_SETTINGS // Persistent storage with M500 and M501 //#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save flash. #define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load #if ENABLED(EEPROM_SETTINGS) - #define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. + //#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. //#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build. #endif @@ -2429,20 +2243,20 @@ // Preheat Constants - Up to 10 are supported without changes // #define PREHEAT_1_LABEL "PLA" -#define PREHEAT_1_TEMP_HOTEND 200 +#define PREHEAT_1_TEMP_HOTEND 200 #define PREHEAT_1_TEMP_BED 60 #define PREHEAT_1_TEMP_CHAMBER 35 -#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255 +#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_LABEL "ABS" -#define PREHEAT_2_TEMP_HOTEND 240 -#define PREHEAT_2_TEMP_BED 70 +#define PREHEAT_2_TEMP_HOTEND 240 +#define PREHEAT_2_TEMP_BED 80 #define PREHEAT_2_TEMP_CHAMBER 35 -#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 +#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 + +// @section motion /** - * @section nozzle park - * * Nozzle Park * * Park the nozzle at the given XYZ position on idle or G27. @@ -2465,8 +2279,6 @@ #endif /** - * @section nozzle clean - * * Clean Nozzle Feature * * Adds the G12 command to perform a nozzle cleaning process. @@ -2505,29 +2317,23 @@ //#define NOZZLE_CLEAN_FEATURE #if ENABLED(NOZZLE_CLEAN_FEATURE) - #define NOZZLE_CLEAN_PATTERN_LINE // Provide 'G12 P0' - a simple linear cleaning pattern - #define NOZZLE_CLEAN_PATTERN_ZIGZAG // Provide 'G12 P1' - a zigzag cleaning pattern - #define NOZZLE_CLEAN_PATTERN_CIRCLE // Provide 'G12 P2' - a circular cleaning pattern - - // Default pattern to use when 'P' is not provided to G12. One of the enabled options above. - #define NOZZLE_CLEAN_DEFAULT_PATTERN 0 + // Default number of pattern repetitions + #define NOZZLE_CLEAN_STROKES 12 - #define NOZZLE_CLEAN_STROKES 12 // Default number of pattern repetitions - - #if ENABLED(NOZZLE_CLEAN_PATTERN_ZIGZAG) - #define NOZZLE_CLEAN_TRIANGLES 3 // Default number of triangles - #endif + // Default number of triangles + #define NOZZLE_CLEAN_TRIANGLES 3 // Specify positions for each tool as { { X, Y, Z }, { X, Y, Z } } // Dual hotend system may use { { -20, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }, { 420, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }} #define NOZZLE_CLEAN_START_POINT { { 30, 30, (Z_MIN_POS + 1) } } #define NOZZLE_CLEAN_END_POINT { { 100, 60, (Z_MIN_POS + 1) } } - #if ENABLED(NOZZLE_CLEAN_PATTERN_CIRCLE) - #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 // (mm) Circular pattern radius - #define NOZZLE_CLEAN_CIRCLE_FN 10 // Circular pattern circle number of segments - #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT // Middle point of circle - #endif + // Circular pattern radius + #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 + // Circular pattern circle fragments number + #define NOZZLE_CLEAN_CIRCLE_FN 10 + // Middle point of circle + #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT // Move the nozzle to the initial position after cleaning #define NOZZLE_CLEAN_GOBACK @@ -2627,24 +2433,9 @@ //#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE #endif -// @section media - -/** - * SD CARD - * - * SD Card support is disabled by default. If your controller has an SD slot, - * you must uncomment the following option or it won't work. - */ -#define SDSUPPORT - -/** - * SD CARD: ENABLE CRC - * - * Use CRC checks and retries on the SD communication. - */ -#if ENABLED(SDSUPPORT) - //#define SD_CHECK_AND_RETRY -#endif +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= // @section interface @@ -2685,12 +2476,27 @@ #define DISPLAY_CHARSET_HD44780 WESTERN /** - * Info Screen Style (0:Classic, 1:Průša, 2:CNC) + * Info Screen Style (0:Classic, 1:Průša) * - * :[0:'Classic', 1:'Průša', 2:'CNC'] + * :[0:'Classic', 1:'Průša'] */ #define LCD_INFO_SCREEN_STYLE 0 +/** + * SD CARD + * + * SD Card support is disabled by default. If your controller has an SD slot, + * you must uncomment the following option or it won't work. + */ +#define SDSUPPORT + +/** + * SD CARD: ENABLE CRC + * + * Use CRC checks and retries on the SD communication. + */ +//#define SD_CHECK_AND_RETRY + /** * LCD Menu Items * @@ -2783,18 +2589,6 @@ //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2 //#define LCD_FEEDBACK_FREQUENCY_HZ 5000 -// -// Tone queue size, used to keep beeps from blocking execution. -// Default is 4, or override here. Costs 4 bytes of SRAM per entry. -// -//#define TONE_QUEUE_LENGTH 4 - -// -// A sequence of tones to play at startup, in pairs of tone (Hz), duration (ms). -// Silence in-between tones. -// -//#define STARTUP_TUNE { 698, 300, 0, 50, 523, 50, 0, 25, 494, 50, 0, 25, 523, 100, 0, 50, 554, 300, 0, 100, 523, 300 } - //============================================================================= //======================== LCD / Controller Selection ========================= //======================== (Character-based LCDs) ========================= @@ -2819,7 +2613,7 @@ // // Original RADDS LCD Display+Encoder+SDCardReader -// https://web.archive.org/web/20200719145306/doku.radds.org/dokumentation/lcd-display/ +// https://web.archive.org/web/20200719145306/http://doku.radds.org/dokumentation/lcd-display/ // //#define RADDS_DISPLAY @@ -2885,7 +2679,7 @@ // // Elefu RA Board Control Panel -// https://web.archive.org/web/20140823033947/www.elefu.com/index.php?route=product/product&product_id=53 +// https://web.archive.org/web/20140823033947/http://www.elefu.com/index.php?route=product/product&product_id=53 // //#define RA_CONTROL_PANEL @@ -3017,7 +2811,7 @@ // // Cartesio UI -// https://web.archive.org/web/20180605050442/mauk.cc/webshop/cartesio-shop/electronics/user-interface +// https://web.archive.org/web/20180605050442/http://mauk.cc/webshop/cartesio-shop/electronics/user-interface // //#define CARTESIO_UI @@ -3066,11 +2860,6 @@ // //#define BTT_MINI_12864 -// -// BEEZ MINI 12864 is an alias for FYSETC_MINI_12864_2_1. Type A/B. NeoPixel RGB Backlight. -// -//#define BEEZ_MINI_12864 - // // Factory display for Creality CR-10 / CR-7 / Ender-3 // https://marlinfw.org/docs/hardware/controllers.html#cr10_stockdisplay @@ -3078,9 +2867,6 @@ // Connect to EXP1 on RAMPS and compatible boards. // #define CR10_STOCKDISPLAY -#if ENABLED(CR10_STOCKDISPLAY) - #define RET6_12864_LCD // Specific to the SoC (can either be RET / VET) -#endif // // Ender-2 OEM display, a variant of the MKS_MINI_12864 @@ -3088,14 +2874,14 @@ //#define ENDER2_STOCKDISPLAY // -// ANET and Tronxy 128×64 Full Graphics Controller as used on Anet A6 -// -//#define ANET_FULL_GRAPHICS_LCD - +// ANET and Tronxy Graphical Controller // -// GUCOCO CTC 128×64 Full Graphics Controller as used on GUCOCO CTC A10S +// Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6 +// A clone of the RepRapDiscount full graphics display but with +// different pins/wiring (see pins_ANET_10.h). Enable one of these. // -//#define CTC_A10S_A13 +//#define ANET_FULL_GRAPHICS_LCD +//#define ANET_FULL_GRAPHICS_LCD_ALT_WIRING // // AZSMZ 12864 LCD with SD @@ -3180,6 +2966,15 @@ /** * DGUS Touch Display with DWIN OS. (Choose one.) + * ORIGIN : https://www.aliexpress.com/item/32993409517.html + * FYSETC : https://www.aliexpress.com/item/32961471929.html + * MKS : https://www.aliexpress.com/item/1005002008179262.html + * + * Flash display with DGUS Displays for Marlin: + * - Format the SD card to FAT32 with an allocation size of 4kb. + * - Download files as specified for your type of display. + * - Plug the microSD card into the back of the display. + * - Boot the display and wait for the update to complete. * * ORIGIN (Marlin DWIN_SET) * - Download https://github.com/coldtobi/Marlin_DGUS_Resources @@ -3204,31 +2999,19 @@ * - Download https://github.com/Neo2003/DGUS-reloaded/releases * - Copy the downloaded DWIN_SET folder to the SD card. * - * IA_CREALITY (T5UID1) - * - Download https://github.com/InsanityAutomation/Marlin/raw/CrealityDwin_2.0/TM3D_Combined480272_Landscape_V7.7z - * - Copy the downloaded DWIN_SET folder to the SD card. - * - * E3S1PRO (T5L) - * - Download https://github.com/CrealityOfficial/Ender-3S1/archive/3S1_Plus_Screen.zip - * - Copy the downloaded DWIN_SET folder to the SD card. - * - * CREALITY_TOUCH - * - CR-6 OEM touch screen. A DWIN display with touch. - * * Flash display with DGUS Displays for Marlin: * - Format the SD card to FAT32 with an allocation size of 4kb. * - Download files as specified for your type of display. * - Plug the microSD card into the back of the display. * - Boot the display and wait for the update to complete. - * - * :[ 'ORIGIN', 'FYSETC', 'HYPRECY', 'MKS', 'RELOADED', 'IA_CREALITY', 'E3S1PRO', 'CREALITY_TOUCH' ] */ -//#define DGUS_LCD_UI ORIGIN -#if DGUS_UI_IS(MKS) +//#define DGUS_LCD_UI_ORIGIN +//#define DGUS_LCD_UI_FYSETC +//#define DGUS_LCD_UI_HIPRECY +//#define DGUS_LCD_UI_MKS +//#define DGUS_LCD_UI_RELOADED +#if ENABLED(DGUS_LCD_UI_MKS) #define USE_MKS_GREEN_UI -#elif DGUS_UI_IS(IA_CREALITY) - //#define LCD_SCREEN_ROTATE 90 // Portrait Mode or 800x480 displays - //#define IA_CREALITY_BOOT_DELAY 1500 // (ms) #endif // @@ -3243,34 +3026,20 @@ //#define TOUCH_UI_FTDI_EVE // -// Touch-screen LCD for Anycubic Chiron -// -//#define ANYCUBIC_LCD_CHIRON - -// -// Touch-screen LCD for Anycubic i3 Mega +// Touch-screen LCD for Anycubic printers // //#define ANYCUBIC_LCD_I3MEGA -#if ENABLED(ANYCUBIC_LCD_I3MEGA) +//#define ANYCUBIC_LCD_CHIRON +#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) + //#define ANYCUBIC_LCD_DEBUG //#define ANYCUBIC_LCD_GCODE_EXT // Add ".gcode" to menu entries for DGUS clone compatibility #endif -// -// Touch-screen LCD for Anycubic Vyper -// -//#define ANYCUBIC_LCD_VYPER - // // 320x240 Nextion 2.8" serial TFT Resistive Touch Screen NX3224T028 // //#define NEXTION_TFT -// -// PanelDue touch controller by Escher3D -// http://escher3d.com/pages/order/products/product2.php -// -//#define PANELDUE - // // Third-party or vendor-customized controller interfaces. // Sources should be installed in 'src/lcd/extui'. @@ -3403,27 +3172,7 @@ //#define TFT_LVGL_UI #if ENABLED(TFT_COLOR_UI) - /** - * TFT Font for Color_UI. Choose one of the following: - * - * NOTOSANS - Default font with anti-aliasing. Supports Latin Extended and non-Latin characters. - * UNIFONT - Lightweight font, no anti-aliasing. Supports Latin Extended and non-Latin characters. - * HELVETICA - Lightweight font, no anti-aliasing. Supports Basic Latin (0x0020-0x007F) and Latin-1 Supplement (0x0080-0x00FF) characters only. - */ - #define TFT_FONT NOTOSANS - - /** - * TFT Theme for Color_UI. Choose one of the following or add a new one to 'Marlin/src/lcd/tft/themes' directory - * - * BLUE_MARLIN - Default theme with 'midnight blue' background - * BLACK_MARLIN - Theme with 'black' background - * ANET_BLACK - Theme used for Anet ET4/5 - */ - #define TFT_THEME BLACK_MARLIN - - //#define TFT_SHARED_IO // I/O is shared between TFT display and other devices. Disable async data transfer. - - #define COMPACT_MARLIN_BOOT_LOGO // Use compressed data to save Flash space + //#define TFT_SHARED_IO // SPI is shared between TFT display and other devices. Disable async data transfer #endif #if ENABLED(TFT_LVGL_UI) @@ -3461,9 +3210,8 @@ #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus - #if ANY(TFT_CLASSIC_UI, TFT_COLOR_UI) - //#define NO_BACK_MENU_ITEM // Don't display a top menu item to go back to the parent menu - #endif + //#define DISABLE_ENCODER // Disable the click encoder, if any + //#define TOUCH_IDLE_SLEEP_MINS 5 // (minutes) Display Sleep after a period of inactivity. Set with M255 S. #define TOUCH_SCREEN_CALIBRATION @@ -3473,7 +3221,7 @@ //#define TOUCH_OFFSET_Y 257 //#define TOUCH_ORIENTATION TOUCH_LANDSCAPE - #if ALL(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS) + #if BOTH(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS) #define TOUCH_CALIBRATION_AUTO_SAVE // Auto save successful calibration values to EEPROM #endif @@ -3570,7 +3318,7 @@ //#define RGB_LED //#define RGBW_LED -#if ANY(RGB_LED, RGBW_LED) +#if EITHER(RGB_LED, RGBW_LED) //#define RGB_LED_R_PIN 34 //#define RGB_LED_G_PIN 43 //#define RGB_LED_B_PIN 35 @@ -3612,7 +3360,6 @@ //#define NEOPIXEL_BKGD_INDEX_FIRST 0 // Index of the first background LED //#define NEOPIXEL_BKGD_INDEX_LAST 5 // Index of the last background LED //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W - //#define NEOPIXEL_BKGD_TIMEOUT_COLOR { 25, 25, 25, 0 } // R, G, B, W //#define NEOPIXEL_BKGD_ALWAYS_ON // Keep the backlight on when other NeoPixels are off #endif From c59f11ea4fe0e6e3e42cc4be8e50d0b2d1bd6ed7 Mon Sep 17 00:00:00 2001 From: PeaceNira <72322069+PeaceNira@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:55:23 +0100 Subject: [PATCH 2/4] Updated to 2.1.2.4 - Fixed motor current --- .../Configuration_adv.h | 772 ++++++------------ 1 file changed, 238 insertions(+), 534 deletions(-) diff --git a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration_adv.h b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration_adv.h index a208db91be6..0a026af4dd7 100644 --- a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration_adv.h +++ b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 3.0 with BLTouch/Configuration_adv.h @@ -1,6 +1,6 @@ /** * Marlin 3D Printer Firmware - * Copyright (c) 2023 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm @@ -30,7 +30,7 @@ * * Basic settings can be found in Configuration.h */ -#define CONFIGURATION_ADV_H_VERSION 02010300 +#define CONFIGURATION_ADV_H_VERSION 02010204 // @section develop @@ -279,14 +279,6 @@ //#define TEMP_BOARD_PIN -1 // Board temp sensor pin override. #endif -// -// SoC Sensor options -// -#if TEMP_SENSOR_SOC - #define THERMAL_PROTECTION_SOC // Halt the printer if the SoC sensor leaves the temp range below. - #define SOC_MAXTEMP 85 // (°C) -#endif - /** * Thermal Protection provides additional protection to your printer from damage * and fire. Marlin always includes safe min and max temperature ranges which @@ -307,12 +299,9 @@ #define THERMAL_PROTECTION_PERIOD 40 // (seconds) #define THERMAL_PROTECTION_HYSTERESIS 4 // (°C) - //#define ADAPTIVE_FAN_SLOWING // Slow down the part-cooling fan if the temperature drops - #if ENABLED(ADAPTIVE_FAN_SLOWING) - //#define REPORT_ADAPTIVE_FAN_SLOWING // Report fan slowing activity to the console - #if ANY(MPCTEMP, PIDTEMP) - //#define TEMP_TUNING_MAINTAIN_FAN // Don't slow down the fan speed during M303 or M306 T - #endif + //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops + #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) + //#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303 #endif /** @@ -327,7 +316,7 @@ * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set * below 2. */ - #define WATCH_TEMP_PERIOD 20 // (seconds) + #define WATCH_TEMP_PERIOD 40 // (seconds) #define WATCH_TEMP_INCREASE 2 // (°C) #endif @@ -375,35 +364,10 @@ #if ANY(THERMAL_PROTECTION_HOTENDS, THERMAL_PROTECTION_BED, THERMAL_PROTECTION_CHAMBER, THERMAL_PROTECTION_COOLER) /** - * Thermal Protection Variance Monitor - EXPERIMENTAL - * Kill the machine on a stuck temperature sensor. - * - * This feature may cause some thermally-stable systems to halt. Be sure to test it thoroughly under - * a variety of conditions. Disable if you get false positives. - * - * This feature ensures that temperature sensors are updating regularly. If sensors die or get "stuck", - * or if Marlin stops reading them, temperatures will remain constant while heaters may still be powered! - * This feature only monitors temperature changes so it should catch any issue, hardware or software. - * - * By default it uses the THERMAL_PROTECTION_*_PERIOD constants (above) for the time window, within which - * at least one temperature change must occur, to indicate that sensor polling is working. If any monitored - * heater's temperature remains totally constant (without even a fractional change) during this period, a - * thermal malfunction error occurs and the printer is halted. - * - * A very stable heater might produce a false positive and halt the printer. In this case, try increasing - * the corresponding THERMAL_PROTECTION_*_PERIOD constant a bit. Keep in mind that uncontrolled heating - * shouldn't be allowed to persist for more than a minute or two. - * - * Be careful to distinguish false positives from real sensor issues before disabling this feature. If the - * heater's temperature appears even slightly higher than expected after restarting, you may have a real - * thermal malfunction. Check the temperature graph in your host for any unusual bumps. + * Thermal Protection Variance Monitor - EXPERIMENTAL. + * Kill the machine on a stuck temperature sensor. Disable if you get false positives. */ - //#define THERMAL_PROTECTION_VARIANCE_MONITOR - #if ENABLED(THERMAL_PROTECTION_VARIANCE_MONITOR) - // Variance detection window to override the THERMAL_PROTECTION...PERIOD settings above. - // Keep in mind that some heaters heat up faster than others. - //#define THERMAL_PROTECTION_VARIANCE_MONITOR_PERIOD 30 // (s) Override all watch periods - #endif + //#define THERMAL_PROTECTION_VARIANCE_MONITOR // Detect a sensor malfunction preventing temperature updates #endif #if ENABLED(PIDTEMP) @@ -459,7 +423,7 @@ #define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0 #else - #define PID_FAN_SCALING_LIN_FACTOR (0) // Power-loss due to cooling = Kf * (fan_speed) + #define PID_FAN_SCALING_LIN_FACTOR (0) // Power loss due to cooling = Kf * (fan_speed) #define DEFAULT_Kf 10 // A constant value added to the PID-tuner #define PID_FAN_SCALING_MIN_SPEED 10 // Minimum fan speed at which to enable PID_FAN_SCALING #endif @@ -482,9 +446,6 @@ #define AUTOTEMP #if ENABLED(AUTOTEMP) #define AUTOTEMP_OLDWEIGHT 0.98 // Factor used to weight previous readings (0.0 < value < 1.0) - #define AUTOTEMP_MIN 210 - #define AUTOTEMP_MAX 250 - #define AUTOTEMP_FACTOR 0.1f // Turn on AUTOTEMP on M104/M109 by default using proportions set here //#define AUTOTEMP_PROPORTIONAL #if ENABLED(AUTOTEMP_PROPORTIONAL) @@ -525,8 +486,7 @@ * the minimum temperature your thermistor can read. The lower the better/safer. * This shouldn't need to be more than 30 seconds (30000) */ -//#define PREHEAT_TIME_HOTEND_MS 0 -//#define PREHEAT_TIME_BED_MS 0 +//#define MILLISECONDS_PREHEAT_TIME 0 // @section extruder @@ -587,10 +547,7 @@ // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40 // (°C) Turn on the fan if the board reaches this temperature - // Use TEMP_SENSOR_SOC as a trigger for enabling the controller fan - //#define CONTROLLER_FAN_MIN_SOC_TEMP 40 // (°C) Turn on the fan if the SoC reaches this temperature - - #define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings + #define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings #if ENABLED(CONTROLLER_FAN_EDITABLE) #define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu #endif @@ -602,10 +559,8 @@ * gets it spinning reliably for a short time before setting the requested speed. * (Does not work on Sanguinololu with FAN_SOFT_PWM.) */ -#define FAN_KICKSTART_TIME 100 // (ms) +//#define FAN_KICKSTART_TIME 100 // (ms) //#define FAN_KICKSTART_POWER 180 // 64-255 -//#define FAN_KICKSTART_LINEAR // Set kickstart time linearly based on the speed, e.g., for 20% (51) it will be FAN_KICKSTART_TIME * 0.2. - // Useful for quick speed up to low speed. Kickstart power must be set to 255. // Some coolers may require a non-zero "off" state. //#define FAN_OFF_PWM 1 @@ -664,12 +619,9 @@ #endif /** - * Assign more PWM fans for part cooling, synchronized with Fan 0 + * Use one of the PWM fans as a redundant part-cooling fan */ -//#define REDUNDANT_PART_COOLING_FAN 1 // Index of the first fan to synchronize with Fan 0 -#ifdef REDUNDANT_PART_COOLING_FAN - //#define NUM_REDUNDANT_FANS 1 // Number of sequential fans to synchronize with Fan 0 -#endif +//#define REDUNDANT_PART_COOLING_FAN 2 // Index of the fan to sync with FAN 0. /** * Extruder cooling fans @@ -693,6 +645,7 @@ #define E7_AUTO_FAN_PIN -1 #define CHAMBER_AUTO_FAN_PIN -1 #define COOLER_AUTO_FAN_PIN -1 +#define COOLER_FAN_PIN -1 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed @@ -762,10 +715,10 @@ #if ENABLED(NEOPIXEL_LED) //#define CASE_LIGHT_USE_NEOPIXEL // Use NeoPixel LED as case light #endif - #if ANY(RGB_LED, RGBW_LED) + #if EITHER(RGB_LED, RGBW_LED) //#define CASE_LIGHT_USE_RGB_LED // Use RGB / RGBW LED as case light #endif - #if ANY(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED) + #if EITHER(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED) #define CASE_LIGHT_DEFAULT_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } #endif #endif @@ -858,22 +811,22 @@ * Get the offset by homing X and measuring the error. * Also set with 'M666 X' and stored to EEPROM with 'M500'. * - * - Define the extra endstop pins here to override defaults. No auto-assignment. + * - Use X2_USE_ENDSTOP to set the endstop plug by name. (_XMIN_, _XMAX_, _YMIN_, _YMAX_, _ZMIN_, _ZMAX_) */ #if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE) //#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X //#define X_DUAL_ENDSTOPS // X2 has its own endstop #if ENABLED(X_DUAL_ENDSTOPS) - //#define X2_STOP_PIN X_MAX_PIN // X2 endstop pin override + #define X2_USE_ENDSTOP _XMAX_ // X2 endstop board plug. Don't forget to enable USE_*_PLUG. #define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop #endif #endif -#if HAS_Y2_STEPPER +#if HAS_DUAL_Y_STEPPERS //#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y //#define Y_DUAL_ENDSTOPS // Y2 has its own endstop #if ENABLED(Y_DUAL_ENDSTOPS) - //#define Y2_STOP_PIN Y_MAX_PIN // Y2 endstop pin override + #define Y2_USE_ENDSTOP _YMAX_ // Y2 endstop board plug. Don't forget to enable USE_*_PLUG. #define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop #endif #endif @@ -886,20 +839,20 @@ //#define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops #if ENABLED(Z_MULTI_ENDSTOPS) - //#define Z2_STOP_PIN X_MAX_PIN // Z2 endstop pin override + #define Z2_USE_ENDSTOP _XMAX_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG. #define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop #endif #ifdef Z3_DRIVER_TYPE //#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z #if ENABLED(Z_MULTI_ENDSTOPS) - //#define Z3_STOP_PIN Y_MAX_PIN // Z3 endstop pin override + #define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG. #define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop #endif #endif #ifdef Z4_DRIVER_TYPE //#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z #if ENABLED(Z_MULTI_ENDSTOPS) - //#define Z4_STOP_PIN Z_MAX_PIN // Z4 endstop pin override + #define Z4_USE_ENDSTOP _ZMAX_ // Z4 endstop board plug. Don't forget to enable USE_*_PLUG. #define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Z endstop #endif #endif @@ -933,7 +886,7 @@ //#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (linear=mm, rotational=°) Backoff from endstops after homing //#define XY_COUNTERPART_BACKOFF_MM 0 // (mm) Backoff X after homing Y, and vice-versa -#define QUICK_HOME // If G28 contains XY do a diagonal move first +#define QUICK_HOME // If G28 contains XY do a diagonal move first //#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X //#define HOME_Z_FIRST // Home Z first. Requires a real endstop (not a probe). //#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first @@ -958,7 +911,7 @@ // Safety: The probe needs time to recognize the command. // Minimum command delay (ms). Enable and increase if needed. - #define BLTOUCH_DELAY 500 + #define BLTOUCH_DELAY 250 /** * Settings for BLTOUCH Classic 1.2, 1.3 or BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1, and most clones: @@ -1007,12 +960,6 @@ */ //#define BLTOUCH_HS_MODE true - #ifdef BLTOUCH_HS_MODE - // The probe Z offset (M851 Z) is the height at which the probe triggers. - // This must be large enough to keep the probe pin off the bed and prevent - // it from snagging on the bed clips. - #define BLTOUCH_HS_EXTRA_CLEARANCE 7 // Extra Z Clearance - #endif #endif // BLTOUCH @@ -1073,7 +1020,7 @@ // On a 300mm bed a 5% grade would give a misalignment of ~1.5cm #define G34_MAX_GRADE 5 // (%) Maximum incline that G34 will handle - #define Z_STEPPER_ALIGN_ITERATIONS 3 // Number of iterations to apply during alignment + #define Z_STEPPER_ALIGN_ITERATIONS 5 // Number of iterations to apply during alignment #define Z_STEPPER_ALIGN_ACC 0.02 // Stop iterating early if the accuracy is better than this #define RESTORE_LEVELING_AFTER_G34 // Restore leveling after G34 is done? // After G34, re-home Z (G28 Z) or just calculate it from the last probe heights? @@ -1115,102 +1062,39 @@ // @section motion control -/** - * Fixed-time-based Motion Control -- EXPERIMENTAL - * Enable/disable and set parameters with G-code M493. - * See ft_types.h for named values used by FTM options. - */ -//#define FT_MOTION -#if ENABLED(FT_MOTION) - //#define FTM_IS_DEFAULT_MOTION // Use FT Motion as the factory default? - #define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (DISABLED, Z_BASED, MASS_BASED) - #define FTM_DEFAULT_SHAPER_X ftMotionShaper_NONE // Default shaper mode on X axis (NONE, ZV, ZVD, ZVDD, ZVDDD, EI, 2HEI, 3HEI, MZV) - #define FTM_DEFAULT_SHAPER_Y ftMotionShaper_NONE // Default shaper mode on Y axis - #define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers - #define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers - #define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false) - #define FTM_LINEAR_ADV_DEFAULT_K 0 // Default linear advance gain, integer value. (Acceleration-based scaling factor.) - #define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis - #define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis - - #define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis - #define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis - - //#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters - - /** - * Advanced configuration - */ - #define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented) - #if ENABLED(FTM_UNIFIED_BWS) - #define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2 - #else - #define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS - #define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS - #endif - - #define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS) - #define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS) - - #if DISABLED(COREXY) - #define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update - - // Use this to adjust the time required to consume the command buffer. - // Try increasing this value if stepper motion is choppy. - #define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers - - #else - // CoreXY motion needs a larger buffer size. These values are based on our testing. - #define FTM_STEPPER_FS 30000 - #define FTM_STEPPERCMD_BUFF_SIZE 6000 - #endif - - #define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time - #define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm - #define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps - - #define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency - #define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE. - #define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!) - // Calculate as: - // ZV : FTM_RATIO / 2 - // ZVD, MZV : FTM_RATIO - // 2HEI : FTM_RATIO * 3 / 2 - // 3HEI : FTM_RATIO * 2 -#endif - /** * Input Shaping -- EXPERIMENTAL * * Zero Vibration (ZV) Input Shaping for X and/or Y movements. * * This option uses a lot of SRAM for the step buffer. The buffer size is - * calculated automatically from SHAPING_FREQ_[XYZ], DEFAULT_AXIS_STEPS_PER_UNIT, + * calculated automatically from SHAPING_FREQ_[XY], DEFAULT_AXIS_STEPS_PER_UNIT, * DEFAULT_MAX_FEEDRATE and ADAPTIVE_STEP_SMOOTHING. The default calculation can * be overridden by setting SHAPING_MIN_FREQ and/or SHAPING_MAX_FEEDRATE. * The higher the frequency and the lower the feedrate, the smaller the buffer. * If the buffer is too small at runtime, input shaping will have reduced * effectiveness during high speed movements. * - * Tune with M593 D F + * Tune with M593 D F: + * + * D Set the zeta/damping factor. If axes (X, Y, etc.) are not specified, set for all axes. + * F Set the frequency. If axes (X, Y, etc.) are not specified, set for all axes. + * T[map] Input Shaping type, 0:ZV, 1:EI, 2:2H EI (not implemented yet) + * X<1> Set the given parameters only for the X axis. + * Y<1> Set the given parameters only for the Y axis. */ //#define INPUT_SHAPING_X //#define INPUT_SHAPING_Y -//#define INPUT_SHAPING_Z -#if ANY(INPUT_SHAPING_X, INPUT_SHAPING_Y, INPUT_SHAPING_Z) +#if EITHER(INPUT_SHAPING_X, INPUT_SHAPING_Y) #if ENABLED(INPUT_SHAPING_X) - #define SHAPING_FREQ_X 40.0 // (Hz) The default dominant resonant frequency on the X axis. - #define SHAPING_ZETA_X 0.15 // Damping ratio of the X axis (range: 0.0 = no damping to 1.0 = critical damping). + #define SHAPING_FREQ_X 40 // (Hz) The default dominant resonant frequency on the X axis. + #define SHAPING_ZETA_X 0.15f // Damping ratio of the X axis (range: 0.0 = no damping to 1.0 = critical damping). #endif #if ENABLED(INPUT_SHAPING_Y) - #define SHAPING_FREQ_Y 40.0 // (Hz) The default dominant resonant frequency on the Y axis. - #define SHAPING_ZETA_Y 0.15 // Damping ratio of the Y axis (range: 0.0 = no damping to 1.0 = critical damping). - #endif - #if ENABLED(INPUT_SHAPING_Z) - #define SHAPING_FREQ_Z 40.0 // (Hz) The default dominant resonant frequency on the Z axis. - #define SHAPING_ZETA_Z 0.15 // Damping ratio of the Z axis (range: 0.0 = no damping to 1.0 = critical damping). + #define SHAPING_FREQ_Y 40 // (Hz) The default dominant resonant frequency on the Y axis. + #define SHAPING_ZETA_Y 0.15f // Damping ratio of the Y axis (range: 0.0 = no damping to 1.0 = critical damping). #endif - //#define SHAPING_MIN_FREQ 20.0 // (Hz) By default the minimum of the shaping frequencies. Override to affect SRAM usage. + //#define SHAPING_MIN_FREQ 20 // By default the minimum of the shaping frequencies. Override to affect SRAM usage. //#define SHAPING_MAX_STEPRATE 10000 // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage. //#define SHAPING_MENU // Add a menu to the LCD to set shaping parameters. #endif @@ -1222,17 +1106,17 @@ // Add a Duplicate option for well-separated conjoined nozzles //#define MULTI_NOZZLE_DUPLICATION -// By default stepper drivers require an active-HIGH signal but some high-power drivers require an active-LOW signal to step. -#define STEP_STATE_X HIGH -#define STEP_STATE_Y HIGH -#define STEP_STATE_Z HIGH -#define STEP_STATE_I HIGH -#define STEP_STATE_J HIGH -#define STEP_STATE_K HIGH -#define STEP_STATE_U HIGH -#define STEP_STATE_V HIGH -#define STEP_STATE_W HIGH -#define STEP_STATE_E HIGH +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +#define INVERT_X_STEP_PIN false +#define INVERT_Y_STEP_PIN false +#define INVERT_Z_STEP_PIN false +#define INVERT_I_STEP_PIN false +#define INVERT_J_STEP_PIN false +#define INVERT_K_STEP_PIN false +#define INVERT_U_STEP_PIN false +#define INVERT_V_STEP_PIN false +#define INVERT_W_STEP_PIN false +#define INVERT_E_STEP_PIN false /** * Idle Stepper Shutdown @@ -1252,12 +1136,8 @@ #define DISABLE_IDLE_E // Shut down all idle extruders // Default Minimum Feedrates for printing and travel moves -#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S. -#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T. -#if HAS_ROTATIONAL_AXES - #define DEFAULT_ANGULAR_MINIMUMFEEDRATE 0.0 // (°/s) Minimum feedrate for rotational-only moves. Set with M205 P. - #define DEFAULT_ANGULAR_MINTRAVELFEEDRATE 0.0 // (°/s) Minimum travel feedrate for rotational-only moves. Set with M205 Q. -#endif +#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum feedrate. Set with M205 S. +#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum travel feedrate. Set with M205 T. // Minimum time that a segment needs to take as the buffer gets emptied #define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. @@ -1275,11 +1155,16 @@ * See https://hydraraptor.blogspot.com/2010/12/frequency-limit.html * Use M201 F S to change limits at runtime. */ -#define XY_FREQUENCY_LIMIT 10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F. +//#define XY_FREQUENCY_LIMIT 10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F. #ifdef XY_FREQUENCY_LIMIT #define XY_FREQUENCY_MIN_PERCENT 5 // (%) Minimum FR percentage to apply. Set with M201 S. #endif +// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end +// of the buffer and all stops. This should not be much greater than zero and should only be changed +// if unwanted behavior is observed on a user's machine when running at very slow speeds. +#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s) + // // Backlash Compensation // Adds extra movement to axes on direction-changes to account for backlash. @@ -1335,6 +1220,8 @@ //#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..." //#define CALIBRATION_SCRIPT_POST "M500\nM117 Calibration data saved" + #define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm + #define CALIBRATION_FEEDRATE_SLOW 60 // mm/min #define CALIBRATION_FEEDRATE_FAST 1200 // mm/min #define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/min @@ -1383,12 +1270,6 @@ #endif #endif -/** - * Multi-stepping sends steps in bursts to reduce MCU usage for high step-rates. - * This allows higher feedrates than the MCU could otherwise support. - */ -#define MULTISTEPPING_LIMIT 16 //: [1, 2, 4, 8, 16, 32, 64, 128] - /** * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible @@ -1440,7 +1321,7 @@ */ //#define DIGIPOT_MCP4018 // Requires https://github.com/felias-fogg/SlowSoftI2CMaster //#define DIGIPOT_MCP4451 -#if ANY(DIGIPOT_MCP4018, DIGIPOT_MCP4451) +#if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451) #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT:4 AZTEEG_X3_PRO:8 MKS_SBASE:5 MIGHTYBOARD_REVE:5 // Actual motor currents in Amps. The number of entries must match DIGIPOT_I2C_NUM_CHANNELS. @@ -1475,7 +1356,6 @@ #if IS_ULTIPANEL #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" #define ULTIPANEL_FEEDMULTIPLY // Encoder sets the feedrate multiplier on the Status Screen - //#define ULTIPANEL_FLOWPERCENT // Encoder sets the flow percentage on the Status Screen #endif #endif @@ -1493,18 +1373,23 @@ #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440 #endif -#if HAS_BED_PROBE && ANY(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI) - //#define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu +// +// LCD Backlight Timeout +// +//#define LCD_BACKLIGHT_TIMEOUT_MINS 1 // (minutes) Timeout before turning off the backlight + +#if HAS_BED_PROBE && EITHER(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI) + #define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu #if ENABLED(PROBE_OFFSET_WIZARD) /** * Enable to init the Probe Z-Offset when starting the Wizard. * Use a height slightly above the estimated nozzle-to-probe Z offset. * For example, with an offset of -5, consider a starting height of -4. */ - //#define PROBE_OFFSET_WIZARD_START_Z -4.0 + //#define PROBE_OFFSET_WIZARD_START_Z -1.0 // Set a convenient position to do the calibration (probing point and nozzle/bed-distance) - //#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } + #define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } #endif #endif @@ -1535,77 +1420,32 @@ //#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages #endif - /** - * MarlinUI "Move Axis" menu distances. Comma-separated list. - * Values are displayed as-defined, so always use plain numbers here. - * Axis moves <= 1/2 the axis length and Extruder moves <= EXTRUDE_MAXLENGTH - * will be shown in the move submenus. - */ - - #define MANUAL_MOVE_DISTANCE_MM 10, 1.0, 0.1 // (mm) - //#define MANUAL_MOVE_DISTANCE_MM 100, 50, 10, 1.0, 0.1 // (mm) - //#define MANUAL_MOVE_DISTANCE_MM 500, 100, 50, 10, 1.0, 0.1 // (mm) - - // Manual move distances for INCH_MODE_SUPPORT - #define MANUAL_MOVE_DISTANCE_IN 0.100, 0.010, 0.001 // (in) - //#define MANUAL_MOVE_DISTANCE_IN 1.000, 0.500, 0.100, 0.010, 0.001 // (in) - //#define MANUAL_MOVE_DISTANCE_IN 5.000, 1.000, 0.500, 0.100, 0.010, 0.001 // (in) - - // Manual move distances for rotational axes - #define MANUAL_MOVE_DISTANCE_DEG 90, 45, 22.5, 5, 1 // (°) - // BACK menu items keep the highlight at the top //#define TURBO_BACK_MENU_ITEM // Insert a menu for preheating at the top level to allow for quick access //#define PREHEAT_SHORTCUT_MENU_ITEM - // Add Configuration > Debug Menu > Endstop Test for endstop/probe/runout testing - //#define LCD_ENDSTOP_TEST - #endif // HAS_MARLINUI_MENU -#if HAS_DISPLAY - /** - * *** VENDORS PLEASE READ *** - * - * Marlin allows you to add a custom boot image for Graphical LCDs. - * With this option Marlin will first show your custom screen followed - * by the standard Marlin logo with version number and web URL. - * - * We encourage you to take advantage of this new feature and we also - * respectfully request that you retain the unmodified Marlin boot screen. - */ - #define SHOW_BOOTSCREEN // Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** - #if ENABLED(SHOW_BOOTSCREEN) - #define BOOTSCREEN_TIMEOUT 3000 // (ms) Total Duration to display the boot screen(s) - #if ANY(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI) - #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash) - #endif - #if HAS_MARLINUI_U8GLIB - //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of flash. - #endif - #if ANY(HAS_MARLINUI_U8GLIB, TOUCH_UI_FTDI_EVE, HAS_MARLINUI_HD44780) - #define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Bootscreen.h on startup. - #endif - #endif - - #if HAS_MARLINUI_U8GLIB - #define CUSTOM_STATUS_SCREEN_IMAGE // Show the bitmap in Marlin/_Statusscreen.h on the status screen. - #endif - +#if ANY(HAS_DISPLAY, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI) //#define SOUND_MENU_ITEM // Add a mute option to the LCD menu #define SOUND_ON_DEFAULT // Buzzer/speaker default enabled state +#endif - #if HAS_WIRED_LCD - //#define DOUBLE_LCD_FRAMERATE // Not recommended for slow boards. - #endif - +#if EITHER(HAS_DISPLAY, DWIN_LCD_PROUI) // The timeout to return to the status screen from sub-menus //#define LCD_TIMEOUT_TO_STATUS 15000 // (ms) + #if ENABLED(SHOW_BOOTSCREEN) + #define BOOTSCREEN_TIMEOUT 3000 // (ms) Total Duration to display the boot screen(s) + #if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI) + #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash) + #endif + #endif + // Scroll a longer status message into view - #define STATUS_MESSAGE_SCROLLING + //#define STATUS_MESSAGE_SCROLLING // Apply a timeout to low-priority status messages //#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds) @@ -1616,9 +1456,6 @@ // Show the E position (filament used) during printing //#define LCD_SHOW_E_TOTAL - // Display a negative temperature instead of "err" - //#define SHOW_TEMPERATURE_BELOW_ZERO - /** * LED Control Menu * Add LED Control to the LCD menu @@ -1645,31 +1482,22 @@ #endif #endif -#endif // HAS_DISPLAY - -#if HAS_FEEDRATE_EDIT - #define SPEED_EDIT_MIN 10 // (%) Feedrate percentage edit range minimum - #define SPEED_EDIT_MAX 999 // (%) Feedrate percentage edit range maximum -#endif -#if HAS_FLOW_EDIT - #define FLOW_EDIT_MIN 10 // (%) Flow percentage edit range minimum - #define FLOW_EDIT_MAX 999 // (%) Flow percentage edit range maximum -#endif +#endif // HAS_DISPLAY || DWIN_LCD_PROUI // Add 'M73' to set print job progress, overrides Marlin's built-in estimate -#define SET_PROGRESS_MANUALLY +//#define SET_PROGRESS_MANUALLY #if ENABLED(SET_PROGRESS_MANUALLY) #define SET_PROGRESS_PERCENT // Add 'P' parameter to set percentage done - //#define SET_REMAINING_TIME // Add 'R' parameter to set remaining time + #define SET_REMAINING_TIME // Add 'R' parameter to set remaining time //#define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction //#define M73_REPORT // Report M73 values to host - #if ALL(M73_REPORT, HAS_MEDIA) + #if BOTH(M73_REPORT, SDSUPPORT) #define M73_REPORT_SD_ONLY // Report only when printing from SD #endif #endif // LCD Print Progress options. Multiple times may be displayed in turn. -#if HAS_DISPLAY && ANY(HAS_MEDIA, SET_PROGRESS_MANUALLY) +#if HAS_DISPLAY && EITHER(SDSUPPORT, SET_PROGRESS_MANUALLY) #define SHOW_PROGRESS_PERCENT // Show print progress percentage (doesn't affect progress bar) #define SHOW_ELAPSED_TIME // Display elapsed printing time (prefix 'E') //#define SHOW_REMAINING_TIME // Display estimated time to completion (prefix 'R') @@ -1678,7 +1506,7 @@ #endif //#define PRINT_PROGRESS_SHOW_DECIMALS // Show/report progress with decimal digits, not all UIs support this - #if ANY(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) + #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing #if ENABLED(LCD_PROGRESS_BAR) #define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar @@ -1690,7 +1518,7 @@ #endif #endif -#if HAS_MEDIA +#if ENABLED(SDSUPPORT) /** * SD Card SPI Speed * May be required to resolve "volume init" errors. @@ -1725,10 +1553,9 @@ //#define NO_SD_AUTOSTART // Remove auto#.g file support completely to save some Flash, SRAM //#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files - //#define ONE_CLICK_PRINT // Prompt to print the newest file on inserted media - #define BROWSE_MEDIA_ON_INSERT // Open the file browser when media is inserted + //#define BROWSE_MEDIA_ON_INSERT // Open the file browser when media is inserted - //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu + #define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu #define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") @@ -1746,25 +1573,19 @@ */ //#define POWER_LOSS_RECOVERY #if ENABLED(POWER_LOSS_RECOVERY) - #define PLR_ENABLED_DEFAULT false // Power-Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) - //#define PLR_BED_THRESHOLD BED_MAXTEMP // (°C) Skip user confirmation at or above this bed temperature (0 to disable) - - //#define POWER_LOSS_PIN 44 // Pin to detect power-loss. Set to -1 to disable default pin on boards without module, or comment to use board default. - //#define POWER_LOSS_STATE HIGH // State of pin indicating power-loss - //#define POWER_LOSS_PULLUP // Set pullup / pulldown as appropriate for your sensor + #define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) + //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss + //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) + //#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module. + //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss + //#define POWER_LOSS_PULLUP // Set pullup / pulldown as appropriate for your sensor //#define POWER_LOSS_PULLDOWN - - //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power-loss with UPS) - //#define POWER_LOSS_PURGE_LEN 20 // (mm) Length of filament to purge on resume + //#define POWER_LOSS_PURGE_LEN 20 // (mm) Length of filament to purge on resume + //#define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail. Requires backup power. // Without a POWER_LOSS_PIN the following option helps reduce wear on the SD card, // especially with "vase mode" printing. Set too high and vases cannot be continued. - #define POWER_LOSS_MIN_Z_CHANGE 0.05 // (mm) Minimum Z change before saving power-loss data - - //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power-loss - #if ENABLED(BACKUP_POWER_SUPPLY) - //#define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail - #endif + #define POWER_LOSS_MIN_Z_CHANGE 0.05 // (mm) Minimum Z change before saving power-loss data // Enable if Z homing is needed for proper recovery. 99.9% of the time this should be disabled! //#define POWER_LOSS_RECOVER_ZHOME @@ -1796,17 +1617,16 @@ * - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!) * - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!) */ - #define SDCARD_SORT_ALPHA + //#define SDCARD_SORT_ALPHA // SD Card Sorting options #if ENABLED(SDCARD_SORT_ALPHA) - #define SDSORT_REVERSE false // Default to sorting file names in reverse order. #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each. #define SDSORT_FOLDERS -1 // -1=above 0=none 1=below #define SDSORT_GCODE false // Enable G-code M34 to set sorting behaviors: M34 S<-1|0|1> F<-1|0|1> - #define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting. + #define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting. #define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.) - #define SDSORT_CACHE_NAMES true // Keep sorted items in RAM longer for speedy performance. Most expensive option. + #define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option. #define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use! #define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting. // Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM. @@ -1816,11 +1636,11 @@ // LCD's font must contain the characters. Check your selected LCD language. //#define UTF_FILENAME_SUPPORT - #define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' + #define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol //#define M20_TIMESTAMP_SUPPORT // Include timestamps by adding the 'T' flag to M20 commands - #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!) @@ -1921,7 +1741,7 @@ * * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ] */ - #define SDCARD_CONNECTION ONBOARD + //#define SDCARD_CONNECTION LCD // Enable if SD detect is rendered useless (e.g., by using an SD extender) //#define NO_SD_DETECT @@ -1938,7 +1758,7 @@ #define DEFAULT_SHARED_VOLUME SV_USB_FLASH_DRIVE #endif -#endif // HAS_MEDIA +#endif // SDSUPPORT /** * By default an onboard SD card reader may be shared as a USB mass- @@ -1971,6 +1791,17 @@ // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. //#define USE_SMALL_INFOFONT + /** + * Graphical Display Sleep + * + * The U8G library provides sleep / wake functions for SH1106, SSD1306, + * SSD1309, and some other DOGM displays. + * Enable this option to save energy and prevent OLED pixel burn-in. + * Adds the menu item Configuration > LCD Timeout (m) to set a wait period + * from 0 (disabled) to 99 minutes. + */ + //#define DISPLAY_SLEEP_MINUTES 2 // (minutes) Timeout before turning off the screen. Set with M255 S. + /** * ST7920-based LCDs can emulate a 16 x 4 character display using * the ST7920 character-generator for very fast screen updates. @@ -2011,10 +1842,8 @@ //#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap //#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames - - // Only one STATUS_HEAT_* option can be enabled //#define STATUS_HEAT_PERCENT // Show heating in a progress bar - //#define STATUS_HEAT_POWER // Show heater output power as a vertical bar + //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of flash. // Frivolous Game Options //#define MARLIN_BRICKOUT @@ -2041,11 +1870,11 @@ #define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates - #if DGUS_UI_IS(FYSETC, MKS, HIPRECY) + #if ANY(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS, DGUS_LCD_UI_HIPRECY) #define DGUS_PRINT_FILENAME // Display the filename during printing #define DGUS_PREHEAT_UI // Display a preheat screen during heatup - #if DGUS_UI_IS(FYSETC, MKS) + #if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS) //#define DGUS_UI_MOVE_DIS_OPTION // Disabled by default for FYSETC and MKS #else #define DGUS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY @@ -2062,22 +1891,6 @@ #define DGUS_UI_WAITING_STATUS 10 #define DGUS_UI_WAITING_STATUS_PERIOD 8 // Increase to slower waiting status looping #endif - - #elif DGUS_UI_IS(E3S1PRO) - /** - * The stock Ender-3 S1 Pro/Plus display firmware has rather poor SD file handling. - * - * The autoscroll is mainly useful for status messages, filenames, and the "About" page. - * - * NOTE: The Advanced SD Card option is affected by the stock touchscreen firmware, so - * pages 5 and up will display "4/4". This may get fixed in a screen firmware update. - */ - #define DGUS_SOFTWARE_AUTOSCROLL // Enable long text software auto-scroll - #define DGUS_AUTOSCROLL_START_CYCLES 1 // Refresh cycles without scrolling at the beginning of text strings - #define DGUS_AUTOSCROLL_END_CYCLES 1 // ... at the end of text strings - - #define DGUS_ADVANCED_SDCARD // Allow more than 20 files and navigating directories - #define DGUS_USERCONFIRM // Reuse the SD Card page to show various messages #endif #endif // HAS_DGUS_LCD @@ -2109,7 +1922,7 @@ // // Specify additional languages for the UI. Default specified by LCD_LANGUAGE. // -#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI, ANYCUBIC_LCD_VYPER) +#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI) //#define LCD_LANGUAGE_2 fr //#define LCD_LANGUAGE_3 de //#define LCD_LANGUAGE_4 es @@ -2219,22 +2032,6 @@ //#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan #endif -/** - * Display Sleep - * Enable this option to save energy and prevent OLED pixel burn-in. - */ -//#define DISPLAY_SLEEP_MINUTES 2 // (minutes) Timeout before turning off the screen - -/** - * LCD Backlight Timeout - * Requires a display with a controllable backlight - */ -//#define LCD_BACKLIGHT_TIMEOUT_MINS 1 // (minutes) Timeout before turning off the backlight - -#if defined(DISPLAY_SLEEP_MINUTES) || defined(LCD_BACKLIGHT_TIMEOUT_MINS) - #define EDITABLE_DISPLAY_TIMEOUT // Edit sleep / backlight timeout with M255 S and a menu item -#endif - // // ADC Button Debounce // @@ -2269,16 +2066,16 @@ */ #define BABYSTEPPING #if ENABLED(BABYSTEPPING) - //#define EP_BABYSTEPPING // M293/M294 babystepping with EMERGENCY_PARSER support + //#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR //#define BABYSTEP_WITHOUT_HOMING - #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) + //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! - //#define BABYSTEP_INVERT_Z // Enable if Z babysteps should go the other way + #define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way //#define BABYSTEP_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps #define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep #define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep - #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. // Note: Extra time may be added to mitigate controller latency. @@ -2288,16 +2085,12 @@ #endif #endif - #define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 - #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping - //#define BABYSTEP_GLOBAL_Z // Combine M424 Z and Babystepping - - #if ANY(BABYSTEP_ZPROBE_OFFSET, BABYSTEP_GLOBAL_Z) - #if ENABLED(BABYSTEP_ZPROBE_OFFSET) - //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets - #endif - //#define BABYSTEP_GFX_OVERLAY // Enable graphical overlay on Z-offset editor + //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping + #if ENABLED(BABYSTEP_ZPROBE_OFFSET) + //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets + //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor #endif #endif @@ -2318,27 +2111,19 @@ * * See https://marlinfw.org/docs/features/lin_advance.html for full instructions. */ -#define LIN_ADVANCE +//#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) #if ENABLED(DISTINCT_E_FACTORS) - #define ADVANCE_K { 0.0 } // (mm) Compression length per 1mm/s extruder speed, per extruder + #define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder #else - #define ADVANCE_K 0.0 // (mm) Compression length applying to all extruders + #define ADVANCE_K 0.22 // (mm) Compression length applying to all extruders #endif //#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L. //#define LA_DEBUG // Print debug information to serial during operation. Disable for production use. + //#define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends. //#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz. #endif -/** - * Nonlinear Extrusion Control - * - * Control extrusion rate based on instantaneous extruder velocity. Can be used to correct for - * underextrusion at high extruder speeds that are otherwise well-behaved (i.e., not skipping). - * For better results also enable ADAPTIVE_STEP_SMOOTHING. - */ -//#define NONLINEAR_EXTRUSION - // @section leveling /** @@ -2360,10 +2145,13 @@ * Points to probe for all 3-point Leveling procedures. * Override if the automatically selected points are inadequate. */ -#if NEEDS_THREE_PROBE_POINTS - //#define PROBE_PT_1 { 15, 180 } // (mm) { x, y } - //#define PROBE_PT_2 { 15, 20 } - //#define PROBE_PT_3 { 170, 20 } +#if EITHER(AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_UBL) + //#define PROBE_PT_1_X 15 + //#define PROBE_PT_1_Y 180 + //#define PROBE_PT_2_X 15 + //#define PROBE_PT_2_Y 20 + //#define PROBE_PT_3_X 170 + //#define PROBE_PT_3_Y 20 #endif /** @@ -2392,7 +2180,7 @@ //#define PROBING_MARGIN_BACK PROBING_MARGIN #endif -#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) +#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) // Override the mesh area if the automatic (max) area is too large //#define MESH_MIN_X MESH_INSET //#define MESH_MIN_Y MESH_INSET @@ -2400,7 +2188,7 @@ //#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) #endif -#if ALL(AUTO_BED_LEVELING_UBL, EEPROM_SETTINGS) +#if BOTH(AUTO_BED_LEVELING_UBL, EEPROM_SETTINGS) //#define OPTIMIZED_MESH_STORAGE // Store mesh with less precision to save EEPROM space #endif @@ -2472,7 +2260,7 @@ #endif // G76 options - #if ALL(PTC_PROBE, PTC_BED) + #if BOTH(PTC_PROBE, PTC_BED) // Park position to wait for probe cooldown #define PTC_PARK_POS { 0, 0, 100 } @@ -2507,14 +2295,14 @@ #define MIN_CIRCLE_SEGMENTS 72 // Minimum number of segments in a complete circle //#define ARC_SEGMENTS_PER_SEC 50 // Use the feedrate to choose the segment length #define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections - #define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles + //#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles //#define SF_ARC_FIX // Enable only if using SkeinForge with "Arc Point" fillet procedure #endif // G5 Bézier Curve Support with XYZE destination and IJPQ offsets //#define BEZIER_CURVE_SUPPORT // Requires ~2666 bytes -#if ANY(ARC_SUPPORT, BEZIER_CURVE_SUPPORT) +#if EITHER(ARC_SUPPORT, BEZIER_CURVE_SUPPORT) //#define CNC_WORKSPACE_PLANES // Allow G2/G3/G5 to operate in XY, ZX, or YZ planes #endif @@ -2563,28 +2351,27 @@ //#define MINIMUM_STEPPER_PRE_DIR_DELAY 650 /** - * Minimum stepper driver pulse width (in ns) - * If undefined, these defaults (from Conditionals_adv.h) apply: - * 100 : Minimum for TMC2xxx stepper drivers - * 500 : Minimum for LV8729 - * 1000 : Minimum for A4988 and A5984 stepper drivers - * 2000 : Minimum for DRV8825 stepper drivers - * 3000 : Minimum for TB6600 stepper drivers - * 30000 : Minimum for TB6560 stepper drivers + * Minimum stepper driver pulse width (in µs) + * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers + * 0 : Minimum 500ns for LV8729, adjusted in stepper.h + * 1 : Minimum for A4988 and A5984 stepper drivers + * 2 : Minimum for DRV8825 stepper drivers + * 3 : Minimum for TB6600 stepper drivers + * 30 : Minimum for TB6560 stepper drivers * * Override the default value based on the driver type set in Configuration.h. */ -//#define MINIMUM_STEPPER_PULSE_NS 2000 +//#define MINIMUM_STEPPER_PULSE 2 /** * Maximum stepping rate (in Hz) the stepper driver allows - * If undefined, these defaults (from Conditionals_adv.h) apply: + * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE) * 5000000 : Maximum for TMC2xxx stepper drivers * 1000000 : Maximum for LV8729 stepper driver - * 500000 : Maximum for A4988 stepper driver - * 250000 : Maximum for DRV8825 stepper driver - * 150000 : Maximum for TB6600 stepper driver - * 15000 : Maximum for TB6560 stepper driver + * 500000 : Maximum for A4988 stepper driver + * 250000 : Maximum for DRV8825 stepper driver + * 150000 : Maximum for TB6600 stepper driver + * 15000 : Maximum for TB6560 stepper driver * * Override the default value based on the driver type set in Configuration.h. */ @@ -2602,9 +2389,10 @@ // @section gcode // The number of linear moves that can be in the planner at once. -#if ALL(HAS_MEDIA, DIRECT_STEPPING) +// The value of BLOCK_BUFFER_SIZE must be a power of 2 (e.g., 8, 16, 32) +#if BOTH(SDSUPPORT, DIRECT_STEPPING) #define BLOCK_BUFFER_SIZE 8 -#elif HAS_MEDIA +#elif ENABLED(SDSUPPORT) #define BLOCK_BUFFER_SIZE 16 #else #define BLOCK_BUFFER_SIZE 16 @@ -2637,7 +2425,7 @@ //#define SERIAL_XON_XOFF #endif -#if HAS_MEDIA +#if ENABLED(SDSUPPORT) // Enable this option to collect and display the maximum // RX queue usage after transferring a file to SD. //#define SERIAL_STATS_MAX_RX_QUEUED @@ -2661,7 +2449,7 @@ * Currently handles M108, M112, M410, M876 * NOTE: Not yet implemented for all platforms. */ -#define EMERGENCY_PARSER +//#define EMERGENCY_PARSER /** * Realtime Reporting (requires EMERGENCY_PARSER) @@ -2701,15 +2489,6 @@ // For serial echo, the number of digits after the decimal point //#define SERIAL_FLOAT_PRECISION 4 -/** - * This feature is EXPERIMENTAL so use with caution and test thoroughly. - * Enable this option to receive data on the serial ports via the onboard DMA - * controller for more stable and reliable high-speed serial communication. - * Support is currently limited to some STM32 MCUs and all HC32 MCUs. - * Note: This has no effect on emulated USB serial ports. - */ -//#define SERIAL_DMA - /** * Set the number of proportional font spaces required to fill up a typical character space. * This can help to better align the output of commands like `G29 O` Mesh Output. @@ -2789,14 +2568,6 @@ //#define EVENT_GCODE_TOOLCHANGE_T1 "G1 A10" // Extra G-code to run while executing tool-change command T1 //#define EVENT_GCODE_TOOLCHANGE_ALWAYS_RUN // Always execute above G-code sequences. Use with caution! - /** - * Consider coordinates for EVENT_GCODE_TOOLCHANGE_Tx as relative to T0 - * so that moves in the specified axes are the same for all tools. - */ - //#define TC_GCODE_USE_GLOBAL_X // Use X position relative to Tool 0 - //#define TC_GCODE_USE_GLOBAL_Y // Use Y position relative to Tool 0 - //#define TC_GCODE_USE_GLOBAL_Z // Use Z position relative to Tool 0 - /** * Tool Sensors detect when tools have been picked up or dropped. * Requires the pins TOOL_SENSOR1_PIN, TOOL_SENSOR2_PIN, etc. @@ -2848,21 +2619,7 @@ * - Switch to a different nozzle on an extruder jam */ #define TOOLCHANGE_MIGRATION_FEATURE - #if ENABLED(TOOLCHANGE_MIGRATION_FEATURE) - // Override toolchange settings - // By default tool migration uses regular toolchange settings. - // With a prime tower, tool-change swapping/priming occur inside the bed. - // When migrating to a new unprimed tool you can set override values below. - //#define MIGRATION_ZRAISE 0 // (mm) - - // Longer prime to clean out - //#define MIGRATION_FS_EXTRA_PRIME 0 // (mm) Extra priming length - //#define MIGRATION_FS_WIPE_RETRACT 0 // (mm) Retract before cooling for less stringing, better wipe, etc. - - // Cool after prime to reduce stringing - //#define MIGRATION_FS_FAN_SPEED 255 // 0-255 - //#define MIGRATION_FS_FAN_TIME 0 // (seconds) - #endif + #endif /** @@ -2875,9 +2632,6 @@ #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/min) //#define TOOLCHANGE_PARK_X_ONLY // X axis only move //#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move - #if ENABLED(TOOLCHANGE_MIGRATION_FEATURE) - //#define TOOLCHANGE_MIGRATION_DO_PARK // Force park (or no-park) on migration - #endif #endif #endif // HAS_MULTI_EXTRUDER @@ -2901,7 +2655,7 @@ // This short retract is done immediately, before parking the nozzle. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_UNLOAD_LENGTH 550 // (mm) The length of filament for a complete unload. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. @@ -2910,10 +2664,10 @@ // 0 to disable start loading and skip to fast load only #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 350 // (mm) Load length of filament, from extruder gear to nozzle. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. - #define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. + //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. #define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. // Set to 0 for manual extrusion. @@ -2934,12 +2688,11 @@ //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. - #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. - #define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change + //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change - #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) - #define CONFIGURE_FILAMENT_CHANGE // Add M603 G-code and menu items. Requires ~1.3K bytes of flash. #endif // @section tmc_smart @@ -2960,12 +2713,15 @@ * Some boards have simple jumper connections! See your board's documentation. * - These drivers can also be used with Hardware Serial. * + * The TMC26XStepper library is required for TMC26X stepper drivers. + * https://github.com/MarlinFirmware/TMC26XStepper + * * The TMCStepper library is required for other TMC stepper drivers. * https://github.com/teemuatlut/TMCStepper * * @section tmc/config */ -#if HAS_TRINAMIC_CONFIG +#if HAS_TRINAMIC_CONFIG || HAS_TMC26X #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current @@ -2976,10 +2732,10 @@ #define INTERPOLATE true #if AXIS_IS_TMC_CONFIG(X) - #define X_CURRENT 580 // (mA) RMS current. Multiply by 1.414 for peak current. - #define X_CURRENT_HOME (X_CURRENT/2) // (mA) RMS current for homing. (Typically lower than *_CURRENT.) + #define X_CURRENT 650 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing #define X_MICROSTEPS 16 // 0..256 - #define X_RSENSE 0.11 + #define X_RSENSE 0.11 // Multiplied x1000 for TMC26X #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... //#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis //#define X_HOLD_MULTIPLIER 0.5 // Enable to override 'HOLD_MULTIPLIER' for the X axis @@ -2996,8 +2752,8 @@ #endif #if AXIS_IS_TMC_CONFIG(Y) - #define Y_CURRENT 580 - #define Y_CURRENT_HOME (Y_CURRENT/2) + #define Y_CURRENT 650 + #define Y_CURRENT_HOME Y_CURRENT #define Y_MICROSTEPS 16 #define Y_RSENSE 0.11 #define Y_CHAIN_POS -1 @@ -3016,7 +2772,7 @@ #endif #if AXIS_IS_TMC_CONFIG(Z) - #define Z_CURRENT 580 + #define Z_CURRENT 650 #define Z_CURRENT_HOME Z_CURRENT #define Z_MICROSTEPS 16 #define Z_RSENSE 0.11 @@ -3187,13 +2943,6 @@ //#define E7_HOLD_MULTIPLIER 0.5 #endif - /** - * Use the homing current for all probing. (e.g., Current may be reduced to the - * point where a collision makes the motor skip instead of damaging the bed, - * though this is unlikely to save delicate probes from being damaged. - */ - //#define PROBING_USE_CURRENT_HOME - // @section tmc/spi /** @@ -3314,7 +3063,7 @@ * Define your own with: * { , , hysteresis_start[1..8] } */ - #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below) + #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below) //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) @@ -3421,11 +3170,11 @@ */ //#define SENSORLESS_HOMING // StallGuard capable drivers only - #if ANY(SENSORLESS_HOMING, SENSORLESS_PROBING) + #if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING) // TMC2209: 0...255. TMC2130: -64...63 - #define X_STALL_SENSITIVITY 50 + #define X_STALL_SENSITIVITY 8 #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY - #define Y_STALL_SENSITIVITY 50 + #define Y_STALL_SENSITIVITY 8 #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY //#define Z_STALL_SENSITIVITY 8 //#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY @@ -3438,7 +3187,7 @@ //#define V_STALL_SENSITIVITY 8 //#define W_STALL_SENSITIVITY 8 //#define SPI_ENDSTOPS // TMC2130/TMC5160 only - #define IMPROVE_HOMING_RELIABILITY + //#define IMPROVE_HOMING_RELIABILITY #endif // @section tmc/config @@ -3458,7 +3207,7 @@ /** * Step on both rising and falling edge signals (as with a square wave). */ - #define EDGE_STEPPING + //#define SQUARE_WAVE_STEPPING /** * Enable M122 debugging command for TMC stepper drivers. @@ -3479,7 +3228,7 @@ */ #define TMC_ADV() { } -#endif // HAS_TRINAMIC_CONFIG +#endif // HAS_TRINAMIC_CONFIG || HAS_TMC26X // @section i2cbus @@ -3540,7 +3289,7 @@ //#define PHOTOGRAPH_PIN 23 // Canon Hack Development Kit - // https://web.archive.org/web/20200920094805/captain-slow.dk/2014/03/09/3d-printing-timelapses/ + // https://web.archive.org/web/20200920094805/https://captain-slow.dk/2014/03/09/3d-printing-timelapses/ //#define CHDK_PIN 4 // Optional second move with delay to trigger the camera shutter @@ -3572,7 +3321,7 @@ * Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and * to set spindle speed, spindle direction, and laser power. * - * SuperPID is a router/spindle speed controller used in the CNC milling community. + * SuperPid is a router/spindle speed controller used in the CNC milling community. * Marlin can be used to turn the spindle on and off. It can also be used to set * the spindle speed from 5,000 to 30,000 RPM. * @@ -3583,7 +3332,7 @@ */ //#define SPINDLE_FEATURE //#define LASER_FEATURE -#if ANY(SPINDLE_FEATURE, LASER_FEATURE) +#if EITHER(SPINDLE_FEATURE, LASER_FEATURE) #define SPINDLE_LASER_ACTIVE_STATE LOW // Set to "HIGH" if SPINDLE_LASER_ENA_PIN is active HIGH #define SPINDLE_LASER_USE_PWM // Enable if your controller supports setting the speed/power @@ -3850,13 +3599,34 @@ */ //#define CNC_COORDINATE_SYSTEMS +// @section reporting + /** - * CNC Drilling Cycle - UNDER DEVELOPMENT - * - * Enables G81 to perform a drilling cycle. - * Currently only supports a single cycle, no G-code chaining. + * Auto-report fan speed with M123 S + * Requires fans with tachometer pins + */ +//#define AUTO_REPORT_FANS + +/** + * Auto-report temperatures with M155 S + */ +#define AUTO_REPORT_TEMPERATURES +#if ENABLED(AUTO_REPORT_TEMPERATURES) && TEMP_SENSOR_REDUNDANT + //#define AUTO_REPORT_REDUNDANT // Include the "R" sensor in the auto-report +#endif + +/** + * Auto-report position with M154 S + */ +//#define AUTO_REPORT_POSITION + +/** + * Include capabilities in M115 output */ -//#define CNC_DRILLING_CYCLE +#define EXTENDED_CAPABILITIES_REPORT +#if ENABLED(EXTENDED_CAPABILITIES_REPORT) + //#define M115_GEOMETRY_REPORT +#endif // @section security @@ -3894,56 +3664,18 @@ * A non-zero value activates Volume-based Extrusion Limiting. */ #define DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT 0.00 // (mm^3/sec) - #define VOLUMETRIC_EXTRUDER_LIMIT_MAX 20 // (mm^3/sec) #endif #endif // @section reporting -/** - * Extra options for the M114 "Current Position" report - */ +// Extra options for the M114 "Current Position" report //#define M114_DETAIL // Use 'M114` for details to check planner calculations //#define M114_REALTIME // Real current position based on forward kinematics //#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. -/** - * Auto-report fan speed with M123 S - * Requires fans with tachometer pins - */ -//#define AUTO_REPORT_FANS - //#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) -/** - * Auto-report temperatures with M155 S - */ -#define AUTO_REPORT_TEMPERATURES -#if ENABLED(AUTO_REPORT_TEMPERATURES) && TEMP_SENSOR_REDUNDANT - //#define AUTO_REPORT_REDUNDANT // Include the "R" sensor in the auto-report -#endif - -/** - * Auto-report position with M154 S - */ -//#define AUTO_REPORT_POSITION -#if ENABLED(AUTO_REPORT_POSITION) - //#define AUTO_REPORT_REAL_POSITION // Auto-report the real position -#endif - -/** - * M115 - Report capabilites. Disable to save ~1150 bytes of flash. - * Some hosts (and serial TFT displays) rely on this feature. - */ -#define CAPABILITIES_REPORT -#if ENABLED(CAPABILITIES_REPORT) - // Include capabilities in M115 output - #define EXTENDED_CAPABILITIES_REPORT - #if ENABLED(EXTENDED_CAPABILITIES_REPORT) - //#define M115_GEOMETRY_REPORT - #endif -#endif - // @section gcode /** @@ -3955,15 +3687,6 @@ //#define GCODE_QUOTED_STRINGS // Support for quoted string parameters #endif -/** - * Variables - * - * Define a variable from 100-115 with G-code like '#101=19.6'. - * A variable can then be used in a G-code expression like 'G0 X[#101+3]'. - * See https://gcodetutor.com/cnc-macro-programming/cnc-variables.html - */ -//#define GCODE_VARIABLES - /** * Support for MeatPack G-code compression (https://github.com/scottmudge/OctoPrint-MeatPack) */ @@ -3975,23 +3698,14 @@ //#define REPETIER_GCODE_M360 // Add commands originally from Repetier FW /** - * Enable M111 debug flags 1=ECHO, 2=INFO, 4=ERRORS (unimplemented). - * Disable to save some flash. Some hosts (Repetier Host) may rely on this feature. - */ -#define DEBUG_FLAGS_GCODE - -/** - * Enable this option for a leaner build of Marlin that removes - * workspace offsets to slightly optimize performance. - * G92 will revert to its behavior from Marlin 1.0. + * Enable this option for a leaner build of Marlin that removes all + * workspace offsets, simplifying coordinate transformations, leveling, etc. + * + * - M206 and M428 are disabled. + * - G92 will revert to its behavior from Marlin 1.0. */ //#define NO_WORKSPACE_OFFSETS -/** - * Disable M206 and M428 if you don't need home offsets. - */ -//#define NO_HOME_OFFSETS - /** * CNC G-code options * Support CNC-style G-code dialects used by laser cutters, drawing machine cams, etc. @@ -4006,7 +3720,6 @@ #ifdef G0_FEEDRATE //#define VARIABLE_G0_FEEDRATE // The G0 feedrate is set by F in G0 motion mode #endif -//#define G0_ANGULAR_FEEDRATE 2700 // (°/min) /** * Startup commands @@ -4163,7 +3876,7 @@ * * Implement M486 to allow Marlin to skip objects */ -#define CANCEL_OBJECTS +//#define CANCEL_OBJECTS #if ENABLED(CANCEL_OBJECTS) #define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message #endif @@ -4293,8 +4006,7 @@ /** * Instant freeze / unfreeze functionality - * Potentially useful for rapid stop that allows being resumed. Halts stepper movement. - * Note this does NOT pause spindles, lasers, fans, heaters or any other auxiliary device. + * Potentially useful for emergency stop that allows being resumed. * @section interface */ //#define FREEZE_FEATURE @@ -4329,19 +4041,16 @@ * Sample debug features * If you add more debug displays, be careful to avoid conflicts! */ - #define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is functioning - #define MAX7219_DEBUG_PLANNER_HEAD 2 // Show the planner queue head position on this and the next LED matrix row - #define MAX7219_DEBUG_PLANNER_TAIL 4 // Show the planner queue tail position on this and the next LED matrix row - - #define MAX7219_DEBUG_PLANNER_QUEUE 0 // Show the current planner queue depth on this and the next LED matrix row - // If you experience stuttering, reboots, etc. this option can reveal how - // tweaks made to the configuration are affecting the printer in real-time. - #define MAX7219_DEBUG_PROFILE 6 // Display the fraction of CPU time spent in profiled code on this LED matrix - // row. By default idle() is profiled so this shows how "idle" the processor is. - // See class CodeProfiler. - //#define MAX7219_DEBUG_MULTISTEPPING 6 // Show multi-stepping 1 to 128 on this LED matrix row. - //#define MAX7219_DEBUG_SLOWDOWN 6 // Count (mod 16) how many times SLOWDOWN has reduced print speed. - //#define MAX7219_REINIT_ON_POWERUP // Re-initialize MAX7129 when power supply turns on + #define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is functioning + #define MAX7219_DEBUG_PLANNER_HEAD 2 // Show the planner queue head position on this and the next LED matrix row + #define MAX7219_DEBUG_PLANNER_TAIL 4 // Show the planner queue tail position on this and the next LED matrix row + + #define MAX7219_DEBUG_PLANNER_QUEUE 0 // Show the current planner queue depth on this and the next LED matrix row + // If you experience stuttering, reboots, etc. this option can reveal how + // tweaks made to the configuration are affecting the printer in real-time. + #define MAX7219_DEBUG_PROFILE 6 // Display the fraction of CPU time spent in profiled code on this LED matrix + // row. By default idle() is profiled so this shows how "idle" the processor is. + // See class CodeProfiler. #endif /** @@ -4471,8 +4180,6 @@ #define MMU2_CAN_LOAD_INCREMENT_SEQUENCE \ { -MMU2_CAN_LOAD_INCREMENT, MMU2_CAN_LOAD_FEEDRATE } - // Continue unloading if sensor detects filament after the initial unload move - //#define MMU_IR_UNLOAD_MOVE #else /** @@ -4558,6 +4265,3 @@ // Report uncleaned reset reason from register r2 instead of MCUSR. Supported by Optiboot on AVR. //#define OPTIBOOT_RESET_REASON - -// Shrink the build for smaller boards by sacrificing some serial feedback -//#define MARLIN_SMALL_BUILD From 76ff0f41aa085ec2a4f3ef106cc9d851f152e62a Mon Sep 17 00:00:00 2001 From: PeaceNira <72322069+PeaceNira@users.noreply.github.com> Date: Thu, 15 Aug 2024 12:02:44 +0100 Subject: [PATCH 3/4] Add files via upload From 76d96f74b4b307ea3081d2657bcd8706c55585e7 Mon Sep 17 00:00:00 2001 From: PeaceNira <72322069+PeaceNira@users.noreply.github.com> Date: Thu, 15 Aug 2024 12:03:12 +0100 Subject: [PATCH 4/4] Add files via upload