MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.34k stars 19.26k forks source link

[BUG] Auto-home with a probe on v.2.1.2.2 crashes nozzle into bed #26809

Closed jradwan closed 8 months ago

jradwan commented 9 months ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

After upgrading from 2.1.2.1 to 2.1.2.2 (and -bugfix), when I perform an auto-home on my Ender 3 Pro with a CR Touch installed, the probe extends and the Z-axis starts moving downward. But after the probe touches the bed the Z-axis continues to move down and grinds the stepper motor and nozzle into the bed until I turn the power off.

Going back to 2.1.2.1 fixes the issue.

Bug Timeline

after upgrading from 2.1.2.1 to 2.1.2.2

Expected behavior

CR Touch/Z-probe should stop nozzle from crashing into bed

Actual behavior

Probe touches bed, light turns red, but Z-axis continues to move down grinding stepper motor and driving nozzle into bed until power is shut off.

Steps to Reproduce

Motion > Auto Home

Version of Marlin Firmware

2.1.2.x-bugfix

Printer model

Ender 3 Pro

Electronics

4.2.7 32-bit board

LCD/Controller

No response

Other add-ons

No response

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

OctoPrint

Don't forget to include

Additional information & file uploads

All of my changes/customizations are tagged with "JCR" in these files. Attached are my working files from 2.1.2.1 and the files used with 2.1.2.x-bugfix that cause the problem.

2-1-2-x-bugfix-configs-auto-home-crash.zip

ellensp commented 9 months ago

What type of MPU is on your creality 4.2.7 STM32F103RE, STM32F103RC or GD32F303RE ? And what build environment did you use?

And where is your probe attached? from the config the probe should be using the 5 pin probe port and nothing else

tu77 commented 9 months ago

after Upgrading from 2.1.2.1 to 2.1.2.2 my double Z-Axis is not homing anymore, I get a "kill" after some minutes, kind of timeout.. maybe it is a similar issue.

I did compare my old and new config files but find no reason for the Problem.

Printer type: core XY dual Z axis 2 Z-home switches only (no BL or probe)

jradwan commented 9 months ago

What type of MPU is on your creality 4.2.7 STM32F103RE, STM32F103RC or GD32F303RE ?

STM32F103RET6

And what build environment did you use?

default_envs = STM32F103RET6_creality

And where is your probe attached? from the config the probe should be using the 5 pin probe port and nothing else

Yes, attached to the dedicated probe port on the board, original Z-stop removed nothing plugged in there.

classicrocker883 commented 9 months ago

i also have CR-touch with 427, I have never noticed this issue. I have heard there may be issues with this and HS (high speed) mode and definitely had experienced problems with this enabled like using M48.

what UI are you using, ProUI? Jyers?

jradwan commented 9 months ago

I have not enabled BL_TOUCH_HS_MODE and Z_MIN_PROBE_REPEATABILITY_TEST is also disabled.

I'm on an Ender 3 Pro, so no special UI, just the stock LCD and rotary encoder.

stonesword0 commented 9 months ago

I had this same issue with the new firmware. I have a BLTouch, so it is likely an issue with the 4.2.7 mainboard.

Thank you for reporting this, I would have never figured out why my BLTouch isn't working!

jradwan commented 9 months ago

Thank you for reporting this, I would have never figured out why my BLTouch isn't working!

I'm glad I'm not the only one!

buff0k commented 9 months ago

Can confirm same issue with 4.2.2 Motherboard on an Ender-5 Pro.

ellensp commented 9 months ago

Me two-ing provides extremely limited information.

Please include config files and details of how your bltouch is wired (probe port, probe port and z-stop, or using an adapter such as a pin 27 adapter) and what probe you really have bltouch, crtouch, 3dtouch etc

Reminder:

If probe is plugged into the 5 pin probe port you need this in your configuration.h

//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

define USE_PROBE_FOR_Z_HOMING

//#define Z_MIN_PROBE_PIN -1

