From 714952f80d90defa1e27bbb9ec38bfe570eafee5 Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Fri, 24 Jul 2020 23:24:22 -0400 Subject: [PATCH] Finish main config --- Marlin/Configuration.h | 343 +++++++++++++++++++++++++++++-------- Marlin/Configuration_adv.h | 30 ++-- Marlin/Version.h | 14 +- Marlin/_Bootscreen.h | 103 +++++++++++ 4 files changed, 393 insertions(+), 97 deletions(-) create mode 100644 Marlin/_Bootscreen.h diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index cc0738fb97..baefe040d3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1,6 +1,7 @@ //#define Mini //#define MiniV2 #define Taz6 +//#define Workhorse //#define TazPro /** @@ -91,13 +92,15 @@ */ // Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** -#define SHOW_BOOTSCREEN +#if DISABLED(Mini) + #define SHOW_BOOTSCREEN +#endif // Show the bitmap in Marlin/_Bootscreen.h on startup. #define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Statusscreen.h on the status screen. -#define CUSTOM_STATUS_SCREEN_IMAGE +//#define CUSTOM_STATUS_SCREEN_IMAGE // @section machine @@ -109,7 +112,11 @@ * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ -#define SERIAL_PORT 0 +#if DISABLED(TazPro) + #define SERIAL_PORT 0 +#else + #define SERIAL_PORT -1 +#endif /** * Select a secondary serial port on the board to use for communication with the host. @@ -133,16 +140,27 @@ // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMBO + #if ENABLED(Mini) + #define MOTHERBOARD BOARD_MINIRAMBO + #elif ENABLED(MiniV2) + #define MOTHERBOARD BOARD_EINSY_RETRO + #elif ANY(Workhorse, Taz6) + #define MOTHERBOARD BOARD_RAMBO + #elif ENABLED(TazPro) + #define MOTHERBOARD BOARD_ARCHIM2 + #endif #endif // Name displayed in the LCD "Ready" message and Info menu #if ENABLED(Mini) #define CUSTOM_MACHINE_NAME "Mini" #elif ENABLED(MiniV2) - #define CUSTOM_MACHINE_NAME "MiniV2" + #define CUSTOM_MACHINE_NAME "Mini 2" + #define MACHINE_UUID "e5502411-d46d-421d-ba3a-a20126d7930f" // <-- changed #elif ENABLED(Taz6) #define CUSTOM_MACHINE_NAME "Taz 6" +#elif ENABLED(Workhorse) + #define CUSTOM_MACHINE_NAME "Workhorse" #elif ENABLED(TazPro) #define CUSTOM_MACHINE_NAME "Taz Pro" #endif @@ -155,7 +173,11 @@ // This defines the number of extruders // :[0, 1, 2, 3, 4, 5, 6, 7, 8] -#define EXTRUDERS 1 +#if ENABLED(TazPro) + #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 2.85 @@ -210,11 +232,13 @@ #endif // A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles -//#define SWITCHING_NOZZLE +#if ENABLED(TazPro) + #define SWITCHING_NOZZLE +#endif #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 0 - //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second - #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) + #define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second + #define SWITCHING_NOZZLE_SERVO_ANGLES { 55, 120 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) #endif /** @@ -327,9 +351,9 @@ // 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 -//#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 +#define HOTEND_OFFSET_X {0.0, 44.576} // <-- changed: (mm) relative X-offset for each nozzle +#define HOTEND_OFFSET_Y {0.0, 0.095} // <-- changed: (mm) relative Y-offset for each nozzle +#define HOTEND_OFFSET_Z {0.0, 0.005} // <-- changed: (mm) relative Z-offset for each nozzle // @section machine @@ -430,7 +454,9 @@ * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ #define TEMP_SENSOR_0 5 -#define TEMP_SENSOR_1 0 +#if ENABLED(TazPro) + #define TEMP_SENSOR_1 5 +#endif #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_4 0 @@ -474,7 +500,7 @@ // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 305 -#define HEATER_1_MAXTEMP 275 +#define HEATER_1_MAXTEMP 305 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 @@ -503,9 +529,15 @@ // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it // Taz 6 - #define DEFAULT_Kp 28.79 - #define DEFAULT_Ki1.91 - #define DEFAULT_Kd 108.51 + #if ENABLED(Taz6, Mini) + #define DEFAULT_Kp 28.79 + #define DEFAULT_Ki 1.91 + #define DEFAULT_Kd 108.51 + #else + #define DEFAULT_Kp 21.0 + #define DEFAULT_Ki 1.78 + #define DEFAULT_Kd 61.93 + #endif // MakerGear //#define DEFAULT_Kp 7.0 @@ -546,7 +578,11 @@ * When set to any value below 255, enables a form of PWM to the bed that acts like a divider * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) */ -#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current +if ANY(Workhorse, Taz6) + #define MAX_BED_POWER 206 // limits duty cycle to bed; 255=full current +#else + #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current +#endif #if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 @@ -554,9 +590,27 @@ //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 162 - #define DEFAULT_bedKi 17 - #define DEFAULT_bedKd 378 + #if ENABLED(Taz6) + #define DEFAULT_bedKp 162 + #define DEFAULT_bedKi 17 + #define DEFAULT_bedKd 378 + #elif ENABLED(MiniV2) + #define DEFAULT_bedKp 384.33 + #define DEFAULT_bedKi 72.17 + #define DEFAULT_bedKd 511.64 + #elif ANY(Workhorse, TazPro) + #define DEFAULT_bedKp 286.02 + #define DEFAULT_bedKi 54.55 + #define DEFAULT_bedKd 374.9 + #elif ENABLED(Mini) + #define DEFAULT_bedKp 294 + #define DEFAULT_bedKi 65 + #define DEFAULT_bedKd 382 + #else + #define DEFAULT_bedKp 384.33 + #define DEFAULT_bedKi 72.17 + #define DEFAULT_bedKd 511.64 + #endif //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //from pidautotune @@ -640,7 +694,9 @@ // 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. #define USE_XMIN_PLUG -#define USE_YMIN_PLUG +#if DISABLED(MiniV2, TazPro) + #define USE_YMIN_PLUG +#endif #define USE_ZMIN_PLUG //#define USE_XMAX_PLUG #define USE_YMAX_PLUG @@ -673,12 +729,28 @@ #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. +#if ANY(Mini, MiniV2, TazPro) + #define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#else + #define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#endif +#if ENABLED(Mini) + #define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#else + #define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#endif #define Z_MIN_ENDSTOP_INVERTING true // 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. +#if ANY(Mini, MiniV2) + #define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#else + #define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#endif +#if ENABLED(Mini) + #define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#else + #define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#endif #define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe. /** @@ -697,9 +769,12 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', '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 +#if ANY(TazPro, MiniV2) + #define X_DRIVER_TYPE TMC2130 + #define Y_DRIVER_TYPE TMC2130 + #define Z_DRIVER_TYPE TMC2130 + #define E0_DRIVER_TYPE TMC2130 +#endif //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 @@ -730,10 +805,12 @@ * * :[2,3,4,5,6,7] */ -#define ENDSTOP_NOISE_THRESHOLD 2 +#if NONE(TazPro, Workhorse, MiniV2) + #define ENDSTOP_NOISE_THRESHOLD 2 +#endif // Check for stuck or disconnected endstops during homing moves. -//#define DETECT_BROKEN_ENDSTOP +#define DETECT_BROKEN_ENDSTOP //============================================================================= //============================== Movement Settings ============================ @@ -760,14 +837,23 @@ * Override with M92 * X, Y, Z, E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1600, 830 } + +#if ENABLED(Mini) + #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1600, 833 } +#elif ENABLED(MiniV2) + #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 200, 420 } +#elif ENABLED(Taz6) + #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 1600, 830 } +#elif ANY(Workhorse, TazPro) + #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 500, 420 } +#endif /** * 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, 15, 40 } #define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) @@ -795,9 +881,14 @@ * M204 R Retract Acceleration * M204 T Travel Acceleration */ -#define DEFAULT_ACCELERATION 500 // X, Y, Z and E acceleration for printing moves +#if ANY(Mini, MiniV2) + #define DEFAULT_ACCELERATION 2000 // X, Y, Z and E acceleration for printing moves + #define DEFAULT_TRAVEL_ACCELERATION 2000 // X, Y, Z acceleration for travel (non printing) moves +#else + #define DEFAULT_ACCELERATION 500 // X, Y, Z and E acceleration for printing moves + #define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves +#endif #define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts -#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves /** * Default Jerk limits (mm/s) @@ -809,8 +900,13 @@ */ #define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) - #define DEFAULT_XJERK 8.0 - #define DEFAULT_YJERK 8.0 + #if ANY(Mini, MiniV2) + #define DEFAULT_XJERK 12.0 + #define DEFAULT_YJERK 12.0 + #else + #define DEFAULT_XJERK 8.0 + #define DEFAULT_YJERK 8.0 + #endif #define DEFAULT_ZJERK 0.4 //#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves @@ -860,7 +956,9 @@ * The probe replaces the Z-MIN endstop and is used for Z homing. * (Automatically enables USE_PROBE_FOR_Z_HOMING.) */ -//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN +#if DISABLED(Taz6) + #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN +#endif // Force the use of the probe for Z-axis homing //#define USE_PROBE_FOR_Z_HOMING @@ -881,7 +979,9 @@ * - normally-open switches to 5V and D32. * */ -#define Z_MIN_PROBE_PIN SERVO0_PIN // Pin 32 is the RAMPS default +#if ENABLED(Taz6) + #define Z_MIN_PROBE_PIN SERVO0_PIN // Pin 32 is the RAMPS default +#endif /** * Probe Type @@ -996,7 +1096,16 @@ * * Specify a Probe position as { X, Y, Z } */ -#define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.2 } +#if ENABLED(MiniV2) + #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.1 } +#elif ENABLED(Mini) + #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.375 } +#elif ANY(Taz6, Workhorse) + #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.2 } +#elif ENABLED(TazPro) + #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -1.102 } +#endif + // 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. @@ -1096,7 +1205,11 @@ // @section machine // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. -#define INVERT_X_DIR false +#if ENABLED(Workhorse) + #define INVERT_X_DIR true +#else + #define INVERT_X_DIR false +#endif #define INVERT_Y_DIR true #define INVERT_Z_DIR false @@ -1126,22 +1239,78 @@ // Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 -#define Y_HOME_DIR 1 -#define Z_HOME_DIR -1 +#if ENABLED(Workhorse) + #define Y_HOME_DIR -1 +#else + #define Y_HOME_DIR 1 +#endif +#if ANY(Mini, MiniV2, TazPro) + #define Z_HOME_DIR 1 +#else + #define Z_HOME_DIR -1 +#endif // @section machine // The size of the print bed -#define X_BED_SIZE 281.4 -#define Y_BED_SIZE 281.4 -// Travel limits (mm) after homing, corresponding to endstop positions. -#define X_MIN_POS -20.1 -#define Y_MIN_POS -20.1 -#define Z_MIN_POS 0 -#define X_MAX_POS 301.5 -#define Y_MAX_POS 304.5 -#define Z_MAX_POS 270 +#if ENABLED(Mini) + #define X_BED_SIZE 155.8 // <-- changed + #define Y_BED_SIZE 155.8 // <-- changed + + // Travel limits (mm) after homing, corresponding to endstop positions. + #define X_MIN_POS 0.0 // <-- changed + #define Y_MIN_POS -8.0 // <-- changed + #define Z_MIN_POS -5 // <-- changed + #define X_MAX_POS 165.8 // <-- changed + #define Y_MAX_POS 196.0 // <-- changed + #define Z_MAX_POS 159 // <-- changed +#elif ENABLED(MiniV2) + #define X_BED_SIZE 157 // <-- changed + #define Y_BED_SIZE 157 // <-- changed + + // Travel limits (mm) after homing, corresponding to endstop positions. + #define X_MIN_POS -3 // <-- changed + #define Y_MIN_POS -5 // <-- changed + #define Z_MIN_POS 0 + #define X_MAX_POS 173 // <-- changed + #define Y_MAX_POS 192 // <-- changed + #define Z_MAX_POS 183 // <-- changed +#elif ENABLED(Taz6) + #define X_BED_SIZE 281.4 + #define Y_BED_SIZE 281.4 + + // Travel limits (mm) after homing, corresponding to endstop positions. + #define X_MIN_POS -20.1 + #define Y_MIN_POS -20.1 + #define Z_MIN_POS 0 + #define X_MAX_POS 301.5 + #define Y_MAX_POS 304.5 + #define Z_MAX_POS 270 +#elif ENABLED(Workhorse) + #define X_BED_SIZE 280 // <-- changed + #define Y_BED_SIZE 280 // <-- changed + + // Travel limits (mm) after homing, corresponding to endstop positions. + #define X_MIN_POS -50 // <-- changed + #define Y_MIN_POS -17 // <-- changed + #define Z_MIN_POS -2 // <-- changed + #define X_MAX_POS 295 // <-- changed + #define Y_MAX_POS 308 // <-- changed + #define Z_MAX_POS 299 // <-- changed +#elif ENABLED(TazPro) + #define X_BED_SIZE 280 // <-- changed + #define Y_BED_SIZE 280 // <-- changed + + // Travel limits (mm) after homing, corresponding to endstop positions. + #define X_MIN_POS -27 // <-- changed + #define Y_MIN_POS -36 // <-- changed + #define Z_MIN_POS -9 // <-- changed + #define X_MAX_POS 299 // <-- changed + #define Y_MAX_POS 292 // <-- changed + #define Z_MAX_POS 292 // <-- changed +#endif + /** * Software Endstops @@ -1179,27 +1348,29 @@ * 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. */ -//#define FILAMENT_RUNOUT_SENSOR +#if ENABLED(TazPro) + #define FILAMENT_RUNOUT_SENSOR +#endif #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 NUM_RUNOUT_SENSORS 2 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #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_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.) - #define FILAMENT_RUNOUT_SCRIPT "M600" + #define FILAMENT_RUNOUT_SCRIPT "M25P2" // After a runout is detected, continue printing this length of filament // before executing the runout script. Useful for a sensor at the end of // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. - //#define FILAMENT_RUNOUT_DISTANCE_MM 25 + #define FILAMENT_RUNOUT_DISTANCE_MM 14 #ifdef FILAMENT_RUNOUT_DISTANCE_MM // Enable this option to use an encoder disc that toggles the runout pin // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM // large enough to avoid false positives.) - //#define FILAMENT_MOTION_SENSOR + #define FILAMENT_MOTION_SENSOR #endif #endif @@ -1251,7 +1422,7 @@ * 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. @@ -1322,8 +1493,8 @@ //#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. + #define MESH_INSET 0 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 2 // 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 @@ -1394,7 +1565,9 @@ // - Move the Z probe (or nozzle) to a defined XY point before Z Homing. // - Prevent Z homing when the Z probe is outside bed area. // -#define Z_SAFE_HOMING +#if ANY(Mini,Taz6) + #define Z_SAFE_HOMING +#endif #if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT -19 // X point for Z homing @@ -1403,7 +1576,13 @@ // Homing speeds (mm/m) #define HOMING_FEEDRATE_XY (50*60) -#define HOMING_FEEDRATE_Z (4*60) +#if ENABLED(MiniV2) + #define HOMING_FEEDRATE_Z 2400 +#elif ENABLED(Workhorse) + #define HOMING_FEEDRATE_Z 1800 +#else + #define HOMING_FEEDRATE_Z (4*60) +#endif // Validate that endstops are triggered on homing moves #define VALIDATE_HOMING_ENDSTOPS @@ -1480,7 +1659,7 @@ * 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. #define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load @@ -1536,7 +1715,7 @@ #if ENABLED(NOZZLE_PARK_FEATURE) // Specify a park position as { X, Y, Z_raise } - #define NOZZLE_PARK_POINT { (100), (303.5), 5 } + #define NOZZLE_PARK_POINT { X_CENTER, (Y_MAX - 5), 5 } //#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_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance @@ -1595,8 +1774,13 @@ // Specify positions for each tool as { { X, Y, Z }, { X, Y, Z } } // Dual hotend system may use { { -20, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }, { 420, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }} - #define NOZZLE_CLEAN_START_POINT { -17, 95, 1 } - #define NOZZLE_CLEAN_END_POINT { -17, 25, 1 } + #if ANY(Mini, MiniV2) + #define NOZZLE_CLEAN_START_POINT { 45, 175, 0 } + #define NOZZLE_CLEAN_END_POINT { 115, 175, 0 } + #else + #define NOZZLE_CLEAN_START_POINT { -17, 95, 1 } + #define NOZZLE_CLEAN_END_POINT { -17, 25, 1 } + #endif // Circular pattern radius #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 @@ -1645,7 +1829,7 @@ * * View the current statistics with M78. */ -//#define PRINTCOUNTER +#define PRINTCOUNTER //============================================================================= //============================= LCD and SD support ============================ @@ -1714,6 +1898,9 @@ //#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED +#if ENABLED(TazPro) + #define SPI_SPEED SPI_SIXTEENTH_SPEED +#endif /** * SD CARD: ENABLE CRC @@ -1760,7 +1947,9 @@ // // Set this option if CLOCKWISE causes values to DECREASE // -//#define REVERSE_ENCODER_DIRECTION +#if ENABLED(MiniV2) + #define REVERSE_ENCODER_DIRECTION +#endif // // This option reverses the encoder direction for navigating LCD menus. @@ -1956,7 +2145,9 @@ // RepRapDiscount FULL GRAPHIC Smart Controller // https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +#if DISABLED(TazPro) + #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +#endif // // ReprapWorld Graphical LCD @@ -2139,7 +2330,9 @@ // Touch UI for FTDI EVE (FT800/FT810) displays // See Configuration_adv.h for all configuration options. // -//#define TOUCH_UI_FTDI_EVE +#if ENABLED(TazPro) + #define TOUCH_UI_FTDI_EVE +#endif // // Third-party or vendor-customized controller interfaces. @@ -2214,19 +2407,23 @@ // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino -//#define FAST_PWM_FAN +#if ENABLED(MiniV2) + #define FAST_PWM_FAN +#endif // 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 // is too low, you should also increment SOFT_PWM_SCALE. -//#define FAN_SOFT_PWM +#if ENABLED(TazPro) + #define FAN_SOFT_PWM +#endif // Incrementing this by 1 will double the software PWM frequency, // affecting heaters, and the fan if FAN_SOFT_PWM is enabled. // However, control resolution will be halved for each increment; // at zero value, there are 128 effective control positions. // :[0,1,2,3,4,5,6,7] -#define SOFT_PWM_SCALE 0 +#define SOFT_PWM_SCALE 4 // If SOFT_PWM_SCALE is set to a value higher than 0, dithering can // be used to mitigate the associated resolution loss. If enabled, diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 4abfde5aca..2463bd9f5d 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -373,7 +373,7 @@ */ #define USE_CONTROLLER_FAN #if ENABLED(USE_CONTROLLER_FAN) - //#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan + #define CONTROLLER_FAN_PIN FAN2_PIN // Set a custom pin for the controller fan //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered //#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) @@ -1936,7 +1936,7 @@ * Note that M207 / M208 / M209 settings are saved to EEPROM. * */ -//#define FWRETRACT +#define FWRETRACT #if ENABLED(FWRETRACT) #define FWRETRACT_AUTORETRACT // Override slicer retractions #if ENABLED(FWRETRACT_AUTORETRACT) @@ -3106,7 +3106,7 @@ //#define NO_WORKSPACE_OFFSETS // 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_LEGACY // M114 used to synchronize on every call. Enable if needed. @@ -3171,27 +3171,21 @@ /** * 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 "Tool Heads" + #define USER_SCRIPT_DONE "Tool Changed" #define USER_SCRIPT_AUDIBLE_FEEDBACK //#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 "Aerostruder" + #define USER_GCODE_1 "M92E420\nM907E875\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 "Moarstruder" + #define USER_GCODE_2 "M92E819\nM907E750\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_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_3 "Standard" + #define USER_GCODE_3 "M92E814\nM907E750\nM500" #endif /** diff --git a/Marlin/Version.h b/Marlin/Version.h index fe0724fbfc..2015102cda 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -28,20 +28,20 @@ /** * Marlin release version identifier */ -//#define SHORT_BUILD_VERSION "bugfix-2.0.x" +#define SHORT_BUILD_VERSION "LulzbotUnified - 2.0.6" /** * Verbose version identifier which should contain a reference to the location * from where the binary was downloaded or the source code was compiled. */ -//#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION +#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " Rev1" /** * The STRING_DISTRIBUTION_DATE represents when the binary file was built, * here we define this default string as the date where the latest release * version was tagged. */ -//#define STRING_DISTRIBUTION_DATE "2019-07-10" +#define STRING_DISTRIBUTION_DATE "2020-07-28" /** * Defines a generic printer name to be output to the LCD after booting Marlin. @@ -71,6 +71,8 @@ * Set the vendor info the serial USB interface, if changable * Currently only supported by DUE platform */ -//#define USB_DEVICE_VENDOR_ID 0x0000 -//#define USB_DEVICE_PRODUCT_ID 0x0000 -//#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL +#if ENABLED(TazPro) + #define USB_DEVICE_VENDOR_ID 0x27b1 // <-- changed + #define USB_DEVICE_PRODUCT_ID 0x0001 // <-- changed +#endif +//#define USB_DEVICE_MANUFACTURE_NAME WEBSITE_URL diff --git a/Marlin/_Bootscreen.h b/Marlin/_Bootscreen.h new file mode 100644 index 0000000000..765faa8cec --- /dev/null +++ b/Marlin/_Bootscreen.h @@ -0,0 +1,103 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Custom Bitmap for splashscreen + * + * You may use one of the following tools to generate the C++ bitmap array from + * a black and white image: + * + * - http://www.marlinfw.org/tools/u8glib/converter.html + * - http://www.digole.com/tools/PicturetoC_Hex_converter.php + */ +#include + +#define CUSTOM_BOOTSCREEN_TIMEOUT 2500 +#define CUSTOM_BOOTSCREEN_BMPWIDTH 60 +#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64 + +const unsigned char custom_start_bmp[574] PROGMEM = { +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x4c, 0x80, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x5e, 0x80, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x92, 0x40, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0xa1, 0x40, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x21, 0x20, 0x0, 0x0, 0x0, +0x0, 0x0, 0x2, 0x7f, 0x90, 0x0, 0x0, 0x0, +0x0, 0x0, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0, +0x0, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x0, 0x0, +0x0, 0x0, 0x4, 0x0, 0x8, 0x0, 0x0, 0x0, +0x0, 0x0, 0x8, 0x0, 0x4, 0x0, 0x0, 0x0, +0x0, 0x0, 0x8, 0x0, 0x6, 0x0, 0x0, 0x0, +0x0, 0x0, 0x10, 0x0, 0x2, 0x0, 0x0, 0x0, +0x0, 0x0, 0x30, 0x1e, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x20, 0x7f, 0x81, 0x0, 0x0, 0x0, +0x0, 0x0, 0x41, 0xff, 0xe0, 0x80, 0x0, 0x0, +0x0, 0x0, 0x43, 0xfc, 0xf0, 0x80, 0x0, 0x0, +0x0, 0x0, 0x87, 0x3b, 0x78, 0x40, 0x0, 0x0, +0x0, 0x1, 0x8e, 0xdb, 0xfc, 0x60, 0x0, 0x0, +0x0, 0x1, 0xf, 0xeb, 0xcc, 0x20, 0x0, 0x0, +0x0, 0x2, 0x1f, 0xed, 0xb6, 0x10, 0x0, 0x0, +0x0, 0x2, 0x1f, 0xde, 0xb6, 0x10, 0x0, 0x0, +0x0, 0x4, 0x39, 0xcd, 0x7f, 0x8, 0x0, 0x0, +0x0, 0x4, 0x36, 0xe0, 0xff, 0x8, 0x0, 0x0, +0x0, 0x8, 0x7e, 0xc0, 0xbb, 0x84, 0x0, 0x0, +0x0, 0x18, 0x7f, 0x0, 0x5d, 0x86, 0x0, 0x0, +0x0, 0x10, 0x7f, 0xc0, 0xed, 0x82, 0x0, 0x0, +0x0, 0x20, 0x3c, 0xc0, 0x73, 0x1, 0x0, 0x0, +0x0, 0x20, 0x3b, 0x33, 0x7f, 0x1, 0x0, 0x0, +0x0, 0x70, 0x1b, 0xe7, 0x7e, 0x3, 0x80, 0x0, +0x0, 0xc8, 0x1d, 0xee, 0xde, 0x4, 0xc0, 0x0, +0x0, 0x88, 0xf, 0xde, 0xdc, 0x4, 0x40, 0x0, +0x1, 0x24, 0xf, 0xdf, 0x3c, 0x9, 0x20, 0x0, +0x1, 0x26, 0x7, 0xdb, 0xf8, 0x19, 0x20, 0x0, +0x2, 0x72, 0x3, 0xe7, 0xf0, 0x13, 0x90, 0x0, +0x2, 0x51, 0x1, 0xff, 0xe0, 0x22, 0x90, 0x0, +0x4, 0x89, 0x0, 0x7f, 0x80, 0x24, 0x48, 0x0, +0x9, 0x4, 0x80, 0x1e, 0x0, 0x48, 0x24, 0x0, +0xb, 0xfe, 0x40, 0x0, 0x0, 0xdf, 0xf4, 0x0, +0x10, 0x0, 0x40, 0x0, 0x0, 0x80, 0x2, 0x0, +0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x10, 0x22, 0x10, 0x3c, 0x3c, 0xe, 0x1f, 0x0, +0x10, 0x22, 0x10, 0x4, 0x22, 0x11, 0x4, 0x0, +0x10, 0x22, 0x10, 0x8, 0x22, 0x11, 0x4, 0x0, +0x10, 0x22, 0x10, 0x8, 0x3c, 0x11, 0x4, 0x0, +0x10, 0x22, 0x10, 0x10, 0x22, 0x11, 0x4, 0x0, +0x10, 0x22, 0x10, 0x20, 0x22, 0x11, 0x4, 0x0, +0x1e, 0x1c, 0x1e, 0x3c, 0x3c, 0xe, 0x4, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 +};