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

  • $\begingroup$ 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. $\endgroup$
    – 0scar
    Jun 1 '20 at 19:16
  • $\begingroup$ 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? $\endgroup$ Jun 3 '20 at 14:33
  • $\begingroup$ 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! $\endgroup$
    – 0scar
    Jun 4 '20 at 7:25
  • $\begingroup$ 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. $\endgroup$
    – 0scar
    Jun 4 '20 at 7:32
  • $\begingroup$ @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. $\endgroup$ Jun 5 '20 at 12:27

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.