I have an Artifex2 Duo 3D printer, which has two extruders. Because of changes I have made, they are no longer matched and I have now calculated two sets of PID values, one for each extruder. However, I can't figure out how to enter these values into the Marlin firmware, and can't find any examples for how to do this.
I'm currently using Marlin 2.1.0.5 with Arduino 1.8.12 and my printer has a RAMBO controller.
No matter what I do, the same PID values are stored for each extruder. After I upload the Marlin firmware to my machine, an old value for Kp, Ki, and Kd was seen on my LCD. When I select the option to "Initialize EEPROM", the values are updated, and I expected them to reflect the values in my Configuration.h file. However, that is not what happened.
I'm including the
Configuration.h and
Configuration_adv.h files.
Note that I have
#define EXTRUDERS 2
and
#define PID_PARAMS_PER_HOTEND
in my configuration.h file.
If I only list a single set of values for Kp, Ki, and Kd, these values are stored for
both extruder PID values (obtained after selecting "Initialize EEPROM"). When I list values for each extruder:
#define DEFAULT_Kp 8.61, 25.51
#define DEFAULT_Ki 0.33, 2.04
#define DEFAULT_Kd 55.35, 79.95
only the
second set of values (25.51, 2.04, 79.55) for E1 is retrieved for both extruders. On a whim, I put three values in the firmware even though I only defined two extruders:
#define DEFAULT_Kp 8.61, 25.51, 22.61
#define DEFAULT_Ki 0.33, 2.04, 1.69
#define DEFAULT_Kd 55.35, 79.95, 75.55
Surprisingly, only the
third set of values (22.61, 1.69, 75.55) which would be for E2, if one existed, were retrieved.
I have also tried enclosing the values in braces, parentheses, and brackets, but this generated errors during compilation.
Does anyone have an idea what is happening here? Am I defining the values incorrectly, or is this a bug?
Thanks.