z-leveling again...

configuration.h: https://gist.github.com/HenryLoenwind/442ca59bb0838fb8e694f83f11a1b698
eeprom: https://gist.github.com/HenryLoenwind/f31d0f1e795cb8df47a1b0ae049ecd5f
version: git 185b05c08090a378415e03bef5f0d9f4a251d116

Short: G32 S2; G33; G28 -> probe hoovers ~2.5mm over the bed

I had some problems with z-leveling in 0.92, so I upgraded to the current dev level. Didn't really help. ;/

I have a cartesian printer, the z-probe is one of those pressure pads you stick onto the nozzle. Probing works quite well, but I cannot get it to actually get near the bed afterwards.

As the bed is big enough to need distortion correction anyway, I also tried disabling autolevel (M320 S2) and only use distortion correction. Didn't help.

21:29:12.644: Z correction disabled
21:29:12.646: Reference Z for measurement:10.500
21:29:51.786: Z-probe:8.206 X:10.00 Y:239.98
21:30:06.545: Z-probe:8.443 X:48.33 Y:239.98
21:30:21.575: Z-probe:8.674 X:86.66 Y:239.98
21:30:36.867: Z-probe:8.896 X:124.99 Y:239.98
21:30:52.472: Z-probe:9.160 X:163.32 Y:239.98
21:31:08.486: Z-probe:9.526 X:201.65 Y:239.98
21:31:25.070: Z-probe:9.999 X:239.98 Y:239.98
21:31:43.126: Z-probe:7.920 X:10.00 Y:201.65
21:31:57.583: Z-probe:8.180 X:48.33 Y:201.65
21:32:12.355: Z-probe:8.456 X:86.66 Y:201.65
21:32:27.436: Z-probe:8.714 X:124.99 Y:201.65
21:32:42.886: Z-probe:9.025 X:163.32 Y:201.65
21:32:58.799: Z-probe:9.435 X:201.65 Y:201.65
21:33:15.253: Z-probe:9.889 X:239.98 Y:201.65
21:33:33.225: Z-probe:7.845 X:10.00 Y:163.32
21:33:47.594: Z-probe:8.105 X:48.33 Y:163.32
21:34:02.270: Z-probe:8.374 X:86.66 Y:163.32
21:34:17.336: Z-probe:8.705 X:124.99 Y:163.32
21:34:32.794: Z-probe:9.035 X:163.32 Y:163.32
21:34:48.743: Z-probe:9.462 X:201.65 Y:163.32
21:35:05.309: Z-probe:9.983 X:239.98 Y:163.32
21:35:23.226: Z-probe:7.806 X:10.00 Y:124.99
21:35:37.503: Z-probe:8.029 X:48.33 Y:124.99
21:35:52.118: Z-probe:8.313 X:86.66 Y:124.99
21:36:07.071: Z-probe:8.605 X:124.99 Y:124.99
21:36:22.459: Z-probe:8.985 X:163.32 Y:124.99
21:36:38.351: Z-probe:9.407 X:201.65 Y:124.99
21:36:54.906: Z-probe:9.984 X:239.98 Y:124.99
21:37:12.826: Z-probe:7.814 X:10.00 Y:86.66
21:37:27.078: Z-probe:8.010 X:48.33 Y:86.66
21:37:41.667: Z-probe:8.283 X:86.66 Y:86.66
21:37:56.591: Z-probe:8.578 X:124.99 Y:86.66
21:38:11.893: Z-probe:8.910 X:163.32 Y:86.66
21:38:27.771: Z-probe:9.394 X:201.65 Y:86.66
21:38:44.234: Z-probe:9.904 X:239.98 Y:86.66
21:39:02.410: Z-probe:8.028 X:10.00 Y:48.33
21:39:16.854: Z-probe:8.173 X:48.33 Y:48.33
21:39:31.590: Z-probe:8.416 X:86.66 Y:48.33
21:39:46.618: Z-probe:8.670 X:124.99 Y:48.33
21:40:02.003: Z-probe:8.980 X:163.32 Y:48.33
21:40:17.936: Z-probe:9.452 X:201.65 Y:48.33
21:40:34.504: Z-probe:9.993 X:239.98 Y:48.33
21:40:52.965: Z-probe:8.263 X:10.00 Y:10.00
21:41:07.821: Z-probe:8.530 X:48.33 Y:10.00
21:41:22.882: Z-probe:8.704 X:86.66 Y:10.00
21:41:38.191: Z-probe:8.917 X:124.99 Y:10.00
21:41:53.836: Z-probe:9.208 X:163.32 Y:10.00
21:42:09.972: Z-probe:9.632 X:201.65 Y:10.00
21:42:26.754: Z-probe:10.175 X:239.98 Y:10.00
21:42:27.565: Info:Distortion correction matrix:
21:42:27.567: 917, 823, 730, 642, 536, 389, 200
21:42:27.569: 1032, 928, 818, 714, 590, 426, 244
21:42:27.570: 1062, 958, 850, 718, 586, 415, 207
21:42:27.571: 1078, 988, 875, 758, 606, 437, 206
21:42:27.573: 1075, 996, 887, 769, 636, 442, 238
21:42:27.574: 989, 931, 833, 732, 608, 419, 203
21:42:27.575: 895, 788, 718, 633, 517, 347, 130
21:42:27.578: G33 X10.00 Y10.00 Z2.237
21:42:27.581: G33 X10.00 Y48.33 Z2.472
21:42:27.582: G33 X10.00 Y86.66 Z2.687
21:42:27.585: G33 X10.00 Y124.99 Z2.695
21:42:27.585: G33 X10.00 Y163.32 Z2.655
21:42:27.586: G33 X10.00 Y201.65 Z2.580
21:42:27.589: G33 X10.00 Y239.98 Z2.292
21:42:27.590: G33 X48.33 Y10.00 Z1.970
21:42:27.593: G33 X48.33 Y48.33 Z2.327
21:42:27.595: G33 X48.33 Y86.66 Z2.490
21:42:27.595: G33 X48.33 Y124.99 Z2.470
21:42:27.597: G33 X48.33 Y163.32 Z2.395
21:42:27.599: G33 X48.33 Y201.65 Z2.320
21:42:27.601: G33 X48.33 Y239.98 Z2.057
21:42:27.603: G33 X86.66 Y10.00 Z1.795
21:42:27.606: G33 X86.66 Y48.33 Z2.082
21:42:27.606: G33 X86.66 Y86.66 Z2.217
21:42:27.607: G33 X86.66 Y124.99 Z2.187
21:42:27.610: G33 X86.66 Y163.32 Z2.125
21:42:27.611: G33 X86.66 Y201.65 Z2.045
21:42:27.614: G33 X86.66 Y239.98 Z1.825
21:42:27.617: G33 X124.99 Y10.00 Z1.582
21:42:27.617: G33 X124.99 Y48.33 Z1.830
21:42:27.618: G33 X124.99 Y86.66 Z1.922
21:42:27.621: G33 X124.99 Y124.99 Z1.895
21:42:27.622: G33 X124.99 Y163.32 Z1.795
21:42:27.625: G33 X124.99 Y201.65 Z1.785
21:42:27.627: G33 X124.99 Y239.98 Z1.605
21:42:27.629: G33 X163.32 Y10.00 Z1.292
21:42:27.631: G33 X163.32 Y48.33 Z1.520
21:42:27.631: G33 X163.32 Y86.66 Z1.590
21:42:27.633: G33 X163.32 Y124.99 Z1.515
21:42:27.635: G33 X163.32 Y163.32 Z1.465
21:42:27.638: G33 X163.32 Y201.65 Z1.475
21:42:27.639: G33 X163.32 Y239.98 Z1.340
21:42:27.642: G33 X201.65 Y10.00 Z0.868
21:42:27.643: G33 X201.65 Y48.33 Z1.047
21:42:27.643: G33 X201.65 Y86.66 Z1.105
21:42:27.646: G33 X201.65 Y124.99 Z1.092
21:42:27.648: G33 X201.65 Y163.32 Z1.037
21:42:27.650: G33 X201.65 Y201.65 Z1.065
21:42:27.652: G33 X201.65 Y239.98 Z0.972
21:42:27.654: G33 X239.98 Y10.00 Z0.325
21:42:27.656: G33 X239.98 Y48.33 Z0.507
21:42:27.657: G33 X239.98 Y86.66 Z0.595
21:42:27.658: G33 X239.98 Y124.99 Z0.515
21:42:27.660: G33 X239.98 Y163.32 Z0.518
21:42:27.663: G33 X239.98 Y201.65 Z0.610
21:42:27.664: G33 X239.98 Y239.98 Z0.500
21:42:27.666: Z correction enabled

