dass: FEATURE_ENABLE_MANUAL_Z_SAFETY von 0 auf 1 setzten nur bedingt Abhilfe schafft, könnte auch an dem Integer-Überlauf, den ich hier beschrieben habe, liegen.
Die problematische Berechnung in RF1000.cpp existiert noch einmal, wenn FEATURE_ENABLE_MANUAL_Z_SAFETY auf 1 gesetzt wird (Zeile 4040):
Code: Alles auswählen
#if FEATURE_ENABLE_MANUAL_Z_SAFETY
if( (Printer::nonCompensatedPositionStepsZ + Printer::currentCompensationZ + Printer::targetPositionStepsZ + g_nManualZSteps) > (Z_MAX_LENGTH * ZAXIS_STEPS_PER_MM - ZAXIS_STEPS_PER_MM) )
{
Stefan