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.35k stars 19.25k forks source link

[BUG] IDEX left carriage grind (mirror?) on move-to-start #22920

Open shtaXveed opened 3 years ago

shtaXveed commented 3 years ago

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

Yes, and the problem still exists.

Bug Description

following the update with the new bugfix, the heads still travel at the same time at the beginning of a print but seems to work fine while outside of print?

Bug Timeline

No response

Expected behavior

right hot end travels to start position while left is stationary no grinding.

Actual behavior

right travels to start location but left travels at same time into endstop.

Steps to Reproduce

  1. switch idex modes.
  2. watch it line up properly
  3. start print and wait for warm up
  4. start new print
  5. printer re-homes with BLTouch to home. Both hotends travel back to end stops then travel to start position. While traveling, left carriage grinds endstop.

Version of Marlin Firmware

bugfix 2.0.9.2

Printer model

jgmaker artist d pro

Electronics

stock electronics plus bltouch

Add-ons

bltouch

Bed Leveling

UBL Bilinear mesh

Your Slicer

Cura

Host Software

SD Card (headless)

Additional information & file uploads

No response

InsanityAutomation commented 3 years ago

Can you attach both your configuration files and a sample gcode file that exhibits the issue?

shtaXveed commented 3 years ago

Can you attach both your configuration files and a sample gcode file that exhibits the issue?

Configuration.zip Duplicated mode.zip

InsanityAutomation commented 3 years ago

I just went through the GCode and I did not see M605 in the starting code to set the mode anywhere. I added the following after G28 : M605S2; G28X;

With that, it started up correctly and ran here. Im am able to reproduce setting the mode from the menu before calling this print, but I believe the G28 with no args while in duplicate mode is whats causing the issue.

Considering you do not have the forced mode apply in configuration_adv, and are not setting up the mode completely in the gcode, I can see why this would behave strangely.

  // Default action to execute following M605 mode change commands. Typically G28X to apply new mode.
  //#define EVENT_GCODE_IDEX_AFTER_MODECHANGE "G28X"

Workaround for the moment is to add the mode set commands to the gcode after the G28 as stated above. Ill look at whats wrong with the position sets persisting when mode is set prior to entering G28.

shtaXveed commented 3 years ago

oh, thats my fault then, i was coping off a previous version and must have missed that

On Sun, Oct 10, 2021, 6:19 PM InsanityAutomation @.***> wrote:

I just went through the GCode and I did not see M605 in the starting code to set the mode anywhere. I added the following after G28 : M605S2; G28X;

With that, it started up correctly and ran here. Im am able to reproduce setting the mode from the menu before calling this print, but I believe the G28 with no args while in duplicate mode is whats causing the issue.

Considering you do not have the forced mode apply in configuration_adv, and are not setting up the mode completely in the gcode, I can see why this would behave strangely.

// Default action to execute following M605 mode change commands. Typically G28X to apply new mode. //#define EVENT_GCODE_IDEX_AFTER_MODECHANGE "G28X"

Workaround for the moment is to add the mode set commands to the gcode after the G28 as stated above. Ill look at whats wrong with the position sets persisting when mode is set prior to entering G28.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/MarlinFirmware/Marlin/issues/22920#issuecomment-939570817, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVSX24R7OV73FLC2E6MJTFTUGINP5ANCNFSM5FV6V4XQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

InsanityAutomation commented 3 years ago

From the menu, or set prior still should have worked so not a big deal, but the fix for that is up now too! Means it was essentially a second related bug.

thinkyhead commented 3 years ago

Does the extra benefit of G28X after M605 need to be applied as part of the EVENT_GCODE_IDEX_AFTER_MODECHANGE option, or could the behavior that comes from adding G28X here be applied differently, perhaps as a standard thing for certain cases? Alternatively, if EVENT_GCODE_IDEX_AFTER_MODECHANGE is not enabled, or doesn't contain G28X, we could throw an additional warning to the user. Whatever the case may be, the "out of the box" behavior should be a working one.

InsanityAutomation commented 3 years ago

Does the extra benefit of G28X after M605 need to be applied as part of the EVENT_GCODE_IDEX_AFTER_MODECHANGE option, or could the behavior that comes from adding G28X here be applied differently, perhaps as a standard thing for certain cases? Alternatively, if EVENT_GCODE_IDEX_AFTER_MODECHANGE is not enabled, or doesn't contain G28X, we could throw an additional warning to the user. Whatever the case may be, the "out of the box" behavior should be a working one.

It is necessary to set up the offset positions, and that's why when I originally put it in I made it that gcode and enabled by default. There was originally some apprehension about mode change calling the motion. I don't really have any aversion to adding a warning or just making it a built in action myself.