If probe is plugged into z-stop pin and probe port you need this

define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

//#define USE_PROBE_FOR_Z_HOMING // Is enabled automatically //#define Z_MIN_PROBE_PIN -1

You only define Z_MIN_PROBE_PIN if its not already defined (if you board has a probe port it is defined)

And BLTOUCH_HS_MODE and BLTOUCH_FORCE_SW_MODE cannot be used on crtouch or 3dtouch.

buff0k commented 9 months ago

I use a CR Touch connected to the Probe Port, Z-stop disconnected.

//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

define USE_PROBE_FOR_Z_HOMING

define Z_MIN_PROBE_PIN PB1

//#define BLTOUCH_HS_MODE true //#define BLTOUCH_FORCE_SW_MODE

(Above worked for 2.1.2.1)

Configs addatached 2.1.2.2.zip

As for clarifying me too, 2.1.x-bugfix and 2.1.2.1 did not have this issue, configs migrated manually or using the template, i.e. the issue is 2.1.2.2 related.

thisiskeithb commented 9 months ago

2.1.2.2 has some issues & needs a few patches, so I'd recommend updating to bugfix-2.1.x if you need a specific feature or hardware support.

You can also stick with a previous version if that is working for you until 2.1.3 is released.

ellensp commented 9 months ago

I think i've found something which looks like a very likely suspect to break many probes in the probe port.

In 2.1.2.2 Marlin/src/inc/Conditionals_post.h is

 #if ALL(ENDSTOPPULLUPS, USE_Z_MIN_PROBE)
    #define ENDSTOPPULLUP_ZMIN_PROBE
  #endif

But USE_Z_MIN_PROBE is not part of 2.1.2.2, it came from bugfix by mistake. So ENDSTOPPULLUP_ZMIN_PROBE is never defined.

Update this code to

  #if ALL(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN)
    #define ENDSTOPPULLUP_ZMIN_PROBE
  #endif

And ENDSTOPPULLUP_ZMIN_PROBE gets defined as it should.

Can anyone with this issue very carefully test Z homing with this patch? @jradwan @buff0k

ct16k commented 9 months ago

I have an Antclabs BLTouch v3.1 connected to a BigTreeTech SKR Mini E3 v2. Can confirm with the above suggested patch the probe now works as expected.

diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index 6794087ca4..4e18fd3938 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -2852,7 +2852,7 @@
   #ifndef PROBE_OFFSET_YMAX
     #define PROBE_OFFSET_YMAX  50
   #endif
-  #if ALL(ENDSTOPPULLUPS, USE_Z_MIN_PROBE)
+  #if ALL(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN)
     #define ENDSTOPPULLUP_ZMIN_PROBE
   #endif
   #ifndef XY_PROBE_FEEDRATE
jradwan commented 9 months ago

The patch did not work for me. Was that for the bugfix-2.1.x branch? Or should I have applied it to 2.1.2.2?

ellensp commented 9 months ago

there is nothing wrong with bugfix-2.1.x homing with a probe, this patch is for 2.1.2.2

jradwan commented 9 months ago

Ok, maybe I'm confused then because I was having the issue with bugfix-2.1.x as well as 2.1.2.2.

But I just tried the proposed patch on the 2.1.x branch (2.1.2.2 with bugfixes) and it worked, the auto-home completes successfully.

ellensp commented 9 months ago

2.1.x and 2.1.2.2 are currently identical. branch bugfix-2.1.x. is what we refer to as bugfix not branch 2.1.x

jradwan commented 9 months ago

Ok, I must have downloaded something wrong or messed up on my side then when filing the bug originally because I thought I was able to reproduce on bugfix-2.1.x. But whatever, the patch works for 2.1.2.2 so I'm back in business. Thanks!

buff0k commented 9 months ago

Can confirm above fix does correct the issue on 2.1.2.2 on Ender-5 Pro with 4.2.2 board and CR Touch. Thank you @ellensp

