1

After trying to solve this for the whole weekend I've run out of ideas.

I've fitted an BLTouch to my Ender-3 with an SKR mini e3 V2.0 board, firmware is Marlin 2.0.

My issue is the following: when I do autohome (G28) it uses the Z-Probe (BLTouch) to home (this is expected). I then set Z Probe offset to 0 (using M851 Z0) and move Z down until it the nozzle touches a piece of paper.
I then set the Probe Z offset to whatever value Z is at (M851 Z-4.10), save the settings to EEPROM and restart the machine. When doing another G28 and moving Z to 0 afterwards the distance is perfectly the same. This is repeatable.
However when I do G29 it measures the bed to be sitting around -1.9 mm, therefore moving Z to 0 will crash the nozzle to the bed. I can change my Probe Z offset have this fitting (M851 Z-2.20), however then the nozzle sits ~2 mm above the bed when doing another G28 with "Bed Leveling" disabled.

All of this is perfectly repeatable, so I think my I've got something off in my Marlin configuration, but can't find anything wrong.

What I've tried so far:

  • Setting the Z offset as default in config -> this yields the same result as saving it to EEPROM
  • Reflashing the firmware and resetting the EEPROM -> this didn't change anything
  • Connecting the probe as Z-Endstop and as Z-Probe -> after matching the configuration (setting/unsetting Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) it just gave the same result.

Did anyone encounter this issue before or can give me any idea how to fix this? Any help would be appreciated.

EDIT: I've just flashed the precompiled stock firmware from the BTT Github and it works. So im quite sure i've got something wrong in my config. But since I can't find the configuration.h for that .bin file, I can't realy compare both

  • Hi welcome to 3DPrinting.SE! Just out of curiosity, how did you define `NOZZLE_TO_PROBE_OFFSET`? Note that you need to autohome `G28` after you set `M851 Z0`. – 0scar Jun 01 '20 at 19:16
  • I've tried using `#define NOZZLE_TO_PROBE_OFFSET { -42, -6, 0 }`, and `#define NOZZLE_TO_PROBE_OFFSET { -42, -6, -2.20 }` but this value should be overwritten with `M851` right? – Daniel Echt Jun 03 '20 at 14:33
  • For your information, if you don't use @[username] the commenter doesn't get pinged. Comments under the question will always ping the question owner! – 0scar Jun 04 '20 at 07:25
  • Better to leave the Z offset to 0, then there is no question whether is is overwritten or not. Note that -1.9 - 2.2 equals -4.1, so this might be the cause. Furthermore, a BLTouch doesn't need to have such a large offset, you can place the sensor a little higher. My values are in between 1 - 2 mm. Please add a photo of the sensor in relation to the nozzle. – 0scar Jun 04 '20 at 07:32
  • @0scar thanks for your help, I finally figured it out. The issue was that i set `Z_MIN_POS` to -2 to be able to measure the offset. (I believe having read doing that somewhere, but cant find it now) after setting that back to 0 and it works now. I guess that the 2mm were added somehow, but I can't understand how that this is expected behavior. – Daniel Echt Jun 05 '20 at 12:27

1 Answers1

1

I'm answering my own question here.

The Issue was that I set Z_MIN_POS to -2.0 I guess these 2 mm were subtracted from G28 but not from G29.

I don't know wether this is expected behaviour but changing Z_MIN_POS back to 0 fixed the issue for me.

0scar
  • 32,029
  • 10
  • 59
  • 135