G32 S2 homes very slowly

Probably I have configured something wrongly - in which case, I'd appreciate the correction.

Since upgrading to 1.0.2, I noticed new behaviour with G32 S2.  In the previous version, after doing the probing it went straight on to start the print (or whatever was next), but now it acts differently.  There is an added extra probe at the last probe position, then it goes very slowly (1-2 mm/s or so) to Zmax, triggers the endstop once (no second go-back bounce), goes back at a much faster speed to the probing height, retracts the probe without contacting the bed and removes the probe X and Y offsets.  This whole thing adds more than 5 minutes to the print (620 mm of Z travel).

Is this what is supposed to happen?   IIRC, the documentation says that G32 updates the current position and the Z home position "so later homing gives correct results", which seems to imply no Z homing is done automatically by the G32, or is necessary.  This is what I saw in the earlier version.

I am using a three-motor Z axis with motorized bed leveling; the BL-Touch probe is connected to the Zmin endstop pin.  I thought it might be related to the motor driver speed setting, which was set to 1 mm/s (Z axis max speed is 8 mm/s), but I changed it to 8 mm/s also, and it is still the same behaviour.  Is it related to the ENDSTOP_Z_RETEST_REDUCTION_FACTOR?  That is set to 5, which I see from some comments in Printer.cpp would mean the endstop retest speed is 1.6 mm/s, which is about what I am seeing.  This and the extra probing and the probe remaining extended is suggesting a confusion with Zmin homing using the probe?  Z_HOME_DIR is 1.

In any case, is there a configuration to prevent, or speed up, this slow move to Zmax?  Any help appreciated.


  • Further info:  G29 S1 does a similar thing.  The difference from G32 S2 is that it did this also in the previous version ((I made a note about it in November 2016).  I also noted that the Z value displayed on the LCD when going slowly to Zmax is 647.65, though the Z length is only 318.25 mm.
  • In G32 S2 means also measure height so it goes up to z max which it does with homing feedrate/ENDSTOP_Z_RETEST_REDUCTION_FACTOR I guess.

        PrintLine::moveRelativeDistanceInSteps(0, 0, probeDepth, 0, homingFeedrate[Z_AXIS] / ENDSTOP_Z_RETEST_REDUCTION_FACTOR, true, true);

    This is in BedLeveling in float Printer::runZMaxProbe() . As it only uses one test it does this with reduced speed and that is 1/5 homing speed in your case. You can modify the line to have another speed.

     S1 would be the same without z max homing. S2 also stores the data in eeprom, so for printing you simply use G28 and do not calibrate again. 
Sign In or Register to comment.