Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M218 Doesnt Work #194

Open
c3D-Dan opened this issue Oct 2, 2019 · 1 comment
Open

M218 Doesnt Work #194

c3D-Dan opened this issue Oct 2, 2019 · 1 comment

Comments

@c3D-Dan
Copy link

c3D-Dan commented Oct 2, 2019

Hi, Using 4.3.9 Configured with the online configurator. Have 2 nozzles set up by adding the following to configuration_overall.h

#define SWITCHING_NOZZLE

#if ENABLED(SWITCHING_NOZZLE)
#define SWITCHING_NOZZLE_SERVO_NR 0
//#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second
#define SWITCHING_NOZZLE_SERVO_ANGLES { 122, 87 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
#endif

Running M503 shows Hotend offsets for H0 and H1
Running M218 H1 X10 Y10 appears to do nothing,
Running T0 or T1 Nothing happens, servo does not switch and X / Y axis doesn't move, even after being homed
M503 shows no changes occured after running the M218 command.

Am I going crazy or is there something I'm missing (or has this feature not been fully integrated yet?).

Thanks for your help.

M218 H1 X50 Y50 Z50
T0
T1
M503
11:38:32.990 : N14 M50316
11:38:32.993 : Config: G21 ; Units in (mm)
11:38:32.997 : Config:Steps per unit:
11:38:32.997 : Config: M92 X80.000 Y44.445 Z240.000
11:38:32.997 : Config: M92 T0 E810.676
11:38:32.997 : Config: M92 T1 E831.000
11:38:33.002 : Config:Maximum Acceleration (units/s2):
11:38:33.002 : Config: M201 X200 Y200 Z50
11:38:33.002 : Config: M201 T0 E1000
11:38:33.005 : Config: M201 T1 E1000
11:38:33.005 : Config:Maximum feedrates (units/s):
11:38:33.006 : Config: M203 X100.000 Y100.000 Z40.000
11:38:33.006 : Config: M203 T0 E30.000
11:38:33.010 : Config: M203 T1 E30.000
11:38:33.014 : Config:Acceleration (units/s2): P<DEFAULT_ACCELERATION> V<DEFAULT_TRAVEL_ACCELERATION> T
R<DEFAULT_RETRACT_ACCELERATION>
11:38:33.014 : Config: M204 P700.000 V700.000
11:38:33.014 : Config: M204 T0 R1000.000
11:38:33.018 : Config: M204 T1 R1000.000
11:38:33.022 : Config:Advanced: B<DEFAULT_MIN_SEGMENT_TIME> S<DEFAULT_MIN_FEEDRATE> V<DEFAULT_MIN_TRAVEL_FEEDRATE>
11:38:33.022 : Config: M205 B20000 S0.000 V0.000
11:38:33.026 : Config:Jerk: X<DEFAULT_XJERK> Y<DEFAULT_YJERK> Z<DEFAULT_ZJERK> T* E<DEFAULT_EJERK>
11:38:33.026 : Config: M205 X10.000 Y10.000 Z0.400
11:38:33.030 : Config: M205 T0 E5.000
11:38:33.030 : Config: M205 T1 E5.000
11:38:33.030 : Config:Set axis max travel:
11:38:33.030 : Config: M228 S0 X500.000 Y500.000 Z290.000
11:38:33.034 : Config:Set axis min travel:
11:38:33.034 : Config: M228 S1 X0.000 Y0.000 Z0.000
11:38:33.038 : Config:Heater Sensor parameters: H P S A B C R L O:
11:38:33.043 : Config: M305 H0 P0 S1 A100000.0 B4092.0 C0.0000000000 R4700.0 L0 O0
11:38:33.051 : Config:Heater parameters: H P A B C F L O U<Use Pid 0-1> I<Hardware Inverted 0-1> R<Thermal Protection 0-1> Q<Pwm Hardware 0-1>:
11:38:33.055 : Config: M306 H0 P3 A40 B230 C255 F250 L5 O275 U1 I0 Q1 R0
11:38:33.059 : Config:Heater PID parameters: H P I D:
11:38:33.059 : Config: M301 H0 P40.00 I7.00 D60.00
11:38:33.063 : Config:Heater Sensor parameters: H P S A B C R L O:
11:38:33.067 : Config: M305 H1 P2 S1 A100000.0 B4092.0 C0.0000000000 R4700.0 L0 O0
11:38:33.076 : Config:Heater parameters: H P A B C F L O U<Use Pid 0-1> I<Hardware Inverted 0-1> R<Thermal Protection 0-1> Q<Pwm Hardware 0-1>:
11:38:33.079 : Config: M306 H1 P8 A40 B230 C255 F250 L5 O275 U1 I0 Q1 R0
11:38:33.079 : Config:Heater PID parameters: H P I D:
11:38:33.084 : Config: M301 H1 P40.00 I7.00 D60.00
11:38:33.084 : Config:Z raise: Z:
11:38:33.084 : Config: M217 Z0.50
11:38:33.088 : Config:Hotend offset (unit): H X Y Z:
11:38:33.088 : Config: M218 H0 X0.000 Y0.000 Z0.000
11:38:33.092 : Config:Hotend offset (unit): H X Y Z:
11:38:33.092 : Config: M218 H1 X0.000 Y0.000 Z0.000

11:38:33.096 : Config:Fans: P U L X F I<Hardware Inverted 0-1> H T
11:38:33.100 : Config: M106 P0 U6 L0 X255 F250 I0 H-1
11:38:33.104 : Config:Fans: P U L X F I<Hardware Inverted 0-1> H T
11:38:33.104 : Config: M106 P1 U5 L0 X255 F250 I0 H0 T50
11:38:33.108 : Config:Endstops logic:
11:38:33.108 : Config: M123 X1 Y1 Z1 P0
11:38:33.108 : Config:Endstops pullup:
11:38:33.109 : Config: M124 X1 Y1 Z1 P1
11:38:33.112 : Config: M149 C ; Units in Celsius
11:38:33.112 : Config:SD Restart Job
11:38:33.112 : Config: M413 S1
11:38:33.112 : Config:Servo Angles: P L U:
11:38:33.117 : Config: M281 P0 L104 U122
11:38:33.117 : Config:Auto Bed Leveling
11:38:33.117 : Config: M420 S1 Z0.00
11:38:33.120 : Config:Probe Offset X Y Z, speed Fast and Slow [mm/min], Repetitions
11:38:33.121 : Config: M851 X0.000 Y0.000 Z-1.000 F1000 S200 R1
11:38:33.125 : Config:Material heatup parameters
11:38:33.125 : Config: M145 S0 H190 F255
11:38:33.125 : Config: M145 S1 H240 F255
11:38:33.129 : Config: M145 S2 H230 F255
11:38:33.129 : Config:Stepper driver pins E D

