Hard to say what exactly is going on especially since I do not own a mxing extruder. Tx is handled in Extruder.cpp in command void Extruder::selectExtruderById(uint8_t extruderId)
Are you staying at T0 all the time? If not your select and deselect scripts get run.
Also every Tx calls
#if MIXING_EXTRUDER
void Extruder::recomputeMixingExtruderSteps() {
int32_t sum_w = 0;
float sum = 0;
for (fast8_t i = 0; i < NUM_EXTRUDER; i++) {
sum_w += extruder[i].mixingW;
sum += extruder[i].stepsPerMM * extruder[i].mixingW;
}
sum /= sum_w;
Printer::currentPositionSteps[E_AXIS] = Printer::currentPositionSteps[E_AXIS] * sum / Printer::axisStepsPerMM[E_AXIS]; // reposition according resolution change
Printer::destinationSteps[E_AXIS] = Printer::currentPositionSteps[E_AXIS];
Printer::axisStepsPerMM[E_AXIS] = sum;
Printer::invAxisStepsPerMM[E_AXIS] = 1.0f / Printer::axisStepsPerMM[E_AXIS];
}
#endif
But that is not retracting.
Do I understand it correctly that
T0
T0
T0
will deretract 3 times?
I see no call to retract function in T0 command so it might not come from this.
Do you have
#define AUTORETRACT_ENABLED 0
When you say with z lift do you mean
#define RETRACTION_Z_LIFT 1
or do you have it enabled on slicer?