johncarlson21 / SV04-Marlin-2.1.x

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.
http://marlinfw.org
GNU General Public License v3.0
21 stars 7 forks source link

[BUG] Software endstops incorrect for T0 in Dual Mode (Auto-park mode) (Marlin vanilla looks more correct?) #29

Open awabom opened 1 year ago

awabom commented 1 year ago

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

Yes, and the problem still exists.

Bug Description

In motion.cpp, specifically update_software_endstops(), when 'new_tool_index' is 0 (left extruder) the resulting min/max will become 0/362 instead of -62/302 - the execution flows into line 864 - soft_endstop.min.x = 0, instead of line 869 - soft_endstop.min.x = X1_MIN_POS;

https://github.com/johncarlson21/SV04-Marlin-2.1.x/blob/859bc997a6ad3309186f739cb1cdee27746ea8a8/Marlin/src/module/motion.cpp#L852

I have checked via M211 using pronterface that the max X for T0 is actually too high and could result in collision with right extruder:

>>>T0
SENDING:T0
Active Extruder: 0
>>>M211
SENDING:M211
  M211 S1 ; ON
  Min:  X0.00 Y0.00 Z0.00   Max:  X364.60 Y302.00 Z400.00

Bug Timeline

No response

Expected behavior

G1 X-50 should work when T0 is active, without disabling software endstops.

Actual behavior

G1 X-50 is ignored.

Steps to Reproduce

No response

Version of Marlin Firmware

The latest release

Printer model

SV04

Electronics

Stock

Add-ons

No response

Bed Leveling

None

Your Slicer

Prusa Slicer

Host Software

None

Don't forget to include

Additional information & file uploads

No response