Zprobed G32 makes zero Z to be 2mm above from bed. Z-probe height is measured with G30.

Hi! I measured Z-Probe height with G30 command:
    G1 Z4.6 ; real bed level, nozzle is 0.1 mm above from bed
    G1 Z24.6 ; prepare for z-probing, just go up 20 mm from bed
    G30 ; this shows 20mm in result, so Z-Probe height is correct
But when I do G32, then it measures my bed and makes Z zero to be about 2 mm above from bed. I suppose this is some tuning, maybe coating, maybe something similar, but I checked everything and have not found what it can be. I solved this by increasing Z-Probe height, but I do not think that this is the right way.
My EEPROM (Z-Probe height is already increased):
    <epr pos="1024" type="3" value="0.000">Coating thickness</epr>
    <epr pos="808" type="3" value="10.100">Z-probe height</epr>
    <epr pos="929" type="3" value="20.000">Max. z-probe - bed dist.</epr>
Firmware:
    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 1
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE 1
    #define Z_PROBE_BED_DISTANCE 30
    #define Z_PROBE_SWITCHING_DISTANCE 3
    #define Z_PROBE_REPETITIONS 3
    #define Z_PROBE_HEIGHT 9.1
    #define BED_LEVELING_METHOD 0
My startup and measuring code:
    G28 X0 Y0  ;move X/Y to min endstops
    G28 Z0     ;move Z to min endstop (I do not have max endstop)
    G1 Z30.0   ; Go up because endstop is lower than bed
    M322 ; Do not remember why I included this
    G32 S3     ; Make a measurement
Full eeprom and firmware configuration files

Comments

  • Not sure I understand your z probe height detection. Why is 20mm result at z=24.6 correct? All you proved is going up 20mm increases z measured 20mm, which is valid for every z probe height. Normally you would calibrate like this:

    1. Guess z probe height, calibrate z using it
    2. Home (only with z max homing)
    3. Go to position so you are above triggering
    4. Go to a position where you can activate probe 
    5. Lower nozzle until bed is touched, Z0 = Z

    ZPROBE_HEIGHT = OLD_ ZPROBE_HEIGHT + Z0

  • edited June 2016
    Well, I will try to explain my method once again, I think it is more simple rather then other ones I saw. I used my paint-power and made a drawing:
    imageMy goal is to make G30 command result to be equal to ProbingHeight minus BedHeight. Only one parameter I can change is zProbeHeight (assuming zProbeZOffset is zero, no distortion correction and no bending correction). BedHeight was obtained by series of trying of G1 Z commands until nozzle is almost touching bed. ProbingHeight can be any value which is safe for probing.
    Am I right that this determining zProbeHeight method is correct?
    Am I right that G32 will work correctly with such printer configuration?
    (I suppose that one of these assumptions is false. Which one? What should I do?)

  • Good news! I found what's wrong: in RunBedLeveling function we perform z axis bias from plane at current position, not from zero position (but we have to choose zero point because rotation matrix transforms zero to zero). Thus, the unwanted bias applies to Z : it is the Z difference on plane from last measurement point and zero. More information here: https://github.com/repetier/Repetier-Firmware/pull/540
    I hope I explained everything understandable ;)
  • Agreed on the error. Please see my comment on github to a possible error now with zmax homing and my fix. Hope someone can verify it soon. Will update it in dev version soon, when some other changes were tested I also made for that update.
Sign In or Register to comment.