From 3da1ae134428647c5242a1e84f954741237fd1d0 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 29 May 2023 10:22:17 +0200 Subject: [PATCH] Change new hotend variants --- Firmware/Configuration.h | 2 +- .../variants/1_75mm_MK3-EINSy10a-E3DREVO.h | 30 ++----- .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 19 +---- .../variants/1_75mm_MK3S-EINSy10a-E3DREVO.h | 28 ++----- .../variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 19 +---- Firmware/variants/README.md | 82 ++++++++++--------- 6 files changed, 62 insertions(+), 118 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 7717cd60c..710549a7b 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -24,7 +24,7 @@ extern const char _sPrinterMmuName[] PROGMEM; #define FW_VERSION STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION) #endif -#define FW_COMMIT_NR 6851 +#define FW_COMMIT_NR 6853 // FW_VERSION_UNKNOWN means this is an unofficial build. // The firmware should only be checked into github with this symbol. diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3DREVO.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3DREVO.h index ff171105a..afed016eb 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3DREVO.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3DREVO.h @@ -15,12 +15,7 @@ #define PRINTER_MMU_TYPE PRINTER_MK3_MMU2 #define PRINTER_MMU_NAME PRINTER_MK3_MMU2_NAME #define FILAMENT_SIZE "1_75mm_MK3" -#define HOTEND 2 //1= E3Dv6 2= E3D REVO -#if HOTEND == 1 -#define NOZZLE_TYPE "E3Dv6full" -#elif HOTEND ==2 #define NOZZLE_TYPE "E3DREVO" -#endif // Printer name #define CUSTOM_MENDEL_NAME "Prusa i3 MK3-R" @@ -331,18 +326,11 @@ #define DEFAULT_Kp 21.70 #define DEFAULT_Ki 1.60 #define DEFAULT_Kd 73.76 -#elif HOTEND == 2 //E3D REVO PID values -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 -#else // E3D v6 PID values -// Define PID constants for extruder -//#define DEFAULT_Kp 40.925 -//#define DEFAULT_Ki 4.875 -//#define DEFAULT_Kd 86.085 -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 +#else +// Define PID constants for E3D REVO +#define DEFAULT_Kp 25.00 +#define DEFAULT_Ki 4.8 +#define DEFAULT_Kd 32.6 #endif // Extrude mintemp @@ -413,13 +401,9 @@ #define TEMP_MODEL_Ta_corr -7 // Default ambient temperature correction -#if HOTEND == 1 -#include "temp_model/e3d_v6.h" -#define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters -#elif HOTEND == 2 #include "temp_model/e3d_REVO.h" #define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters -#endif + /*------------------------------------ MOTOR CURRENT SETTINGS @@ -648,7 +632,7 @@ // we just need to shift to the nearest fullstep, but we need a move which is at least // "dropsegments" steps long. All the above rules still need to apply. #define UVLO_TINY_Z_AXIS_SHIFT 0.16 -// If power panic occured, and the current temperature is higher then target temperature before interrupt minus this offset, print will be recovered automatically. +// If power panic occured, and the current temperature is higher then target temperature before interrupt minus this offset, print will be recovered automatically. #define AUTOMATIC_UVLO_BED_TEMP_OFFSET 5 #define HEATBED_V2 diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 57d581b33..21adab2d1 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -15,12 +15,7 @@ #define PRINTER_MMU_TYPE PRINTER_MK3_MMU2 #define PRINTER_MMU_NAME PRINTER_MK3_MMU2_NAME #define FILAMENT_SIZE "1_75mm_MK3" -#define HOTEND 1 //1= E3Dv6 2= E3D REVO -#if HOTEND == 1 #define NOZZLE_TYPE "E3Dv6full" -#elif HOTEND ==2 -#define NOZZLE_TYPE "E3DREVO" -#endif // Printer name #define CUSTOM_MENDEL_NAME "Prusa i3 MK3" @@ -331,11 +326,7 @@ #define DEFAULT_Kp 21.70 #define DEFAULT_Ki 1.60 #define DEFAULT_Kd 73.76 -#elif HOTEND == 2 //E3D REVO PID values -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 -#else // E3D v6 PID values +#else // Define PID constants for extruder //#define DEFAULT_Kp 40.925 //#define DEFAULT_Ki 4.875 @@ -413,13 +404,9 @@ #define TEMP_MODEL_Ta_corr -7 // Default ambient temperature correction -#if HOTEND == 1 #include "temp_model/e3d_v6.h" -#define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters -#elif HOTEND == 2 -#include "temp_model/e3d_REVO.h" -#define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters -#endif +#define TEMP_MODEL_DEFAULT E3D_V6 // Default model parameters + /*------------------------------------ MOTOR CURRENT SETTINGS diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3DREVO.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3DREVO.h index 9d5d0128e..4638cb3fc 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3DREVO.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3DREVO.h @@ -14,12 +14,7 @@ #define PRINTER_MMU_TYPE PRINTER_MK3S_MMU2 #define PRINTER_MMU_NAME PRINTER_MK3S_MMU2_NAME #define FILAMENT_SIZE "1_75mm_MK3S" -#define HOTEND 2 //1= E3Dv6 2= E3D REVO -#if HOTEND == 1 -#define NOZZLE_TYPE "E3Dv6full" -#elif HOTEND ==2 #define NOZZLE_TYPE "E3DREVO" -#endif // Printer name #define CUSTOM_MENDEL_NAME "Prusa i3 MK3S-R" @@ -333,18 +328,11 @@ #define DEFAULT_Kp 21.70 #define DEFAULT_Ki 1.60 #define DEFAULT_Kd 73.76 -#elif HOTEND == 2 //E3D REVO PID values -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 -#else // E3D v6 PID values -// Define PID constants for extruder -//#define DEFAULT_Kp 40.925 -//#define DEFAULT_Ki 4.875 -//#define DEFAULT_Kd 86.085 -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 +#else +// Define PID constants for E3D REVO +#define DEFAULT_Kp 25.00 +#define DEFAULT_Ki 4.8 +#define DEFAULT_Kd 32.6 #endif // Extrude mintemp @@ -417,13 +405,9 @@ #define TEMP_MODEL_Ta_corr -7 // Default ambient temperature correction -#if HOTEND == 1 -#include "temp_model/e3d_v6.h" -#define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters -#elif HOTEND == 2 #include "temp_model/e3d_REVO.h" #define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters -#endif + /*------------------------------------ MOTOR CURRENT SETTINGS diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 3be525327..ee7550acd 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -14,12 +14,7 @@ #define PRINTER_MMU_TYPE PRINTER_MK3S_MMU2 #define PRINTER_MMU_NAME PRINTER_MK3S_MMU2_NAME #define FILAMENT_SIZE "1_75mm_MK3S" -#define HOTEND 1 //1= E3Dv6 2= E3D REVO -#if HOTEND == 1 #define NOZZLE_TYPE "E3Dv6full" -#elif HOTEND ==2 -#define NOZZLE_TYPE "E3DREVO" -#endif // Printer name #define CUSTOM_MENDEL_NAME "Prusa i3 MK3S" @@ -333,11 +328,7 @@ #define DEFAULT_Kp 21.70 #define DEFAULT_Ki 1.60 #define DEFAULT_Kd 73.76 -#elif HOTEND == 2 //E3D REVO PID values -#define DEFAULT_Kp 16.13 -#define DEFAULT_Ki 1.1625 -#define DEFAULT_Kd 56.23 -#else // E3D v6 PID values +#else // Define PID constants for extruder //#define DEFAULT_Kp 40.925 //#define DEFAULT_Ki 4.875 @@ -417,13 +408,9 @@ #define TEMP_MODEL_Ta_corr -7 // Default ambient temperature correction -#if HOTEND == 1 #include "temp_model/e3d_v6.h" -#define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters -#elif HOTEND == 2 -#include "temp_model/e3d_REVO.h" -#define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters -#endif +#define TEMP_MODEL_DEFAULT E3D_V6 // Default model parameters + /*------------------------------------ MOTOR CURRENT SETTINGS diff --git a/Firmware/variants/README.md b/Firmware/variants/README.md index dfaa48d9d..6bb981304 100644 --- a/Firmware/variants/README.md +++ b/Firmware/variants/README.md @@ -12,86 +12,88 @@ Steps to add a new 3rd party hotend: 1. Make a copy of the `/Firmware/variant/1_75mm_MK3S-EINSy10a-E3Dv6full.h` with a new name `1_75mm_MK3S-EINSy10a-<3rd party hotend:16>.h` - Example for the E3D REVO HF 60W: `/Firmware/variant/1_75mm_MK3S-EINSy10a-E3DREVO_HF_60W.h` 2. Open the new variant file. -3. Add the 3rd party hotend with new number and the description in the comment part `#define HOTEND 1 //1= E3Dv6 2= E3D REVO` - - Example: `#define HOTEND 3 //1= E3Dv6 2= E3D REVO 3= E3DREVO_HF_60W` -4. Add a new `#elif HOTEND == ` and `#define NOZZLE_TYPE "<3rd party hotend:16>"` +3. Search for `#define NOZZLE_TYPE` +4. Change `"E3Dv6full"` to `"<3rd party hotend:16>"` + ``` + ... + #define NOZZLE_TYPE "E3Dv6full" + ... + ``` - Example ``` ... - #elif HOTEND ==2 - #define NOZZLE_TYPE "E3DREVO" - #elif HOTEND ==3 #define NOZZLE_TYPE "E3DREVO_HF_60W" - #endif ... ``` -5. Change the `#define CUSTOM_MENDEL_NAME "Prusa i3 MK3S-` - - `CUSTOM_MENDEL_NAME` string cannot exceed 17 chars in total! -6. Add new PID values for the new Hotend type. - - Search for `#else // E3D v6 PID values` - - Copy, paste (above `#else // E3D v6 PID values`) and update the new hotend PID default values +5. Search `#define CUSTOM_MENDEL_NAME` +6. Change `"Prusa i3 MK3S"` to `"Prusa i3 MK3S-"` + - `CUSTOM_MENDEL_NAME` string cannot exceed 16 chars in total! ``` - #elif HOTEND == 2 //E3D REVO PID values + ... + #define CUSTOM_MENDEL_NAME "Prusa i3 MK3S" + ... + ``` + - Example + ``` + ... +#define CUSTOM_MENDEL_NAME "Prusa i3 MK3S-RH" + ... + ``` + ``` + ... +#define CUSTOM_MENDEL_NAME "Prusa MK3S-RHF60" + ... + ``` +7. Add new PID values for the new Hotend type. + - Search for `// Define PID constants for extruder` + - Change `extruder` to new hotend name ` <3rd party hotend:16>` and update the new hotend PID default values + ``` + // Define PID constants for extruder #define DEFAULT_Kp 16.13 #define DEFAULT_Ki 1.1625 #define DEFAULT_Kd 56.23 + #endif ``` Example: ``` ... - #elif HOTEND == 2 //E3D REVO PID values - #define DEFAULT_Kp 16.13 - #define DEFAULT_Ki 1.1625 - #define DEFAULT_Kd 56.23 - #elif HOTEND == 3 //E3D REVO HF 60W PID values + // Define PID constants for E3D REVO HF 60W #define DEFAULT_Kp 23.23 #define DEFAULT_Ki 1.1 #define DEFAULT_Kd 55.25 - #else // E3D v6 PID values + #endif ... ``` -7. Prepare for new 3rd party hotend TM value file - - Search for `#define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters` or the last entry - - Copy the lines starting with `#elif HOTEND == 2` till the search, paste (above next `#endif`) and update this +8. Prepare for new 3rd party hotend TM value file + - Search for `#include "temp_model/e3d_v6.h"` + - Change the `e3d_v6.h` to `<3rd party hotend:16>.h` + - Change below the `E3D_V6` to `<3rd party hotend:16>` ``` ... - #if HOTEND == 1 #include "temp_model/e3d_v6.h" #define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters - #elif HOTEND == 2 - #include "temp_model/e3d_REVO.h" - #define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters - #endif ... ``` Example: ``` ... - #if HOTEND == 1 - #include "temp_model/e3d_v6.h" - #define TEMP_MODEL_DEFAULT E3D_V6 // Default E3D v6 model parameters - #elif HOTEND == 2 - #include "temp_model/e3d_REVO.h" - #define TEMP_MODEL_DEFAULT E3D_REVO // Default E3D REVO model parameters - #elif HOTEND == 3 #include "temp_model/e3d_REVO_HF_60W.h" #define TEMP_MODEL_DEFAULT E3D_REVO_HF_60W // Default E3D REVO HF 60W model parameters - #endif ... ``` -8. Save and close the new variant file -9. Copy/paste `Firmware/temp_model/e3d_v6.h` as `Firmware/temp_model/<3rd party hotend:16>.h` +9. Save and close the new variant file +10. Copy/paste `Firmware/temp_model/e3d_v6.h` as `Firmware/temp_model/<3rd party hotend:16>.h` - Example: `Firmware/temp_model/e3d_REVO_HF_60W.h` -10. Open the new file `Firmware/temp_model/<3rd party hotend:16>.h` -11. Search `E3D_V6` and replace it with what you have used in `#defined TEMP_MODEL_DEFAULT` +11. Open the new file `Firmware/temp_model/<3rd party hotend:16>.h` +12. Search `E3D_V6` and replace it with what you have used in `#defined TEMP_MODEL_DEFAULT` - Example ``` #pragma once #define TEMP_MODEL_E3D_REVO_HF_60W_VER 1 // model parameters version - #define TEMP_MODEL_E3D_REVO_HF_60W_P 40. // heater power (W) + #define TEMP_MODEL_E3D_REVO_HF_60W_P 60. // heater power (W) #define TEMP_MODEL_E3D_REVO_HF_60W_U -0.0014 // linear temperature coefficient (W/K/power) #define TEMP_MODEL_E3D_REVO_HF_60W_V 1.05 // linear temperature intercept (W/power)