Z offset question

I have been printing now for a few months, i had finally gotten the Z offset corrected so the first layer went down as i thought it should. The offset was set to .24.
I installed a new nozzle (much sharper point) that sits lower than the original, so i re-calibrated the zprobe, had to move the sensor down.

Using the same process as before, with a clean nozzle, i put the nozzle on the bed, moved the sensor down (i put a quarter on the bed and set the sensor on top of the quarter, then tightened it into place).
I would have thought this would have been a close place to start Then i set out to re-calibrate the offset.
Using an aluminum reference block (39.95 mm)
reset the offset in the firmware to 0 (to make life easier)
I sent a G30 P0, the hot end moved to x100, y100, z19.843
i heated the bed and hot end and sent an M114 (that gave me 20)
moved the hot end so the block just slide under the hot end and sent an M114 (gave me 39.84)

using the formula (ZHNew = Zhold-Z0-znew+zold_ref) or (0-19.843-39.84_20_39.95) the offset should have been .267...

When I set this in the firmware and tried to start a print, the first layer was so tight, nothing came out of the hot end.
Just for testing, i changed the offset value several times. 
After several attempts, i ended up using a negative number (had to try something different).. 

Using -0.3 i was finally able to get the first layer to print.

Can anyone tell me where i went wrong with my calculations? I thought that the measurements for the offset should be positive if using a probe instead of a force feedback switch? 
Am i backwards here?


  • Negative z probe height sounds wrong. Only sensors really having negative offset are force feedback or nozzle sensors. Switches and inductive switches have positive values or you would hit bed first with nozzle and then sensor triggers which is not possible.

    Especially if you have z max homing you need to recalibrate height using G32 S2. Just changing z probe height does not correct wrong z length here.
  • What could cause this type of situation? 

    After setting this to a negative number, i did rerun a g32 s2 and then a g33. 
    After this i was able to get the first layer to print.

  • zlength/g33 data was based on old z probe height. But I do not know good enough what you did and how your printer is set up to say what went wrong.
  • sorry...
    I totally understand that you have no idea what is going on with my specific printer.
    I should have been clearer in my response.
    What that "should" have said was

    What would be a possible cause for a situation like this? or What should I be looking for that would be incorrect?
    The only change i made was the nozzle, which is taller than the original, so i had to move the probe down.
    I then reset the z-probe height to 0 in the firmware (figuring i should start that bit over)..

    I just don't know where to even look fro why this would have changed like this, it makes no sense to me why i would need a negative number in the probe height as this is a proximity sensor.

  • What sensor do you use for z-probe? As I said it should switch before z hit bed. You could try this first to see if it is still valid. You said you also moved z probe down so if you moved it too much it might happen. But that would mean the extruder block rotates after hitting bed with nozzle so z probe makes contact. Would be an explanaition for the negative z. You said it is a proximity sensor so it should trigger a mm or so before you hit bed. So move nozzle until short before bed and see if M119 reports it already as hit or not. 
  • i have an SN04 sensor.
    When i moved it, i set the nozzle onto the bed, then put a quarter under the sensor to get a good distance above the hot end to trigger.
    This is why this does not make any sense to me...
  • If i have ZHold (this is the current EEProm value for Z_Probe_Height).. Is this correct?

    Is the formula i used initially correct?
    I will re-run the process when i get back in front on my printer, i just want to verify i am correct.
  • Yes ZHold is the set value for z probe height. And yes I think the formula is correct.
  • ok.. now i think i have totally messed it all up.. 
    After working with this for a few days, i found that the only way i could get even close to a good first layer was to enter a negative offset. 
    I re-loaded the firmware (version 1.0.2) and still was unable to get it to work without a negative value. 
    I uploaded the newest version of firmware (1.0.3), tried to re-calibrate the offset. I tried 4 different times and got 3 different values for the offset (.53, .83 and .32), i have been trying to calibrate in the same spot on the printer each time. The only thing that was different was the spot where i sent the initial G30 P0.
    With the offset numbers i found, when i home everything, then move the z axis first, i hear it drag on the bed (so i am still too close).

    now, for some reason, when i turn the printer on.. the first thing i do is home everything, what happened before was the Z axis would raise 10, then x would home, y would home, the printer would move to x100, y100 and then z would home.
    Now, after upgrading the firmware, when i turn the printer on and home everything, Z homes where it is, then x homes, y homes and z homes again.
    This is an issue if the z probe is not over the bed when i turn the printer on. 
    i tried also to go back to version 1.0.2 to see if the issue corrects, but it does not.
    Also, after upgrading the firmware, using the same config file that the printer was running, the first time i tried to home everything, the Z axis started to go up and then everything stopped with an illegal out of bounds error, i changed the x offseet for the probe and the error stopped, i then put it back to where is was (since it was no longer even close to the actual offset), when i changed it back, the error did not come back.  

    i am completely lost here....
    Any thoughts on this would be greatly appreciated. Do i need to replace the RAMPS board since this is somewhat inconsistent? Or do i need to do something different?

  • There are to homing orders with temperature, one does in deed home z first and then xyz, so sounds like you have switched it. Maybe you did mess up by modifying the config sometimes manually and not with config tool. Config tool will then drop your changes and go back to last settings when you used config tool. So always use config tool when making changes even if you know you only need one value changed. Just do config tool and download configuration.h instead of zip and replace old config file. Make sure arduino ide uses external editor so it reloads before compiling.

    When probing make sure autolevel/distortion correction is enabled. What you do is correcting z probe height so that the reported position under current conditions would fix the block when setting z to block height so it just has no play. If the correction leads to different distances over different points you will get different probe heights. That is why correction must be enabled. Then error should be nearly identical at all points.

    It does not depend on the ramps.

    You might test relyability of the z probe. Go to one point and run multiple G30 to see if results change over tests. A small deviation is normal.
  • i think i am missing a step here.. every time i"think" i have this process down, i change the tape, or the buildtak or whatever surface i have, and the numbers dont give me the results i thought i should.
    here is what i am doing..
    I power up the printer and home everything 
    i get the ZHold number from the eeprom z probe height (1.2)
    my reference block is 39.55 mm
    I then move the head to x100, y100, z10, then i send a g30 p0 to get z0 (11.074)
    i send an m114 to get zold (11)
    then i adjust the head so the reference block just fits under and send an m114 (40.09)
    then the math
    znew=   zhold  -z0         -znew   +zold   +ref
                1.2      -11.074  -40.09  +11     +39.55

    this gives me .586 
    so i put .586 into the eeprom as the new z probe height, and home everything again
    i raise the z to 10 then move x and y to 100,100 then i send a g1 z0 (which in theory "should" put the hot end right on the build plate right???

    what i actually get is the hot end is off of the bed. if i then change the z probe height to 1.2 (just a guess, re home and move to z10, x100,y100 and send a g1 z0 the hot end goes to the build plate.
    This put me back in the "I am going to guess at what the offset should really be..

    What am i missing here..??? 

    Thank you for all of the help and patience.. 

  • Something seems wrong. If you go to Z=10 M114 must return 10 not 11.
    Does homing use the z probe? In that case you should be allowed to just measure block and change z height by difference measured block height vs. real block size. 
Sign In or Register to comment.