text: /**
   * For directions on how to use this firmware visit http://uf2.th3dstudio.com
   */
  
  #pragma once
  #define CONFIGURATION_H_VERSION 020007
  
  //#@CONFIGURATION_START_FLAG
  
  //===========================================================================
  //============================ TH3D Configuration ===========================
  //===========================================================================
  
  // ONLY UNCOMMENT THINGS IN ONE PRINTER SECTION!!! IF YOU HAVE MULTIPLE MACHINES FLASH THEM ONE AT A TIME.
  
  //===========================================================================
  // ****************    EZBOARD LITE BOARD POWERED PRINTERS   ****************
  //===========================================================================
  
  // CR-10 Series -------------------------------------------------------------
  //#define CR10
  //#define CR10_MINI
  //#define CR10_S4
  //#define CR10_S5
  
  // CR-10S Series ------------------------------------------------------------
  //#define CR10S
  //#define CR10S_MINI
  //#define CR10S_S4
  //#define CR10S_S5
  
  // Ender Series -------------------------------------------------------------
  //#define ENDER2
  //#define ENDER3
  #define ENDER5
  //#define ENDER5_PLUS
  
  // Other Machines -----------------------------------------------------------
  //#define CR20
  // The CR-20 Needs special LCD wiring with dupont jumper wires until we can release an adapter PCB.
  // The diagram for wiring is in the firmware source folder called "CR20EZBoardLCDWiring.png". Dupont jumper wires will work to make the connections.
  
  // Sovol Machines -----------------------------------------------------------
  //#define SOVOL_SV01
  
  // Filament Sensor Options --------------------------------------------------
  // If your machine came stock with a filament sensor it will be enabled automatically. If you replaced your stock sensor with our EZOut or you added an EZOut enabling the EZOUTV2_ENABLE will override the Creality sensor if your machine had one
  
  // If you are using our EZOut Sensor connect to the FIL SENSOR header with the RED wire lined up with the "5V" marking by the header and uncomment the below line.
  //#define EZOUTV2_ENABLE
  
  // If you are using the Creality CR-10S Sensor connect to the FIL SENSOR header with the RED wire lined up with the "5V" marking by the header and uncomment the below line.
  //#define CR10S_STOCKFILAMENTSENSOR
  
  // EZABL Probe Mounts -------------------------------------------------------
  //#define CR10_OEM                 //OEM Mount for Creality Machines (Ender3/Ender5/CR-10/CR-10S/CR-20)
  //#define ENDER2_OEM               //Ender 2 Specific OEM Mount
  //#define ENDER2_V6                //Ender 2 Specific V6 Mount
  //#define SV01_OEM_MOUNT           //Sovol SV01 OEM Mount
  //#define CR10_VOLCANO             //TH3D CR-10 Volcano Mount 
  //#define CR10_V6HEAVYDUTY         //V6 Heavy Duty Mount
  //#define TM3DAERO                 //TM3D Aero Mount for V6
  //#define TM3DAERO_EXTENDED        //TM3D Arto Mount for Volcano
  //#define PETSFANG                 //This is the RIGHT mounted version
  //#define CUSTOM_PROBE             //For any other probe mount (also used for BL Touch), Enter offsets below
  
  // Ender 5 Plus ONLY ABL Settings -------------------------------------------
  // By default the Ender 5 Plus comes with a BL Touch. Enabling the ENDER5_PLUS_EZABL or ENDER5_PLUS_NOABL will override the BL Touch setting
  // If you are using the stock BL Touch with a non-stock mount enable the CUSTOM_PROBE line above and enter the offsets below for the new mount.
  //#define ENDER5_PLUS_EZABL
  //#define ENDER5_PLUS_NOABL
  
  // Advanced Settings --------------------------------------------------------
  // These settings do not typically need to be adjusted except for machines that do not follow stock configs
  
  // If you are using a modded machine with a higher Z height use the below option to change the height. This value is in mm.
  //#define CUSTOM_ZHEIGHT 400
  
  // If you have the new Ender 5 or Ender 5 Pro Model that has the new leadscrew uncomment the below option to set the correct stepping mode for the Z driver
  #define ENDER5_NEW_LEADSCREW
  
  // Dual Z Motor Settings
  // When running dual Z motors uncomment the below line. This will increase the Z motor driver current for 2x motors.
  //#define DUAL_Z_MOTORS
  
  // Axis Direction Settings
  // If you need to reverse the direction of a motor uncomment the below option for that axis.
  // E motor settings are below in the Extruder Settings Section
  //#define REVERSE_X_MOTOR
  //#define REVERSE_Y_MOTOR
  //#define REVERSE_Z_MOTOR
  
  // E Motor Torque Settings
  // By default we have StealthChop2 Disabled for the E axis. This is due to the possibility of losing steps
  // due to the low torque nature of StealthChop2. If you want to quiet down the E motor you can uncomment the
  // below line. However, if you get lost steps and inconsistent extrusion then disable this option.
  //#define STEALTHCHOP_E
  
  // Fix for Older EZABL Kits
  // If you are having issues with the EZABL not triggering when connected to the Z-Stop header you can use the servo header pins.
  // See here for details: https://www.th3dstudio.com/knowledgebase/ezabl-ezboard-not-triggering-fix/
  #define V3_EZABL_ON_SERVO
  
  // E3D PT100 Thermocouple Support
  // Refer to the EZBoard installation documentation for connecting the PT100 to the EZBoard Expansion Header
  //#define EZBOARD_PT100
  
  // Ender Xtender Kit Options
  //#define ENDER_XTENDER_300
  //#define ENDER_XTENDER_400
  //#define ENDER_XTENDER_400XL
  //#define ENDER_XTENDER_XL
  
  //===========================================================================
  // *************************  END PRINTER SECTION   *************************
  //===========================================================================
  
  //===========================================================================
  // EZABL Advanced Settings
  //===========================================================================
  
  // If you want more or less EZABL probe points change the number below (only used if EZABL enabled)
  // Default is 3 which gives you 3x3 grid for a total of 9 points. STICK WITH ODD NUMBERS
  #define EZABL_POINTS 3
  
  // If you want to change how far in or out the probe senses change EZABL_PROBE_EDGE value below. This also sets the edge inset value for MANUAL_MESH_LEVELING.
  // Most Machines - 35
  // Binder Clips? - 50
  #define EZABL_PROBE_EDGE 35
  
  // If you have issues with your machine running the faster probe setting disable the #define EZABL_FASTPROBE below.
  // NOTE: Most machines will work with the fast probe enabled. Use M48 to verify accuracy.
  #define EZABL_FASTPROBE
  
  // Superfast probing - Only works with the EZABL Pro Sensors
  //#define EZABL_SUPERFASTPROBE
  
  // Heaters will stay on during probing - only use if directed to by support. Do not use on AC beds.
  //#define HEATERS_ON_DURING_PROBING
  
  // Does your machine make weird noises/vibrations when it is probing the mesh? Enable this to slow down the speed between probe points.
  //#define SLOWER_PROBE_MOVES
  
  //================================================================================
  // IF YOU HAVE A CUSTOM PROBE MOUNT OR ONE THAT IS NOT PRE-SUPPORTED UNCOMMENT THE
  // CUSTOM_PROBE OPTION IN YOUR PRINTER SECTION AND ENTER YOUR PROBE LOCATION BELOW
  //================================================================================
  #if ENABLED(CUSTOM_PROBE)
    /**
    * Z Probe to nozzle (X,Y) offset, relative to (0, 0).
    *
    * In the following example the X and Y offsets are both positive:
    *
    *   #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
    *
    *     +-- BACK ---+
    *     |           |
    *   L |    (+) P  | R <-- probe (10,10)
    *   E |           | I
    *   F | (-) N (+) | G <-- nozzle (0,0)
    *   T |           | H
    *     |    (-)    | T
    *     |           |
    *     O-- FRONT --+
    *   (0,0)
    *
    * Specify a Probe position as { X, Y, Z }
    * Do NOT enter an number for the Z position in here. Store your offset in EEPROM.
    *
    * When is the offset POSITIVE?
    * If the probe is right of the nozzle the offset on X is POSITIVE
    * If the probe is behind of the nozzle the offset on Y is POSITIVE
    * 
    * When is the offset NEGATIVE?
    * If the probe is left of the nozzle the offset on X is NEGATIVE
    * If the probe is in front of the nozzle the offset on Y is NEGATIVE
    */
    #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
  #endif
  
  
  //===========================================================================
  //******************** EXTRA FEATURES AND TWEAKS ****************************
  //===========================================================================
  
  // EXTRUDER SETTINGS -------------------------------
  // Use to set custom esteps and/or reverse your E Motor direction if you are installing an extruder that needs the direction reversed.
  // If you reversed the wiring on your E motor already (like the Bondtech Guide says to do) then you do not need to reverse it in the firmware here.
  
  // If you want to change the Esteps for your printer you can uncomment the below line and set CUSTOM_ESTEPS_VALUE to what you want - USE WHOLE NUMBERS ONLY
  // This option sets the esteps from the CUSTOM_ESTEPS_VALUE line below.
  // If you need to reverse the e motor direction also enabled the REVERSE_E_MOTOR_DIRECTION option.
  // Example EStep Values: TH3D Aluminum Extruder - 95 ESteps, TH3D Tough Extruder - 463 ESteps, BMG Extruder - 415 ESteps
  // When installing a Tough Extruder or E3D Titan or Bondtech that is Geared you likely need to enable the REVERSE_E_MOTOR_DIRECTION option
  //#define CUSTOM_ESTEPS
  #define CUSTOM_ESTEPS_VALUE 463
  //#define REVERSE_E_MOTOR_DIRECTION
  
  // If you are using a pancake stepper enable the PANCAKE_STEPPER option to reduce the motor current to lower the stepper temperature
  //#define PANCAKE_STEPPER
  
  // FILAMENT SENSOR UNLOAD SETTINGS -----------------
  // If you have a filament sensor that is physically mounted to the machine you can enable MOUNTED_FILAMENT_SENSOR to set the unload length to 0 to prevent filament from backing up in the sensor by uncommenting MOUNTED_FILAMENT_SENSOR 
  //#define MOUNTED_FILAMENT_SENSOR
  
  // If you have a direct drive machine with a filament sensor uncomment DIRECT_DRIVE_PRINTER to decrease the unload length from 100mm to 20mm
  //#define DIRECT_DRIVE_PRINTER
  
  // THERMISTOR SETTINGS -----------------------------
  
  // If you are using an E3D V6 Hotend (or Hemera) with their cartridge thermistor (not glass version) uncomment the below line.
  //#define V6_HOTEND
  
  // If you are using a Tough Hotend from TH3D or any thermistors TH3D sells for your hotend uncomment the below line.
  //#define TH3D_HOTEND_THERMISTOR
  
  // If you are using a known hotend thermistor value uncomment the below 2 lines and enter the thermistor number replacing the X after the #define KNOWN_HOTEND_THERMISTOR_VALUE
  //#define KNOWN_HOTEND_THERMISTOR
  //#define KNOWN_HOTEND_THERMISTOR_VALUE X
  
  // If you have a hotend and thermistor capable of over 290C you can set the max temp value below.
  // Setting this higher than 290C on a stock or traditional thermistor will damage it. Refer to your thermistor documentation to see what max temp is.
  //#define HIGH_TEMP_THERMISTOR
  #define HIGH_TEMP_THERMISTOR_TEMP 350
  
  // BED THERMISTOR SETTINGS -------------------------
  
  // If you are using a thermistor TH3D sells for your bed uncomment the below line.
  //#define TH3D_BED_THERMISTOR
  
  // If you are using a Keenovo with SSR and the Keenovo temperature sensor uncomment the below line.
  //#define KEENOVO_TEMPSENSOR
  
  // If you are using a known bed thermistor value uncomment the below 2 lines and enter the thermistor number replacing the X after the #define KNOWN_BED_THERMISTOR_VALUE
  //#define KNOWN_BED_THERMISTOR
  //#define KNOWN_BED_THERMISTOR_VALUE X
  
  // If you are using an AC bed with a standalone controller (Keenovo) uncomment the below line to disable the heated bed in the firmware
  //#define AC_BED
  
  // MISC --------------------------------------------
  
  // If you have a 5015 fan that whines when under 100% speed uncomment the below line.
  //#define FAN_FIX
  
  // Use your own printer name - Uncomment both lines
  //#define CUSTOM_PRINTER_NAME
  //#define USER_PRINTER_NAME "CHANGE ME"
  
  // If your printer is homing to the endstops hard uncomment this to change the homing speed/divisor to make it less aggressive.
  //#define SLOWER_HOMING
  
  //===========================================================================
  //****************** COMMUNITY REQUESTED FEATURES ***************************
  //===========================================================================
  
  // HOME OFFSET ADJUSTMENT --------------------------
  // If you need to adjust your XY home offsets from defaults then you can uncomment the HOME_ADJUST line below and enter your
  // custom XY offsets. This is provided for convenience and is unsupported with included product support.
  // How to use - measure (home XY then jog using the LCD 1mm at a time) the X and Y distance the nozzle is off
  // the build plate and then put those as NEGATIVE values below, positive values will NOT work (move your endstops to fix a positve offset).
  //#define HOME_ADJUST
  #define X_HOME_LOCATION -10
  #define Y_HOME_LOCATION -10
  
  // LINEAR ADVANCE ----------------------------------
  // See here on how to use Linear Advance: http://marlinfw.org/docs/features/lin_advance.html
  //#define LINEAR_ADVANCE
  // Change the K Value here or use M900 KX.XX in your starting code (recommended).
  #define LINEAR_ADVANCE_K 0
  
  // BL TOUCH ----------------------------------------
  // If you want to use the BL-Touch uncomment the 2 lines below and refer to the installation guide for the EZBoard to connect the probe.
  // You also need to uncomment #define CUSTOM_PROBE above and then enter in your offsets above in the CUSTOM PROBE section.
  //#define BLTOUCH
  // Here is where you set your servo pin. For EZBoard use P2_04
  //#define SERVO0_PIN P2_04
  
  // MANUAL MESH LEVELING ----------------------------
  // If you want to use manual mesh leveling you can enable the below option. This is for generating a MANUAL mesh WITHOUT a probe. To change the mesh inset value change the EZABL_PROBE_EDGE setting above.
  // Mesh Bed Leveling Documentation: http://marlinfw.org/docs/gcode/G029-mbl.html 
  // NOTE: If you want to automate the leveling process our EZABL kits do this for you. Check them out here: http://EZABL.TH3DStudio.com
  //#define MANUAL_MESH_LEVELING
  
  // POWER LOSS RECOVERY -----------------------------
  // Continue after Power-Loss feature will store the current state to the SD Card at the start of each layer
  // during SD printing. If this is found at bootup it will ask you if you want to resume the print.
  //
  // NOTE: This feature causes excessive wear on your SD card.
  //#define POWER_LOSS_RECOVERY
  
  //===========================================================================
  // **********************  END CONFIGURATION SETTINGS   *********************
  //===========================================================================
  
  //#@CONFIGURATION_END_FLAG
  
  /**
   * ****************************DO NOT TOUCH ANYTHING BELOW THIS COMMENT**************************
   * Core machine settings are below. Do NOT modify these unless you understand what you are doing.
   */
  
  /**
   * Machine Configuration Settings
   */
   
  //EZBoard based Machine Settings
  #if ENABLED(CR10) || ENABLED(CR10_MINI) || ENABLED(CR10_S4) || ENABLED(CR10_S5) || ENABLED(CR10S) || ENABLED(CR10S_MINI) || ENABLED(CR10S_S4) || ENABLED(CR10S_S5) || ENABLED(ENDER2) || ENABLED(ENDER3) || ENABLED(ENDER5) || ENABLED(ENDER5_PLUS) || ENABLED(SOVOL_SV01) || ENABLED(CR20)
  
    #define SERIAL_PORT -1
    #define BAUDRATE 115200
    
    #if ENABLED(CR20) || ENABLED(ENDER2)
      #define MKS_MINI_12864
    #else
      #define CR10_STOCKDISPLAY
    #endif
    
    #if ENABLED(CR10S) || ENABLED(CR10S_S4) || ENABLED(CR10S_S5) || ENABLED(SOVOL_SV01)
      //S models assume that you have 2x motors, filament sensor, and are using the dual adapter.
      //So lets up the VREF on Z and reverse the Z axis when using the dual motor adapter and enable the filament sensor
  	
      #define DUAL_Z_MOTORS
  
      #if ENABLED(REVERSE_Z_MOTOR)
        #undef REVERSE_Z_MOTOR
      #else
        #define REVERSE_Z_MOTOR
      #endif
    
      #if ENABLED(SOVOL_SV01)
        #define EZOUTV2_ENABLE
      #endif
    
      #if DISABLED(EZOUTV2_ENABLE) 
        #define CR10S_STOCKFILAMENTSENSOR
      #endif
  
      #if ENABLED(CR10S)
        #define CR10
      #elif ENABLED(CR10S_S4)
        #define CR10_S4
      #elif ENABLED(CR10S_S5)
        #define CR10_S5
      #endif
      
    #endif
    
    #ifndef MOTHERBOARD
      #define MOTHERBOARD BOARD_TH3D_EZBOARD
    #endif
    
    #if ENABLED(CUSTOM_ESTEPS)
      #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, CUSTOM_ESTEPS_VALUE }
    #elif ENABLED(SOVOL_SV01)
      #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 402 }
    #else
      #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 95 }
    #endif
    
    #define DEFAULT_MAX_FEEDRATE          { 200, 200, 15, 50 }
    #define DEFAULT_MAX_ACCELERATION      { 1000, 1000, 500, 5000 }
  
    #define DEFAULT_ACCELERATION          500
    #define DEFAULT_RETRACT_ACCELERATION  500
    #define DEFAULT_TRAVEL_ACCELERATION   1000
    
    #define CLASSIC_JERK
    #if ENABLED(CLASSIC_JERK)
      #if ENABLED(CR10_S4) || ENABLED(CR10_S5)
        #define DEFAULT_XJERK                 5.0
        #define DEFAULT_YJERK                 5.0
      #else
        #define DEFAULT_XJERK                 7.0
        #define DEFAULT_YJERK                 7.0
      #endif
      #define DEFAULT_ZJERK  0.3
    #endif
  
    #define DEFAULT_EJERK    5.0
    
    #define SHOW_BOOTSCREEN
    
    #define EXTRUDERS 1
    
    #if ENABLED(CR10)
      #define X_BED_SIZE 300
      #define Y_BED_SIZE 300
      #define Z_MAX_POS 400
      #define PRINTER_VOLTAGE_12
    #endif
  
    #if ENABLED(CR10_MINI) || ENABLED(CR10S_MINI)
      #define X_BED_SIZE 300
      #define Y_BED_SIZE 220
      #define Z_MAX_POS 300
      #define PRINTER_VOLTAGE_12
    #endif
  
    #if ENABLED(CR10_S4)
      #define X_BED_SIZE 400
      #define Y_BED_SIZE 400
      #define Z_MAX_POS 400
      #define PRINTER_VOLTAGE_12
      #define SLOWER_PROBE_MOVES
    #endif
  
    #if ENABLED(CR10_S5)
      #define X_BED_SIZE 500
      #define Y_BED_SIZE 500
      #define Z_MAX_POS 500
      #define PRINTER_VOLTAGE_12
      #define SLOWER_PROBE_MOVES
    #endif
  
    #if ENABLED(ENDER2)
      #define X_BED_SIZE 160
      #define Y_BED_SIZE 150
      #define Z_MAX_POS 220
      #define PRINTER_VOLTAGE_12
    #endif
  
    #if ENABLED(ENDER3)
      #if ENABLED(ENDER_XTENDER_400)
        #define X_BED_SIZE 400
        #define Y_BED_SIZE 400
        #define Z_MAX_POS 250
      #elif ENABLED(ENDER_XTENDER_300)
        #define X_BED_SIZE 300
        #define Y_BED_SIZE 300
        #define Z_MAX_POS 250
      #elif ENABLED(ENDER_XTENDER_400XL)
        #define X_BED_SIZE 400
        #define Y_BED_SIZE 400
        #define Z_MAX_POS 500
      #elif ENABLED(ENDER_XTENDER_XL)
        #define X_BED_SIZE 235
        #define Y_BED_SIZE 235
        #define Z_MAX_POS 500
      #else
        #define X_BED_SIZE 235
        #define Y_BED_SIZE 235
        #define Z_MAX_POS 250
      #endif
      #define PRINTER_VOLTAGE_24
    #endif
  
    #if ENABLED(ENDER5)
      #define X_BED_SIZE 220
      #define Y_BED_SIZE 220
      #define Z_MAX_POS 300
      #define PRINTER_VOLTAGE_24
    #endif
    
    #if ENABLED(ENDER5_PLUS)
      #define X_BED_SIZE 350
      #define Y_BED_SIZE 350
      #define Z_MAX_POS 400
      #define PRINTER_VOLTAGE_24
  	#define REVERSE_ENCODER_DIRECTION
  	#define ENDER5_NEW_LEADSCREW
      #define EZOUTV2_ENABLE
      #define DUAL_Z_MOTORS
  	#define MOUNTED_FILAMENT_SENSOR
    #endif
  
    #if ENABLED(SOVOL_SV01)
      #define X_BED_SIZE 280
      #define Y_BED_SIZE 240
      #define Z_MAX_POS 300
      #define PRINTER_VOLTAGE_24
    #endif
  
    #if ENABLED(CR20)
      #define X_BED_SIZE 220
      #define Y_BED_SIZE 220
      #define Z_MAX_POS 250
      #define PRINTER_VOLTAGE_24
    #endif
    
    #if (CUSTOM_ZHEIGHT > Z_MAX_POS)
      #undef Z_MAX_POS
      #define Z_MAX_POS CUSTOM_ZHEIGHT
    #endif
  
    #if ENABLED(HOME_ADJUST)
      #define X_MIN_POS X_HOME_LOCATION
      #define Y_MIN_POS Y_HOME_LOCATION
    #else
      #define X_MIN_POS 0
      #define Y_MIN_POS 0
    #endif
    
    #if ENABLED(ENDER5) || ENABLED(ENDER5_PLUS)
      #define USE_XMAX_PLUG
      #define USE_YMAX_PLUG
      #define USE_ZMIN_PLUG
    #else
      #define USE_XMIN_PLUG
      #define USE_YMIN_PLUG
      #define USE_ZMIN_PLUG
    #endif
    
    #if ENABLED(ENDER5) || ENABLED(ENDER5_PLUS)
      #define X_HOME_DIR 1
      #define Y_HOME_DIR 1
      #define Z_HOME_DIR -1
    #else
      #define X_HOME_DIR -1
      #define Y_HOME_DIR -1
      #define Z_HOME_DIR -1
    #endif
    
    #if NONE(V6_HOTEND, TH3D_HOTEND_THERMISTOR, KNOWN_HOTEND_THERMISTOR, EZBOARD_PT100)
      #define TEMP_SENSOR_0 1
    #else
      #if ENABLED(EZBOARD_PT100)
        #define TEMP_SENSOR_0 20
      #elif ENABLED(V6_HOTEND)
        #define TEMP_SENSOR_0 5
      #elif ENABLED(KNOWN_HOTEND_THERMISTOR)
        #define TEMP_SENSOR_0 KNOWN_HOTEND_THERMISTOR_VALUE
      #elif ENABLED(TH3D_HOTEND_THERMISTOR)
        #define TEMP_SENSOR_0 1
      #endif
    #endif
    
    #define TEMP_SENSOR_1 0 
    #define TEMP_SENSOR_2 0
    #define TEMP_SENSOR_3 0
    #define TEMP_SENSOR_4 0
    #define TEMP_SENSOR_5 0
    #define TEMP_SENSOR_6 0
    #define TEMP_SENSOR_7 0
    
    #if NONE(TH3D_BED_THERMISTOR, KEENOVO_TEMPSENSOR, KNOWN_BED_THERMISTOR, AC_BED)
      #define TEMP_SENSOR_BED 1
    #else
      #if ENABLED(AC_BED)
        #define TEMP_SENSOR_BED 0
      #elif ENABLED(KNOWN_BED_THERMISTOR)
        #define TEMP_SENSOR_BED KNOWN_BED_THERMISTOR_VALUE
      #elif ENABLED(TH3D_BED_THERMISTOR)
        #define TEMP_SENSOR_BED 1
      #elif ENABLED(KEENOVO_TEMPSENSOR)
        #define TEMP_SENSOR_BED 11
      #endif
    #endif
      
    #define TEMP_SENSOR_PROBE 0
    #define TEMP_SENSOR_CHAMBER 0
  
    #if ENABLED(V3_EZABL_ON_SERVO)
      #define ENDSTOPPULLUP_ZMIN
      #define ENDSTOPPULLUP_ZMIN_PROBE
    #endif
  
    #define X_MIN_ENDSTOP_INVERTING false
    #define Y_MIN_ENDSTOP_INVERTING false
    #define Z_MIN_ENDSTOP_INVERTING false
    #define X_MAX_ENDSTOP_INVERTING false
    #define Y_MAX_ENDSTOP_INVERTING false
    #define Z_MAX_ENDSTOP_INVERTING false
    #define Z_MIN_PROBE_ENDSTOP_INVERTING false
    #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
  
    #define X_DRIVER_TYPE  TMC2208
    #define Y_DRIVER_TYPE  TMC2208
    #define Z_DRIVER_TYPE  TMC2208
    #define E0_DRIVER_TYPE TMC2208
  
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0
  
    #if ENABLED(REVERSE_X_MOTOR)
      #define INVERT_X_DIR false
    #else
      #define INVERT_X_DIR true
    #endif
  
    #if ENABLED(REVERSE_Y_MOTOR)
      #define INVERT_Y_DIR false
    #else
      #define INVERT_Y_DIR true
    #endif
  
    #if ENABLED(ENDER5)
      #if ENABLED(REVERSE_Z_MOTOR)
        #define INVERT_Z_DIR false
      #else
        #define INVERT_Z_DIR true
      #endif
    #else
      #if ENABLED(REVERSE_Z_MOTOR)
        #define INVERT_Z_DIR true
      #else
        #define INVERT_Z_DIR false
      #endif
    #endif
    
    #if ENABLED(SOVOL_SV01)
      #if ENABLED(REVERSE_E_MOTOR_DIRECTION)
        #define INVERT_E0_DIR true
      #else
        #define INVERT_E0_DIR false
      #endif
    #else
      #if ENABLED(REVERSE_E_MOTOR_DIRECTION)
        #define INVERT_E0_DIR false
      #else
        #define INVERT_E0_DIR true
      #endif
    #endif
  
    #define INVERT_E1_DIR false
    #define INVERT_E2_DIR false
    #define INVERT_E3_DIR false
    #define INVERT_E4_DIR false
    #define INVERT_E5_DIR false
  
    #define ENCODER_PULSES_PER_STEP 4
    #define ENCODER_STEPS_PER_MENU_ITEM 1
    
    #if ENABLED(ENDER5_PLUS)
      #if DISABLED(ENDER5_PLUS_NOABL) && DISABLED(ENDER5_PLUS_EZABL)
        #define BLTOUCH
      #define SERVO0_PIN P2_04
      #ifndef EZABL_PROBE_EDGE
        #define EZABL_PROBE_EDGE 35
      #endif
      #ifndef EZABL_POINTS
        #define EZABL_POINTS 5
      #endif
      #if DISABLED(CUSTOM_PROBE)
          #define NOZZLE_TO_PROBE_OFFSET { -44, -9, 0}
        #endif
      #endif  
      #if DISABLED(ENDER5_PLUS_NOABL)
        #define ABL_ENABLE
      #endif
    #endif
  
    #define EZBOARD
  
    #if ENABLED(EZOUTV2_ENABLE) || ENABLED(CR10S_STOCKFILAMENTSENSOR)
      #define FILAMENT_RUNOUT_SENSOR
    #if ENABLED(FILAMENT_RUNOUT_SENSOR)
      #if ENABLED(EZOUTV2_ENABLE)
        #define FIL_RUNOUT_STATE LOW
      #else
        #define FIL_RUNOUT_STATE HIGH
      #endif
      #define NUM_RUNOUT_SENSORS   1
      #define FIL_RUNOUT_PULLUP
      #define FILAMENT_RUNOUT_SCRIPT "M600"
    #endif
  #endif
    
  #endif
  //End EZBoard based Machine Settings
  
  /*
   * All other settings are stored in the Configuration_backend.h file. Do not change unless you know what you are doing.
   */
   
  #include "Configuration_backend.h"
  