classicrocker883 commented 9 months ago

@ellensp

And BLTOUCH_HS_MODE and BLTOUCH_FORCE_SW_MODE cannot be used on crtouch or 3dtouch.

im wondering why cant FORCE_SW_MODE be used? even though it says: and most clones:

  /**
   * Settings for BLTOUCH Classic 1.2, 1.3 or BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1, and most clones:
   */

  // Feature: Switch into SW mode after a deploy. It makes the output pulse longer. Can be useful
  //          in special cases, like noisy or filtered input configurations.
  //#define BLTOUCH_FORCE_SW_MODE
thisiskeithb commented 9 months ago

im wondering why cant FORCE_SW_MODE be used? even though it says: and most clones:

Because "most clones" referred to the "3D Touch" clones that existed long before Creality's CRTouch.

gitana2 commented 9 months ago

I confirm on Ender 3S1 (stock firmw 301_SWV3.0.4_C_F401, board V24S1_301, processor F401) the 2.1.2.2 bug. Cr-Touch crashes into the bed. Rolling back to 2.1.2.1 has resolved the issue

buff0k commented 9 months ago

I confirm on Ender 3S1 (stock firmw 301_SWV3.0.4_C_F401, board V24S1_301, processor F401) the 2.1.2.2 bug. Cr-Touch crashes into the bed. Rolling back to 2.1.2.1 has resolved the issue

Did you try the fix as per @ellensp above:

n 2.1.2.2 Marlin/src/inc/Conditionals_post.h is

if ALL(ENDSTOPPULLUPS, USE_Z_MIN_PROBE)

#define ENDSTOPPULLUP_ZMIN_PROBE

endif

But USE_Z_MIN_PROBE is not part of 2.1.2.2, it came from bugfix by mistake. So ENDSTOPPULLUP_ZMIN_PROBE is never defined.

Update this code to

if ALL(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN)

#define ENDSTOPPULLUP_ZMIN_PROBE

endif

And ENDSTOPPULLUP_ZMIN_PROBE gets defined as it should.

gitana2 commented 8 months ago

Thanks for the fix, but for now I will continue in 2121 without wasting time on new updates and tests. Maybe later...

bwskin commented 8 months ago

I can confirm that with SKR2 this issue occurs on 2.1.2.2 and the patch provided by @ellensp fixes the issue. Thanks!

vfbank commented 8 months ago

I'm using the MKS Tinybee board. This is an ESP32 based board.

Uses IR FIX sensor instead of BL touch. I don't think it's a BL Touch code issue. Because in 2.1.2.1 there is no such problem.

thisiskeithb commented 8 months ago

I don't think it's a BL Touch code issue. Because in 2.1.2.1 there is no such problem.

It's a general probe issue, not BLTouch-specific.

Phillip-0x01 commented 8 months ago

I was having the same issue on 2.1.2.2 with my Ender 3 V4.2.2 and BLTouch and the patch provided by @ellensp fixes the issue.

thisiskeithb commented 8 months ago

Closing since this is already fixed in bugfix-2.1.x.

phiphila commented 8 months ago

Hi There are truly great people on earth. Many thanks for sharing. this works for me.

My setup: printer : Ender5Plus with a mainboard creality 4.2.7 and a crtouch 5pins. build with visual studio code.

image

Configuration.h.txt

piotrmocko commented 7 months ago

I have an Antclabs BLTouch v3.1 connected to a BigTreeTech SKR Mini E3 v2. Can confirm with the above suggested patch the probe now works as expected.

diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index 6794087ca4..4e18fd3938 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -2852,7 +2852,7 @@
   #ifndef PROBE_OFFSET_YMAX
     #define PROBE_OFFSET_YMAX  50
   #endif
-  #if ALL(ENDSTOPPULLUPS, USE_Z_MIN_PROBE)
+  #if ALL(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN)
     #define ENDSTOPPULLUP_ZMIN_PROBE
   #endif
   #ifndef XY_PROBE_FEEDRATE