21:43:25.071: X:0.00 Y:0.00 Z:0.000 E:0.0000
21:45:25.755: Z-probe:4.779 X:0.00 Y:0.00 zCorr:2.237
21:45:53.094: X:0.00 Y:0.00 Z:2.237 E:0.0000

Not quite unrelated feature request: I'd love to be able to define a Z_MIN_HOMING switch so I don't have to ram the nozzle into the bed to reach the Z_MIN_ENDSTOP for homing. Yes, I could home against a Z_MAX switch, but two times 350 mm at 2mm/s takes a bit longer than I want to endure...


  • Looks like you have a z min endstup and a z probe. That is a combination that does not work. You need to always home z min using z probe in that case. Otherwise you measure something using z probe and for homing you ignore everything and you use the not calibrated z min endstop whcih stops at a compületely different and unknown height and you can go lower even if rotation would require that.
  • Repetier said:
     not calibrated z min endstop whcih stops at a compületely different and unknown height
    Isn't that exactly what z-leveling is supposed to do? Measure the offset between the endstop and bed surface?

    I had a quick look, and to me it seems this may not too hard to implement, in Printer::HomeZAxis():

    currentPosition[Z_AXIS] = 0;

    needs to be either replaced with bedleveling height at the current xy, or the axis needs to be moved up that far. And obviously this offset needs to be remembered so the next leveling can undo it to work from real coordinates.

    On the other hand, putting that value into

            Printer::zBabysteps = 0;

    may be the even simpler solution. No need to worry about side effects.Other than the detail that leveling compensation most probably ignores it so the bed may be out of of compensation range (only 1mm by default, I think). Also, this needs to be updated after running the leveling, but for the "detachable probe" case you do this manually and then run a print job that does homing, so it isn't that important.

    I'm willing to try this out, what would be the best way to get the computed bed height? (Probably whatever G30 does, I'd guess ;) )
  • It is not so easy. z min endstop is where moves stop - no more down from that height. Soit must be at a position below bed surface (you hear the problem) otherwise you might need to go below z min trigger depending on rotation of bed. So going below bed surface means bed needs some not too hard springs or you might damage something.

    This can be completely avoided by using z probe for z min. All it needs to know is x and y position so it compute backwards from known rotation what height is.

    In your solution you could use bed coating to fix the gap. You need to set it manually since autoleveling levels surface but does not compute an offset to z min as this is a unsupported combination.
Sign In or Register to comment.