klack / marlin

GNU General Public License v3.0
18 stars 6 forks source link

Nozzles park at 10, 10 rather than home #2

Closed cryoaura closed 3 years ago

cryoaura commented 3 years ago

Description

The nozzles will both park after certain sequences and routines at 0,0. They really should only be homing to their home coordinates.

Steps to Reproduce

If tool 2 is selected when doing a home or a leveling procedure, or even at the start of a print, it will home and then park at 10,10.

Expected behavior: Given it's an IDEX, it should park at it's home, or parking should not be used.

Actual behavior: It will take the tool to 10, 10

cryoaura commented 3 years ago

Guess this has to deal with a typical printer and wanting to park a tool at a certain location. Given the vast amount of people that build nozzle cleaners at the carriage home locations for IDEX, we would want this to park at home...

It seems that the issue is the printer being in Auto-Park mode. It wants to park on tool change. I would think we would want it to go home?

mine2209 commented 3 years ago

Also head to X5,Y0 when you select between nozzles using tool swap on main screen.

klack commented 3 years ago

This is on the user interface side. I can adjust so that the default IDEX mode on the printer is manual mode. This would greatly eliminate all the "extra homing" that can be observed when using tools.

The other side to the coin is if the default idex mode is manual, and the user does not add a homing routine into their g-code, for example, TD3DE_20X20X20.gcode that comes on the sdcard. This causes the heads to crash.

This could possibly just be fixed by forcing auto mode before a print and I think this may be the way to go.

cryoaura commented 3 years ago

might be beyond the UI. If you are homing axis... You imagine both tools would be at their home locations after the home huh? Well, why in the world would we then want to move the head, if its 2, to another location? I have a feeling that dual_x_carriage is more meant for dual heads with only one endstop? The code just seems... off....

I've changed:

if HAS_MULTI_HOTEND && (DISABLED(DELTA) || ENABLED(DELTA_HOME_TO_SAFE_ZONE))

tool_change(old_tool_index, NONE(PARKING_EXTRUDER, DUAL_X_CARRIAGE));   // Do move if one of these

endif

To

if HAS_MULTI_HOTEND && (DISABLED(DELTA) || ENABLED(DELTA_HOME_TO_SAFE_ZONE))

//tool_change(old_tool_index, NONE(PARKING_EXTRUDER, DUAL_X_CARRIAGE));   // Do move if one of these
tool_change(old_tool_index, false);   // Do move if one of these

endif

And I get the results I'd expect. Maybe we should alter this?

klack commented 3 years ago

Fixed in https://github.com/klack/marlin/pull/72