S L M
11:38:33.133 : Config: M352 X E37 D34 S35 L0 M0
11:38:33.133 : Config: M352 Y E33 D23 S22 L0 M0
11:38:33.133 : Config: M352 Z E24 D26 S25 L0 M0
11:38:33.137 : Config: M352 T0 E48 D46 S47 L0 M0
11:38:33.137 : Config: M352 T1 E45 D36 S44 L0 M0
11:38:33.137 : Config:Stepper Direction
11:38:33.137 : Config: M569 X0 Y0 Z0
11:38:33.141 : Config: M569 T0 E0
11:38:33.141 : Config: M569 T1 E0
11:38:33.145 : Config:Stepper driver control Q D P R
11:38:33.145 : Config: M569 Q1 D0 P2 R500000
11:38:33.145 : Config:Hysteresis Correction
11:38:33.150 : Config: M99 X0.00 Y0.00 Z0.00 F1.00
11:38:33.150 : Stats: Total:0, Finished:0, Failed:0
11:38:33.153 : Stats: Total print time:0s, Longest job:0s
11:38:33.153 : Stats: Power on time:1h 15m 30s
11:38:33.153 : Stats: Filament used:0mm

@c3D-Dan
Copy link
Author

c3D-Dan commented Oct 2, 2019

By the way, changes DO occur if I set them in configuration_overall.h file however Running T0/T1 will only cause the gantry to move, the servo does not.