This has helped me to install 2.1.2.2 and not break my printer

reneroth commented 7 months ago

Would it make sense to put a big warning re: this known bug on the release page? Took me quite a while to figure out what was going on 😨

thisiskeithb commented 7 months ago

Patch for 2.1.x submitted:

TheGITofTeo997 commented 7 months ago

Would it make sense to put a big warning re: this known bug on the release page? Took me quite a while to figure out what was going on 😨

Commenting here to say the same! I wasted a good amount of time and days trying to understand what was going on... until someone on Reddit suggested me this Git issue! All I did was downloading the latest release on the website and from there the bad things started. I definitely agree that this should be something advertised somewhere else. I compiled myself today the latest bugfix and luckily now all is working

thisiskeithb commented 7 months ago

I definitely agree that this should be something advertised somewhere else.

I created & pinned https://github.com/MarlinFirmware/Marlin/issues/27019 yesterday and just updated the 2.1.2.2 release notes to add a link to the pinned issue under the "Known Issues" heading:

image
TheGITofTeo997 commented 7 months ago

I definitely agree that this should be something advertised somewhere else.

I created & pinned #27019 yesterday and just updated the 2.1.2.2 release notes to add a link to the pinned issue under the "Known Issues" heading:

image

I understand and thanks for this. What I am thinking about, is that maybe most of the people (sadly as I did) will simply download it from the Marlin website without being aware of this. Sure it was my fault not checking the issues page, but I am afraid most of the people will do like I did.

reneroth commented 7 months ago

Depending on POV, this might be a broken release and not a known issue 😬

HerbertExtrem commented 7 months ago

Depending on POV, this might be a broken release and not a known issue 😬

I installed my new 3D printer last week and this bug cost me a lot of time, since there are several reasons that could lead to nozzle crashing into bed. Since there is no workaround but changing the code i would clearly see this as a broken release.

Weirdo50 commented 7 months ago

I definitely agree that this should be something advertised somewhere else.

I created & pinned #27019 yesterday and just updated the 2.1.2.2 release notes to add a link to the pinned issue under the "Known Issues" heading:

image

auto build marlin does not detect the new version.

gitana2 commented 6 months ago

Sorry for the delay. I confirm that @ellensp's fix in 2.1.2.2 Marlin/src/inc/Conditionals_post.h which replaces "#if ALL(ENDSTOPPULLUPS, USE_Z_MIN_PROBE)" with #if ALL(ENDSTOPPULLUPS, HAS_Z_MIN_PROBE_PIN) fixes the problem on Ender 3S1, board V24S1_301 , processor F401. Congratulations!

SojournTV commented 6 months ago

Thanks for the fix!

HerbertExtrem commented 6 months ago

Am I missing something here or this Fix is not Part of any Branch / Release? Or did this get fixed with a different ticket? Can't find any info in which Commits on which Branches this is included. Doesn't seem to be contained in 2.1.2.3? Thx and greetings

Edit: Sorry, just checked the 2.1.2.3 Code and it seems to be fixed in there, is there any reference from this ticket that shows the branches / tags that its fixed in?

Second edit lol: Found it via Git Blame: https://github.com/MarlinFirmware/Marlin/pull/27022

damianshaon commented 6 months ago

Fix worked for me. many thanks......

ellensp commented 6 months ago

This patch and others are included in Marlin 2.1.2.3 https://github.com/MarlinFirmware/Marlin/archive/2.1.2.3.zip

HerbertExtrem commented 6 months ago

This patch and others are included in Marlin 2.1.2.3 https://github.com/MarlinFirmware/Marlin/archive/2.1.2.3.zip

Thanks, already got it then. Just still don't understand where or if I can see a reference to #27022 from this ticket :)

thisiskeithb commented 6 months ago

Thanks, already got it then. Just still don't understand where or if I can see a reference to #27022 from this ticket :)

Scroll up:

image