🐛 Fix Elegoo Neptune 2 (#648)

This commit is contained in:
just-trey 2022-01-12 18:54:27 -05:00 committed by GitHub
parent 03407e7bf0
commit 5d6f1e9afe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 260 additions and 135 deletions

View file

@ -69,9 +69,60 @@
// @section info // @section info
// Author info of this build printed to the host during boot and M115 // Author info of this build printed to the host during boot and M115
#define STRING_CONFIG_H_AUTHOR "(EvilGremlin)" // Who made the changes. #define STRING_CONFIG_H_AUTHOR "(just-trey, Elegoo Neptune 2)" // Who made the changes.
//#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)
// @section custom
/**
* Consolidated list of overrides that are not required in this file. They either simplify
* managing multiple configurations or override values specified in other files.
*/
// MAIN CONFIGURATION SWITCHES FOR FEATURES - see readme.md for more details.
#define IS_BOARD_1_3 true // True if you have the 1.3 board, false for 1.2 board
#define HAS_BLTOUCH false // Enable if you have a BlTouch, false fo no BlTouch
#define IS_2D false // True if you have a Neptuen 2d (Dual extruder)
// Define missing pins
#define POWER_LOSS_PIN PA2
#define MT_DET_PIN_STATE LOW
/* Neptune 2 Custom Theme (adjustments for better clarity) */
#define COLOR_GRAYER 0x8C51 // #8D8D8D
#define COLOR_BACKGROUND COLOR_BLACK
#define COLOR_SELECTION_BG COLOR_RED
#define COLOR_WEBSITE_URL COLOR_CYAN
#define COLOR_INACTIVE COLOR_GRAYER
#define COLOR_COLD COLOR_CYAN
#define COLOR_HOTEND COLOR_ORANGE
#define COLOR_HEATED_BED COLOR_ORANGE
#define COLOR_CHAMBER COLOR_ORANGE
#define COLOR_COOLER COLOR_ORANGE
#define COLOR_FAN COLOR_CYAN
#define COLOR_AXIS_HOMED COLOR_CYAN
#define COLOR_AXIS_NOT_HOMED COLOR_YELLOW
#define COLOR_RATE_100 COLOR_VIVID_GREEN
#define COLOR_RATE_ALTERED COLOR_YELLOW
#define COLOR_PRINT_TIME COLOR_AQUA
#define COLOR_PROGRESS_FRAME COLOR_WHITE
#define COLOR_PROGRESS_BAR COLOR_CYAN
#define COLOR_PROGRESS_BG COLOR_BLACK
#define COLOR_STATUS_MESSAGE COLOR_WHITE
#define COLOR_CONTROL_ENABLED COLOR_WHITE
#define COLOR_CONTROL_DISABLED COLOR_GRAYER
#define COLOR_CONTROL_CANCEL COLOR_RED
#define COLOR_CONTROL_CONFIRM COLOR_VIVID_GREEN
#define COLOR_BUSY COLOR_SILVER
#define COLOR_MENU_TEXT COLOR_WHITE
#define COLOR_MENU_VALUE COLOR_WHITE
#define COLOR_SLIDER COLOR_WHITE
#define COLOR_SLIDER_INACTIVE COLOR_GRAYER
#define COLOR_UBL COLOR_WHITE
#define COLOR_TOUCH_CALIBRATION COLOR_WHITE
#define COLOR_KILL_SCREEN_BG COLOR_RED
#define COLOR_KILL_SCREEN_TEXT COLOR_YELLOW
/** /**
* *** VENDORS PLEASE READ *** * *** VENDORS PLEASE READ ***
* *
@ -95,8 +146,15 @@
// @section machine // @section machine
// Choose the name from boards.h that matches your setup // Choose the name from boards.h that matches your setup
// NOTE for platformio.ini:
// For ZNP Robin Nano 1.2 - set default_envs = mks_robin_nano35
// For ZNP Robin Nano 1.3 - default_envs = mks_robin_nano_v1_3_f4
#ifndef MOTHERBOARD #ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO #if (IS_BOARD_1_3)
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V1_3_F4
#else
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO
#endif
#endif #endif
/** /**
@ -120,7 +178,7 @@
* *
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/ */
#define BAUDRATE 250000 #define BAUDRATE 115200 // See https://github.com/MarlinFirmware/Marlin/issues/12174
#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate #define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate
/** /**
@ -142,11 +200,14 @@
// Enable the Bluetooth serial interface on AT90USB devices // Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH //#define BLUETOOTH
#define FIRMWARE_BIN elegoo.bin #define FIRMWARE_BIN elegoo.bin
// Name displayed in the LCD "Ready" message and Info menu // Name displayed in the LCD "Ready" message and Info menu
#define CUSTOM_MACHINE_NAME "Elegoo Neptune 2" #if IS_2D
#define CUSTOM_MACHINE_NAME "Elegoo Neptune 2D"
#else
#define CUSTOM_MACHINE_NAME "Elegoo Neptune 2"
#endif
// Printer's unique ID, used by some programs to differentiate between machines. // Printer's unique ID, used by some programs to differentiate between machines.
// Choose your own or use a service like https://www.uuidgenerator.net/version4 // Choose your own or use a service like https://www.uuidgenerator.net/version4
@ -195,7 +256,12 @@
// This defines the number of extruders // This defines the number of extruders
// :[0, 1, 2, 3, 4, 5, 6, 7, 8] // :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1 #if IS_2D
#define EXTRUDERS 2
#define SINGLENOZZLE
#else
#define EXTRUDERS 1
#endif
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. // Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
@ -519,13 +585,13 @@
//#define MAX31865_SENSOR_OHMS_1 100 //#define MAX31865_SENSOR_OHMS_1 100
//#define MAX31865_CALIBRATION_OHMS_1 430 //#define MAX31865_CALIBRATION_OHMS_1 430
#define TEMP_RESIDENCY_TIME 5 // (seconds) Time to wait for hotend to "settle" in M109 #define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109
#define TEMP_WINDOW 5 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
#define TEMP_HYSTERESIS 10 // (°C) Temperature proximity considered "close enough" to the target #define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target
#define TEMP_BED_RESIDENCY_TIME 5 // (seconds) Time to wait for bed to "settle" in M190 #define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190
#define TEMP_BED_WINDOW 5 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
#define TEMP_BED_HYSTERESIS 10 // (°C) Temperature proximity considered "close enough" to the target #define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target
#define TEMP_CHAMBER_RESIDENCY_TIME 10 // (seconds) Time to wait for chamber to "settle" in M191 #define TEMP_CHAMBER_RESIDENCY_TIME 10 // (seconds) Time to wait for chamber to "settle" in M191
#define TEMP_CHAMBER_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_CHAMBER_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer
@ -563,7 +629,7 @@
// Above this temperature the heater will be switched off. // Above this temperature the heater will be switched off.
// This can protect components from overheating, but NOT from shorts and failures. // This can protect components from overheating, but NOT from shorts and failures.
// (Use MINTEMP for thermistor short/failure protection.) // (Use MINTEMP for thermistor short/failure protection.)
#define HEATER_0_MAXTEMP 275 #define HEATER_0_MAXTEMP 270
#define HEATER_1_MAXTEMP 275 #define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275 #define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275 #define HEATER_3_MAXTEMP 275
@ -571,7 +637,7 @@
#define HEATER_5_MAXTEMP 275 #define HEATER_5_MAXTEMP 275
#define HEATER_6_MAXTEMP 275 #define HEATER_6_MAXTEMP 275
#define HEATER_7_MAXTEMP 275 #define HEATER_7_MAXTEMP 275
#define BED_MAXTEMP 150 #define BED_MAXTEMP 110
#define CHAMBER_MAXTEMP 60 #define CHAMBER_MAXTEMP 60
/** /**
@ -596,7 +662,7 @@
#define PID_K1 0.95 // Smoothing factor within any PID loop #define PID_K1 0.95 // Smoothing factor within any PID loop
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM) //#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM) #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders) //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
// Set/get with gcode: M301 E[extruder number, 0-2] // Set/get with gcode: M301 E[extruder number, 0-2]
@ -608,9 +674,10 @@
#define DEFAULT_Ki_LIST { 1.08, 1.08 } #define DEFAULT_Ki_LIST { 1.08, 1.08 }
#define DEFAULT_Kd_LIST { 114.00, 114.00 } #define DEFAULT_Kd_LIST { 114.00, 114.00 }
#else #else
#define DEFAULT_Kp 34.54 // Tuned by the author. Tune your machine with M303.
#define DEFAULT_Ki 3.91 #define DEFAULT_Kp 25.47
#define DEFAULT_Kd 76.32 #define DEFAULT_Ki 2.11
#define DEFAULT_Kd 76.90
#endif #endif
#endif // PIDTEMP #endif // PIDTEMP
@ -650,10 +717,10 @@
// 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) // 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
// from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) // from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
// Calibrated values // Tuned by the author. Tune your machine with M303.
#define DEFAULT_bedKp 79.92 #define DEFAULT_bedKp 31.30
#define DEFAULT_bedKi 12.97 #define DEFAULT_bedKi 6.02
#define DEFAULT_bedKd 328.19 #define DEFAULT_bedKd 108.50
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED #endif // PIDTEMPBED
@ -727,7 +794,7 @@
* Note: For Bowden Extruders make this large enough to allow load/unload. * Note: For Bowden Extruders make this large enough to allow load/unload.
*/ */
#define PREVENT_LENGTHY_EXTRUDE #define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 500 #define EXTRUDE_MAXLENGTH 200
//=========================================================================== //===========================================================================
//======================== Thermal Runaway Protection ======================= //======================== Thermal Runaway Protection =======================
@ -846,12 +913,16 @@
#define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe. #if HAS_BLTOUCH
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
#else
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.
#endif
/** /**
* Stepper Drivers * Stepper Drivers
@ -883,7 +954,7 @@
//#define J_DRIVER_TYPE A4988 //#define J_DRIVER_TYPE A4988
//#define K_DRIVER_TYPE A4988 //#define K_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988 #define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988 #define E1_DRIVER_TYPE A4988 // for 2D support
//#define E2_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988
@ -930,21 +1001,31 @@
* following movement settings. If fewer factors are given than the * following movement settings. If fewer factors are given than the
* total number of extruders, the last value applies to the rest. * total number of extruders, the last value applies to the rest.
*/ */
//#define DISTINCT_E_FACTORS #if IS_2D
#define DISTINCT_E_FACTORS
#endif
/** /**
* Default Axis Steps Per Unit (steps/mm) * Default Axis Steps Per Unit (steps/mm)
* Override with M92 * Override with M92
* X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]]
*/ */
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 95 } #if IS_2D
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 133, 133 }
#else
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 133 }
#endif
/** /**
* Default Max Feed Rate (mm/s) * Default Max Feed Rate (mm/s)
* Override with M203 * Override with M203
* X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]]
*/ */
#define DEFAULT_MAX_FEEDRATE { 150, 150, 20, 50 } #if IS_2D
#define DEFAULT_MAX_FEEDRATE { 150, 150, 3, 70, 70 }
#else
#define DEFAULT_MAX_FEEDRATE { 150, 150, 3, 70 }
#endif
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
#if ENABLED(LIMITED_MAX_FR_EDITING) #if ENABLED(LIMITED_MAX_FR_EDITING)
@ -957,7 +1038,7 @@
* Override with M201 * Override with M201
* X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]]
*/ */
#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 300, 3000 } #define DEFAULT_MAX_ACCELERATION { 1000, 1000, 100, 1000 }
//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 //#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
#if ENABLED(LIMITED_MAX_ACCEL_EDITING) #if ENABLED(LIMITED_MAX_ACCEL_EDITING)
@ -988,7 +1069,7 @@
#if ENABLED(CLASSIC_JERK) #if ENABLED(CLASSIC_JERK)
#define DEFAULT_XJERK 10.0 #define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0 #define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3 #define DEFAULT_ZJERK 0.4
//#define DEFAULT_IJERK 0.3 //#define DEFAULT_IJERK 0.3
//#define DEFAULT_JJERK 0.3 //#define DEFAULT_JJERK 0.3
//#define DEFAULT_KJERK 0.3 //#define DEFAULT_KJERK 0.3
@ -1040,10 +1121,13 @@
* The probe replaces the Z-MIN endstop and is used for Z homing. * The probe replaces the Z-MIN endstop and is used for Z homing.
* (Automatically enables USE_PROBE_FOR_Z_HOMING.) * (Automatically enables USE_PROBE_FOR_Z_HOMING.)
*/ */
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN #if HAS_BLTOUCH
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
// Force the use of the probe for Z-axis homing // Force the use of the probe for Z-axis homing
//#define USE_PROBE_FOR_Z_HOMING #define USE_PROBE_FOR_Z_HOMING
#else
#define PROBE_MANUALLY
#endif
/** /**
* Z_MIN_PROBE_PIN * Z_MIN_PROBE_PIN
@ -1060,7 +1144,7 @@
* - normally-closed switches to GND and D32. * - normally-closed switches to GND and D32.
* - normally-open switches to 5V and D32. * - normally-open switches to 5V and D32.
*/ */
//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default #define Z_MIN_PROBE_PIN PC4 // Z-MAX PIN FOR BOARD
/** /**
* Probe Type * Probe Type
@ -1074,7 +1158,7 @@
* Use G29 repeatedly, adjusting the Z height at each point with movement commands * Use G29 repeatedly, adjusting the Z height at each point with movement commands
* or (with LCD_BED_LEVELING) the LCD controller. * or (with LCD_BED_LEVELING) the LCD controller.
*/ */
#define PROBE_MANUALLY //#define PROBE_MANUALLY
/** /**
* A Fix-Mounted Probe either doesn't deploy or needs manual deployment. * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
@ -1097,7 +1181,9 @@
/** /**
* The BLTouch probe uses a Hall effect sensor and emulates a servo. * The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/ */
//#define BLTOUCH #if HAS_BLTOUCH
#define BLTOUCH
#endif
/** /**
* MagLev V4 probe by MDD * MagLev V4 probe by MDD
@ -1200,20 +1286,20 @@
* | [-] | * | [-] |
* O-- FRONT --+ * O-- FRONT --+
*/ */
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } #define NOZZLE_TO_PROBE_OFFSET { 32.55, 3, 0 }
// Most probes should stay away from the edges of the bed, but // Most probes should stay away from the edges of the bed, but
// with NOZZLE_AS_PROBE this can be negative for a wider probing area. // with NOZZLE_AS_PROBE this can be negative for a wider probing area.
#define PROBING_MARGIN 10 #define PROBING_MARGIN 20
// X and Y axis travel speed (mm/min) between probes // X and Y axis travel speed (mm/min) between probes
#define XY_PROBE_FEEDRATE (133*60) #define XY_PROBE_FEEDRATE (4000)
// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_FEEDRATE_FAST (4*60) #define Z_PROBE_FEEDRATE_FAST (600)
// Feedrate (mm/min) for the "accurate" probe of each point // Feedrate (mm/min) for the "accurate" probe of each point
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2) #define Z_PROBE_FEEDRATE_SLOW (300)
/** /**
* Probe Activation Switch * Probe Activation Switch
@ -1286,7 +1372,7 @@
// For M851 give a range for adjusting the Z probe offset // For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20 #define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20 #define Z_PROBE_OFFSET_RANGE_MAX 50
// Enable the M48 repeatability test to test probe accuracy // Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST //#define Z_MIN_PROBE_REPEATABILITY_TEST
@ -1382,7 +1468,7 @@
*/ */
//#define Z_IDLE_HEIGHT Z_HOME_POS //#define Z_IDLE_HEIGHT Z_HOME_POS
//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... #define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure to have this much clearance over your Z_MAX_POS to prevent grinding. // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding.
//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z //#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z
@ -1403,12 +1489,12 @@
#define Y_BED_SIZE 235 #define Y_BED_SIZE 235
// Travel limits (mm) after homing, corresponding to endstop positions. // Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -3 #define X_MIN_POS 0
#define Y_MIN_POS 0 #define Y_MIN_POS 0
#define Z_MIN_POS 0 #define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE #define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE #define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 260 #define Z_MAX_POS 250
//#define I_MIN_POS 0 //#define I_MIN_POS 0
//#define I_MAX_POS 50 //#define I_MAX_POS 50
//#define J_MIN_POS 0 //#define J_MIN_POS 0
@ -1448,7 +1534,7 @@
#endif #endif
#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) #if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif #endif
/** /**
@ -1467,12 +1553,16 @@
#define FILAMENT_RUNOUT_SENSOR #define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR) #if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #if IS_2D
#define NUM_RUNOUT_SENSORS 2 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#else
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#endif
#define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
//#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. #define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder.
// This is automatically enabled for MIXING_EXTRUDERs. // This is automatically enabled for MIXING_EXTRUDERs.
// Override individually if the runout sensors vary // Override individually if the runout sensors vary
@ -1511,7 +1601,7 @@
// Commands to execute on filament runout. // Commands to execute on filament runout.
// With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c")
// NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply.
#define FILAMENT_RUNOUT_SCRIPT "M600" #define FILAMENT_RUNOUT_SCRIPT "M600 T%c"
// After a runout is detected, continue printing this length of filament // After a runout is detected, continue printing this length of filament
// before executing the runout script. Useful for a sensor at the end of // before executing the runout script. Useful for a sensor at the end of
@ -1566,16 +1656,18 @@
*/ */
//#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR //#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL
//define AUTO_BED_LEVELING_UBL #if HAS_BLTOUCH
//#define MESH_BED_LEVELING #define AUTO_BED_LEVELING_BILINEAR
#else
#define MESH_BED_LEVELING
#endif
/** /**
* Normally G28 leaves leveling disabled on completion. Enable one of * Normally G28 leaves leveling disabled on completion. Enable one of
* these options to restore the prior leveling state or to always enable * these options to restore the prior leveling state or to always enable
* leveling immediately after G28. * leveling immediately after G28.
*/ */
//#define RESTORE_LEVELING_AFTER_G28 #define RESTORE_LEVELING_AFTER_G28
//#define ENABLE_LEVELING_AFTER_G28 //#define ENABLE_LEVELING_AFTER_G28
/** /**
@ -1583,7 +1675,7 @@
*/ */
//#define PREHEAT_BEFORE_LEVELING //#define PREHEAT_BEFORE_LEVELING
#if ENABLED(PREHEAT_BEFORE_LEVELING) #if ENABLED(PREHEAT_BEFORE_LEVELING)
#define LEVELING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time #define LEVELING_NOZZLE_TEMP 180 // (°C) Only applies to E0 at this time
#define LEVELING_BED_TEMP 50 #define LEVELING_BED_TEMP 50
#endif #endif
@ -1633,7 +1725,7 @@
#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) #if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension. // Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_X 5
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Probe along the Y axis, advancing X after each column // Probe along the Y axis, advancing X after each column
@ -1685,7 +1777,7 @@
//=================================== Mesh ================================== //=================================== Mesh ==================================
//=========================================================================== //===========================================================================
#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed #define MESH_INSET 20 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited. #define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
@ -1697,7 +1789,7 @@
* Add a bed leveling sub-menu for ABL or MBL. * Add a bed leveling sub-menu for ABL or MBL.
* Include a guided procedure if manual probing is enabled. * Include a guided procedure if manual probing is enabled.
*/ */
//#define LCD_BED_LEVELING #define LCD_BED_LEVELING
#if ENABLED(LCD_BED_LEVELING) #if ENABLED(LCD_BED_LEVELING)
#define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis.
@ -1709,8 +1801,8 @@
#define LEVEL_BED_CORNERS #define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET_LFRB { 50, 50, 50, 50 } // (mm) Left, Front, Right, Back insets #define LEVEL_CORNERS_INSET_LFRB { 30, 30, 30, 30 } // (mm) Left, Front, Right, Back insets
#define LEVEL_CORNERS_HEIGHT 0.2 // (mm) Z height of nozzle at leveling points #define LEVEL_CORNERS_HEIGHT 0.0 // (mm) Z height of nozzle at leveling points
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Z height of nozzle between leveling points #define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Z height of nozzle between leveling points
#define LEVEL_CENTER_TOO // Move to the center after the last corner #define LEVEL_CENTER_TOO // Move to the center after the last corner
//#define LEVEL_CORNERS_USE_PROBE //#define LEVEL_CORNERS_USE_PROBE
@ -1767,7 +1859,9 @@
* - Allows Z homing only when XY positions are known and trusted. * - Allows Z homing only when XY positions are known and trusted.
* - If stepper drivers sleep, XY homing may be required again before Z homing. * - If stepper drivers sleep, XY homing may be required again before Z homing.
*/ */
//#define Z_SAFE_HOMING #if HAS_BLTOUCH
#define Z_SAFE_HOMING
#endif
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT X_CENTER // X point for Z homing #define Z_SAFE_HOMING_X_POINT X_CENTER // X point for Z homing
@ -1775,7 +1869,7 @@
#endif #endif
// Homing speeds (mm/min) // Homing speeds (mm/min)
#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (15*60) } #define HOMING_FEEDRATE_MM_M { (2400), (2400), (10*60) }
// Validate that endstops are triggered on homing moves // Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS #define VALIDATE_HOMING_ENDSTOPS
@ -1887,14 +1981,14 @@
// Preheat Constants - Up to 5 are supported without changes // Preheat Constants - Up to 5 are supported without changes
// //
#define PREHEAT_1_LABEL "PLA" #define PREHEAT_1_LABEL "PLA"
#define PREHEAT_1_TEMP_HOTEND 200 #define PREHEAT_1_TEMP_HOTEND 200
#define PREHEAT_1_TEMP_BED 50 #define PREHEAT_1_TEMP_BED 50
#define PREHEAT_1_TEMP_CHAMBER 35 #define PREHEAT_1_TEMP_CHAMBER 35
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
#define PREHEAT_2_LABEL "PETG" #define PREHEAT_2_LABEL "PETG"
#define PREHEAT_2_TEMP_HOTEND 240 #define PREHEAT_2_TEMP_HOTEND 230
#define PREHEAT_2_TEMP_BED 75 #define PREHEAT_2_TEMP_BED 75
#define PREHEAT_2_TEMP_CHAMBER 35 #define PREHEAT_2_TEMP_CHAMBER 35
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
@ -1919,11 +2013,11 @@
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z_raise } // Specify a park position as { X, Y, Z_raise }
#define NOZZLE_PARK_POINT { 5, 5, 10 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MIN_POS + 10), 20 }
#define NOZZLE_PARK_X_ONLY // X move only is required to park //#define NOZZLE_PARK_X_ONLY // X move only is required to park
//#define NOZZLE_PARK_Y_ONLY // Y move only is required to park //#define NOZZLE_PARK_Y_ONLY // Y move only is required to park
#define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance
#define NOZZLE_PARK_XY_FEEDRATE 50 // (mm/s) X and Y axes feedrate (also used for delta Z axis) #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers) #define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers)
#endif #endif
@ -2139,7 +2233,7 @@
* *
* Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
*/ */
//#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
/** /**
* LCD Menu Items * LCD Menu Items
@ -2202,7 +2296,7 @@
// //
// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. // Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu.
// //
#define INDIVIDUAL_AXIS_HOMING_MENU //#define INDIVIDUAL_AXIS_HOMING_MENU
//#define INDIVIDUAL_AXIS_HOMING_SUBMENU //#define INDIVIDUAL_AXIS_HOMING_SUBMENU
// //
@ -2838,7 +2932,7 @@
#define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens
#define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus
#define TOUCH_IDLE_SLEEP 300 // (secs) Turn off the TFT backlight if set (5mn) //#define TOUCH_IDLE_SLEEP 300 // (secs) Turn off the TFT backlight if set (5mn)
#define TOUCH_SCREEN_CALIBRATION #define TOUCH_SCREEN_CALIBRATION
@ -2879,26 +2973,23 @@
// :[1,2,3,4,5,6,7,8] // :[1,2,3,4,5,6,7,8]
//#define NUM_M106_FANS 1 //#define NUM_M106_FANS 1
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
//#define FAST_PWM_FAN
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency // which is not as annoying as with the hardware PWM. On the other hand, if this frequency
// is too low, you should also increment SOFT_PWM_SCALE. // is too low, you should also increment SOFT_PWM_SCALE.
#define FAN_SOFT_PWM //#define FAN_SOFT_PWM
// Incrementing this by 1 will double the software PWM frequency, // Incrementing this by 1 will double the software PWM frequency,
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. // affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
// However, control resolution will be halved for each increment; // However, control resolution will be halved for each increment;
// at zero value, there are 128 effective control positions. // at zero value, there are 128 effective control positions.
// :[0,1,2,3,4,5,6,7] // :[0,1,2,3,4,5,6,7]
#define SOFT_PWM_SCALE 1 #define SOFT_PWM_SCALE 0
// If SOFT_PWM_SCALE is set to a value higher than 0, dithering can // If SOFT_PWM_SCALE is set to a value higher than 0, dithering can
// be used to mitigate the associated resolution loss. If enabled, // be used to mitigate the associated resolution loss. If enabled,
// some of the PWM cycles are stretched so on average the desired // some of the PWM cycles are stretched so on average the desired
// duty cycle is attained. // duty cycle is attained.
#define SOFT_PWM_DITHER //#define SOFT_PWM_DITHER
// Temperature status LEDs that display the hotend and bed temperature. // Temperature status LEDs that display the hotend and bed temperature.
// If all hotends, bed temperature, and target temperature are under 54C // If all hotends, bed temperature, and target temperature are under 54C

View file

@ -283,8 +283,8 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/ */
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 60 // Seconds #define THERMAL_PROTECTION_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 5 // Degrees Celsius #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
#if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP)
@ -311,13 +311,13 @@
* Thermal Protection parameters for the bed are just as above for hotends. * Thermal Protection parameters for the bed are just as above for hotends.
*/ */
#if ENABLED(THERMAL_PROTECTION_BED) #if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 60 // Seconds #define THERMAL_PROTECTION_BED_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 5 // Degrees Celsius #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/** /**
* As described above, except for the bed (M140/M190/M303). * As described above, except for the bed (M140/M190/M303).
*/ */
#define WATCH_BED_TEMP_PERIOD 120 // Seconds #define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif #endif
@ -486,7 +486,7 @@
* Hotend Idle Timeout * Hotend Idle Timeout
* Prevent filament in the nozzle from charring and causing a critical jam. * Prevent filament in the nozzle from charring and causing a critical jam.
*/ */
//#define HOTEND_IDLE_TIMEOUT #define HOTEND_IDLE_TIMEOUT
#if ENABLED(HOTEND_IDLE_TIMEOUT) #if ENABLED(HOTEND_IDLE_TIMEOUT)
#define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection #define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection
#define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection #define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection
@ -532,7 +532,7 @@
// When first starting the main fan, run it at full speed for the // When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably // given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu) // before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100 #define FAN_KICKSTART_TIME 100
// Some coolers may require a non-zero "off" state. // Some coolers may require a non-zero "off" state.
//#define FAN_OFF_PWM 1 //#define FAN_OFF_PWM 1
@ -549,22 +549,25 @@
* *
* Define one or both of these to override the default 0-255 range. * Define one or both of these to override the default 0-255 range.
*/ */
#define FAN_MIN_PWM 100 //#define FAN_MIN_PWM 50
#define FAN_MAX_PWM 255 //#define FAN_MAX_PWM 128
/** /**
* FAST PWM FAN Settings * Fan Fast PWM
* *
* Use to change the FAST FAN PWM frequency (if enabled in Configuration.h) * Combinations of PWM Modes, prescale values and TOP resolutions are used internally
* Combinations of PWM Modes, prescale values and TOP resolutions are used internally to produce a * to produce a frequency as close as possible to the desired frequency.
* frequency as close as possible to the desired frequency.
* *
* FAST_PWM_FAN_FREQUENCY [undefined by default] * FAST_PWM_FAN_FREQUENCY
* Set this to your desired frequency. * Set this to your desired frequency.
* If left undefined this defaults to F = F_CPU/(2*255*1) * For AVR, if left undefined this defaults to F = F_CPU/(2*255*1)
* i.e., F = 31.4kHz on 16MHz microcontrollers or F = 39.2kHz on 20MHz microcontrollers. * i.e., F = 31.4kHz on 16MHz microcontrollers or F = 39.2kHz on 20MHz microcontrollers.
* These defaults are the same as with the old FAST_PWM_FAN implementation - no migration is required * For non AVR, if left undefined this defaults to F = 1Khz.
* This F value is only to protect the hardware from an absence of configuration
* and not to complete it when users are not aware that the frequency must be specifically set to support the target board.
*
* NOTE: Setting very low frequencies (< 10 Hz) may result in unexpected timer behavior. * NOTE: Setting very low frequencies (< 10 Hz) may result in unexpected timer behavior.
* Setting very high frequencies can damage your hardware.
* *
* USE_OCR2A_AS_TOP [undefined by default] * USE_OCR2A_AS_TOP [undefined by default]
* Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2: * Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2:
@ -574,9 +577,17 @@
* PWM on pin OC2A. Only use this option if you don't need PWM on 0C2A. (Check your schematic.) * PWM on pin OC2A. Only use this option if you don't need PWM on 0C2A. (Check your schematic.)
* USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies. * USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies.
*/ */
//#define FAST_PWM_FAN // Increase the fan PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
#if ENABLED(FAST_PWM_FAN) #if ENABLED(FAST_PWM_FAN)
//#define FAST_PWM_FAN_FREQUENCY 31400 //#define FAST_PWM_FAN_FREQUENCY 31400 // Define here to override the defaults below
//#define USE_OCR2A_AS_TOP //#define USE_OCR2A_AS_TOP
#ifndef FAST_PWM_FAN_FREQUENCY
#ifdef __AVR__
#define FAST_PWM_FAN_FREQUENCY ((F_CPU) / (2 * 255 * 1))
#else
#define FAST_PWM_FAN_FREQUENCY 1000U
#endif
#endif
#endif #endif
/** /**
@ -598,8 +609,8 @@
* Multiple extruders can be assigned to the same pin in which case * Multiple extruders can be assigned to the same pin in which case
* the fan will turn on when any selected extruder is above the threshold. * the fan will turn on when any selected extruder is above the threshold.
*/ */
#define E0_AUTO_FAN_PIN PB0 #define E0_AUTO_FAN_PIN FAN1_PIN
#define E1_AUTO_FAN_PIN -1 #define E1_AUTO_FAN_PIN FAN1_PIN
#define E2_AUTO_FAN_PIN -1 #define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1 #define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1 #define E4_AUTO_FAN_PIN -1
@ -839,7 +850,7 @@
//#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (mm) Backoff from endstops after homing //#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (mm) Backoff from endstops after homing
//#define QUICK_HOME // If G28 contains XY do a diagonal move first #define QUICK_HOME // If G28 contains XY do a diagonal move first
//#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X //#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X
//#define HOME_Z_FIRST // Home Z first. Requires a Z-MIN endstop (not a probe). //#define HOME_Z_FIRST // Home Z first. Requires a Z-MIN endstop (not a probe).
//#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first //#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first
@ -982,7 +993,7 @@
#if ENABLED(ASSISTED_TRAMMING) #if ENABLED(ASSISTED_TRAMMING)
// Define positions for probe points. // Define positions for probe points.
#define TRAMMING_POINT_XY { { 20, 20 }, { 180, 20 }, { 180, 180 }, { 20, 180 } } #define TRAMMING_POINT_XY { { 53, 35 }, { 200, 35 }, { 200, 200 }, { 53, 200 } }
// Define position names for probe points. // Define position names for probe points.
#define TRAMMING_POINT_NAME_1 "Front-Left" #define TRAMMING_POINT_NAME_1 "Front-Left"
@ -1172,7 +1183,7 @@
* vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the
* lowest stepping frequencies. * lowest stepping frequencies.
*/ */
//#define ADAPTIVE_STEP_SMOOTHING #define ADAPTIVE_STEP_SMOOTHING
/** /**
* Custom Microstepping * Custom Microstepping
@ -1273,17 +1284,17 @@
// Add Probe Z Offset calibration to the Z Probe Offsets menu // Add Probe Z Offset calibration to the Z Probe Offsets menu
#if HAS_BED_PROBE #if HAS_BED_PROBE
//#define PROBE_OFFSET_WIZARD #define PROBE_OFFSET_WIZARD
#if ENABLED(PROBE_OFFSET_WIZARD) #if ENABLED(PROBE_OFFSET_WIZARD)
// //
// Enable to init the Probe Z-Offset when starting the Wizard. // Enable to init the Probe Z-Offset when starting the Wizard.
// Use a height slightly above the estimated nozzle-to-probe Z offset. // 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. // For example, with an offset of -5, consider a starting height of -4.
// //
//#define PROBE_OFFSET_WIZARD_START_Z -4.0 #define PROBE_OFFSET_WIZARD_START_Z 0
// Set a convenient position to do the calibration (probing point and nozzle/bed-distance) // Set a convenient position to do the calibration (probing point and nozzle/bed-distance)
//#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } #define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
#endif #endif
#if ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
@ -1359,13 +1370,13 @@
#endif #endif
// Scroll a longer status message into view // Scroll a longer status message into view
#define STATUS_MESSAGE_SCROLLING //#define STATUS_MESSAGE_SCROLLING
// On the Info Screen, display XY with one decimal place when possible // On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY //#define LCD_DECIMAL_SMALL_XY
// Add an 'M73' G-code to set the current percentage // Add an 'M73' G-code to set the current percentage
#define LCD_SET_PROGRESS_MANUALLY //#define LCD_SET_PROGRESS_MANUALLY
// Show the E position (filament used) during printing // Show the E position (filament used) during printing
//#define LCD_SHOW_E_TOTAL //#define LCD_SHOW_E_TOTAL
@ -1452,7 +1463,7 @@
*/ */
//#define POWER_LOSS_RECOVERY //#define POWER_LOSS_RECOVERY
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
#define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) //#define PLR_ENABLED_DEFAULT true // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)
//#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss
//#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS)
//#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module. //#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module.
@ -1522,7 +1533,7 @@
#define SCROLL_LONG_FILENAMES #define SCROLL_LONG_FILENAMES
// Leave the heaters on after Stop Print (not recommended!) // Leave the heaters on after Stop Print (not recommended!)
#define SD_ABORT_NO_COOLDOWN //#define SD_ABORT_NO_COOLDOWN
/** /**
* This option allows you to abort SD printing when any endstop is triggered. * This option allows you to abort SD printing when any endstop is triggered.
@ -1608,7 +1619,7 @@
//#define CONFIGURATION_EMBEDDING //#define CONFIGURATION_EMBEDDING
// Add an optimized binary file transfer mode, initiated with 'M28 B1' // Add an optimized binary file transfer mode, initiated with 'M28 B1'
#define BINARY_FILE_TRANSFER //#define BINARY_FILE_TRANSFER
#if ENABLED(BINARY_FILE_TRANSFER) #if ENABLED(BINARY_FILE_TRANSFER)
// Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER // Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER
@ -1724,7 +1735,7 @@
#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI #if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI
// Show SD percentage next to the progress bar // Show SD percentage next to the progress bar
//#define SHOW_SD_PERCENT #define SHOW_SD_PERCENT
// Enable to save many cycles by drawing a hollow frame on Menu Screens // Enable to save many cycles by drawing a hollow frame on Menu Screens
#define MENU_HOLLOW_FRAME #define MENU_HOLLOW_FRAME
@ -1963,7 +1974,9 @@
//#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28
//#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #if HAS_BLTOUCH
#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping
#endif
#if ENABLED(BABYSTEP_ZPROBE_OFFSET) #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
//#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
@ -2264,18 +2277,18 @@
// For debug-echo: 128 bytes for the optimal speed. // For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy. // Other output doesn't need to be that speedy.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256] // :[0, 2, 4, 8, 16, 32, 64, 128, 256]
#define TX_BUFFER_SIZE 32 #define TX_BUFFER_SIZE 0
// Host Receive Buffer Size // Host Receive Buffer Size
// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. // Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
// To use flow control, set this buffer size to at least 1024 bytes. // To use flow control, set this buffer size to at least 1024 bytes.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048] // :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
#define RX_BUFFER_SIZE 1024 //#define RX_BUFFER_SIZE 1024
#if RX_BUFFER_SIZE >= 1024 #if RX_BUFFER_SIZE >= 1024
// Enable to have the controller send XON/XOFF control characters to // Enable to have the controller send XON/XOFF control characters to
// the host to signal the RX buffer is becoming full. // the host to signal the RX buffer is becoming full.
#define SERIAL_XON_XOFF //#define SERIAL_XON_XOFF
#endif #endif
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
@ -2302,7 +2315,7 @@
* Currently handles M108, M112, M410, M876 * Currently handles M108, M112, M410, M876
* NOTE: Not yet implemented for all platforms. * NOTE: Not yet implemented for all platforms.
*/ */
#define EMERGENCY_PARSER //#define EMERGENCY_PARSER
/** /**
* Realtime Reporting (requires EMERGENCY_PARSER) * Realtime Reporting (requires EMERGENCY_PARSER)
@ -2331,7 +2344,7 @@
//#define NO_TIMEOUTS 1000 // Milliseconds //#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. // Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
#define ADVANCED_OK //#define ADVANCED_OK
// Printrun may have trouble receiving long strings all at once. // Printrun may have trouble receiving long strings all at once.
// This option inserts short delays between lines of serial output. // This option inserts short delays between lines of serial output.
@ -2416,10 +2429,10 @@
* Retract and prime filament on tool-change to reduce * Retract and prime filament on tool-change to reduce
* ooze and stringing and to get cleaner transitions. * ooze and stringing and to get cleaner transitions.
*/ */
//#define TOOLCHANGE_FILAMENT_SWAP #define TOOLCHANGE_FILAMENT_SWAP
#if ENABLED(TOOLCHANGE_FILAMENT_SWAP) #if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
// Load / Unload // Load / Unload
#define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length #define TOOLCHANGE_FS_LENGTH 80 // (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, fine tune by LCD/Gcode)
#define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading) #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) #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down)
@ -2483,20 +2496,20 @@
#define ADVANCED_PAUSE_FEATURE #define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE) #if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. #define PAUSE_PARK_RETRACT_LENGTH 3 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle. // This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 15 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_UNLOAD_LENGTH 400 // (mm) The length of filament for a complete unload. #define FILAMENT_CHANGE_UNLOAD_LENGTH 200 // (mm) The length of filament for a complete unload.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
// Set to 0 for manual unloading. // Set to 0 for manual unloading.
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material.
// 0 to disable start loading and skip to fast load only // 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 15 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 400 // (mm) Load length of filament, from extruder gear to nozzle. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 200 // (mm) Load length of filament, from extruder gear to nozzle.
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted.
@ -2505,7 +2518,7 @@
// Set to 0 for manual extrusion. // Set to 0 for manual extrusion.
// Filament can be extruded repeatedly from the Filament Change menu // Filament can be extruded repeatedly from the Filament Change menu
// until extrusion is consistent, and to purge old filament. // until extrusion is consistent, and to purge old filament.
#define ADVANCED_PAUSE_RESUME_PRIME 10 // (mm) Extra distance to prime nozzle after returning from park. #define ADVANCED_PAUSE_RESUME_PRIME 10 // (mm) Extra distance to prime nozzle after returning from park.
#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. #define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused.
// Filament Unload does a Retract, Delay, and Purge first: // Filament Unload does a Retract, Delay, and Purge first:
@ -2514,8 +2527,8 @@
#define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
#define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload
#define PAUSE_PARK_NOZZLE_TIMEOUT 300 // (seconds) Time limit before the nozzle is turned off for safety. #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
#define FILAMENT_CHANGE_ALERT_BEEPS 3 // Number of alert beeps to play when a response is needed. #define FILAMENT_CHANGE_ALERT_BEEPS 3 // Number of alert beeps to play when a response is needed.
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
//#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again.
//#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing.
@ -2523,7 +2536,7 @@
#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
//#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change
//#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
#endif #endif
@ -2964,7 +2977,7 @@
* Define your own with: * Define your own with:
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] } * { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
*/ */
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below) #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below)
//#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below)
//#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X
//#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below)
@ -3737,7 +3750,7 @@
*/ */
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
#if ENABLED(EXTENDED_CAPABILITIES_REPORT) #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
#define M115_GEOMETRY_REPORT //#define M115_GEOMETRY_REPORT
#endif #endif
/** /**
@ -3782,11 +3795,11 @@
* - M206 and M428 are disabled. * - M206 and M428 are disabled.
* - G92 will revert to its behavior from Marlin 1.0. * - G92 will revert to its behavior from Marlin 1.0.
*/ */
//#define NO_WORKSPACE_OFFSETS #define NO_WORKSPACE_OFFSETS
// Extra options for the M114 "Current Position" report // Extra options for the M114 "Current Position" report
//#define M114_DETAIL // Use 'M114` for details to check planner calculations //#define M114_DETAIL // Use 'M114` for details to check planner calculations
#define M114_REALTIME // Real current position based on forward kinematics //#define M114_REALTIME // Real current position based on forward kinematics
//#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. //#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed.
//#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) //#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others)
@ -3967,7 +3980,7 @@
#if ENABLED(HOST_ACTION_COMMANDS) #if ENABLED(HOST_ACTION_COMMANDS)
#define HOST_PAUSE_M76 #define HOST_PAUSE_M76
#define HOST_PROMPT_SUPPORT #define HOST_PROMPT_SUPPORT
#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start //#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_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down
#endif #endif