configuration_overall.h
`/*******************************

  • Firmware Version V4.3.9 *
    *******************************/

#define CONFIGURATION_OVERALL

/***********************

  • Configuration_Basic *
    ***********************/
    #define SERIAL_PORT_1 0
    #define BAUDRATE_1 250000
    #define SERIAL_PORT_2 -2
    #define BAUDRATE_2 250000
    #define BLOCK_BUFFER_SIZE 32
    #define MAX_CMD_SIZE 96
    #define BUFSIZE 8
    #define TX_BUFFER_SIZE 32
    #define RX_BUFFER_SIZE 1024
    #define SERIAL_XON_XOFF
    //#define SERIAL_STATS_MAX_RX_QUEUED
    //#define SERIAL_STATS_DROPPED_RX
    #define STRING_CONFIG_AUTHOR "(none, default config)"
    #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
    #define KILL_METHOD 0
    #define NO_TIMEOUTS 1000
    //#define ADVANCED_OK
    //#define EMERGENCY_PARSER
    #define FASTER_GCODE_PARSER
    #define FASTER_GCODE_EXECUTE
    #define HOST_KEEPALIVE_FEATURE
    #define DEFAULT_KEEPALIVE_INTERVAL 2
    #define MOTHERBOARD BOARD_ULTRATRONICS
    #define MECHANISM MECH_CARTESIAN
    #define POWER_SUPPLY 0
    //#define POWER_NAME "Generic"
    #define PS_DEFAULT_OFF false
    #define DELAY_AFTER_POWER_ON 5
    #define POWER_TIMEOUT 30
    #define EXTRUDERS 2
    #define DRIVER_EXTRUDERS 2

/*****************************

  • Configuration_Temperature *
    *****************************/
    //#define TEMPERATURE_UNITS_SUPPORT
    #define TEMP_SENSOR_HE0 1
    #define TEMP_SENSOR_HE1 1
    #define TEMP_SENSOR_HE2 0
    #define TEMP_SENSOR_HE3 0
    #define TEMP_SENSOR_HE4 0
    #define TEMP_SENSOR_HE5 0
    #define TEMP_SENSOR_BED0 0
    #define TEMP_SENSOR_BED1 0
    #define TEMP_SENSOR_BED2 0
    #define TEMP_SENSOR_BED3 0
    #define TEMP_SENSOR_CHAMBER0 0
    #define TEMP_SENSOR_CHAMBER1 0
    #define TEMP_SENSOR_CHAMBER2 0
    #define TEMP_SENSOR_CHAMBER3 0
    #define TEMP_SENSOR_COOLER 0
    #define THERMISTOR_SERIES_RS 4700
    #define T9_NAME "User sensor"
    #define T9_R25 100000
    #define T9_BETA 4036
    //#define DHT_SENSOR
    #define DHT_TYPE 11
    #define TEMP_SENSOR_AD595_OFFSET 0
    #define TEMP_SENSOR_AD595_GAIN 1
    #define DUMMY_THERMISTOR_998_VALUE 25
    #define DUMMY_THERMISTOR_999_VALUE 100
    #define TEMP_RESIDENCY_TIME 10 // (seconds)
    #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
    #define HOTEND_0_MAXTEMP 275
    #define HOTEND_1_MAXTEMP 275
    #define HOTEND_2_MAXTEMP 275
    #define HOTEND_3_MAXTEMP 275
    #define HOTEND_4_MAXTEMP 275
    #define HOTEND_5_MAXTEMP 275
    #define BED_MAXTEMP 150
    #define CHAMBER_MAXTEMP 150
    #define COOLER_MAXTEMP 150
    #define HOTEND_0_MINTEMP 5
    #define HOTEND_1_MINTEMP 5
    #define HOTEND_2_MINTEMP 5
    #define HOTEND_3_MINTEMP 5
    #define HOTEND_4_MINTEMP 5
    #define HOTEND_5_MINTEMP 5
    #define BED_MINTEMP 5
    #define CHAMBER_MINTEMP 5
    #define COOLER_MINTEMP 5
    #define MAX_CONSECUTIVE_LOW_TEMP 2
    #define PREHEAT_1_LABEL "PLA"
    #define PREHEAT_1_TEMP_HOTEND 190
    #define PREHEAT_1_TEMP_BED 60
    #define PREHEAT_1_TEMP_CHAMBER 0
    #define PREHEAT_1_FAN_SPEED 255
    #define PREHEAT_2_LABEL "ABS"
    #define PREHEAT_2_TEMP_HOTEND 240
    #define PREHEAT_2_TEMP_BED 100
    #define PREHEAT_2_TEMP_CHAMBER 50
    #define PREHEAT_2_FAN_SPEED 255
    #define PREHEAT_3_LABEL "GUM"
    #define PREHEAT_3_TEMP_HOTEND 230
    #define PREHEAT_3_TEMP_BED 60
    #define PREHEAT_3_TEMP_CHAMBER 50
    #define PREHEAT_3_FAN_SPEED 255
    //#define AUTOTEMP
    #define AUTOTEMP_OLDWEIGHT 0.98
    //#define TEMP_STAT_LEDS
    #define HOTEND_PWM_FREQUENCY 250
    #define BED_PWM_FREQUENCY 100
    #define CHAMBER_PWM_FREQUENCY 100
    #define COOLER_PWM_FREQUENCY 100
    #define PIDTEMP true
    #define POWER_MAX 255
    #define POWER_DRIVE_MIN 40
    #define POWER_DRIVE_MAX 230
    #define HOTEND_HYSTERESIS 2
    #define HOTEND_CHECK_INTERVAL 100
    #define PID_FUNCTIONAL_RANGE 10
    #define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
    //#define PID_ADD_EXTRUSION_RATE
    #define LPQ_MAX_LEN 50
    #define HOTEND_Kp {40,40,40,40,40,40}
    #define HOTEND_Ki {7,7,7,7,7,7}
    #define HOTEND_Kd {60,60,60,60,60,60}
    #define HOTEND_Kc {100,100,100,100,100,100}
    #define PIDTEMPBED false
    #define BED_POWER_MAX 255
    #define BED_POWER_DRIVE_MIN 40
    #define BED_POWER_DRIVE_MAX 230
    #define BED_HYSTERESIS 2
    #define BED_CHECK_INTERVAL 500
    #define BED_Kp {10,10,10,10}
    #define BED_Ki {1,1,1,1}
    #define BED_Kd {300,300,300,300}
    #define PIDTEMPCHAMBER false
    #define CHAMBER_POWER_MAX 255
    #define CHAMBER_POWER_DRIVE_MIN 80
    #define CHAMBER_POWER_DRIVE_MAX 255
    #define CHAMBER_HYSTERESIS 2
    #define CHAMBER_CHECK_INTERVAL 500
    #define CHAMBER_Kp {10,10,10,10}
    #define CHAMBER_Ki {1,1,1,1}
    #define CHAMBER_Kd {300,300,300,300}
    #define PIDTEMPCOOLER false
    #define COOLER_POWER_MAX 255
    #define COOLER_POWER_DRIVE_MIN 80
    #define COOLER_POWER_DRIVE_MAX 255
    #define COOLER_HYSTERESIS 2
    #define COOLER_CHECK_INTERVAL 500
    #define COOLER_Kp 10
    #define COOLER_Ki 1
    #define COOLER_Kd 305
    #define INVERTED_HEATER_PINS false
    #define INVERTED_BED_PIN false
    #define INVERTED_CHAMBER_PIN false
    #define INVERTED_COOLER_PIN false
    #define THERMAL_PROTECTION_HOTENDS false
    #define THERMAL_PROTECTION_BED false
    #define THERMAL_PROTECTION_CHAMBER false
    #define THERMAL_PROTECTION_COOLER false
    #define THERMAL_PROTECTION_PERIOD 40
    #define THERMAL_PROTECTION_HYSTERESIS 4
    //#define ADAPTIVE_FAN_SPEED
    #define WATCH_HOTEND_PERIOD 20
    #define WATCH_HOTEND_INCREASE 2
    #define WATCH_BED_PERIOD 60
    #define WATCH_BED_INCREASE 2
    #define WATCH_CHAMBER_PERIOD 60
    #define WATCH_CHAMBER_INCREASE 2
    #define WATCH_COOLER_PERIOD 60
    #define WATCH_COOLER_INCREASE 2
    #define PREVENT_COLD_EXTRUSION
    #define EXTRUDE_MINTEMP 170
    //#define PREVENT_LENGTHY_EXTRUDE
    #define EXTRUDE_MAXLENGTH 400
    #define SAFETYTIMER_TIME_MINS 30

/***************************

  • Configuration_Cartesian *
    ***************************/
    #define KNOWN_MECH
    #define CUSTOM_MACHINE_NAME "The Beast Medusa"
    #define ENDSTOPPULLUP_XMIN true
    #define ENDSTOPPULLUP_YMIN true
    #define ENDSTOPPULLUP_ZMIN true
    #define ENDSTOPPULLUP_XMAX true
    #define ENDSTOPPULLUP_YMAX true
    #define ENDSTOPPULLUP_ZMAX true
    #define ENDSTOPPULLUP_X2MIN true
    #define ENDSTOPPULLUP_Y2MIN true
    #define ENDSTOPPULLUP_Z2MIN true
    #define ENDSTOPPULLUP_Z3MIN true
    #define ENDSTOPPULLUP_X2MAX true
    #define ENDSTOPPULLUP_Y2MAX true
    #define ENDSTOPPULLUP_Z2MAX true
    #define ENDSTOPPULLUP_Z3MAX true
    #define ENDSTOPPULLUP_ZPROBE true
    #define X_MIN_ENDSTOP_LOGIC true
    #define Y_MIN_ENDSTOP_LOGIC true
    #define Z_MIN_ENDSTOP_LOGIC true
    #define X_MAX_ENDSTOP_LOGIC false
    #define Y_MAX_ENDSTOP_LOGIC false
    #define Z_MAX_ENDSTOP_LOGIC true
    #define X2_MIN_ENDSTOP_LOGIC false
    #define Y2_MIN_ENDSTOP_LOGIC false
    #define Z2_MIN_ENDSTOP_LOGIC false
    #define Z3_MIN_ENDSTOP_LOGIC false
    #define X2_MAX_ENDSTOP_LOGIC false
    #define Y2_MAX_ENDSTOP_LOGIC false
    #define Z2_MAX_ENDSTOP_LOGIC false
    #define Z3_MAX_ENDSTOP_LOGIC false
    #define Z_PROBE_ENDSTOP_LOGIC false
    //#define ENDSTOP_INTERRUPTS_FEATURE
    #define Z_PROBE_SERVO_NR 0
    #define Z_SERVO_ANGLES {104,122}
    #define SWITCHING_NOZZLE
    //DANS MODS
    #if ENABLED(SWITCHING_NOZZLE)
    #define SWITCHING_NOZZLE_SERVO_NR 0
    //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second
    #define SWITCHING_NOZZLE_SERVO_ANGLES { 122, 87 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
    #endif
    //EOF DANS

//#define PROBE_MANUALLY
//#define Z_PROBE_FIX_MOUNTED
//#define BLTOUCH
//#define Z_PROBE_SENSORLESS
//#define Z_PROBE_SLED
#define SLED_DOCKING_OFFSET 5
#define X_PROBE_OFFSET_FROM_NOZZLE 0
#define Y_PROBE_OFFSET_FROM_NOZZLE 0
#define Z_PROBE_OFFSET_FROM_NOZZLE -1
#define XY_PROBE_SPEED 8000
#define Z_PROBE_SPEED_FAST 1000
#define Z_PROBE_SPEED_SLOW 200
#define Z_PROBE_REPETITIONS 1
#define Z_MIN_PROBE_REPEATABILITY_TEST
//#define PAUSE_BEFORE_DEPLOY_STOW
#define Z_PROBE_DEPLOY_HEIGHT 10
#define Z_PROBE_BETWEEN_HEIGHT 10
#define Z_PROBE_AFTER_PROBING 0
#define Z_PROBE_LOW_POINT -5
#define Z_PROBE_OFFSET_RANGE_MIN -50
#define Z_PROBE_OFFSET_RANGE_MAX 50
//#define PROBING_HEATERS_OFF // Turn heaters off when probing
//#define PROBING_FANS_OFF // Turn fans off when probing
//#define LCD_BED_LEVELING
#define LCD_Z_STEP 0.025
#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 LEVEL_BED_CORNERS
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR 1
#define MIN_Z_HEIGHT_FOR_HOMING 0
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#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 DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false
//#define DISABLE_INACTIVE_EXTRUDER
#define X_MAX_POS 500
#define X_MIN_POS 0
#define Y_MAX_POS 500
#define Y_MIN_POS 0
#define Z_MAX_POS 290
#define Z_MIN_POS 0
#define E_MIN_POS 0
#define AXIS_RELATIVE_MODES {false, false, false, false}
//#define Z_SAFE_HOMING
#define Z_SAFE_HOMING_X_POINT 100
#define Z_SAFE_HOMING_Y_POINT 100
//#define MESH_BED_LEVELING
//#define AUTO_BED_LEVELING_UBL
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
#define AUTO_BED_LEVELING_3POINT
//#define MESH_EDIT_GFX_OVERLAY
#define MESH_INSET 10
//#define 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 the G26 Mesh Validation Tool.
#define MESH_TEST_HOTEND_TEMP 200 // (c) Default nozzle temperature for the G26 Mesh Validation Tool.
#define MESH_TEST_BED_TEMP 60 // (c) Default bed temperature for the G26 Mesh Validation Tool.
#define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Tool.
//#define MESH_G28_REST_ORIGIN
#define UBL_MESH_EDIT_MOVES_Z
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y 3
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 180
#define MIN_PROBE_EDGE 10
//#define PROBE_Y_FIRST
//#define ABL_BILINEAR_SUBDIVISION
#define BILINEAR_SUBDIVISIONS 3
#define PROBE_PT_1_X 15
#define PROBE_PT_1_Y 180
#define PROBE_PT_2_X 15
#define PROBE_PT_2_Y 15
#define PROBE_PT_3_X 180
#define PROBE_PT_3_Y 15
//#define Z_PROBE_END_SCRIPT "G1 Z10 F8000\nG1 X10 Y10\nG1 Z0.5"
#define ENABLE_LEVELING_FADE_HEIGHT
//#define BED_CENTER_AT_0_0
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,44.445,240,810.676,831,625,625,625,625}
#define DEFAULT_MAX_FEEDRATE {100,100,40,30,30,100,100,100,100}
#define MANUAL_FEEDRATE {10060,10060,260,360}
#define SHORT_MANUAL_Z_MOVE 0.025
#define DEFAULT_MIN_FEEDRATE 0.0
#define DEFAULT_MIN_TRAVEL_FEEDRATE 0.0
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {200,200,50,1000,1000,3000,3000,3000,3000}
#define DEFAULT_RETRACT_ACCELERATION {1000,1000,10000,10000,10000,10000}
#define DEFAULT_ACCELERATION 700
#define DEFAULT_TRAVEL_ACCELERATION 700
#define DEFAULT_XJERK 10
#define DEFAULT_YJERK 10
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK {5,5,5,5,5,5}
#define HOMING_FEEDRATE_X (10060)
#define HOMING_FEEDRATE_Y (100
60)
#define HOMING_FEEDRATE_Z (40*60)
//#define SLOW_HOMING
#define X_HOME_BUMP_MM 5
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR {5,5,2}
#define HOTEND_OFFSET_X {0,0,0,0}
#define HOTEND_OFFSET_Y {0,0,0,0}
#define HOTEND_OFFSET_Z {0,0,0,0}
#define HYSTERESIS_FEATURE
#define HYSTERESIS_AXIS_MM {0,0,0}
#define HYSTERESIS_CORRECTION 1

/*************************

  • Configuration_LCD *
    *************************/
    #define LCD_LANGUAGE en
    #define LCD_CHARSET_HD44780 JAPANESE
    #define LCD_INFO_SCREEN_STYLE 0
    //#define REPRAP_DISCOUNT_SMART_CONTROLLER
    //#define ULTIMAKERCONTROLLER
    //#define ULTIPANEL
    //#define PANEL_ONE
    //#define G3D_PANEL
    //#define RIGIDBOT_PANEL
    //#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
    //#define ZONESTAR_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
    //#define ULTRA_LCD
    //#define RA_CONTROL_PANEL
    //#define LCD_SAINSMART_I2C_1602
    //#define LCD_SAINSMART_I2C_2004
    //#define LCM1602
    //#define LCD_I2C_PANELOLU2
    //#define LCD_I2C_VIKI
    //#define RADDS_DISPLAY
    //#define SAV_3DLCD
    //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
    //#define REPRAPWORLD_GRAPHICAL_LCD
    //#define VIKI2
    //#define miniVIKI
    //#define MINIPANEL
    //#define MAKRPANEL
    //#define ELB_FULL_GRAPHIC_CONTROLLER
    //#define BQ_LCD_SMART_CONTROLLER
    //#define WANHAO_D6_OLED
    //#define CARTESIO_UI
    //#define LCD_FOR_MELZI
    //#define U8GLIB_SSD1306
    //#define SAV_3DGLCD
    //#define U8GLIB_SSD1306
    //#define U8GLIB_SH1106
    //#define ULTI_CONTROLLER
    //#define OLED_PANEL_TINYBOY2
    //#define MKS_MINI_12864
    //#define FYSETC_MINI_12864
    //#define CR10_STOCKDISPLAY
    //#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
    //#define MKS_12864OLED // Uses the SH1106 controller (default)
    //#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller
    //#define AZSMZ_12864
    //#define SILVER_GATE_GLCD_CONTROLLER
    #define NEXTION
    #define NEXTION_SERIAL 2
    #define NEXTION_MAX_MESSAGE_LENGTH 30
    #define NEXTION_GFX
    #define NEXTION_FIRMWARE_FILE "mk4duo.tft"
    #define SHOW_BOOTSCREEN
    #define BOOTSCREEN_TIMEOUT 2500
    #define BOOTSCREEN_MKLOGO_HIGH // Show a hight MK4duo logo on the Boot Screen (disable it saving 399 bytes of flash)
    //#define BOOTSCREEN_MKLOGO_ANIMATED // Animated MK4duo logo. Costs ~‭3260 (or ~940) bytes of PROGMEM.
    //#define SHOW_CUSTOM_BOOTSCREEN
    //#define CUSTOM_STATUS_SCREEN_IMAGE
    #define XYZ_HOLLOW_FRAME
    #define MENU_HOLLOW_FRAME
    //#define USE_BIG_EDIT_FONT
    //#define USE_SMALL_INFOFONT
    //#define DOGM_SPI_DELAY_US 5
    //#define OVERLAY_GFX_REVERSE
    //#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
    //#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
    #define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
    #define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
    #define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
    #define STATUS_CHAMBER_ANIM // Use a second bitmap to indicate chamber heating
    //#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
    //#define STATUS_HEAT_PERCENT // Show heating in a progress bar
    //#define GAME_BRICKOUT
    //#define GAME_INVADERS
    //#define GAME_SNAKE
    //#define NO_LCD_MENUS
    //#define SLIM_LCD_MENUS
    #define ENCODER_PULSES_PER_STEP 5
    #define ENCODER_STEPS_PER_MENU_ITEM 1
    //#define LCD_SCREEN_ROT_90 // Rotate screen orientation for graphics display by 90 degree clockwise
    //#define LCD_SCREEN_ROT_180 // Rotate screen orientation for graphics display by 180 degree clockwise
    //#define LCD_SCREEN_ROT_270 // Rotate screen orientation for graphics display by 270 degree clockwise
    //#define INVERT_CLICK_BUTTON // Option for invert encoder button logic
    //#define INVERT_BACK_BUTTON // Option for invert back button logic if avaible
    //#define REVERSE_ENCODER_DIRECTION
    //#define REVERSE_MENU_DIRECTION
    #define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
    #define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
    #define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
    #define ULTIPANEL_FEEDMULTIPLY
    //#define SPEAKER
    //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
    //#define LCD_FEEDBACK_FREQUENCY_HZ 5000
    #define LCD_ALLIGATOR_VOLTAGE_LEVEL 1
    #define LCD_INFO_MENU
    //#define STATUS_MESSAGE_SCROLLING
    //#define LCD_DECIMAL_SMALL_XY
    //#define LCD_TIMEOUT_TO_STATUS 15000
    //#define LED_CONTROL_MENU
    //#define LED_COLOR_PRESETS // Enable the Preset Color menu option
    //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup
    #define LED_USER_PRESET_RED 255 // User defined RED value
    #define LED_USER_PRESET_GREEN 255 // User defined GREEN value
    #define LED_USER_PRESET_BLUE 255 // User defined BLUE value
    #define LED_USER_PRESET_WHITE 255 // User defined WHITE value
    #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity
    //#define LCD_PROGRESS_BAR
    #define PROGRESS_BAR_BAR_TIME 5000U
    #define PROGRESS_BAR_MSG_TIME 1500U
    #define PROGRESS_MSG_EXPIRE 0
    //#define PROGRESS_MSG_ONCE
    //#define LCD_PROGRESS_BAR_TEST
    //#define CUSTOM_USER_MENUS
    #define USER_SCRIPT_DONE "M117 User Script Done"
    #define USER_DESC_1 "Home & ABL"
    #define USER_GCODE_1 "G28\nG29"
    #define USER_DESC_2 "Preheat for " PREHEAT_1_LABEL
    #define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
    #define USER_DESC_3 "Preheat for " PREHEAT_2_LABEL
    #define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
    #define USER_DESC_4 "Heat Bed/Home/Level"
    #define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
    #define USER_DESC_5 "Home & Info"
    #define USER_GCODE_5 "G28\nM503"

/*************************

  • Configuration_Feature *
    *************************/
    #define X_DRIVER_TYPE DRV8825
    #define Y_DRIVER_TYPE DRV8825
    #define Z_DRIVER_TYPE DRV8825
    #define X2_DRIVER_TYPE A4988
    #define Y2_DRIVER_TYPE A4988
    #define Z2_DRIVER_TYPE A4988
    #define Z3_DRIVER_TYPE A4988
    #define E0_DRIVER_TYPE DRV8825
    #define E1_DRIVER_TYPE DRV8825
    #define E2_DRIVER_TYPE A4988
    #define E3_DRIVER_TYPE A4988
    #define E4_DRIVER_TYPE A4988
    #define E5_DRIVER_TYPE A4988
    #define SOFT_PWM_SPEED 0
    #define FAN_MIN_PWM 0
    #define FAN_MAX_PWM 255
    //#define INVERTED_FAN_PINS
    #define FAN_PWM_FREQUENCY 250
    //#define FAN_KICKSTART_TIME 0
    #define AUTO_FAN {-1,0,-1,-1,-1,-1}
    #define HOTEND_AUTO_FAN_TEMPERATURE 50
    #define HOTEND_AUTO_FAN_SPEED 255
    #define HOTEND_AUTO_FAN_MIN_SPEED 0
    #define CONTROLLERFAN_SECS 60
    #define CONTROLLERFAN_SPEED 255
    #define CONTROLLERFAN_MIN_SPEED 0
    //#define TACHOMETRIC
    #define TOOL_CHANGE_Z_RAISE 0.5
    //#define TOOL_CHANGE_PARK
    //#define TOOL_CHANGE_NO_RETURN
    //#define TOOL_CHANGE_FIL_SWAP
    #define TOOL_CHANGE_FIL_SWAP_LENGTH 20
    #define TOOL_CHANGE_FIL_SWAP_PURGE 2
    #define TOOL_CHANGE_FIL_SWAP_RETRACT_SPEED 3000
    #define TOOL_CHANGE_FIL_SWAP_PRIME_SPEED 600
    //#define VOLUMETRIC_EXTRUSION
    //#define VOLUMETRIC_DEFAULT_ON
    #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
    //#define SINGLENOZZLE
    //#define BARICUDA
    //#define EXT_SOLENOID
    //#define COLOR_MIXING_EXTRUDER
    #define MIXING_STEPPERS 2
    #define MIXING_VIRTUAL_TOOLS 16
    //#define MKR4
    //#define INVERTED_RELE_PINS
    //#define MKR6
    //#define INVERTED_RELE_PINS
    //#define MKR12
    //#define INVERTED_RELE_PINS
    //#define MKSE6
    #define MKSE6_SERVO_INDEX 0
    #define MKSE6_SERVOPOS_E0 -60
    #define MKSE6_SERVOPOS_E1 -30
    #define MKSE6_SERVOPOS_E2 0
    #define MKSE6_SERVOPOS_E3 30
    #define MKSE6_SERVOPOS_E4 60
    #define MKSE6_SERVOPOS_E5 90
    #define MKSE6_SERVO_DELAY 1000
    //#define PRUSA_MMU2
    #define MMU2_SERIAL 1
    //#define MMU2_MODE_12V
    #define MMU2_FILAMENT_RUNOUT_SCRIPT "M600"
    #define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0
    #define MMU2_LOAD_TO_NOZZLE_SEQUENCE { 7.2, 562 }, { 14.4, 871 }, { 36.0, 1393 }, { 14.4, 871 }, { 50.0, 198 }
    #define MMU2_RAMMING_SEQUENCE { 1.0, 1000 }, { 1.0, 1500 }, { 2.0, 2000 }, { 1.5, 3000 }, { 2.5, 4000 }, { -15.0, 5000 }, { -14.0, 1200 }, { -6.0, 600 }, { 10.0, 700 }, { -10.0, 400 }, { -50.0, 2000 }
    //#define DONDOLO_SINGLE_MOTOR
    //#define DONDOLO_DUAL_MOTOR
    #define DONDOLO_SERVO_INDEX 0
    #define DONDOLO_SERVOPOS_E0 120
    #define DONDOLO_SERVOPOS_E1 10
    #define DONDOLO_SERVO_DELAY 1000
    //#define IDLE_OOZING_PREVENT
    #define IDLE_OOZING_MINTEMP 190
    #define IDLE_OOZING_FEEDRATE 50 //default feedrate for retracting (mm/s)
    #define IDLE_OOZING_SECONDS 5
    #define IDLE_OOZING_LENGTH 15 //default retract length (positive mm)
    #define IDLE_OOZING_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
    #define IDLE_OOZING_RECOVER_FEEDRATE 50 //default feedrate for recovering from retraction (mm/s)
    //#define EXTRUDER_RUNOUT_PREVENT
    #define EXTRUDER_RUNOUT_MINTEMP 190
    #define EXTRUDER_RUNOUT_SECONDS 30
    #define EXTRUDER_RUNOUT_SPEED 1500 // mm/m
    #define EXTRUDER_RUNOUT_EXTRUDE 5 // mm
    //#define LIN_ADVANCE
    #define LIN_ADVANCE_K 0.22
    //#define WORKSPACE_OFFSETS
    #define DEFAULT_STEPPER_DEACTIVE_TIME 120
    #define DISABLE_INACTIVE_X
    #define DISABLE_INACTIVE_Y
    #undef DISABLE_INACTIVE_Z
    #define DISABLE_INACTIVE_E
    #define MIN_SOFTWARE_ENDSTOPS
    #define MAX_SOFTWARE_ENDSTOPS
    #define ENDSTOPS_ONLY_FOR_HOMING
    //#define ENABLED_ALL_SIX_ENDSTOP
    //#define SD_ABORT_ON_ENDSTOP_HIT
    //#define G38_PROBE_TARGET
    #define G38_MINIMUM_MOVE 0.0275
    #define ENABLE_SERVOS
    #define NUM_SERVOS 1
    //#define DEACTIVATE_SERVOS_AFTER_MOVE
    #define SERVO_DEACTIVATION_DELAY 300
    //#define Z_LATE_ENABLE
    #define SLOWDOWN
    //#define QUICK_HOME
    //#define HOME_Y_BEFORE_X
    //#define FORCE_HOME_XY_BEFORE_Z
    #define BABYSTEPPING
    #define BABYSTEP_XY
    #define BABYSTEP_INVERT_Z false
    #define BABYSTEP_MULTIPLICATOR 1
    //#define BABYSTEP_DISPLAY_TOTAL
    //#define BABYSTEP_ZPROBE_OFFSET
    //#define DOUBLECLICK_FOR_Z_BABYSTEPPING
    #define DOUBLECLICK_MAX_INTERVAL 1250U
    //#define BABYSTEP_ZPROBE_GFX_OVERLAY
    //#define BABYSTEP_ZPROBE_GFX_REVERSE
    //#define FWRETRACT
    #define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and over
    #define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion
    #define RETRACT_LENGTH 3 // Default retract length (positive mm)
    #define RETRACT_LENGTH_SWAP 13 // Default swap retract length (positive mm), for extruder change
    #define RETRACT_FEEDRATE 45 // Default feedrate for retracting (mm/s)
    #define RETRACT_ZLIFT 0 // Default retract Z-lift
    #define RETRACT_RECOVER_LENGTH 0 // Default additional recover length (mm, added to retract length when recovering)
    #define RETRACT_RECOVER_LENGTH_SWAP 0 // Default additional swap recover length (mm, added to retract length when recovering from extruder change)
    #define RETRACT_RECOVER_FEEDRATE 8 // Default feedrate for recovering from retraction (mm/s)
    #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s)
    //#define DUAL_X_CARRIAGE
    #define X1_MIN_POS X_MIN_POS // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
    #define X1_MAX_POS X_MAX_POS // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
    #define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
    #define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
    #define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
    #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
    #define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_FULL_CONTROL_MODE
    #define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
    #define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
    #define DEFAULT_DUPLICATION_X_OFFSET 100
    //#define X_TWO_STEPPER_DRIVERS
    #define INVERT_X2_VS_X_DIR false
    //#define X_TWO_ENDSTOPS
    //#define Y_TWO_STEPPER_DRIVERS
    #define INVERT_Y2_VS_Y_DIR false
    //#define Y_TWO_ENDSTOPS
    //#define Z_TWO_STEPPER_DRIVERS
    #define INVERT_Z2_VS_Z_DIR false
    //#define Z_TWO_ENDSTOPS
    //#define Z_THREE_STEPPER_DRIVERS
    #define INVERT_Z2_VS_Z_DIR false
    #define INVERT_Z3_VS_Z_DIR false
    //#define Z_THREE_ENDSTOPS
    //#define Z_STEPPER_AUTO_ALIGN
    #define Z_STEPPER_ALIGN_X { 10, 150, 290 }
    #define Z_STEPPER_ALIGN_Y { 290, 10, 290 }
    #define Z_STEPPER_ALIGN_ITERATIONS 3
    #define RESTORE_LEVELING_AFTER_G34
    #define Z_STEPPER_ALIGN_AMP 1.0
    #define Z_STEPPER_ALIGN_ACC 0.02
    //#define XY_FREQUENCY_LIMIT 15
    //#define SF_ARC_FIX
    //#define BLTOUCH_DELAY 500
    //#define BLTOUCH_HIGH_SPEED_MODE
    //#define BLTOUCH_FORCE_SW_MODE
    #define BLTOUCH_MODE_5V false
    //#define BLTOUCH_FORCE_MODE
    //#define BLTOUCH_LCD_VOLTAGE_MENU
    //#define FILAMENT_WIDTH_SENSOR
    #define FILAMENT_SENSOR_EXTRUDER_NUM 0
    #define MEASUREMENT_DELAY_CM 14 // (cm) The distance from the filament sensor to the melting chamber
    #define FILWIDTH_ERROR_MARGIN 1.0 // (mm) If a measurement differs too much from nominal width ignore it
    #define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM.
    #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
    //#define FILAMENT_LCD_DISPLAY
    //#define FILAMENT_RUNOUT_SENSOR
    //#define FILAMENT_RUNOUT_DAV_SYSTEM
    //#define EXTRUDER_ENCODER_CONTROL
    #define FIL_RUNOUT_0_LOGIC false
    #define FIL_RUNOUT_1_LOGIC false
    #define FIL_RUNOUT_2_LOGIC false
    #define FIL_RUNOUT_3_LOGIC false
    #define FIL_RUNOUT_4_LOGIC false
    #define FIL_RUNOUT_5_LOGIC false
    #define FIL_RUNOUT_0_PULLUP true
    #define FIL_RUNOUT_1_PULLUP true
    #define FIL_RUNOUT_2_PULLUP true
    #define FIL_RUNOUT_3_PULLUP true
    #define FIL_RUNOUT_4_PULLUP true
    #define FIL_RUNOUT_5_PULLUP true
    #define FILAMENT_RUNOUT_DISTANCE_MM 0
    #define FILAMENT_RUNOUT_THRESHOLD 5
    #define FILAMENT_RUNOUT_SCRIPT "M600"
    //#define POWER_CONSUMPTION
    #define POWER_VOLTAGE 12.00 //(V) The power supply OUT voltage
    #define POWER_SENSITIVITY 0.066 //(V/A) How much increase V for 1A of increase
    #define POWER_OFFSET 0.005 //(A) Help to get 0A when no load is connected.
    #define POWER_ZERO 2.500 //(V) The /\V coming out from the sensor when no current flow.
    #define POWER_ERROR 0.0 //(%) Ammortize measure error.
    #define POWER_EFFICIENCY 100.0 //(%) The power efficency of the power supply
    //#define POWER_CONSUMPTION_LCD_DISPLAY
    //#define FLOWMETER_SENSOR
    #define FLOWMETER_MAXFLOW 6.0 // Liters per minute max
    #define FLOWMETER_MAXFREQ 55 // frequency of pulses at max flow
    //#define MINFLOW_PROTECTION 4
    //#define DOOR_OPEN_FEATURE
    #define DOOR_OPEN_LOGIC false
    #define PULLUP_DOOR_OPEN true
    //#define POWER_CHECK
    #define POWER_CHECK_LOGIC false
    #define PULLUP_POWER_CHECK true
    //#define PCF8574_EXPANSION_IO
    #define PCF8574_ADDRESS 0x39
    #define EEPROM_SETTINGS
    #define EEPROM_CHITCHAT
    //#define DISABLE_M503
    //#define EEPROM_AUTO_INIT
    //#define EEPROM_I2C
    //#define EEPROM_SPI
    #define EEPROM_SD
    //#define EEPROM_FLASH
    #define SDSUPPORT
    //#define USB_FLASH_DRIVE_SUPPORT (NOT USED FOR NOW!!!)
    //#define ADVANCED_SD_COMMAND
    //#define SD_HALF_SPEED
    //#define SD_QUARTER_SPEED
    //#define SD_EIGHTH_SPEED
    //#define SD_SIXTEENTH_SPEED
    //#define SD_CHECK_AND_RETRY
    //#define SD_EXTENDED_DIR
    //#define SD_DISABLED_DETECT
    //#define SD_DETECT_INVERTED
    #define SD_FINISHED_STEPPERRELEASE true // if sd support and the file is finished: disable steppers?
    #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
    //#define MENU_ADDAUTOSTART
    //#define SCROLL_LONG_FILENAMES
    //#define SDCARD_SORT_ALPHA
    #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each.
    #define FOLDER_SORTING -1 // -1=above 0=none 1=below
    #define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M36 g-code.
    #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 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.
    #define SD_RESTART_FILE // Uncomment to enable
    #define SD_RESTART_FILE_SAVE_TIME 1
    #define SD_RESTART_FILE_PURGE_LEN 20 // Purge when restart
    #define SD_RESTART_FILE_RETRACT_LEN 1 // Retract when restart
    //#define PHOTO_GCODE
    //#define PHOTO_POSITION { X_MAX_POS - 5, Y_MAX_POS, 0 } // { xpos, ypos, zraise } (M240 X Y Z)
    //#define PHOTO_DELAY_MS 100 // (ms) Duration to pause before moving back (M240 P)
    //#define PHOTO_RETRACT_MM 6.5 // (mm) E retract/recover for the photo move (M240 R S)
    //#define PHOTO_SWITCH_POSITION { X_MAX_POS, Y_MAX_POS } // { xpos, ypos } (M240 I J)
    #define PHOTO_SWITCH_MS 50 // (ms) (M240 D)
    //#define CHDK
    #define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
    //#define RFID_MODULE
    #define RFID_SERIAL 1
    //#define BLINKM
    //#define RGB_LED
    //#define RGBW_LED
    //#define PCA9632
    //#define NEOPIXEL_LED
    #define NEOPIXEL_TYPE NEO_GRB
    #define NEOPIXEL_PIXELS 16
    #define NEOPIXEL_IS_SEQUENTIAL
    #define NEOPIXEL_BRIGHTNESS 127
    //#define NEOPIXEL_STARTUP_TEST
    //#define PRINTER_EVENT_LEDS
    //#define LASER
    //#define CNCROUTER
    //#define CASE_LIGHT
    #define INVERT_CASE_LIGHT false
    #define CASE_LIGHT_DEFAULT_ON false
    #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255
    //#define CASE_LIGHT_USE_NEOPIXEL
    #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 }
    #define DOUBLE_QUAD_STEPPING true
    //#define JUNCTION_DEVIATION
    #define JUNCTION_DEVIATION_MM 0.02
    #define BEZIER_JERK_CONTROL
    #define MINIMUM_STEPPER_PULSE 2
    #define MAXIMUM_STEPPER_RATE 500000
    #define DIRECTION_STEPPER_DELAY 0
    //#define ADAPTIVE_STEP_SMOOTHING
    #define X_MICROSTEPS 32
    #define Y_MICROSTEPS 32
    #define Z_MICROSTEPS 32
    #define E0_MICROSTEPS 16
    #define E1_MICROSTEPS 16
    #define E2_MICROSTEPS 16
    #define E3_MICROSTEPS 16
    #define E4_MICROSTEPS 16
    #define E5_MICROSTEPS 16
    #define X_CURRENT 800
    #define Y_CURRENT 800
    #define Z_CURRENT 800
    #define E0_CURRENT 800
    #define E1_CURRENT 800
    #define E2_CURRENT 800
    #define E3_CURRENT 800
    #define E4_CURRENT 800
    #define E5_CURRENT 800
    #define DIGIPOT_MOTOR_CURRENT {135, 135, 135, 135, 135}
    #define PWM_MOTOR_CURRENT {1200, 1000, 1000}
    //#define DIGIPOT_I2C
    #define DIGIPOT_I2C_NUM_CHANNELS 8
    #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
    //#define SERVICE_NAME_1 "Service 1"
    //#define SERVICE_TIME_1 100
    //#define SERVICE_NAME_2 "Service 2"
    //#define SERVICE_TIME_2 100
    //#define SERVICE_NAME_3 "Service 3"
    //#define SERVICE_TIME_3 100
    #define SERVICE_WARNING_BUZZES 3
    #define NUM_POSITON_SLOTS 1
    #define DEFAULT_MIN_SEGMENT_TIME 20000
    //#define ARC_SUPPORT
    #define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
    #define MIN_ARC_SEGMENTS 24 // Minimum number of segments in a complete circle
    #define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
    //#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
    //#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
    #define MIN_STEPS_PER_SEGMENT 6
    //#define M100_FREE_MEMORY_WATCHER
    #define M100_FREE_MEMORY_DUMPER
    #define M100_FREE_MEMORY_CORRUPTOR
    //#define NOZZLE_CLEAN_FEATURE
    #define NOZZLE_CLEAN_STROKES 12
    #define NOZZLE_CLEAN_TRIANGLES 3
    #define NOZZLE_CLEAN_START_POINT {30,30,1}
    #define NOZZLE_CLEAN_END_POINT {100,60,1}
    #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
    #define NOZZLE_CLEAN_CIRCLE_FN 10
    #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
    #define NOZZLE_CLEAN_GOBACK
    //#define NOZZLE_CLEAN_NO_Z
    //#define NOZZLE_PARK_FEATURE
    #define NOZZLE_PARK_POINT {10,10,20}
    #define NOZZLE_PARK_XY_FEEDRATE 100
    #define NOZZLE_PARK_Z_FEEDRATE 5
    //#define ADVANCED_PAUSE_FEATURE
    #define PAUSE_PARK_RETRACT_FEEDRATE 20
    #define PAUSE_PARK_RETRACT_LENGTH 5
    #define PAUSE_PARK_UNLOAD_FEEDRATE 50
    #define PAUSE_PARK_UNLOAD_LENGTH 100
    #define PAUSE_PARK_SLOW_LOAD_FEEDRATE 6
    #define PAUSE_PARK_SLOW_LOAD_LENGTH 5
    #define PAUSE_PARK_FAST_LOAD_FEEDRATE 50
    #define PAUSE_PARK_FAST_LOAD_LENGTH 100
    #define PAUSE_PARK_PURGE_FEEDRATE 5
    #define PAUSE_PARK_PURGE_LENGTH 50
    #define FILAMENT_UNLOAD_RETRACT_LENGTH 10
    #define FILAMENT_UNLOAD_DELAY 5000
    #define FILAMENT_UNLOAD_PURGE_LENGTH 8
    #define PAUSE_PARK_NOZZLE_TIMEOUT 45
    #define PAUSE_PARK_PRINTER_OFF 5
    #define PAUSE_PARK_NUMBER_OF_ALERT_BEEPS 5
    #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
    //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
    //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to 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_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
    //#define INCH_MODE_SUPPORT
    //#define JSON_OUTPUT
    //#define SCAD_MESH_OUTPUT
    //#define PINS_DEBUGGING
    //#define DEBUG_FEATURE
    //#define USE_WATCHDOG
    //#define WATCHDOG_RESET_MANUAL
    //#define START_GCODE
    #define START_PRINTING_SCRIPT "G28\nG1 Z10 F8000"
    //#define STOP_GCODE
    #define STOP_PRINTING_SCRIPT "G28\nM107\nM104 T0 S0\nM140 S0\nM84\nM81"
    #define PROPORTIONAL_FONT_RATIO 1

/********************************

  • Configuration_Motor_Driver *
    ********************************/
    #define X_SENSE_RESISTOR 91
    #define X2_SENSE_RESISTOR 91
    #define Y_SENSE_RESISTOR 91
    #define Y2_SENSE_RESISTOR 91
    #define Z_SENSE_RESISTOR 91
    #define Z2_SENSE_RESISTOR 91
    #define Z3_SENSE_RESISTOR 91
    #define E0_SENSE_RESISTOR 91
    #define E1_SENSE_RESISTOR 91
    #define E2_SENSE_RESISTOR 91
    #define E3_SENSE_RESISTOR 91
    #define E4_SENSE_RESISTOR 91
    #define E5_SENSE_RESISTOR 91
    #define R_SENSE 0.11 // R_sense resistor
    #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256
    //#define TMC_USE_SW_SPI
    //#define SENSORLESS_HOMING
    #define X_STALL_SENSITIVITY 8
    #define Y_STALL_SENSITIVITY 8
    #define Z_STALL_SENSITIVITY 8
    //#define SPI_ENDSTOPS
    //#define IMPROVE_HOMING_RELIABILITY
    //#define SQUARE_WAVE_STEPPING
    //#define TMC_DEBUG
    //#define TMC_Z_CALIBRATION
    #define CALIBRATION_CURRENT 250
    #define CALIBRATION_EXTRA_HEIGHT 10
    //#define TMC_SOFTWARE_DRIVER_ENABLE
    #define X_STEALTHCHOP false
    #define Y_STEALTHCHOP false
    #define Z_STEALTHCHOP false
    #define E0_STEALTHCHOP false
    #define E1_STEALTHCHOP false
    #define E2_STEALTHCHOP false
    #define E3_STEALTHCHOP false
    #define E4_STEALTHCHOP false
    #define E5_STEALTHCHOP false
    #define CHOPPER_DEFAULT_12V { 3, -1, 1 }
    #define CHOPPER_DEFAULT_19V { 4, 1, 1 }
    #define CHOPPER_DEFAULT_24V { 4, 2, 1 }
    #define CHOPPER_DEFAULT_36V { 5, 2, 4 }
    #define CHOPPER_PRUSAMK3_24V { 3, -2, 6 } // Imported parameters from the official Prusa firmware for MK3 (24V)
    #define CHOPPER_MK4DUO_436 { 5, 2, 3 } // Old defaults from MK4duo v4.3.6
    #define CHOPPER_TIMING CHOPPER_DEFAULT_12V
    //#define MONITOR_DRIVER_STATUS
    //#define MONITOR_DRIVER_STATUS_INTERVAL_MS 500u
    //#define CURRENT_STEP_DOWN 50 // [mA]
    //#define REPORT_CURRENT_CHANGE
    //#define STOP_ON_ERROR
    //#define HYBRID_THRESHOLD
    #define X_HYBRID_THRESHOLD 100
    #define Y_HYBRID_THRESHOLD 100
    #define Z_HYBRID_THRESHOLD 2
    #define E0_HYBRID_THRESHOLD 30
    #define E1_HYBRID_THRESHOLD 30
    #define E2_HYBRID_THRESHOLD 30
    #define E3_HYBRID_THRESHOLD 30
    #define E4_HYBRID_THRESHOLD 30
    #define E5_HYBRID_THRESHOLD 30
    #define TMC_ADV() { }
    //#define X_HARDWARE_SERIAL Serial1
    //#define X2_HARDWARE_SERIAL Serial1
    //#define Y_HARDWARE_SERIAL Serial1
    //#define Y2_HARDWARE_SERIAL Serial1
    //#define Z_HARDWARE_SERIAL Serial1
    //#define Z2_HARDWARE_SERIAL Serial1
    //#define Z3_HARDWARE_SERIAL Serial1
    //#define E0_HARDWARE_SERIAL Serial1
    //#define E1_HARDWARE_SERIAL Serial1
    //#define E2_HARDWARE_SERIAL Serial1
    //#define E3_HARDWARE_SERIAL Serial1
    //#define E4_HARDWARE_SERIAL Serial1
    //#define E5_HARDWARE_SERIAL Serial1
    #define X_SERIAL_TX_PIN NoPin
    #define X_SERIAL_RX_PIN NoPin
    #define X2_SERIAL_TX_PIN NoPin
    #define X2_SERIAL_RX_PIN NoPin
    #define Y_SERIAL_TX_PIN NoPin
    #define Y_SERIAL_RX_PIN NoPin
    #define Y2_SERIAL_TX_PIN NoPin
    #define Y2_SERIAL_RX_PIN NoPin
    #define Z_SERIAL_TX_PIN NoPin
    #define Z_SERIAL_RX_PIN NoPin
    #define Z2_SERIAL_TX_PIN NoPin
    #define Z2_SERIAL_RX_PIN NoPin
    #define Z3_SERIAL_TX_PIN NoPin
    #define Z3_SERIAL_RX_PIN NoPin
    #define E0_SERIAL_TX_PIN NoPin
    #define E0_SERIAL_RX_PIN NoPin
    #define E1_SERIAL_TX_PIN NoPin
    #define E1_SERIAL_RX_PIN NoPin
    #define E2_SERIAL_TX_PIN NoPin
    #define E2_SERIAL_RX_PIN NoPin
    #define E3_SERIAL_TX_PIN NoPin
    #define E3_SERIAL_RX_PIN NoPin
    #define E4_SERIAL_TX_PIN NoPin
    #define E4_SERIAL_RX_PIN NoPin
    #define E5_SERIAL_TX_PIN NoPin
    #define E5_SERIAL_RX_PIN NoPin
    #define X_K_VAL 50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
    #define X_OVERCURRENT 2000 // maxc current in mA. If the current goes over this value, the driver will switch off
    #define X_STALLCURRENT 1500 // current in mA where the driver will detect a stall
    #define X2_K_VAL 50
    #define X2_OVERCURRENT 2000
    #define X2_STALLCURRENT 1500
    #define Y_K_VAL 50
    #define Y_OVERCURRENT 2000
    #define Y_STALLCURRENT 1500
    #define Y2_K_VAL 50
    #define Y2_OVERCURRENT 2000
    #define Y2_STALLCURRENT 1500
    #define Z_K_VAL 50
    #define Z_OVERCURRENT 2000
    #define Z_STALLCURRENT 1500
    #define Z2_K_VAL 50
    #define Z2_OVERCURRENT 2000
    #define Z2_STALLCURRENT 1500
    #define Z3_K_VAL 50
    #define Z3_OVERCURRENT 2000
    #define Z3_STALLCURRENT 1500
    #define E0_K_VAL 50
    #define E0_OVERCURRENT 2000
    #define E0_STALLCURRENT 1500
    #define E1_K_VAL 50
    #define E1_OVERCURRENT 2000
    #define E1_STALLCURRENT 1500
    #define E2_K_VAL 50
    #define E2_OVERCURRENT 2000
    #define E2_STALLCURRENT 1500
    #define E3_K_VAL 50
    #define E3_OVERCURRENT 2000
    #define E3_STALLCURRENT 1500
    #define E4_K_VAL 50
    #define E4_OVERCURRENT 2000
    #define E4_STALLCURRENT 1500
    #define E5_K_VAL 50
    #define E5_OVERCURRENT 2000
    #define E5_STALLCURRENT 1500`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant