Change new hotend variants

This commit is contained in:
3d-gussner 2023-05-29 10:22:17 +02:00
parent 8078c8eff2
commit 3da1ae1344
6 changed files with 62 additions and 118 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 == <new number>` 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-<Short description:2>`
- `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-<Short description:2>"`
- `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)