diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 30ad8aa96..067b5a42e 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -71,8 +71,23 @@ // @section info // Author info of this build printed to the host during boot and M115 -#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. +#define STRING_CONFIG_H_AUTHOR "(Vertabreaker)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) +#include "Start_here.h" + +/** + * The SOURCE_CODE_URL is the location where users will find the Marlin Source + * Code which is installed on the device. In most cases —unless the manufacturer + * has a distinct Github fork— the Source Code URL should just be the main + * Marlin repository. + */ +#define SOURCE_CODE_URL "https://github.com/Vertabreak/Marlin" + +/** + * The WEBSITE_URL is the location where users can get more information such as + * documentation about a specific Marlin release. + */ +#define WEBSITE_URL "https://www.youtube.com/vertabreaker" /** * *** VENDORS PLEASE READ *** @@ -103,7 +118,11 @@ * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ +#if ENABLED (GTA30) || ENABLED (GTE180) || ENABLED (GTM201) || ENABLED (GTD200) +#define SERIAL_PORT 1 +#else #define SERIAL_PORT 0 +#endif /** * Select a secondary serial port on the board to use for communication with the host. @@ -130,7 +149,23 @@ // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_14_EFB + #if ENABLED (GTA10) + #define MOTHERBOARD BOARD_GT2560_V3 + #elif ENABLED (GTA20) + #define MOTHERBOARD BOARD_GT2560_V3_A20 + #elif ENABLED (I3PROW) || ENABLED (I3PROA) || ENABLED (I3PROB) || ENABLED (I3PROC) || ENABLED (I3PROX) + #define MOTHERBOARD BOARD_GT2560_REV_A_PLUS + #elif ENABLED (MECREATOR2) + #define MOTHERBOARD BOARD_GT2560_V3_MC2 + #elif ENABLED (GTA30) || ENABLED (GTD200) + #define MOTHERBOARD BOARD_GTM32_MINI_A30 + #elif ENABLED (GTE180) + #define MOTHERBOARD BOARD_GTM32_MINI + #elif ENABLED (GTM201) + #define MOTHERBOARD BOARD_GTM32_REV_B + #else + #error No mainboard selected + #endif #endif // Name displayed in the LCD "Ready" message and Info menu @@ -138,20 +173,26 @@ // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like http://www.uuidgenerator.net/version4 -//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000" +#define MACHINE_UUID "836fa943-1337-1337-1337-98a20de75607" // @section extruder // This defines the number of extruders // :[1, 2, 3, 4, 5, 6] +#if ENABLED (CYCLOPST) || ENABLED (TRIEX) +#define EXTRUDERS 3 +#elif ENABLED (CYCLOPS) || ENABLED (DUALEX) +#define EXTRUDERS 2 +#else #define EXTRUDERS 1 - +#endif // Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. -#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 +#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 // For Cyclops or any "multi-extruder" that shares a single nozzle. -//#define SINGLENOZZLE - +#if ENABLED(CYCLOPS) || ENABLED (CYCLOPST) +#define SINGLENOZZLE +#endif /** * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. * @@ -295,21 +336,27 @@ * - This implementation supports up to two mixing extruders. * - Enable DIRECT_MIXING_IN_G1 for M165 and mixing in G1 (from Pia Taubert's reference implementation). */ -//#define MIXING_EXTRUDER -#if ENABLED(MIXING_EXTRUDER) +#if ENABLED (MIX) || ENABLED (MIXT) + #define MIXING_EXTRUDER + #define MIXING_VIRTUAL_TOOLS 8 // Use the Virtual Tool method with M163 and M164 + #define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands + #define GRADIENT_MIX // Support for gradient mixing with M166 and LCD + #define GRADIENT_VTOOL // Add M166 T to use a V-tool index as a Gradient alias + #define RETRACT_SYNC_MIXING // Retract and restore all mixing steppers simultaneously +#endif + +#if ENABLED (MIX) #define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder - #define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with M163 and M164 - //#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands - //#define GRADIENT_MIX // Support for gradient mixing with M166 and LCD - #if ENABLED(GRADIENT_MIX) - //#define GRADIENT_VTOOL // Add M166 T to use a V-tool index as a Gradient alias - #endif +#elif ENABLED (MIXT) + #define MIXING_STEPPERS 3 // Number of steppers in your mixing extruder #endif // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). // For the other hotends it is their distance from the extruder 0 hotend. -//#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle +#if ENABLED (DULEX) || ENABLED (TRIEX) +#define HOTEND_OFFSET_X { 0.0, 32.00 } // (mm) relative X-offset for each nozzle +#endif //#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle //#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle @@ -406,12 +453,20 @@ * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ #define TEMP_SENSOR_0 1 -#define TEMP_SENSOR_1 0 -#define TEMP_SENSOR_2 0 +#if ENABLED (DUALEX) +#define TEMP_SENSOR_1 1 +#elif ENABLED (TRIEX) +#define TEMP_SENSOR_1 1 +#define TEMP_SENSOR_2 1 +#endif #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_4 0 #define TEMP_SENSOR_5 0 +#if ENABLED (GTE180) #define TEMP_SENSOR_BED 0 +#else +#define TEMP_SENSOR_BED 1 +#endif #define TEMP_SENSOR_CHAMBER 0 // Dummy thermistor constant temperature readings, for use with 998 and 999 @@ -423,34 +478,36 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -#define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109 +#define TEMP_RESIDENCY_TIME 5 // (seconds) Time to wait for hotend to "settle" in M109 #define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer -#define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target +#define TEMP_HYSTERESIS 2 // (°C) Temperature proximity considered "close enough" to the target -#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190 +#define TEMP_BED_RESIDENCY_TIME 5 // (seconds) Time to wait for bed to "settle" in M190 #define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer -#define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target +#define TEMP_BED_HYSTERESIS 2 // (°C) Temperature proximity considered "close enough" to the target // Below this temperature the heater will be switched off // because it probably indicates a broken thermistor wire. -#define HEATER_0_MINTEMP 5 -#define HEATER_1_MINTEMP 5 -#define HEATER_2_MINTEMP 5 -#define HEATER_3_MINTEMP 5 -#define HEATER_4_MINTEMP 5 -#define HEATER_5_MINTEMP 5 -#define BED_MINTEMP 5 +#define HEATER_0_MINTEMP 0 +#define HEATER_1_MINTEMP 0 +#define HEATER_2_MINTEMP 0 +#define HEATER_3_MINTEMP 0 +#define HEATER_4_MINTEMP 0 +#define HEATER_5_MINTEMP 0 +#define BED_MINTEMP 0 // Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) -#define HEATER_0_MAXTEMP 275 -#define HEATER_1_MAXTEMP 275 -#define HEATER_2_MAXTEMP 275 -#define HEATER_3_MAXTEMP 275 -#define HEATER_4_MAXTEMP 275 -#define HEATER_5_MAXTEMP 275 -#define BED_MAXTEMP 150 +#define MAXHOTENDTEMP 260 // Max hotend temp 260 +#define MAXBEDTEMP 110 // Max bed temp 110 +#define HEATER_0_MAXTEMP (MAXHOTENDTEMP + 15) +#define HEATER_1_MAXTEMP (MAXHOTENDTEMP + 15) +#define HEATER_2_MAXTEMP (MAXHOTENDTEMP + 15) +#define HEATER_3_MAXTEMP (MAXHOTENDTEMP + 15) +#define HEATER_4_MAXTEMP (MAXHOTENDTEMP + 15) +#define HEATER_5_MAXTEMP (MAXHOTENDTEMP + 15) +#define BED_MAXTEMP (MAXBEDTEMP + 15) //=========================================================================== //============================= PID Settings ================================ @@ -461,10 +518,10 @@ #define PIDTEMP #define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current #define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current -#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) - //#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_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_DEBUG // Sends debug data to the serial port. //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay @@ -475,23 +532,30 @@ // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it - // Ultimaker - #define DEFAULT_Kp 22.2 - #define DEFAULT_Ki 1.08 - #define DEFAULT_Kd 114 - - // MakerGear - //#define DEFAULT_Kp 7.0 - //#define DEFAULT_Ki 0.1 - //#define DEFAULT_Kd 12 - - // Mendel Parts V9 on 12V - //#define DEFAULT_Kp 63.0 - //#define DEFAULT_Ki 2.25 - //#define DEFAULT_Kd 440 + //FIND YOUR OWN: "M303 U1 E0 S200 C8" HOTEND PID + #if ENABLED (I3PROW) || ENABLED (I3PROA) || ENABLED (I3PROC) || ENABLED (I3PROX) || ENABLED (GTM201) + #define DEFAULT_Kp 22.2 + #define DEFAULT_Ki 1.08 + #define DEFAULT_Kd 114 + #elif ENABLED (I3PROB) + #define DEFAULT_Kp 12.33 + #define DEFAULT_Ki 0.51 + #define DEFAULT_Kd 74.50 + #elif ENABLED (MECREATOR2) + #define DEFAULT_Kp 14.94 + #define DEFAULT_Ki 0.74 + #define DEFAULT_Kd 74.98 + #elif ENABLED (MIX) || ENABLED (MIXT) || ENABLED (CYCLOPS) || ENABLED (CYCLOPST) || ENABLED (DUELEX) || ENABLED (GTA30) || ENABLED (GTE180) || ENABLED (GTD200) + #define DEFAULT_Kp 45.8 + #define DEFAULT_Ki 3.61 + #define DEFAULT_Kd 145.39 + #else + #define DEFAULT_Kp 32.59 + #define DEFAULT_Ki 3.72 + #define DEFAULT_Kd 71.43 #endif // PIDTEMP - +#endif //=========================================================================== //====================== PID > Bed Temperature Control ====================== //=========================================================================== @@ -509,8 +573,9 @@ * heater. If your configuration is significantly different than this and you don't understand * the issues involved, don't use bed PID until someone else verifies that your hardware works. */ -//#define PIDTEMPBED - +#if DISABLED (GTE180) +#define PIDTEMPBED +#endif //#define BED_LIMIT_SWITCHING /** @@ -524,22 +589,30 @@ #if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Sends debug data to the serial port. + #if ENABLED (I3PROW) || ENABLED (I3PROA) || ENABLED (I3PROC) || ENABLED (I3PROX) || ENABLED (GTM201) + #define DEFAULT_bedKp 10.00 + #define DEFAULT_bedKi .023 + #define DEFAULT_bedKd 305.4 + #elif ENABLED (I3PROB) + #define DEFAULT_bedKp 234.88 + #define DEFAULT_bedKi 42.79 + #define DEFAULT_bedKd 322.28 + #elif ENABLED (MECREATOR2) + #define DEFAULT_bedKp 129.40 + #define DEFAULT_bedKi 25.07 + #define DEFAULT_bedKd 166.96 + #elif ENABLED (GTA30) || ENABLED (GTD200) + #define DEFAULT_bedKp 369.610 + #define DEFAULT_bedKi 54.132 + #define DEFAULT_bedKd 602.870 + #elif ENABLED (GTA10) || ENABLED (GTA20) + #define DEFAULT_bedKp 200.24 + #define DEFAULT_bedKi 39.43 + #define DEFAULT_bedKd 254.26 - //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) - //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) - #define DEFAULT_bedKp 10.00 - #define DEFAULT_bedKi .023 - #define DEFAULT_bedKd 305.4 - - //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) - //from pidautotune - //#define DEFAULT_bedKp 97.1 - //#define DEFAULT_bedKi 1.41 - //#define DEFAULT_bedKd 1675.16 - - // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. + // FIND YOUR OWN: "M303 U1 E-1 S90 C8" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED - +#endif // @section extruder /** @@ -550,14 +623,14 @@ * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** */ #define PREVENT_COLD_EXTRUSION -#define EXTRUDE_MINTEMP 170 +#define EXTRUDE_MINTEMP 150 /** * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH. * Note: For Bowden Extruders make this large enough to allow load/unload. */ #define PREVENT_LENGTHY_EXTRUDE -#define EXTRUDE_MAXLENGTH 200 +#define EXTRUDE_MAXLENGTH 1000 //=========================================================================== //======================== Thermal Runaway Protection ======================= @@ -604,12 +677,22 @@ // Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. +#if ENABLED (MECREATOR2) +#define USE_ZMIN_PLUG +#define USE_XMAX_PLUG +#define USE_YMAX_PLUG +#elif ENABLED (GTE180) +#define USE_ZMAX_PLUG +#define USE_XMIN_PLUG +#define USE_YMAX_PLUG +#else #define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUG //#define USE_XMAX_PLUG //#define USE_YMAX_PLUG //#define USE_ZMAX_PLUG +#endif // Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS @@ -638,13 +721,31 @@ #endif // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). -#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. -#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe. +#if ENABLED (I3PROW) || ENABLED (I3PROC) || ENABLED (I3PROB) || ENABLED (I3PROA) || ENABLED (GTM201) +#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe. +#elif ENABLED (MECREATOR2) +#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING true // 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_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe. +#else +#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING true // 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 true // set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe. +#endif /** * Stepper Drivers @@ -661,19 +762,121 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -//#define X_DRIVER_TYPE A4988 -//#define Y_DRIVER_TYPE A4988 -//#define Z_DRIVER_TYPE A4988 -//#define X2_DRIVER_TYPE A4988 -//#define Y2_DRIVER_TYPE A4988 -//#define Z2_DRIVER_TYPE A4988 -//#define Z3_DRIVER_TYPE A4988 -//#define E0_DRIVER_TYPE A4988 -//#define E1_DRIVER_TYPE A4988 -//#define E2_DRIVER_TYPE A4988 -//#define E3_DRIVER_TYPE A4988 -//#define E4_DRIVER_TYPE A4988 -//#define E5_DRIVER_TYPE A4988 +#if ENABLED (T2208) + #define X_DRIVER_TYPE TMC2208_STANDALONE + #define Y_DRIVER_TYPE TMC2208_STANDALONE + #define Z_DRIVER_TYPE TMC2208_STANDALONE + #define E0_DRIVER_TYPE TMC2208_STANDALONE + #define E1_DRIVER_TYPE TMC2208_STANDALONE + #define E2_DRIVER_TYPE TMC2208_STANDALONE +#elif ENABLED (T2209) + #define X_DRIVER_TYPE TMC2209_STANDALONE + #define Y_DRIVER_TYPE TMC2209_STANDALONE + #define Z_DRIVER_TYPE TMC2209_STANDALONE + #define E0_DRIVER_TYPE TMC2209_STANDALONE + #define E1_DRIVER_TYPE TMC2209_STANDALONE + #define E2_DRIVER_TYPE TMC2209_STANDALONE +#elif ENABLED (T2130) + #define X_DRIVER_TYPE TMC2130_STANDALONE + #define Y_DRIVER_TYPE TMC2130_STANDALONE + #define Z_DRIVER_TYPE TMC2130_STANDALONE + #define E0_DRIVER_TYPE TMC2130_STANDALONE + #define E1_DRIVER_TYPE TMC2130_STANDALONE + #define E2_DRIVER_TYPE TMC2130_STANDALONE +#elif ENABLED (T2160) + #define X_DRIVER_TYPE TMC2160_STANDALONE + #define Y_DRIVER_TYPE TMC2160_STANDALONE + #define Z_DRIVER_TYPE TMC2160_STANDALONE + #define E0_DRIVER_TYPE TMC2160_STANDALONE + #define E1_DRIVER_TYPE TMC2160_STANDALONE + #define E2_DRIVER_TYPE TMC2160_STANDALONE +#elif ENABLED (T26X) + #define X_DRIVER_TYPE TMC26X_STANDALONE + #define Y_DRIVER_TYPE TMC26X_STANDALONE + #define Z_DRIVER_TYPE TMC26X_STANDALONE + #define E0_DRIVER_TYPE TMC26X_STANDALONE + #define E1_DRIVER_TYPE TMC26X_STANDALONE + #define E2_DRIVER_TYPE TMC26X_STANDALONE +#elif ENABLED (T2660) + #define X_DRIVER_TYPE TMC2660_STANDALONE + #define Y_DRIVER_TYPE TMC2660_STANDALONE + #define Z_DRIVER_TYPE TMC2660_STANDALONE + #define E0_DRIVER_TYPE TMC2660_STANDALONE + #define E1_DRIVER_TYPE TMC2660_STANDALONE + #define E2_DRIVER_TYPE TMC2660_STANDALONE +#elif ENABLED (T5130) + #define X_DRIVER_TYPE TMC5130_STANDALONE + #define Y_DRIVER_TYPE TMC5130_STANDALONE + #define Z_DRIVER_TYPE TMC5130_STANDALONE + #define E0_DRIVER_TYPE TMC5130_STANDALONE + #define E1_DRIVER_TYPE TMC5130_STANDALONE + #define E2_DRIVER_TYPE TMC5130_STANDALONE +#elif ENABLED (T5160) + #define X_DRIVER_TYPE TMC5160_STANDALONE + #define Y_DRIVER_TYPE TMC5160_STANDALONE + #define Z_DRIVER_TYPE TMC5160_STANDALONE + #define E0_DRIVER_TYPE TMC5160_STANDALONE + #define E1_DRIVER_TYPE TMC5160_STANDALONE + #define E2_DRIVER_TYPE TMC5160_STANDALONE +#elif ENABLED (D8825) + #define X_DRIVER_TYPE DRV8825 + #define Y_DRIVER_TYPE DRV8825 + #define Z_DRIVER_TYPE DRV8825 + #define E0_DRIVER_TYPE DRV8825 + #define E1_DRIVER_TYPE DRV8825 + #define E2_DRIVER_TYPE DRV8825 +#elif ENABLED (STOCK) + #define X_DRIVER_TYPE A4988 + #define Y_DRIVER_TYPE A4988 + #define Z_DRIVER_TYPE A4988 + #define E0_DRIVER_TYPE A4988 + #define E1_DRIVER_TYPE A4988 + #define E2_DRIVER_TYPE A4988 +#elif ENABLED (A598) + #define X_DRIVER_TYPE A5984 + #define Y_DRIVER_TYPE A5984 + #define Z_DRIVER_TYPE A5984 + #define E0_DRIVER_TYPE A5984 + #define E1_DRIVER_TYPE A5984 + #define E2_DRIVER_TYPE A5984 +#elif ENABLED (L8729) + #define X_DRIVER_TYPE LV8729 + #define Y_DRIVER_TYPE LV8729 + #define Z_DRIVER_TYPE LV8729 + #define E0_DRIVER_TYPE LV8729 + #define E1_DRIVER_TYPE LV8729 + #define E2_DRIVER_TYPE LV8729 +#elif ENABLED (L647) + #define X_DRIVER_TYPE L6470 + #define Y_DRIVER_TYPE L6470 + #define Z_DRIVER_TYPE L6470 + #define E0_DRIVER_TYPE L6470 + #define E1_DRIVER_TYPE L6470 + #define E2_DRIVER_TYPE L6470 +#elif ENABLED (T6560) + #define X_DRIVER_TYPE TB6560 + #define Y_DRIVER_TYPE TB6560 + #define Z_DRIVER_TYPE TB6560 + #define E0_DRIVER_TYPE TB6560 + #define E1_DRIVER_TYPE TB6560 + #define E2_DRIVER_TYPE TB6560 +#elif ENABLED (T6600) + #define X_DRIVER_TYPE TB6600 + #define Y_DRIVER_TYPE TB6600 + #define Z_DRIVER_TYPE TB6600 + #define E0_DRIVER_TYPE TB6600 + #define E1_DRIVER_TYPE TB6600 + #define E2_DRIVER_TYPE TB6600 +#elif ENABLED (CUSTOM) + #define X_DRIVER_TYPE + #define Y_DRIVER_TYPE + #define Z_DRIVER_TYPE + #define E0_DRIVER_TYPE + #define E1_DRIVER_TYPE + #define E2_DRIVER_TYPE + #else + #error No drivers selected +#endif // Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. @@ -711,25 +914,27 @@ * following movement settings. If fewer factors are given than the * total number of extruders, the last value applies to the rest. */ -//#define DISTINCT_E_FACTORS +#if ENABLED (DUALEX) || ENABLED (TRIEX) +#define DISTINCT_E_FACTORS +#endif /** * Default Axis Steps Per Unit (steps/mm) * Override with M92 * X, Y, Z, E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 } +#define DEFAULT_AXIS_STEPS_PER_UNIT XYZESTEPS /** * Default Max Feed Rate (mm/s) * Override with M203 * X, Y, Z, E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } +#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 5 } //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) - #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits + #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 120 } // ...or, set your own edit limits #endif /** @@ -738,11 +943,11 @@ * Override with M201 * X, Y, Z, E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 } +#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 3000 } //#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) - #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 20000 } // ...or, set your own edit limits + #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 10000 } // ...or, set your own edit limits #endif /** @@ -753,9 +958,9 @@ * M204 R Retract Acceleration * M204 T Travel Acceleration */ -#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves -#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts -#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves +#define DEFAULT_ACCELERATION 1000 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves /** * Default Jerk limits (mm/s) @@ -767,8 +972,8 @@ */ //#define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) - #define DEFAULT_XJERK 10.0 - #define DEFAULT_YJERK 10.0 + #define DEFAULT_XJERK 8.0 + #define DEFAULT_YJERK 8.0 #define DEFAULT_ZJERK 0.3 //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 @@ -787,7 +992,7 @@ * http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html */ #if DISABLED(CLASSIC_JERK) - #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge + #define JUNCTION_DEVIATION_MM 0.01 // (mm) Distance from real junction edge #endif /** @@ -798,7 +1003,7 @@ * * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained */ -//#define S_CURVE_ACCELERATION +#define S_CURVE_ACCELERATION //=========================================================================== //============================= Z Probe Options ============================= @@ -847,12 +1052,12 @@ * or (with LCD_BED_LEVELING) the LCD controller. */ //#define PROBE_MANUALLY -//#define MANUAL_PROBE_START_Z 0.2 +//#define MANUAL_PROBE_START_Z 0 /** * A Fix-Mounted Probe either doesn't deploy or needs manual deployment. * (e.g., an inductive probe or a nozzle-based probe-switch.) - */ + */ //#define FIX_MOUNTED_PROBE /** @@ -864,7 +1069,18 @@ /** * The BLTouch probe uses a Hall effect sensor and emulates a servo. */ -//#define BLTOUCH +#if ENABLED (TOUCHPROBE) +#define BLTOUCH +#define Z_MIN_PROBE_REPEATABILITY_TEST +#elif ENABLED (FMP) +#define FIX_MOUNTED_PROBE +#define Z_MIN_PROBE_REPEATABILITY_TEST +#elif ENABLED (MANUALBL) +#define PROBE_MANUALLY +#define MANUAL_PROBE_START_Z 0.2 +#else +#error No probe selected. +#endif /** * Touch-MI Probe by hotends.fr @@ -921,19 +1137,18 @@ * * Specify a Probe position as { X, Y, Z } */ -#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } +#define NOZZLE_TO_PROBE_OFFSET NPO // Certain types of probes need to stay away from edges -#define MIN_PROBE_EDGE 10 +#define MIN_PROBE_EDGE MPE // X and Y axis travel speed (mm/m) between probes -#define XY_PROBE_SPEED 8000 +#define XY_PROBE_SPEED HOMING_FEEDRATE_XY // Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2) -#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z - +#define Z_PROBE_SPEED_FAST (Z_PROBE_SPEED_SLOW * 2) // Feedrate (mm/m) for the "accurate" probe of each point -#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) +#define Z_PROBE_SPEED_SLOW ZPROBESPEED /** * Multiple Probing @@ -944,7 +1159,7 @@ * A total of 2 does fast/slow probes with a weighted average. * A total of 3 or more adds more slow probes, taking the average. */ -//#define MULTIPLE_PROBING 2 +#define MULTIPLE_PROBING 3 //#define EXTRA_PROBING 1 /** @@ -961,16 +1176,16 @@ * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. */ -#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow +#define Z_CLEARANCE_DEPLOY_PROBE 5 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes -//#define Z_AFTER_PROBING 5 // Z position after probing is done +#define Z_AFTER_PROBING 5 // Z position after probing is done #define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping // For M851 give a range for adjusting the Z probe offset #define Z_PROBE_OFFSET_RANGE_MIN -20 -#define Z_PROBE_OFFSET_RANGE_MAX 20 +#define Z_PROBE_OFFSET_RANGE_MAX 0 // Enable the M48 repeatability test to test probe accuracy //#define Z_MIN_PROBE_REPEATABILITY_TEST @@ -1020,19 +1235,52 @@ // @section machine // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. +#if ENABLED(I3PROC) && ENABLED(INVERTXYZ) +#define INVERT_Y_DIR true +#define INVERT_Z_DIR true +#define INVERT_Z_DIR false +#elif ENABLED(MECREATOR2) && ENABLED(INVERTXYZ) +#define INVERT_X_DIR false +#define INVERT_Y_DIR false +#define INVERT_Z_DIR false +#elif ENABLED(GTE180) && ENABLED(INVERTXYZ) +#define INVERT_X_DIR true +#define INVERT_Y_DIR false +#define INVERT_Z_DIR true +#elif ENABLED(GTE180) #define INVERT_X_DIR false #define INVERT_Y_DIR true #define INVERT_Z_DIR false +#elif ENABLED (I3PROC) +#define INVERT_X_DIR true +#define INVERT_Y_DIR false +#define INVERT_X_DIR false +#elif ENABLED(MECREATOR2) +#define INVERT_X_DIR true +#define INVERT_Y_DIR true +#define INVERT_Z_DIR true +#elif ENABLED(INVERTXYZ) +#define INVERT_X_DIR false +#define INVERT_Y_DIR false +#define INVERT_Z_DIR true +#else +#define INVERT_X_DIR true +#define INVERT_Y_DIR true +#define INVERT_Z_DIR false +#endif // @section extruder // For direct drive extruder v9 set to true, for geared extruder set to 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 +#if ENABLED (INVERTE) + #define INVERT_E0_DIR false + #define INVERT_E1_DIR false + #define INVERT_E2_DIR false +#else + #define INVERT_E0_DIR true + #define INVERT_E1_DIR true + #define INVERT_E2_DIR true +#endif // @section homing @@ -1040,28 +1288,71 @@ //#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off. -//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... +#define Z_HOMING_HEIGHT 5 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. // Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] +#if ENABLED (MECREATOR2) +#define X_HOME_DIR 1 +#define Y_HOME_DIR 1 +#define Z_HOME_DIR -1 +#elif ENABLED (GTE180) +#define X_HOME_DIR -1 +#define Y_HOME_DIR 1 +#define Z_HOME_DIR 1 +#else #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 +#endif // @section machine -// The size of the print bed +// Max XYZ Travel Disatnce from 0 in MM before hitting the end. +#if ENABLED (GTM201) +#define X_BED_SIZE 280 +#define Y_BED_SIZE 220 +#define Z_MAX_POS 160 +#elif ENABLED (GTA20) +#define X_BED_SIZE 250 +#define Y_BED_SIZE 250 +#define Z_MAX_POS 250 +#elif ENABLED (GTA30) +#define X_BED_SIZE 320 +#define Y_BED_SIZE 320 +#define Z_MAX_POS 420 +#elif ENABLED (GTE180) +#define X_BED_SIZE 130 +#define Y_BED_SIZE 130 +#define Z_MAX_POS 130 +#elif ENABLED (I3PROW) || ENABLED (I3PROC) || ENABLED (I3PROB) || ENABLED (I3PROA) || ENABLED (I3PROX) #define X_BED_SIZE 200 #define Y_BED_SIZE 200 +#define Z_MAX_POS 180 +#elif ENABLED (I3PROA) +#define X_BED_SIZE 220 +#define Y_BED_SIZE 220 +#define Z_MAX_POS 200 +#elif ENABLED (GTD200) +#define X_BED_SIZE 300 +#define Y_BED_SIZE 180 +#define Z_MAX_POS 180 +#elif ENABLED (MECREATOR2) +#define X_BED_SIZE 155 +#define Y_BED_SIZE 165 +#define Z_MAX_POS 155 +#elif ENABLED (GTA10) +#define X_BED_SIZE 230 +#define Y_BED_SIZE 230 +#define Z_MAX_POS 250 +#endif -// Travel limits (mm) after homing, corresponding to endstop positions. -#define X_MIN_POS 0 -#define Y_MIN_POS 0 +#define X_MIN_POS XMP +#define Y_MIN_POS YMP #define Z_MIN_POS 0 #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE -#define Z_MAX_POS 200 /** * Software Endstops @@ -1089,7 +1380,7 @@ #endif #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 /** @@ -1099,13 +1390,25 @@ * RAMPS-based boards use SERVO3_PIN for the first runout sensor. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. * By default the firmware assumes HIGH=FILAMENT PRESENT. - */ -//#define FILAMENT_RUNOUT_SENSOR + */ +#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) - #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. - #define FIL_RUNOUT_INVERTING false // Set to true to invert the logic of the sensor. - #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. - //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + #if ENABLED (MIXT) + #define NUM_RUNOUT_SENSORS 3 + #define FIL_RUNOUT_PIN 66 + #define FIL_RUNOUT2_PIN 67 + #define FIL_RUNOUT3_PIN 68 + #elif ENABLED (MIX) || ENABLED (CYCLOPS) || ENABLED (DUELEX) + #define NUM_RUNOUT_SENSORS 2 + #define FIL_RUNOUT_PIN 66 + #define FIL_RUNOUT2_PIN 67 + #else + #define NUM_RUNOUT_SENSORS 1 + #define FIL_RUNOUT_PIN 66 + #endif + #define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensors. some geeetech filament sensors are inverted if trigger with filament loaded invert. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. // Set one or more commands to execute on filament runout. // (After 'M412 H' Marlin will ask the host to handle the process.) @@ -1123,7 +1426,6 @@ //#define FILAMENT_MOTION_SENSOR #endif #endif - //=========================================================================== //=============================== Bed Leveling ============================== //=========================================================================== @@ -1165,14 +1467,14 @@ //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR //#define AUTO_BED_LEVELING_BILINEAR -//#define AUTO_BED_LEVELING_UBL +#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING /** * Normally G28 leaves leveling disabled on completion. Enable * this option to have G28 restore the prior leveling state. */ -//#define RESTORE_LEVELING_AFTER_G28 +#define RESTORE_LEVELING_AFTER_G28 /** * Enable detailed logging of G28, G29, M48, etc. @@ -1185,7 +1487,7 @@ // Gradually reduce leveling correction until a set height is reached, // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z - #define ENABLE_LEVELING_FADE_HEIGHT + //#define ENABLE_LEVELING_FADE_HEIGHT //effects part accuracy // For Cartesian machines, instead of dividing moves on mesh boundaries, // split up moves into short segments like a Delta. This follows the @@ -1196,13 +1498,13 @@ /** * Enable the G26 Mesh Validation Pattern tool. */ - //#define G26_MESH_VALIDATION + #define G26_MESH_VALIDATION #if ENABLED(G26_MESH_VALIDATION) - #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. - #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool. - #define MESH_TEST_HOTEND_TEMP 205 // (°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_TEST_NOZZLE_SIZE G26NOZZLE // (mm) Diameter of primary nozzle. + #define MESH_TEST_HOTEND_TEMP G26HOTEND // (°C) Default nozzle temperature for the G26 Mesh Validation Tool. + #define MESH_TEST_BED_TEMP G26BED // (°C) Default bed temperature for the G26 Mesh Validation Tool. + #define MESH_TEST_LAYER_HEIGHT 0.1 // (mm) Default layer height for the G26 Mesh Validation Tool. + #define G26_XY_FEEDRATE 10 // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Tool. #endif #endif @@ -1210,17 +1512,17 @@ #if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) // Set the number of grid points per dimension. - #define GRID_MAX_POINTS_X 3 + #define GRID_MAX_POINTS_X GRIDSIZE #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X // Probe along the Y axis, advancing X after each column - //#define PROBE_Y_FIRST + #define PROBE_Y_FIRST #if ENABLED(AUTO_BED_LEVELING_BILINEAR) // Beyond the probed grid, continue the implied tilt? // Default is to maintain the height of the nearest edge. - //#define EXTRAPOLATE_BEYOND_GRID + #define EXTRAPOLATE_BEYOND_GRID // // Experimental Subdivision of the grid by Catmull-Rom method. @@ -1239,18 +1541,15 @@ //=========================================================================== //========================= Unified Bed Leveling ============================ //=========================================================================== - - //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh - - #define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed - #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. +#if ENABLED (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh +#endif + #define MESH_INSET MIN_PROBE_EDGE // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X GRIDSIZE // Don't use more than 15 points per axis, implementation limited. #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X - - #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle - #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 - - //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used - // as the Z-Height correction value. + #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle + #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 + #define UBL_Z_RAISE_WHEN_OFF_MESH 0 // When the nozzle is off the mesh, this value is used as the Z-Height correction value. #elif ENABLED(MESH_BED_LEVELING) @@ -1258,8 +1557,8 @@ //=================================== Mesh ================================== //=========================================================================== - #define MESH_INSET 10 // 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 MESH_INSET MIN_PROBE_EDGE // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X GRIDSIZE // Don't use more than 7 points per axis, implementation limited. #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS @@ -1270,22 +1569,21 @@ * Add a bed leveling sub-menu for ABL or MBL. * Include a guided procedure if manual probing is enabled. */ -//#define LCD_BED_LEVELING - +#define LCD_BED_LEVELING #if ENABLED(LCD_BED_LEVELING) #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. - #define LCD_PROBE_Z_RANGE 4 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment - //#define MESH_EDIT_MENU // Add a menu to edit mesh points + #define LCD_PROBE_Z_RANGE 1 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment + #define MESH_EDIT_MENU // Add a menu to edit mesh points #endif // Add a menu item to move between bed corners for manual bed adjustment -//#define LEVEL_BED_CORNERS +#define LEVEL_BED_CORNERS #if ENABLED(LEVEL_BED_CORNERS) - #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling - #define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners - #define LEVEL_CORNERS_HEIGHT 0.0 // (mm) Z height of nozzle at leveling points - //#define LEVEL_CENTER_TOO // Move to the center after the last corner + #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling + #define LEVEL_CORNERS_Z_HOP 5 // (mm) Move nozzle up before moving between corners + #define LEVEL_CORNERS_HEIGHT 0 // (mm) Z height of nozzle at leveling points + #define LEVEL_CENTER_TOO // Move to the center after the last corner #endif /** @@ -1315,15 +1613,15 @@ // - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28). // - Prevent Z homing when the Z probe is outside bed area. // -//#define Z_SAFE_HOMING -#if ENABLED(Z_SAFE_HOMING) +#if ENABLED (BLTOUCH) || ENABLED (FMP) +#define Z_SAFE_HOMING #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28). #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28). #endif // Homing speeds (mm/m) -#define HOMING_FEEDRATE_XY (50*60) +#define HOMING_FEEDRATE_XY (HOMING_FEEDRATE_Z*10) #define HOMING_FEEDRATE_Z (4*60) // Validate that endstops are triggered on homing moves @@ -1363,27 +1661,27 @@ #if ENABLED(SKEW_CORRECTION) // Input all length measurements here: - #define XY_DIAG_AC 282.8427124746 - #define XY_DIAG_BD 282.8427124746 - #define XY_SIDE_AD 200 + //#define XY_DIAG_AC 282.8427124746 + //#define XY_DIAG_BD 282.8427124746 + //#define XY_SIDE_AD 200 // Or, set the default skew factors directly here // to override the above measurements: #define XY_SKEW_FACTOR 0.0 - //#define SKEW_CORRECTION_FOR_Z + #define SKEW_CORRECTION_FOR_Z #if ENABLED(SKEW_CORRECTION_FOR_Z) - #define XZ_DIAG_AC 282.8427124746 - #define XZ_DIAG_BD 282.8427124746 - #define YZ_DIAG_AC 282.8427124746 - #define YZ_DIAG_BD 282.8427124746 - #define YZ_SIDE_AD 200 + //#define XZ_DIAG_AC 282.8427124746 + //#define XZ_DIAG_BD 282.8427124746 + //#define YZ_DIAG_AC 282.8427124746 + //#define YZ_DIAG_BD 282.8427124746 + //#define YZ_SIDE_AD 200 #define XZ_SKEW_FACTOR 0.0 #define YZ_SKEW_FACTOR 0.0 #endif // Enable this option for M852 to set skew at runtime - //#define SKEW_CORRECTION_GCODE + #define SKEW_CORRECTION_GCODE #endif //============================================================================= @@ -1401,11 +1699,11 @@ * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) */ -//#define EEPROM_SETTINGS // Persistent storage with M500 and M501 +#define EEPROM_SETTINGS // Persistent storage with M500 and M501 //#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release! #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM. #if ENABLED(EEPROM_SETTINGS) - //#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. + #define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. #endif // @@ -1423,6 +1721,7 @@ // //#define M100_FREE_MEMORY_WATCHER // Add M100 (Free Memory Watcher) to debug memory usage + // // G20/G21 Inch mode support // @@ -1437,13 +1736,13 @@ // Preheat Constants #define PREHEAT_1_LABEL "PLA" -#define PREHEAT_1_TEMP_HOTEND 180 -#define PREHEAT_1_TEMP_BED 70 +#define PREHEAT_1_TEMP_HOTEND 200 +#define PREHEAT_1_TEMP_BED 60 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 -#define PREHEAT_2_LABEL "ABS" -#define PREHEAT_2_TEMP_HOTEND 240 -#define PREHEAT_2_TEMP_BED 110 +#define PREHEAT_2_LABEL "PETG" +#define PREHEAT_2_TEMP_HOTEND 250 +#define PREHEAT_2_TEMP_BED 70 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 /** @@ -1457,13 +1756,13 @@ * P1 Raise the nozzle always to Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. */ -//#define NOZZLE_PARK_FEATURE +#define NOZZLE_PARK_FEATURE #if ENABLED(NOZZLE_PARK_FEATURE) // Specify a park position as { X, Y, Z_raise } - #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } - #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_POINT { X_MIN_POS + 0, Y_MIN_POS + 0 , Z_MIN_POS + 20 } + #define NOZZLE_PARK_XY_FEEDRATE (HOMING_FEEDRATE_XY / 60) // (mm/s) X and Y axes feedrate (also used for delta Z axis) + #define NOZZLE_PARK_Z_FEEDRATE (HOMING_FEEDRATE_Z / 60) // (mm/s) Z axis feedrate (not used for delta printers) #endif /** @@ -1508,14 +1807,14 @@ #if ENABLED(NOZZLE_CLEAN_FEATURE) // Default number of pattern repetitions - #define NOZZLE_CLEAN_STROKES 12 + #define NOZZLE_CLEAN_STROKES 5 // Default number of triangles - #define NOZZLE_CLEAN_TRIANGLES 3 + #define NOZZLE_CLEAN_TRIANGLES 2 // Specify positions as { X, Y, Z } - #define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1) } - #define NOZZLE_CLEAN_END_POINT { 100, 60, (Z_MIN_POS + 1) } + #define NOZZLE_CLEAN_START_POINT { X_MIN_POS -10, Y_MIN_POS + 0, (Z_MIN_POS + 20)} + #define NOZZLE_CLEAN_END_POINT { X_MIN_POS + 0, Y_MIN_POS + 0, (Z_MIN_POS + 20)} // Circular pattern radius #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 @@ -1528,7 +1827,7 @@ #define NOZZLE_CLEAN_GOBACK // Enable for a purge/clean station that's always at the gantry height (thus no Z move) - //#define NOZZLE_CLEAN_NO_Z + #define NOZZLE_CLEAN_NO_Z #endif /** @@ -1618,7 +1917,12 @@ * you must uncomment the following option or it won't work. * */ -//#define SDSUPPORT +#if ENABLED (GTA30) || ENABLED (GTE180) || ENABLED (GTD200) || ENABLED (GTM201) +#define SDSUPPORT +#define SDIO_SUPPORT +#else +#define SDSUPPORT +#endif /** * SD CARD: SPI SPEED @@ -1698,7 +2002,7 @@ // // 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 // // SPEAKER/BUZZER @@ -1706,7 +2010,7 @@ // If you have a speaker that can produce tones, enable it here. // By default Marlin assumes you have a buzzer with a fixed frequency. // -//#define SPEAKER +#define SPEAKER // // The duration and frequency for the UI feedback sound. @@ -1714,9 +2018,9 @@ // // Note: Test audio output with the G-Code: // M300 S P -// -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2 -//#define LCD_FEEDBACK_FREQUENCY_HZ 5000 +// setting these to 0 will effectively mute the beeper +#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 50 +#define LCD_FEEDBACK_FREQUENCY_HZ 10 //============================================================================= //======================== LCD / Controller Selection ========================= @@ -1869,8 +2173,18 @@ // RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - +#if ENABLED (GTA20) +#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +#define ST7920_DELAY_1 DELAY_NS(125) +#define ST7920_DELAY_2 DELAY_NS(125) +#define ST7920_DELAY_3 DELAY_NS(125) +#define ULTIPANEL +#define NEWPANEL +#else +#define REPRAP_DISCOUNT_SMART_CONTROLLER +#define ULTIPANEL +#define NEWPANEL +#endif // // ReprapWorld Graphical LCD // https://reprapworld.com/?products_details&products_id/1218 @@ -1961,7 +2275,7 @@ // // AZSMZ 12864 LCD with SD -// https://www.aliexpress.com/item/32837222770.html +// https://www.aliexpress.com/store/product/3D-printer-smart-controller-SMART-RAMPS-OR-RAMPS-1-4-LCD-12864-LCD-control-panel-green/2179173_32213636460.html // //#define AZSMZ_12864 diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index da0020901..20c090140 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -105,9 +105,9 @@ * Heated Chamber settings */ #if TEMP_SENSOR_CHAMBER - #define CHAMBER_MINTEMP 5 + #define CHAMBER_MINTEMP 0 #define CHAMBER_MAXTEMP 60 - #define TEMP_CHAMBER_HYSTERESIS 1 // (°C) Temperature proximity considered "close enough" to the target + #define TEMP_CHAMBER_HYSTERESIS 5 // (°C) Temperature proximity considered "close enough" to the target //#define CHAMBER_LIMIT_SWITCHING //#define HEATER_CHAMBER_PIN 44 // Chamber heater on/off pin //#define HEATER_CHAMBER_INVERTING false @@ -137,8 +137,8 @@ * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD */ #if ENABLED(THERMAL_PROTECTION_HOTENDS) - #define THERMAL_PROTECTION_PERIOD 40 // Seconds - #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius + #define THERMAL_PROTECTION_PERIOD 60 // Seconds + #define THERMAL_PROTECTION_HYSTERESIS 5 // Degrees Celsius //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) @@ -157,36 +157,36 @@ * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set * below 2. */ - #define WATCH_TEMP_PERIOD 20 // Seconds - #define WATCH_TEMP_INCREASE 2 // Degrees Celsius + #define WATCH_TEMP_PERIOD 60 // Seconds + #define WATCH_TEMP_INCREASE 5 // Degrees Celsius #endif /** * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) - #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds - #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + #define THERMAL_PROTECTION_BED_PERIOD 60 // Seconds + #define THERMAL_PROTECTION_BED_HYSTERESIS 5 // Degrees Celsius /** * As described above, except for the bed (M140/M190/M303). */ #define WATCH_BED_TEMP_PERIOD 60 // Seconds - #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius + #define WATCH_BED_TEMP_INCREASE 5 // Degrees Celsius #endif /** * Thermal Protection parameters for the heated chamber. */ #if ENABLED(THERMAL_PROTECTION_CHAMBER) - #define THERMAL_PROTECTION_CHAMBER_PERIOD 20 // Seconds - #define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2 // Degrees Celsius + #define THERMAL_PROTECTION_CHAMBER_PERIOD 60 // Seconds + #define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 5 // Degrees Celsius /** * Heated chamber watch settings (M141/M191). */ #define WATCH_CHAMBER_TEMP_PERIOD 60 // Seconds - #define WATCH_CHAMBER_TEMP_INCREASE 2 // Degrees Celsius + #define WATCH_CHAMBER_TEMP_INCREASE 5 // Degrees Celsius #endif #if ENABLED(PIDTEMP) @@ -228,7 +228,7 @@ */ //#define PID_FAN_SCALING #if ENABLED(PID_FAN_SCALING) - //#define PID_FAN_SCALING_ALTERNATIVE_DEFINITION + #define PID_FAN_SCALING_ALTERNATIVE_DEFINITION #if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION) // The alternative definition is used for an easier configuration. // Just figure out Kf at fullspeed (255) and PID_FAN_SCALING_MIN_SPEED. @@ -259,7 +259,7 @@ * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode */ -#define AUTOTEMP +//#define AUTOTEMP #if ENABLED(AUTOTEMP) #define AUTOTEMP_OLDWEIGHT 0.98 #endif @@ -289,14 +289,14 @@ // The number of consecutive low temperature errors that can occur // before a min_temp_error is triggered. (Shouldn't be more than 10.) -//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 +//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 10 // The number of milliseconds a hotend will preheat before starting to check // the temperature. This value should NOT be set to the time it takes the // hot end to reach the target temperature, but the time it takes to reach // the minimum temperature your thermistor can read. The lower the better/safer. // This shouldn't need to be more than 30 seconds (30000) -//#define MILLISECONDS_PREHEAT_TIME 0 +//#define MILLISECONDS_PREHEAT_TIME 30000 // @section extruder @@ -426,14 +426,14 @@ /** * M355 Case Light on-off / brightness */ -//#define CASE_LIGHT_ENABLE +#define CASE_LIGHT_ENABLE #if ENABLED(CASE_LIGHT_ENABLE) - //#define CASE_LIGHT_PIN 4 // Override the default pin if needed + #define CASE_LIGHT_PIN 6 // Override the default pin if needed #define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW - #define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on - #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin) + #define CASE_LIGHT_DEFAULT_ON false // Set default power-up state on + #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255 // Set default power-up brightness (0-255, requires PWM pin) //#define CASE_LIGHT_MAX_PWM 128 // Limit pwm - //#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu + #define CASE_LIGHT_MENU // Add Case Light options to the LCD menu //#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) @@ -571,13 +571,13 @@ // Homing hits each endstop, retracts by these distances, then does a slower bump. #define X_HOME_BUMP_MM 5 #define Y_HOME_BUMP_MM 5 -#define Z_HOME_BUMP_MM 2 -#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) -//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially -//#define HOMING_BACKOFF_MM { 2, 2, 2 } // (mm) Move away from the endstops after homing +#define Z_HOME_BUMP_MM 5 +#define HOMING_BUMP_DIVISOR { 2, 2, 2 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) +#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially +//#define HOMING_BACKOFF_MM { X_MIN_POS, Y_MIN_POS, Z_MIN_POS } // (mm) Move away from the endstops after homing // When G28 is called, this option will make Y home before X -//#define HOME_Y_BEFORE_X +#define HOME_Y_BEFORE_X // Enable this if X or Y can't home without homing the other axis first. //#define CODEPENDENT_XY_HOMING @@ -702,10 +702,10 @@ // Default stepper release if idle. Set to 0 to deactivate. // Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true. // Time can be set by M18 and M84. -#define DEFAULT_STEPPER_DEACTIVE_TIME 120 -#define DISABLE_INACTIVE_X true -#define DISABLE_INACTIVE_Y true -#define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished. +#define DEFAULT_STEPPER_DEACTIVE_TIME 60 +#define DISABLE_INACTIVE_X false +#define DISABLE_INACTIVE_Y false +#define DISABLE_INACTIVE_Z false // Set to false if the nozzle will fall down on your printed part when print has finished. #define DISABLE_INACTIVE_E true #define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate @@ -714,7 +714,7 @@ //#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated // Minimum time that a segment needs to take if the buffer is emptied -#define DEFAULT_MINSEGMENTTIME 20000 // (ms) +#define DEFAULT_MINSEGMENTTIME 60000 // (ms) // If defined the movements slow down when the look ahead buffer is only half full #define SLOWDOWN @@ -742,10 +742,10 @@ // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments // to reduce print artifacts. (Enabling this is costly in memory and computation!) - //#define BACKLASH_SMOOTHING_MM 3 // (mm) + #define BACKLASH_SMOOTHING_MM 10 // (mm) // Add runtime configuration and tuning of backlash values (M425) - //#define BACKLASH_GCODE + #define BACKLASH_GCODE #if ENABLED(BACKLASH_GCODE) // Measure the Z backlash when probing (G29) and set with "M425 Z" @@ -821,7 +821,7 @@ * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the * lowest stepping frequencies. */ -//#define ADAPTIVE_STEP_SMOOTHING +#define ADAPTIVE_STEP_SMOOTHING /** * Custom Microstepping @@ -891,7 +891,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { HOMING_FEEDRATE_XY, HOMING_FEEDRATE_XY, HOMING_FEEDRATE_Z, 2*60 } // Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" @@ -902,15 +902,15 @@ // Change values more rapidly when the encoder is rotated faster #define ENCODER_RATE_MULTIPLIER #if ENABLED(ENCODER_RATE_MULTIPLIER) - #define ENCODER_10X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 10x speed + #define ENCODER_10X_STEPS_PER_SEC 40 // (steps/s) Encoder rate for 10x speed #define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed #endif // Play a beep when the feedrate is changed from the Status Screen //#define BEEP_ON_FEEDRATE_CHANGE #if ENABLED(BEEP_ON_FEEDRATE_CHANGE) - #define FEEDRATE_CHANGE_BEEP_DURATION 10 - #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440 + #define FEEDRATE_CHANGE_BEEP_DURATION 50 + #define FEEDRATE_CHANGE_BEEP_FREQUENCY 10 #endif #if HAS_LCD_MENU @@ -922,7 +922,7 @@ #endif // BACK menu items keep the highlight at the top - //#define TURBO_BACK_MENU_ITEM + #define TURBO_BACK_MENU_ITEM /** * LED Control Menu @@ -944,13 +944,13 @@ #endif // HAS_LCD_MENU // 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 //#define LCD_DECIMAL_SMALL_XY // The timeout (in ms) to return to the status screen from sub-menus -//#define LCD_TIMEOUT_TO_STATUS 15000 +#define LCD_TIMEOUT_TO_STATUS 60000 // Add an 'M73' G-code to set the current percentage //#define LCD_SET_PROGRESS_MANUALLY @@ -962,7 +962,7 @@ //#define PRINT_PROGRESS_SHOW_DECIMALS // Show progress with decimal digits //#define SHOW_REMAINING_TIME // Display estimated time to completion #if ENABLED(SHOW_REMAINING_TIME) - //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation + #define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation //#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time #endif #endif @@ -970,10 +970,10 @@ #if HAS_CHARACTER_LCD && HAS_PRINT_PROGRESS //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing #if ENABLED(LCD_PROGRESS_BAR) - #define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar - #define PROGRESS_BAR_MSG_TIME 3000 // (ms) Amount of time to show the status message - #define PROGRESS_MSG_EXPIRE 0 // (ms) Amount of time to retain the status message (0=forever) - //#define PROGRESS_MSG_ONCE // Show the message for MSG_TIME then clear it + #define PROGRESS_BAR_BAR_TIME 0 // (ms) Amount of time to show the bar + #define PROGRESS_BAR_MSG_TIME 10000 // (ms) Amount of time to show the status message + //#define PROGRESS_MSG_EXPIRE 60000 // (ms) Amount of time to retain the status message (0=forever) + #define PROGRESS_MSG_ONCE // Show the message for MSG_TIME then clear it //#define LCD_PROGRESS_BAR_TEST // Add a menu item to test the progress bar #endif #endif @@ -988,7 +988,7 @@ #define SD_DETECT_INVERTED #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished - #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the Z enabled so your bed stays in place. + #define SD_FINISHED_RELEASECOMMAND "M84 E" // You might want to keep the Z enabled so your bed stays in place. // Reverse SD sort to show "more recent" files first, according to the card's FAT. // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended. @@ -998,7 +998,7 @@ //#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files - #define EVENT_GCODE_SD_STOP "G28XY" // G-code to run on Stop Print (e.g., "G28XY" or "G27") + #define EVENT_GCODE_SD_STOP "G27" // G-code to run on Stop Print (e.g., "G28XY" or "G27") /** * Continue after Power-Loss (Creality3D) @@ -1008,14 +1008,14 @@ * an option on the LCD screen to continue the print from the last-known * point in the file. */ - //#define POWER_LOSS_RECOVERY + #define POWER_LOSS_RECOVERY #if ENABLED(POWER_LOSS_RECOVERY) //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) - //#define POWER_LOSS_PIN 44 // Pin to detect power loss - //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss + #define POWER_LOSS_PIN 69 // Pin to detect power loss + #define POWER_LOSS_STATE LOW // State of pin indicating power loss //#define POWER_LOSS_PULL // Set pullup / pulldown as appropriate - //#define POWER_LOSS_PURGE_LEN 20 // (mm) Length of filament to purge on resume + #define POWER_LOSS_PURGE_LEN 1 // (mm) Length of filament to purge on resume //#define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail. Requires backup power. // Without a POWER_LOSS_PIN the following option helps reduce wear on the SD card, @@ -1065,7 +1065,7 @@ //#define LONG_FILENAME_HOST_SUPPORT // Enable this option to scroll long filenames in the SD card menu - //#define SCROLL_LONG_FILENAMES + #define SCROLL_LONG_FILENAMES // Leave the heaters on after Stop Print (not recommended!) //#define SD_ABORT_NO_COOLDOWN @@ -1224,15 +1224,15 @@ */ //#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_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 BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving 399 bytes of flash) + #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving 399 bytes of flash) //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~‭3260 (or ~940) bytes of PROGMEM. // Frivolous Game Options @@ -1366,7 +1366,7 @@ * * Warning: Does not respect endstops! */ -//#define BABYSTEPPING +#define BABYSTEPPING #if ENABLED(BABYSTEPPING) //#define BABYSTEP_WITHOUT_HOMING //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! @@ -1374,26 +1374,28 @@ #define BABYSTEP_MULTIPLICATOR_Z 1 // Babysteps are very small. Increase for faster motion. #define BABYSTEP_MULTIPLICATOR_XY 1 - //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) - #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. + #define DOUBLECLICK_MAX_INTERVAL 2000 // Maximum interval between clicks, in milliseconds. // Note: Extra time may be added to mitigate controller latency. - //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). + #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. #if ENABLED(MOVE_Z_WHEN_IDLE) #define MOVE_Z_IDLE_MULTIPLICATOR 1 // Multiply 1mm by this factor for the move step size. #endif #endif - //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 - - //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping + //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + #if ENABLED (PROBE) || ENABLED (FMP) + #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping + #endif #if ENABLED(BABYSTEP_ZPROBE_OFFSET) //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets - //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor + #if ENABLED (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor + #endif #endif #endif - // @section extruder /** @@ -1412,10 +1414,10 @@ * See http://marlinfw.org/docs/features/lin_advance.html for full instructions. * Mention @Sebastianv650 on GitHub to alert the author of any issues. */ -//#define LIN_ADVANCE +#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants - #define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed + #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed //#define LA_DEBUG // If enabled, this will generate debug information output over USB. #endif @@ -1451,18 +1453,18 @@ * the probe to be unable to reach any points. */ #if PROBE_SELECTED && !IS_KINEMATIC - //#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE - //#define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE - //#define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE - //#define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE + #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE + #define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE + #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE + #define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE #endif #if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) // Override the mesh area if the automatic (max) area is too large - //#define MESH_MIN_X MESH_INSET - //#define MESH_MIN_Y MESH_INSET - //#define MESH_MAX_X X_BED_SIZE - (MESH_INSET) - //#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) + #define MESH_MIN_X MESH_INSET + #define MESH_MIN_Y MESH_INSET + #define MESH_MAX_X X_BED_SIZE - (MESH_INSET) + #define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) #endif /** @@ -1488,7 +1490,7 @@ // // G2/G3 Arc Support // -#define ARC_SUPPORT // Disable this feature to save ~3226 bytes +//#define ARC_SUPPORT // Disable this feature to save ~3226 bytes #if ENABLED(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 @@ -1572,17 +1574,14 @@ // The number of linear motions that can be in the plan at any give time. // THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering. -#if ENABLED(SDSUPPORT) - #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller -#else - #define BLOCK_BUFFER_SIZE 16 // maximize block buffer -#endif + +#define BUFSIZE 4 // serial buffer +#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller' // @section serial // The ASCII buffer for serial input #define MAX_CMD_SIZE 96 -#define BUFSIZE 4 // Transmission to Host Buffer Size // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0. @@ -1622,7 +1621,9 @@ // enter the serial receive buffer, so they cannot be blocked. // Currently handles M108, M112, M410 // Does not work on boards using AT90USB (USBCON) processors! -//#define EMERGENCY_PARSER +#if DISABLED (GTA30) && DISABLED (GTE180) && DISABLED (GTM210) && DISABLED (GTD200) +#define EMERGENCY_PARSER +#endif // Bad Serial-connections can miss a received command by sending an 'ok' // Therefore some clients abort after 30 seconds in a timeout. @@ -1631,7 +1632,7 @@ //#define NO_TIMEOUTS 1000 // Milliseconds // 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. // This option inserts short delays between lines of serial output. @@ -1689,7 +1690,7 @@ */ #if EXTRUDERS > 1 // Z raise distance for tool-change, as needed for some extruders - #define TOOLCHANGE_ZRAISE 2 // (mm) + #define TOOLCHANGE_ZRAISE 0 // (mm) //#define TOOLCHANGE_NO_RETURN // Never return to the previous position on tool-change // Retract and prime filament on tool-change @@ -1707,8 +1708,8 @@ */ //#define TOOLCHANGE_PARK #if ENABLED(TOOLCHANGE_PARK) - #define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 } - #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/m) + #define TOOLCHANGE_PARK_XY { X_MIN_POS + 0, Y_MIN_POS + 0 } + #define TOOLCHANGE_PARK_XY_FEEDRATE HOMING_FEEDRATE_XY // (mm/m) #endif #endif @@ -1722,48 +1723,48 @@ * Requires NOZZLE_PARK_FEATURE. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_FEEDRATE 10 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. - #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 60 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_ACCEL 5 // (mm/s^2) Lower acceleration may allow a faster feedrate. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 450 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. - #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_FEEDRATE 10 // (mm/s) Slow move when starting load. + #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 200 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only - #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. - #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 60 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 5 // (mm/s^2) Lower acceleration may allow a faster feedrate. + #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 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_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. - #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. + #define ADVANCED_PAUSE_PURGE_FEEDRATE 10 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_PURGE_LENGTH 25 // (mm) Length to extrude after loading. // Set to 0 for manual extrusion. // Filament can be extruded repeatedly from the Filament Change menu // until extrusion is consistent, and to purge old filament. - #define ADVANCED_PAUSE_RESUME_PRIME 0 // (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_RESUME_PRIME 1 // (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. // Filament Unload does a Retract, Delay, and Purge first: - #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_PURGE_RETRACT 25 // (mm) Unload initial retract length. #define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. - #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_LENGTH 5 // (mm) An unretract is done, then this length is purged. - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. + #define PAUSE_PARK_NOZZLE_TIMEOUT 60 // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 10 // 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 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 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 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) #endif // @section tmc @@ -2093,18 +2094,11 @@ //#define HYBRID_THRESHOLD #define X_HYBRID_THRESHOLD 100 // [mm/s] - #define X2_HYBRID_THRESHOLD 100 #define Y_HYBRID_THRESHOLD 100 - #define Y2_HYBRID_THRESHOLD 100 #define Z_HYBRID_THRESHOLD 3 - #define Z2_HYBRID_THRESHOLD 3 - #define Z3_HYBRID_THRESHOLD 3 #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 /** * Use StallGuard2 to home / probe X, Y, Z. @@ -2497,12 +2491,12 @@ /** * Auto-report temperatures with M155 S */ -#define AUTO_REPORT_TEMPERATURES + //#define AUTO_REPORT_TEMPERATURES /** * Include capabilities in M115 output */ -#define EXTENDED_CAPABILITIES_REPORT +//#define EXTENDED_CAPABILITIES_REPORT /** * Expected Printer Check @@ -2514,7 +2508,7 @@ /** * Disable all Volumetric extrusion options */ -//#define NO_VOLUMETRICS +#define NO_VOLUMETRICS #if DISABLED(NO_VOLUMETRICS) /** @@ -2534,7 +2528,7 @@ * - M206 and M428 are disabled. * - G92 will revert to its behavior from Marlin 1.0. */ -//#define NO_WORKSPACE_OFFSETS +#define NO_WORKSPACE_OFFSETS /** * Set the number of proportional font spaces required to fill up a typical character space. @@ -2587,27 +2581,27 @@ /** * User-defined menu items that execute custom GCode */ -//#define CUSTOM_USER_MENUS +#define CUSTOM_USER_MENUS #if ENABLED(CUSTOM_USER_MENUS) - //#define CUSTOM_USER_MENU_TITLE "Custom Commands" - #define USER_SCRIPT_DONE "M117 User Script Done" + #define CUSTOM_USER_MENU_TITLE "Lin Adv Presets" + #define USER_SCRIPT_DONE "M117 Set & Saved" #define USER_SCRIPT_AUDIBLE_FEEDBACK - //#define USER_SCRIPT_RETURN // Return to status screen after a script + #define USER_SCRIPT_RETURN // Return to status screen after a script - #define USER_DESC_1 "Home & UBL Info" - #define USER_GCODE_1 "G28\nG29 W" + #define USER_DESC_1 "K0.2" + #define USER_GCODE_1 "M900 K0.2\nM500" - #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_2 "K0.4" + #define USER_GCODE_2 "M900 K0.4\nM500" - #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_3 "K0.6" + #define USER_GCODE_3 "M900 K0.6\nM500" + + #define USER_DESC_4 "K0.8" + #define USER_GCODE_4 "M900 K0.8\nM500" - #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" + #define USER_DESC_5 "K1" + #define USER_GCODE_5 "M900 K1\nM500" #endif /** @@ -2626,7 +2620,7 @@ */ //#define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) - //#define HOST_PROMPT_SUPPORT + #define HOST_PROMPT_SUPPORT #endif /** diff --git a/Marlin/Start_here.h b/Marlin/Start_here.h new file mode 100644 index 000000000..1d90732a8 --- /dev/null +++ b/Marlin/Start_here.h @@ -0,0 +1,86 @@ +#pragma once +#define SHORT_BUILD_VERSION "B447" + +// = disabled - remove // enabled + +//Step 1) enable 1 model. +//GT2560 Boards - Mega2560 8bit - Arduino Librarys: U8glib Library required for Step 6 variants. +#define GTA10 // A10 & Variants - tested working +//#define GTA20 // A20 & Variants - tested working +//#define MECREATOR2 // Mecreator2 - tested working +//#define I3PROA // PI3A Pro - testing +//#define I3PROB // I3PROB - testing +//#define I3PROC // I3PROC - testing +//#define I3PROW // I3PROW - testing +//#define I3PROX // I3PROX - testing + +//GTM32 Boards - STM32F103VE 32bit - Arduino Librarys : https://github.com/rogerclarkmelbourne/Arduino_STM32 & https://github.com/stm32duino/Arduino_Core_STM32 +//Delete folder /Marlin-bugfix-2.0.x/Marlin/src/HAL/HAL_STM32 & Delete All but SPI.h in Folder Arduino_STM32-master/STM32F1/libraries/SPI/src/ +//#define GTA30 // A30 - Tested mostly works - set jumpers base on board for flashing and use serial to upload. +//#define GTE180 // E180 - Tested mostly works - set jumpers base on board for flashing and use serial to upload. +//#define GTM201 // M201 - experimental, set jumpers base on board for flashing and use serial to upload. +//#define GTD200 // D200 - experimental, set jumpers base on board for flashing and use serial to upload. +//-------------------------------------------------------------------------------------------------------------------------------------------------------- +//Step 2) enable 1 driver timing set. +//#define STOCK // Enable A4988 on all drivers (stock drivers) +#define T2208 // Enable TMC2208 Standalone on all drivers +//#define T2209 // Enable TMC2209 Standalone on all drivers +//#define T2130 // Enable TMC2130 Standalone on all drivers +//#define T2160 // Enable TMC2160 Standalone on all drivers +//#define T26X // Enable TMC226X Standalone on all drivers +//#define T2660 // Enable TMC2660 Standalone on all drivers +//#define T5130 // Enable TMC5130 Standalone on all drivers +//#define T5160 // Enable TMC5160 Standalone on all drivers +//#define A598 // Enable A5984 on all drivers +//#define D8825 // Enable DRV8825 on all drivers +//#define L8729 // Enable LV8729 on all drivers +//#define L647 // Enable L6470 on all drivers +//#define T6560 // Enable TB6560 on all drivers +//#define T6600 // Enable TB6600 on all drivers +//#define CUSTOM // Fill in #elif ENABLED (CUSTOM) in configuration.h with a custom set +//-------------------------------------------------------------------------------------------------------------------------------------------------------- +//Step 3) enable if needed to invert motors direction used on TMC drivers & Geared extruders. +#define INVERTE // Invert E direction disabe if wrong direction - M & T variants inverted (stock). +#define INVERTXYZ // Invert XYZ direction disable if wrong direction. +//-------------------------------------------------------------------------------------------------------------------------------------------------------- +//Step 4) enable 1 if you have mixing or multi extruder. +//#define MIX // Enable Mixing 2 in 1 - Virtual Motor Control +//#define CYCLOPS // Enable Cyclops 2 in 1 - Physical Motor Control +//#define DUALEX // 2 Extruder 2 in 2 - Physical Motor Control +//#define MIXT // Enable Mixing 3 in 1 - Virtual Motor Control +//#define CYCLOPST // Enable Cyclops 3 in 1 - Physical Motor Control +//#define TRIEX // 3 Extruder 3 in 3 - Physical Motor Control +//-------------------------------------------------------------------------------------------------------------------------------------------------------- +//Step 5) Adjust XYZE if required, suggest you run your own calibrations. +#if DISABLED (MIX) && DISABLED (CYCLOPS) && DISABLED (DUALEX) && DISABLED (MIXT) && DISABLED (CYCLOPST) && DISABLED (TRIEX) +#define XYZESTEPS { 80, 80, 400, 98 } // ungeared extruder found on a10/a20/a30/i3pro. +//#define XYZESTEPS { 80, 80, 2560, 98 } // M8 Z rod steps 2560 found on old I3pro. +#elif ENABLED (MIX) && ENABLED (CYCLOPS) && ENABLED (DUALEX) && ENABLED (MIXT) && ENABLED (CYCLOPST) && ENABLED (TRIEX) +#define XYZESTEPS { 80, 80, 400, 430 } // geared extruder found on M & T variants. +//#define XYZESTEPS { 80, 80, 2560,430 } // M8 Z rod steps 2560 found on old I3pro +#else +#error No steps selected +#endif +//-------------------------------------------------------------------------------------------------------------------------------------------------------- +//Step 6) enable 1 probe type & edit other bed leveling options. +#define TOUCHPROBE // Enable Bltouch Type Probe. +//#define FMP // Enable Fixed Mounted Type Probe. +//#define MANUALBL // Enable Manual Bed Leveling (stock) + +//Other bed leveling variables DO NOT DISABLE edit only. +#define XMP -11 // X Min Position - distance from the endstop to the bed, adjust nozzle to the front left bed edge at X0. +#define YMP -4 // Y Min Position - distance from the endstop to the bed, adjust nozzle to the front left bed edge at Y0. +#define MPE 0 // As needed 30 Max if you have bed clips, if set to large it will cause max X crash . +#define GRIDSIZE 5 // 5x5 mesh grid adjust as needed. +#define ZPROBESPEED 120 // Probe speed reduce if accuracy is poor. +#define G26NOZZLE 1.0 // Nozzle size for G26 +#define G26HOTEND 250 // Hotend temp for G26 +#define G26BED 70 // Bed temp for G26 +#if DISABLED (MIX) && DISABLED (CYCLOPS) && DISABLED (DUALEX) && DISABLED (MIXT) && DISABLED (CYCLOPST) && DISABLED (TRIEX) +#define NPO { -38, 4, 0 } // Nozzle To Probe offset XYZ A10/A20 calibration suggested. +#elif ENABLED (MIX) && ENABLED (CYCLOPS) && ENABLED (DUALEX) && ENABLED (MIXT) && ENABLED (CYCLOPST) && ENABLED (TRIEX) +#define NPO { -40, 0, 0 } // Nozzle To Probe offset XYZ A10M/A20M calibration suggested. +#else +#error No probe offsets selected +#endif +//--------------------------------------------------------------------------------------------------------------------------------------------------------