View file

@ -1 +1,22 @@
When updating the firmware from the SD card, the firmware file must be named 'elegoo.bin'. # Elegoo Neptune 2/Neptune 2D/Neptune 2S Configuration
*IMPORTANT:* Once compiled, be sure to rename `Robin_nano35.bin` to `elegoo.bin` before flashing.
Compiled binaries of configurations are available here: https://github.com/just-trey/Marlin/tree/elegoo-neptune-2/config/Elegoo/Neptune-2
The configuration provided has custom switches in the `Configuration.h` file `// @section custom` to simplify the build options. This configuration supports the ZNP Robin Nano 1.2 and 1.3 Boards with only minor changes in `// @section custom` and a `default_envs` change in the `platformio.ini` file. The configuration is currently set for the 1.3 board without BLTouch, which is the most common option.
NOTE: The original Neptune 2 and 2S use the same configurations except the 2S is always a 1.2 version of the board.
## For ZNP Robin Nano 1.2 boards:
- In the `Configuration.h` file, ensure `#define IS_BOARD_1_3` is set to `false`.
- Update/Ensure `default_envs = mks_robin_nano35` in the `platformio.ini` file.
## For ZNP Robin Nano 1.3 boards:
- In the `Configuration.h` file, ensure `#define IS_BOARD_1_3` is set to `true`.
- In the `platformio.ini` file update/ensure `default_envs = mks_robin_nano_v1_3_f4`.
## To enable BlTouch (All boards):
- In the `Configuration.h` file, ensure `#define HAS_BLTOUCH` is set to `true`.
## For the Neptune 2D (All boards):
- In the `Configuration.h` file, ensure `#define IS_2D` is set to `true`.