@ -138,24 +138,21 @@
# endif
/**
* Configuration options for MAX Thermocouples ( - 2 , - 3 , - 5 ) .
* FORCE_HW_SPI : Ignore SCK / MOSI / MISO pins and just use the CS pin & default SPI bus .
* MAX31865_WIRES : Set the number of wires for the probe connected to a MAX31865 board , 2 - 4. Default : 2
* MAX31865_50HZ : Enable 50 Hz filter instead of the default 60 Hz .
* MAX31865_USE_READ_ERROR_DETECTION : Detects random read errors from value spikes ( a 20 ° C difference in less than 1 sec )
* MAX31865_USE_AUTO_MODE : Faster and more frequent reads than 1 - shot , but bias voltage always on , slightly affecting RTD temperature .
* MAX31865_MIN_SAMPLING_TIME_MSEC : in 1 - shot mode , the minimum time between subsequent reads . This reduces the effect of bias voltage by leaving the sensor unpowered for longer intervals .
* MAX31865_WIRE_OHMS : In 2 - wire configurations , manually set the wire resistance for more accurate readings
* Thermocouple Options — for MAX6675 ( - 2 ) , MAX31855 ( - 3 ) , and MAX31865 ( - 5 ) .
*/
//#define TEMP_SENSOR_FORCE_HW_SPI
//#define MAX31865_SENSOR_WIRES_0 2
//#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus.
//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board.
//#define MAX31865_SENSOR_WIRES_1 2
//#define MAX31865_50HZ_FILTER
//#define MAX31865_USE_READ_ERROR_DETECTION
//#define MAX31865_USE_AUTO_MODE
//#define MAX31865_MIN_SAMPLING_TIME_MSEC 100
//#define MAX31865_WIRE_OHMS_0 0.0f
//#define MAX31865_WIRE_OHMS_1 0.0f
//#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz.
//#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors.
//#define MAX31865_USE_AUTO_MODE // Read faster and more often than 1-shot; bias voltage always on; slight effect on RTD temperature.
//#define MAX31865_MIN_SAMPLING_TIME_MSEC 100 // (ms) 1-shot: minimum read interval. Reduces bias voltage effects by leaving sensor unpowered for longer intervals.
//#define MAX31865_IGNORE_INITIAL_FAULTY_READS 10 // Ignore some read faults (keeping the temperature reading) to work around a possible issue (#23439).
//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings.
//#define MAX31865_WIRE_OHMS_1 0.0f
/**
* Hephestos 2 24 V heated bed upgrade kit .
@ -252,20 +249,6 @@
# endif
# endif
//
// Laser Coolant Flow Meter
//
//#define LASER_COOLANT_FLOW_METER
# if ENABLED(LASER_COOLANT_FLOW_METER)
# define FLOWMETER_PIN 20 // Requires an external interrupt-enabled pin (e.g., RAMPS 2,3,18,19,20,21)
# define FLOWMETER_PPL 5880 // (pulses/liter) Flow meter pulses-per-liter on the input pin
# define FLOWMETER_INTERVAL 1000 // (ms) Flow rate calculation interval in milliseconds
# define FLOWMETER_SAFETY // Prevent running the laser without the minimum flow rate set below
# if ENABLED(FLOWMETER_SAFETY)
# define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5 // (liters/min) Minimum flow required when enabled
# endif
# endif
/**
* Thermal Protection provides additional protection to your printer from damage
* and fire . Marlin always includes safe min and max temperature ranges which
@ -349,6 +332,14 @@
# define WATCH_COOLER_TEMP_INCREASE 3 // Degrees Celsius
# endif
# 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 . Disable if you get false positives .
*/
//#define THERMAL_PROTECTION_VARIANCE_MONITOR // Detect a sensor malfunction preventing temperature updates
# endif
# if ENABLED(PIDTEMP)
// Add an experimental additional term to the heater power, proportional to the extrusion speed.
// A well-chosen Kc value should add just enough power to melt the increased material volume.
@ -567,8 +558,8 @@
*
* USE_OCR2A_AS_TOP [ undefined by default ]
* Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2 :
* 16 MHz MCUs : [ 62.5 KHz , 31.4 K Hz ( default ) , 7.8 KHz , 3.92 KHz , 1.95 K Hz, 977 Hz , 488 Hz , 244 Hz , 60 Hz , 122 Hz , 30 Hz ]
* 20 MHz MCUs : [ 78.1 KHz , 39.2 K Hz ( default ) , 9.77 KHz , 4.9 KHz , 2.44 KHz , 1.22 K Hz, 610 Hz , 305 Hz , 153 Hz , 76 Hz , 38 Hz ]
* 16 MHz MCUs : [ 62.5 kHz , 31.4 k Hz ( default ) , 7.8 kHz , 3.92 kHz , 1.95 k Hz, 977 Hz , 488 Hz , 244 Hz , 60 Hz , 122 Hz , 30 Hz ]
* 20 MHz MCUs : [ 78.1 kHz , 39.2 k Hz ( default ) , 9.77 kHz , 4.9 kHz , 2.44 kHz , 1.22 k Hz, 610 Hz , 305 Hz , 153 Hz , 76 Hz , 38 Hz ]
* A greater range can be achieved by enabling USE_OCR2A_AS_TOP . But note that this option blocks the use of
* PWM on pin OC2A . Only use this option if you don ' t need PWM on 0 C2A . ( Check your schematic . )
* USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies .
@ -615,7 +606,6 @@
# 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
@ -806,18 +796,17 @@
*/
//#define DUAL_X_CARRIAGE
# if ENABLED(DUAL_X_CARRIAGE)
# define X1_MIN_POS X_MIN_POS // Set to X_MIN_POS
# define X1_MAX_POS X_BED_SIZE // Set a maximum so the first X-carriage can't hit the parked second X-carriage
# define X2_MIN_POS 80 // Set a minimum to ensure the second X-carriage can't hit the parked first X-carriage
# define X2_MAX_POS 353 // Set this to the distance between toolheads when both heads are homed
# define X2_HOME_DIR 1 // Set to 1. The second X-carriage always homes to the maximum endstop position
# define X2_HOME_POS X2_MAX_POS // Default X2 home position. Set to X2_MAX_POS.
// However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
// without modifying the firmware (through the "M218 T1 X???" command).
// Remember: you should set the second extruder x-offset to 0 in your slicer.
// This is the default power-up mode which can be later using M605.
# define X1_MIN_POS X_MIN_POS // Set to X_MIN_POS
# define X1_MAX_POS X_BED_SIZE // A max coordinate so the X1 carriage can't hit the parked X2 carriage
# define X2_MIN_POS 80 // A min coordinate so the X2 carriage can't hit the parked X1 carriage
# define X2_MAX_POS 353 // The max position of the X2 carriage, typically also the home position
# define X2_HOME_DIR 1 // Set to 1. The X2 carriage always homes to the max endstop position
# define X2_HOME_POS X2_MAX_POS // Default X2 home position. Set to X2_MAX_POS.
// NOTE: For Dual X Carriage use M218 T1 Xn to override the X2_HOME_POS.
// This allows recalibration of endstops distance without a rebuild.
// Remember to set the second extruder's X-offset to 0 in your slicer.
// This is the default power-up mode which can be changed later using M605 S<mode>.
# define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_AUTO_PARK_MODE
// Default x offset in duplication mode (typically set to half print bed width)
@ -958,15 +947,17 @@
//#define Z_STEPPERS_ORIENTATION 0
# endif
// Provide Z stepper positions for more rapid convergence in bed alignment.
// Requires triple stepper drivers (i.e., set NUM_Z_STEPPER_DRIVERS to 3)
//#define Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS
# if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
// Define Stepper XY positions for Z1, Z2, Z3 corresponding to
// the Z screw positions in the bed carriage.
// Define one position per Z stepper in stepper driver order.
# define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } }
# else
/**
* Z Stepper positions for more rapid convergence in bed alignment .
* Requires NUM_Z_STEPPER_DRIVERS to be 3 or 4.
*
* Define Stepper XY positions for Z1 , Z2 , Z3 . . . corresponding to the screw
* positions in the bed carriage , with one position per Z stepper in stepper
* driver order .
*/
//#define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } }
# ifndef Z_STEPPER_ALIGN_STEPPER_XY
// Amplification factor. Used to scale the correction step up or down in case
// the stepper (spindle) position is farther out than the test point.
# define Z_STEPPER_ALIGN_AMP 1.0 // Use a value > 1.0 NOTE: This may cause instability!
@ -1253,7 +1244,7 @@
// @section lcd
# if ANY(HAS_LCD_MENU, EXTENSIBLE_UI, HAS_DWIN_E3V2)
# if HAS_MANUAL_MOVE_MENU
# define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel
# define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines
# if IS_ULTIPANEL
@ -1276,21 +1267,41 @@
# define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
# endif
# if HAS_LCD_MENU
//
// LCD Backlight Timeout
//
//#define LCD_BACKLIGHT_TIMEOUT 30 // (s) 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
// Set a convenient position to do the calibration (probing point and nozzle/bed-distance)
//#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
# endif
# endif
# if HAS_MARLINUI_MENU
// Add Probe Z Offset calibration to the Z Probe Offsets menu
# if HAS_BED_PROBE
//#define PROBE_OFFSET_WIZARD
# 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
// Set a convenient position to do the calibration (probing point and nozzle/bed-distance)
//#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
// Add calibration in the Probe Offsets menu to compensate for X-axis twist.
//#define X_AXIS_TWIST_COMPENSATION
# if ENABLED(X_AXIS_TWIST_COMPENSATION)
/**
* 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 XATC_START_Z 0.0
# define XATC_MAX_POINTS 3 // Number of points to probe in the wizard
# define XATC_Y_POSITION Y_CENTER // (mm) Y position to probe
# define XATC_Z_OFFSETS { 0, 0, 0 } // Z offsets for X axis sample points
# endif
# if ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -1319,6 +1330,41 @@
// 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
# endif // HAS_MARLINUI_MENU
# if ANY(HAS_DISPLAY, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI)
//#define SOUND_MENU_ITEM // Add a mute option to the LCD menu
# 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 4000 // (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
// Apply a timeout to low-priority status messages
//#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds)
// On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY
// Add an 'M73' G-code to set the current percentage
//#define LCD_SET_PROGRESS_MANUALLY
// Show the E position (filament used) during printing
//#define LCD_SHOW_E_TOTAL
/**
* LED Control Menu
* Add LED Control to the LCD menu
@ -1345,37 +1391,6 @@
# endif
# endif
// Insert a menu for preheating at the top level to allow for quick access
//#define PREHEAT_SHORTCUT_MENU_ITEM
# endif // HAS_LCD_MENU
# if ANY(HAS_DISPLAY, DWIN_CREALITY_LCD_ENHANCED, DWIN_CREALITY_LCD_JYERSUI)
# define SOUND_MENU_ITEM // Add a mute option to the LCD menu
# endif
# if EITHER(HAS_DISPLAY, DWIN_CREALITY_LCD_ENHANCED)
// The timeout (in ms) to return to the status screen from sub-menus
//#define LCD_TIMEOUT_TO_STATUS 15000
# if ENABLED(SHOW_BOOTSCREEN)
# define BOOTSCREEN_TIMEOUT 1000 // (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
// On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY
// Add an 'M73' G-code to set the current percentage
# define LCD_SET_PROGRESS_MANUALLY
// Show the E position (filament used) during printing
//#define LCD_SHOW_E_TOTAL
# endif
// LCD Print Progress options
@ -1522,35 +1537,25 @@
// Allow international symbols in long filenames. To display correctly, the
// LCD's font must contain the characters. Check your selected LCD language.
//#define UTF_FILENAME_SUPPORT
# define UTF_FILENAME_SUPPORT
// This allows hosts to request long names for files and folders with M33
# define LONG_FILENAME_HOST_SUPPORT
# define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 <dosname>' 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
// Enable this option to scroll long filenames in the SD card menu
# define SCROLL_LONG_FILENAMES
# define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu
// Leave the heaters on after Stop Print (not recommended!)
//#define SD_ABORT_NO_COOLDOWN
//#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!)
/**
* This option allows you to a bort SD printing when any endstop is triggered .
* This feature must be enabled with " M540 S1 " or from the LCD menu .
* To have any effect , endstops must be enabled during SD printing .
* A bort SD printing when any endstop is triggered .
* This feature is enabled with ' M540 S1 ' or from the LCD menu .
* Endstops must be activated for this option to work .
*/
//#define SD_ABORT_ON_ENDSTOP_HIT
/**
* This option makes it easier to print the same SD Card file again .
* On print completion the LCD Menu will open with the file selected .
* You can just click to start the print , or navigate elsewhere .
*/
//#define SD_REPRINT_LAST_SELECTED_FILE
//#define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file
/**
* Auto - report SdCard status with M27 S < seconds >
*/
# define AUTO_REPORT_SD_STATUS
# define AUTO_REPORT_SD_STATUS // Auto-report media status with 'M27 S<seconds>'
/**
* Support for USB thumb drives using an Arduino USB Host Shield or
@ -1619,6 +1624,11 @@
// Add an optimized binary file transfer mode, initiated with 'M28 B1'
//#define BINARY_FILE_TRANSFER
# if ENABLED(BINARY_FILE_TRANSFER)
// Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER
//#define CUSTOM_FIRMWARE_UPLOAD
# endif
/**
* Set this option to one of the following ( or the board ' s defaults apply ) :
*
@ -1633,7 +1643,10 @@
// Enable if SD detect is rendered useless (e.g., by using an SD extender)
//#define NO_SD_DETECT
// Multiple volume support - EXPERIMENTAL.
/**
* Multiple volume support - EXPERIMENTAL .
* Adds ' M21 Pm ' / ' M21 S ' / ' M21 U ' to mount SD Card / USB Drive .
*/
//#define MULTI_VOLUME
# if ENABLED(MULTI_VOLUME)
# define VOLUME_SD_ONBOARD
@ -2344,6 +2357,15 @@
// For serial echo, the number of digits after the decimal point
//#define SERIAL_FLOAT_PRECISION 4
/**
* 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 .
*
* For clients that use a fixed - width font ( like OctoPrint ) , leave this set to 1.0 .
* Otherwise , adjust according to your client and font .
*/
# define PROPORTIONAL_FONT_RATIO 1.0
// @section extras
/**
@ -2424,7 +2446,7 @@
# if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
// Load / Unload
# define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length
# define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart, fine tune by LCD/Gcode)
# define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart. Adjust with LCD or M217 B.
# define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading)
# define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down)
@ -2438,12 +2460,12 @@
# define TOOLCHANGE_FS_FAN_SPEED 255 // 0-255
# define TOOLCHANGE_FS_FAN_TIME 10 // (seconds)
// Swap uninitialized extruder with TOOLCHANGE_FS_PRIME_SPEED for all lengths (recover + prim e)
// Swap uninitialized extruder (using TOOLCHANGE_FS_PRIME_SPEED feedrat e)
// (May break filament if not retracted beforehand.)
//#define TOOLCHANGE_FS_INIT_BEFORE_SWAP
// Prime on the first T0 (If other, TOOLCHANGE_FS_INIT_BEFORE_SWAP applied )
// Enable it ( M217 V[0/ 1]) before printing, to avoid unwanted priming on host connect
// Prime on the first T0 (For other tools use TOOLCHANGE_FS_INIT_BEFORE_SWAP )
// Enable w ith M217 V1 before printing to avoid unwanted priming on host connect
//#define TOOLCHANGE_FS_PRIME_FIRST_USED
/**
@ -3217,7 +3239,7 @@
# define Z4_SLEW_RATE 1
# endif
# if AXIS_DRIVER_TYPE_I(L6470 )
# if AXIS_IS_L64XX(I )
# define I_MICROSTEPS 128
# define I_OVERCURRENT 2000
# define I_STALLCURRENT 1500
@ -3226,7 +3248,7 @@
# define I_SLEW_RATE 1
# endif
# if AXIS_DRIVER_TYPE_J(L6470 )
# if AXIS_IS_L64XX(J )
# define J_MICROSTEPS 128
# define J_OVERCURRENT 2000
# define J_STALLCURRENT 1500
@ -3235,7 +3257,7 @@
# define J_SLEW_RATE 1
# endif
# if AXIS_DRIVER_TYPE_K(L6470 )
# if AXIS_IS_L64XX(K )
# define K_MICROSTEPS 128
# define K_OVERCURRENT 2000
# define K_STALLCURRENT 1500
@ -3438,7 +3460,7 @@
* You ' ll need to select a pin for the ON / OFF function and optionally choose a 0 - 5 V
* hardware PWM pin for the speed control and a pin for the rotation direction .
*
* See https : //marlinfw.org/docs/configuration/laser_spindle.html for more config details.
* See https : //marlinfw.org/docs/configuration/2.0.9/ laser_spindle.html for more config details.
*/
//#define SPINDLE_FEATURE
//#define LASER_FEATURE
@ -3448,7 +3470,7 @@
# define SPINDLE_LASER_USE_PWM // Enable if your controller supports setting the speed/power
# if ENABLED(SPINDLE_LASER_USE_PWM)
# define SPINDLE_LASER_PWM_INVERT false // Set to "true" if the speed/power goes up when you want it to go slower
# define SPINDLE_LASER_FREQUENCY 2500 // (Hz) Spindle/laser frequency (only on supported HALs: AVR and LPC)
# define SPINDLE_LASER_FREQUENCY 2500 // (Hz) Spindle/laser frequency (only on supported HALs: AVR, ESP32, and LPC)
# endif
//#define AIR_EVACUATION // Cutter Vacuum / Laser Blower motor control with G-codes M10-M11
@ -3609,6 +3631,20 @@
# define I2C_AMMETER_SHUNT_RESISTOR 0.1 // (Ohms) Calibration shunt resistor value
# endif
//
// Laser Coolant Flow Meter
//
//#define LASER_COOLANT_FLOW_METER
# if ENABLED(LASER_COOLANT_FLOW_METER)
# define FLOWMETER_PIN 20 // Requires an external interrupt-enabled pin (e.g., RAMPS 2,3,18,19,20,21)
# define FLOWMETER_PPL 5880 // (pulses/liter) Flow meter pulses-per-liter on the input pin
# define FLOWMETER_INTERVAL 1000 // (ms) Flow rate calculation interval in milliseconds
# define FLOWMETER_SAFETY // Prevent running the laser without the minimum flow rate set below
# if ENABLED(FLOWMETER_SAFETY)
# define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5 // (liters/min) Minimum flow required when enabled
# endif
# endif
# endif
# endif // SPINDLE_FEATURE || LASER_FEATURE
@ -3787,15 +3823,6 @@
//#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others)
/**
* 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 .
*
* For clients that use a fixed - width font ( like OctoPrint ) , leave this set to 1.0 .
* Otherwise , adjust according to your client and font .
*/
# define PROPORTIONAL_FONT_RATIO 1.0
/**
* Spend 28 bytes of SRAM to optimize the G - code parser
*/
@ -3959,10 +3986,13 @@
*/
//#define HOST_ACTION_COMMANDS
# if ENABLED(HOST_ACTION_COMMANDS)
//#define HOST_PAUSE_M76
//#define HOST_PROMPT_SUPPORT
//#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
//#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down
//#define HOST_PAUSE_M76 // Tell the host to pause in response to M76
//#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback
# if ENABLED(HOST_PROMPT_SUPPORT)
//#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications
# endif
//#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
//#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down
# endif
/**
@ -4097,12 +4127,12 @@
/**
* Instant freeze / unfreeze functionality
* Specified pin has pullup and connecting to ground will instantly pause motion .
* Potentially useful for emergency stop that allows being resumed .
*/
//#define FREEZE_FEATURE
# if ENABLED(FREEZE_FEATURE)
//#define FREEZE_PIN 41 // Override the default (KILL) pin here
# define FREEZE_STATE LOW // State of pin indicating freeze
# endif
/**