Cannot get Z to zero

edited December 2014 in Extruder & Bed
So my issue is this- I installed repetier firmware on a RAMPS 1.4 board on my Printrbot metal with an autolevel probe. I got everything working except two things:

1. Y axis is mirrored thanks to the printrbot metal home position at the top left corner of the bed. I think I can fix that myself eventually (feel free to chime in if you know the easy fix), but it doesn't bug me as much as #2

2. I got autolevel working, but no matter what I do it starts printing exactly 3mm above the bed. The autolevel sensor triggers when the extruder is at the exact right printing height, but after autoleveling it goes up 3mm and stays there as it starts to print. I have a workaround in repetier host/slic3er where I can set the Z offset to -3mm, and it prints but the model shows as underneath the bed.

I have changed every setting I can find in the eeprom config to counteract this and nothing works. Z-probe height and max Z-probe to bed distance are both set to zero. Negative values kill the autolevel routine and positive values make the problem worse. What setting do I need to use to drop the extruder AFTER the autolevel routine?


  • Please post the log of this process until where you think it should be at z=0 and also your z probe settings. There are several ways for autoleveling so it is not even clear if you use rotation correctopn or only z measurement. 
  • edited December 2014
    Not sure what you mean by my log of the process. I use G28 and then G32 commands in the first part of the print's gcode to do the autoleveling, and Z moves up and down in the layer as it should so it is working - I guess you call that rotation correction? In Slic3er I set the z offset to -3 to counteract the extruder not going low enough. Like I said, the sensor triggers at the exact point when the extruder is at zero, so in order to print properly the sensor would be triggered while printing. I haven't messed with the physical sensor height since it's perfectly aligned to what I was using before, but I guess I could now.

    I will post my eeprom settings later today.
  • G32 does not set z position in host. It computes the rotation - that is correct - and depending on Sx it homes to max again for z length calculation. After that G1 Z0 should of course go to 0 and not 3mm above. if it does your z length was computed 3mm to short and you would need to increase z probe height by 3 mm to get correct length.

    Log is the conversation with your printer. Disable easy mode and git toggle log then you see what I mean. It contains important informations when debugging problems.
  • Physically increasing z probe height is a problem since it triggers right when the extruder is at the perfect print height - if I do increase it 3mm the extruder will crash into the bed. I will get a log soon.
  • edited December 2014
    Here is the beginning portion of the log right when I start the print with everything up to temp. This is with the z offset in host/slic3r set to -3.5 and it prints fine. Before this I tried adding G1 Z0 which had no effect, I also tried G1 Z-3 which lowered the extruder to the correct height until the the print started, then it went back up 3mm and started printing in the air as usual.

    13:32:52.480 : Echo:M117 ETE 00s
    13:32:52.480 : Echo:G21
    13:32:52.480 : Echo:M107
    13:32:52.511 : Echo:M190  S90
    13:32:52.527 : Echo:M104  S245
    13:33:09.562 : X:0.00 Y:0.00 Z:0.00 E:0.00
    13:33:09.562 : Echo:G28
    13:33:09.562 : Info:Autoleveling disabled
    13:33:13.010 : Z-probe:1.00 X:10.00 Y:10.00
    13:33:17.362 : Z-probe:1.42 X:10.00 Y:150.00
    13:33:22.011 : Z-probe:1.61 X:150.00 Y:150.00
    13:33:23.025 : Info: 1.00000 -0.00000 -0.00138 0.00000 1.00000 -0.00300 0.00138 0.00300 0.99999
    13:33:23.041 : Info:Autoleveling enabled
    13:33:23.041 : X:150.00 Y:150.00 Z:-0.41 E:0.00
    13:33:23.041 : Echo:G32
    13:34:27.952 : Echo:M109  S245
    13:34:27.952 : Echo:G90
    13:34:27.952 : Echo:G92  E0.0000
    13:34:27.952 : Echo:M82
    13:34:27.952 : Echo:G1  E-1.0000 F1800.00
    13:34:27.968 : Echo:M105
    13:34:27.968 : Echo:M105
    13:34:27.999 : Echo:M117 ETE 18m 51s
    13:34:28.015 : Echo:M105
    13:34:28.015 : Echo:G1  Z-2.15 F7800.00
    13:34:28.015 : Echo:G92  E0.0000
    13:34:28.015 : Echo:G1  X45.06 Y48.27 F7800.00
    13:34:28.062 : Echo:M117 ETE 18m 51s
    13:34:28.062 : Echo:G1  Z-3.15 F7800.00
    13:34:28.077 : Echo:G1  E1.0000 F1800.00
    13:34:28.077 : Echo:G1  X46.81 Y46.85 E1.1312 F1080.00
    13:34:28.077 : Echo:G1  X49.11 Y46.09 E1.2721
    13:34:28.093 : Echo:G1  X78.28 Y42.38 E2.9839
    13:34:28.093 : Echo:G1  X89.88 Y42.38 E3.6591
    13:34:28.093 : Echo:G1  X92.51 Y42.95 E3.8157
    13:34:28.108 : Echo:G1  X103.01 Y47.68 E4.4861 F1080.00
    13:34:28.108 : Echo:G1  X104.87 Y48.96 E4.6173
    13:34:28.124 : Echo:G1  X106.17 Y50.79 E4.7485
    13:34:28.124 : Echo:G1  X106.78 Y53.52 E4.9108
    13:34:28.124 : Echo:G1  X106.77 Y58.86 E5.2220
    13:34:28.140 : Echo:G1  X105.28 Y80.40 E6.4786
    13:34:28.140 : Echo:G1  X104.73 Y82.58 E6.6097
    13:34:28.576 : Echo:G1  X103.58 Y84.31 E6.7306
    13:34:29.762 : Echo:G1  X94.21 Y94.39 E7.5312
    13:34:29.778 : Echo:G1  X92.15 Y95.87 E7.6792
    13:34:29.809 : Echo:G1  X65.85 Y107.67 E9.3569
  • Could it have something to do with setting z to back off 1mm after hitting home? X and Y are set to do that by default, and I set Z to do it too since I was having issues with the probe at first.
  • 1. Are you using 0.92 or 0.91. I always check errors against 0.92 since it is th eversion I update currently.
    2. Why do you need to do it for every print. Wouldn't G32 S2 suffice?
    3. Please try if position is correct after
    G32 S2
    This does some more computations then a simple G32
    4. Not sure how good and fast your z axis is, but with 0.6mm z difference I would manually improve leveling by hand to reduce wear and eventually increse possible xy speed.
  • edited December 2014
    1. I used the .91 config tool. I'll try .92.
    2. I used to use G29 in marlin until this firmware, not used to all the new features. I never knew I could save leveling values to eeprom. Definitely something to check out.
    3. I'll try G32 S2 then G28.
    4. Are you talking about the bed level being off .6mm front to back? Yes, it could use some work - but the autoleveling works fine in the meantime.
  • Repetier makes good use from eeprom to store things that might change only sometimes. Autoleveling is one of them. Unless you disassemble your printer or you let it drop leveling should not change, so no reason re recalibrate everytime.

    4. Yes, thats what i meant.
  • edited December 2014
    Got it sorted out, thanks for the help! It all came down to my startup gcodes. I tried multiple settings, what finally worked was storing the leveling with G32 S2 and then running G32 S0 before each print. The G32 S0 was the key I was missing. I don't know if that's the "proper" way to do it, but it works with no more slic3r Z offset required and autoleveling works perfectly.

    I got Y working the right way too. I had to invert every setting for Y and make it use the Y min endstop as a Y max endstop.

    Thanks again!
Sign In or Register to comment.