Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dual_X_Carriage proper behavior is broken #4694

Closed
AndrewDiehl opened this issue Aug 23, 2016 · 107 comments
Closed

Dual_X_Carriage proper behavior is broken #4694

AndrewDiehl opened this issue Aug 23, 2016 · 107 comments

Comments

@AndrewDiehl
Copy link

AndrewDiehl commented Aug 23, 2016

M605 S0 is default.
Homed All axis.

T0 is at 0
T1 is at 400

Send following commands:

T0
G1 X10 F1000

The T0 head (left side) moves to X35 instead of X10,
Subsequently can not move the T0 head to anything less than X35 without a homing command.

X35 is the the T1 minimum position, and should not be affecting T0

Additionally,
Issuing a T1 command immediately sends the T1 head to the same position as the T0 head, causing a collision. Simply issuing T1 should not cause any movement.

@thinkyhead
Copy link
Member

Unfortunately we haven't had any testers with a dual-x setup. If you can help us to work on this it would be very much appreciated.

@thinkyhead thinkyhead added Bug: Confirmed ! Needs: Patch A patch is needed to fix this labels Aug 24, 2016
@AndrewDiehl
Copy link
Author

I will do whatever I can to help.

@AndrewDiehl
Copy link
Author

Is there anything I can do to help right now, or just wait until its patched and try again?

@boelle
Copy link
Contributor

boelle commented Sep 3, 2016

@thinkyhead anything he can do ?

1 similar comment
@boelle
Copy link
Contributor

boelle commented Sep 10, 2016

@thinkyhead anything he can do ?

@thinkyhead
Copy link
Member

He can call in the geek troops to help me! I have very limited time to work on the main Marlin project than I would like these days, and I have some other issues to tackle today.

1 similar comment
@thinkyhead
Copy link
Member

He can call in the geek troops to help me! I have very limited time to work on the main Marlin project than I would like these days, and I have some other issues to tackle today.

@boelle
Copy link
Contributor

boelle commented Sep 10, 2016

@AndrewDiehl :-D so if you know some geek people that can help out let us know

@AndrewDiehl
Copy link
Author

My people are all Electrical/Mechanical but no software :(

If any of your tasks involve CAD or fabrication, I'd be happy to help lighten the load.

@psyvision
Copy link

I'm watching this now as I have the T0/T1 crash issue. I'll take a look at the code later today

@boelle
Copy link
Contributor

boelle commented Nov 2, 2016

@AndrewDiehl i assume this "problem" is still present?

@AndrewDiehl
Copy link
Author

I would assume so, as nobody has asked me to test a fix.

On Nov 2, 2016 9:48 AM, "Bo Herrmannsen" [email protected] wrote:

@AndrewDiehl https://github.com/AndrewDiehl i assume this "problem" is
still present?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#4694 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABOp2Bu5yqhjP2sTyPlwnhIR15CviyaWks5q6JSTgaJpZM4Jrb7r
.

@boelle
Copy link
Contributor

boelle commented Nov 2, 2016

@AndrewDiehl are you able to work with @thinkyhead to figure it out?

you test and he tries to fix?

@AndrewDiehl
Copy link
Author

I'll be away from my machines until Friday, but generally, yes.

@boelle
Copy link
Contributor

boelle commented Nov 2, 2016

oki doke... then i think @thinkyhead will poke you when he is ready :-)

@thinkyhead
Copy link
Member

@AndrewDiehl What time zone are you in? Perhaps we can do an online hangout or chat session where I can try patching some things and you could give feedback. I'd like to make sure all Dual X behavior is proper, includingT0/T1, parking the head, doing duplication mode, etc., and I know if I try to work it out on my own it'll be hit-or-miss.

@AndrewDiehl
Copy link
Author

AndrewDiehl commented Nov 2, 2016

Eastern time USA.

@thinkyhead
Copy link
Member

@AndrewDiehl I'm on Central Time currently. Do you have some availability Friday night, or over the weekend to hack on this?

@boelle
Copy link
Contributor

boelle commented Nov 5, 2016

@AndrewDiehl will you have time this weekend?

@thinkyhead
Copy link
Member

@AndrewDiehl If I had a Dual-X machine on hand to test with this and other Dual X issues could be solved in a day. Without one I'm terribly afraid of making it worse.

@AndrewDiehl
Copy link
Author

AndrewDiehl commented Nov 6, 2016

Sorry for the delay here,

I'm trying to make time for this on Sunday.

My newborn is being extra fussy the last few days so its been harder to find time than expected.

@AndrewDiehl
Copy link
Author

@thinkyhead

I can do google hangouts using [email protected] or you can call 610-295-7867. For voice I may have to call back using wi-fi since my house has poor signal.

@thinkyhead
Copy link
Member

thinkyhead commented Nov 7, 2016

@AndrewDiehl When you have a chance, please post a log of G28 so I can see what state the machine is in after you've homed. First, enable DEBUG_LEVELING_FEATURE and re-flash. Before homing, do M111 S247 to enable all logging except "DRYRUN." Then when you do G28 there should be some extra logging of the whole procedure.

Also post your configuration, or the relevant settings.

I'm starting to make some tweaks based on your description of the issue, but I'm being cagey because I'm not entirely sure what all the tool-change behaviors should be for every Dual X mode.

Let me see if I have the general idea anyway…

  • DXC_FULL_CONTROL_MODE: Simply set the current position to the position of the newly-selected nozzle, without any movement.
  • DXC_AUTO_PARK_MODE: Park the active carriage and move the selected carriage into its vacated position (unless S1 -stay- is given).
  • DXC_DUPLICATION_MODE: I presume there should be no movement on tool-change in this mode.

Tool-change in DXC_DUPLICATION_MODE is a curious concept. With extruder 0 active, its movements are duplicated in extruder 1. But if extruder 1 is selected, should it then become the one that is moved, while extruder 0 follows it? Or should the duplication flag (extruder_duplication_enabled) just be disabled until extruder 0 is selected again?

@thinkyhead
Copy link
Member

thinkyhead commented Nov 7, 2016

@AndrewDiehl Also test this branch, which has some tweaks that may help (or not):
https://github.com/thinkyhead/Marlin/tree/rc_dualx_homing

@thinkyhead
Copy link
Member

thinkyhead commented Nov 7, 2016

@psyvision @pbrgle1 @gsart84 Please join this thread…

@gsart84
Copy link

gsart84 commented Apr 12, 2017

exactly. but i dont know its my fault or is there a bug.
i hope @thinkyhead can help or any person with a dual x carriage printer.

@gsart84
Copy link

gsart84 commented Apr 12, 2017

would you try to download the actual rcbugfix and test it?

@wallacezhang
Copy link

yeah, I also tried the latest rcbugfix from @thinkyhead , but same issue.

@gsart84
Copy link

gsart84 commented Apr 12, 2017

ok, now we are 2 persons with not working duplication mode. i have 6 printers with dual x carriage and no one of them work with duplication mode. i think we should make na new issue thread?

@wallacezhang
Copy link

yeah, do you think it's related to firmware or slicing?

@gsart84
Copy link

gsart84 commented Apr 12, 2017

i think its the firmware... anything behind the M605 S2 is not working. same result in cura or simplify. what slicer do you use?

@wallacezhang
Copy link

I think so, too.

@thinkyhead
Copy link
Member

thinkyhead commented Apr 13, 2017

I'll have to add more logging to see what's occurring.

@thinkyhead
Copy link
Member

thinkyhead commented Apr 13, 2017

The commentary on M605 indicates that G28 is required after M605 Sn changes the mode. Try doing G28 X after M605 S2 and see if it subsequently works.

@gsart84
Copy link

gsart84 commented Apr 13, 2017

Thanks i will try tomorrow.

@gsart84
Copy link

gsart84 commented Apr 14, 2017

ok, i tried this:
M605 S2
g28
G1 X10 Y10

only T0 moves.

@thinkyhead
Copy link
Member

thinkyhead commented Apr 15, 2017

Does the M104 command cause both nozzles to heat up in this mode? Earlier reports are unclear.

@thinkyhead
Copy link
Member

thinkyhead commented Apr 15, 2017

@wallacezhang @gsart84
I've added more logging, so get the latest RCBugFix and run that GCode again.

Be sure to use a host like Pronterface instead of Repetier Host because it apparently filters out all messages that don't start with "echo:" or "error:".

Copy the text in the log window and paste it —preferably as text— for us to review.

@gsart84
Copy link

gsart84 commented Apr 15, 2017

@thinkyhead , im using pronterface. i use the 2 days old rcbugfix in one one of my 7 printers and rc8 in one of this 7. M104 Does heat up both nozzles T0 and T1 in duplication mode.

G28
M605 S2
G28
M104 S50
G1 X50

only T0 is moving

@gsart84
Copy link

gsart84 commented Apr 15, 2017

Connecting...
start
Printer is now online.
echo:Marlin 1.1.0-RCBugFix
echo: Last Updated: 2016-12-06 12:00 | Author: (none, default config)
Compiled: Apr 14 2017
echo: Free Memory: 2984  PlannerBufferBytes: 1264
Using tool 0.
echo:V34 stored settings retrieved (451 bytes)
echo:Steps per unit:
echo:  M92 X80.00 Y80.00 Z4000.00 E105.00
echo:Maximum feedrates (mm/s):
echo:  M203 X150.00 Y150.00 Z3.00 E25.00
echo:Maximum Acceleration (mm/s2):
echo:  M201 X700 Y700 Z100 E10000
echo:Accelerations: P=printing, R=retract and T=travel
echo:  M204 P400.00 R3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
echo:  M205 S0.00 T0.00 B20000 X11.00 Y11.00 Z0.40 E5.00
echo:Home offset (mm)
echo:  M206 X0.00 Y0.00 Z0.00
echo:Hotend offsets (mm)
echo:  M218 T1 X0.00 Y0.00 Z0.00
Auto Bed Leveling:
echo:  M420 S0 Z0.00
echo:Material heatup parameters:
echo:  M145 S0 H200 B60 F0
  M145 S1 H240 B100 F0
echo:PID settings:
echo:  M301 P30.98 I3.43 D70.05
echo:Filament settings: Disabled
echo:  M200 D3.00
echo:  M200 T1 D3.00
echo:  M200 D0
echo:Z-Probe Offset (mm):
echo:  M851 Z-1.45
echo:SD card ok
echo:Active Extruder: 0
echo:SD card ok
>>> G28         ; home
SENDING:G28         ; HOME
echo:Active Extruder: 0
echo:busy: processing
echo:Active Extruder: 0
>>> M111 S247   ; enable detailed logging
SENDING:M111 S247   ; ENABLE DETAILED LOGGING
echo:DEBUG:ECHO,INFO,ERRORS,COMMUNICATION
>>> M605 S2 X50 ; enable duplication mode
SENDING:M605 S2 X50 ; ENABLE DUPLICATION MODE
echo:M605 S2 X50
echo:Hotend offsets: 0.00,0.00 52.00,0.00
>>> G1 X10 Y10  ; Test a single move in XY
SENDING:G1 X10 Y10  ; TEST A SINGLE MOVE IN XY
echo:G1 X10 Y10
>>> M104 S50    ; Heat up nozzles
SENDING:M104 S50    ; HEAT UP NOZZLES
echo:M104 S50

@thinkyhead
Copy link
Member

thinkyhead commented Apr 17, 2017

SENDING:M605 S2 X50 ; ENABLE DUPLICATION MODE
echo:M605 S2 X50
echo:Hotend offsets: 0.00,0.00 52.00,0.00
>>> G1 X10 Y10  ; Test a single move in XY

@gsart84
Can you post a log where there is a G28 following M605 S2?
(You can leave out any G28 before the M605.)

@thinkyhead
Copy link
Member

thinkyhead commented Apr 17, 2017

SENDING:M111 S247   ; ENABLE DETAILED LOGGING
echo:DEBUG:ECHO,INFO,ERRORS,COMMUNICATION

The lines above indicate you did not enable DEBUG_LEVELING_FEATURE as instructed. Please also enable that feature before flashing the board and proceeding with the test. Without it there is only minimal logging.

G28
M605 S2
G28
M104 S50
G1 X50

@gsart84
Copy link

gsart84 commented Apr 18, 2017

Ok, thanks, sorry i will try after work

@gsart84
Copy link

gsart84 commented Apr 18, 2017

@thinkyhead :

Boot Log
Connecting...
start
Printer is now online.
Using tool 0.
echo:Marlin 1.1.0-RCBugFix
echo: Last Updated: 2016-12-06 12:00 | Author: (none, default config)
Compiled: Apr 18 2017
echo: Free Memory: 2959  PlannerBufferBytes: 1264
echo:EEPROM version mismatch (EEPROM=V27 Marlin=V35)
echo:Hardcoded Default Settings Loaded
echo:  G21 ; Units in mm
echo:Filament settings: Disabled
echo:  M200 D1.75
echo:  M200 T1 D1.75
echo:  M200 D0
echo:Steps per unit:
echo:  M92 X80.00 Y80.00 Z4000.00
echo:  M92 T0 E105.00
  M92 T1 E105.00
echo:Maximum feedrates (units/s):
echo:  M203 X150.00 Y150.00 Z3.00
echo:  M203 T0 E25.00
  M203 T1 E25.00
echo:Maximum Acceleration (units/s2):
echo:  M201 X700 Y700 Z100
echo:  M201 T0 E10000
  M201 T1 E10000
echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo:  M204 P160.00 R3000.00 T300.00
echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk>
echo:  M205 S0.00 T0.00 B20000 X16.00 Y16.00 Z0.40 E5.00
echo:Home offset:
echo:  M206 X0.00 Y0.00 Z0.00
echo:Hotend offsets:
echo:  M218 T1 X0.00 Y0.00 Z0.00
echo:Auto Bed Leveling:
echo:  M420 S0 Z0.00
echo:Material heatup parameters:
echo:  M145 S0 H200 B60 F0
  M145 S1 H240 B80 F0
echo:PID settings:
echo:  M301 P30.98 I3.43 D70.05
echo:  M304 P152.75 I29.32 D198.96
echo:Z-Probe Offset (mm):
echo:  M851 Z0.00
echo:SD card ok
echo:Active Extruder: 0
echo:SD card ok
G28 Log
>>> M111 S247
echo:DEBUG:ECHO,INFO,ERRORS,COMMUNICATION,LEVELING

>>> m605 s2
echo:Hotend offsets: 0.00,0.00 140.00,0.00

>>> g28
>>> gcode_G28

  Machine Type: Cartesian
  Probe: BLTOUCH
  Probe Offset X:-35 Y:-10 Z:0.00 (Left-Front & Same Z as Nozzle)
  Auto Bed Leveling: BILINEAR (disabled)
  echo:Active Extruder: 0

    current_position=(0.00, 0.00, 0.00) : setup_for_endstop_or_probe_move
  > endstops.enable(true)
  Raise Z (before homing) to 14.00
  >>> do_blocking_move_to(0.00, 0.00, 14.00)
  <<< do_blocking_move_to

  >>> homeaxis(X)
    Home 1 Fast:
    >>> do_homing_move(X, 493.50, 0.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    Move Away:
    >>> do_homing_move(X, -5.00, 0.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    Home 2 Slow:
    >>> do_homing_move(X, 10.00, 25.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    >>> set_axis_is_at_home(X)
    For X axis:
     home_offset = 0.00
     position_shift = 0.00
     soft_endstop_min = 80.00
     soft_endstop_max = 353.00
      current_position=(353.00, 0.00, 14.00) : sync_plan_position
      current_position=(353.00, 0.00, 14.00) : > AFTER set_axis_is_at_home
  <<< homeaxis(X)

  >>> homeaxis(X)
    Home 1 Fast:
    >>> do_homing_move(X, -493.50, 0.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    Move Away:
    >>> do_homing_move(X, 5.00, 0.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    Home 2 Slow:
    >>> do_homing_move(X, -10.00, 25.00)
      current_position=(0.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(X)
    >>> set_axis_is_at_home(X)
    For X axis:
     home_offset = 0.00
     position_shift = 0.00
     soft_endstop_min = -49.00
     soft_endstop_max = 213.00
      current_position=(-49.00, 0.00, 14.00) : sync_plan_position
      current_position=(-49.00, 0.00, 14.00) : > AFTER set_axis_is_at_home
  <<< homeaxis(X)

    current_position=(-49.00, 0.00, 14.00) : > homeX

  >>> homeaxis(Y)
    Home 1 Fast:
    >>> do_homing_move(Y, -442.50, 0.00)
      current_position=(-49.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(Y)
    Move Away:
    >>> do_homing_move(Y, 5.00, 0.00)
      current_position=(-49.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(Y)
    Home 2 Slow:
    >>> do_homing_move(Y, -10.00, 25.00)
      current_position=(-49.00, 0.00, 14.00) : sync_plan_position
    <<< do_homing_move(Y)
    >>> set_axis_is_at_home(Y)
    For Y axis:
     home_offset = 0.00
     position_shift = 0.00
     soft_endstop_min = -15.00
     soft_endstop_max = 280.00
    > home_offset[Y] = 0.00
      current_position=(-49.00, -15.00, 14.00) :
    <<< set_axis_is_at_home(Y)
      current_position=(-49.00, -15.00, 14.00) : sync_plan_position
      current_position=(-49.00, -15.00, 14.00) : > AFTER set_axis_is_at_home
  <<< homeaxis(Y)

    current_position=(-49.00, -15.00, 14.00) : > homeY

  Z_SAFE_HOMING >>>
    current_position=(-49.00, -15.00, 14.00) : sync_plan_position
    destination=(150.00, 142.00, 14.00) : Z_SAFE_HOMING
  >>> do_blocking_move_to(150.00, 142.00, 14.00)
  <<< do_blocking_move_to

  >>> homeaxis(Z)
      current_position=(150.00, 142.00, 14.00) : set_probe_deployed
    deploy: 1
    do_probe_raise(10.00)
    >>> do_blocking_move_to(150.00, 142.00, 14.00)
    <<< do_blocking_move_to
    Home 1 Fast:
    >>> do_homing_move(Z, -330.00, 0.00)
      set_bltouch_deployed(1)
        current_position=(150.00, 142.00, 0.00) : sync_plan_position
      set_bltouch_deployed(0)
    <<< do_homing_move(Z)
    Move Away:
    >>> do_homing_move(Z, 5.00, 0.00)
      current_position=(150.00, 142.00, 0.00) : sync_plan_position
    <<< do_homing_move(Z)
    Home 2 Slow:
    >>> do_homing_move(Z, -10.00, 1.00)
      set_bltouch_deployed(1)
        current_position=(150.00, 142.00, 0.00) : sync_plan_position
      set_bltouch_deployed(0)
    <<< do_homing_move(Z)
    >>> set_axis_is_at_home(Z)
    For Z axis:
     home_offset = 0.00
     position_shift = 0.00
     soft_endstop_min = 0.00
     soft_endstop_max = 220.00
    *** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***
    > zprobe_zoffset = 0.00
    > home_offset[Z] = 0.00
      current_position=(150.00, 142.00, 0.00) :
    <<< set_axis_is_at_home(Z)
      current_position=(150.00, 142.00, 0.00) : sync_plan_position
      current_position=(150.00, 142.00, 0.00) : > AFTER set_axis_is_at_home
      current_position=(150.00, 142.00, 0.00) : set_probe_deployed
    deploy: 0
    do_probe_raise(10.00)
    >>> do_blocking_move_to(150.00, 142.00, 10.00)
    <<< do_blocking_move_to
    >>> do_blocking_move_to(150.00, 142.00, 10.00)
    <<< do_blocking_move_to
  <<< homeaxis(Z)

  <<< Z_SAFE_HOMING
    current_position=(150.00, 142.00, 10.00) : > (home_all_axis || homeZ) > final
    current_position=(150.00, 142.00, 10.00) : sync_plan_position
    current_position=(150.00, 142.00, 10.00) : clean_up_after_endstop_or_probe_move
  echo:Active Extruder: 0
<<< gcode_G28

>>> g1 x50

Disconnected.

@thinkyhead
Copy link
Member

thinkyhead commented Apr 26, 2017

Sorry, busy week! I will examine this log more closely tomorrow, and I might also have some extra debugging help to track this down. In any case, it will be fixed 100% guaranteed before Sunday!

@thinkyhead
Copy link
Member

We've done several patches related to M605 and special printing modes lately. Please check the latest code and see if it's any better today.

@gsart84
Copy link

gsart84 commented May 1, 2017

@thinkyhead
Thank you very mouch. I test it soon as possible.

@gsart84
Copy link

gsart84 commented Oct 6, 2018

Fund solution to get duplication mode to work for my printer.
Updated to newest firmware,
M605 S0
G28
G29
G0X0F5000
T1
G0X80F5000
M605 S2
T0
And Start print

I think it was my fault, because my Standart Funktion is M605 S1

Now all works perfect and i Can duplicate movements from t0 to t1

Thanks

@Roxy-3D
Copy link
Member

Roxy-3D commented Oct 6, 2018

@gsart84 An LCD Panel menu to select the IDEX mode and nozzle offsets has been added.
And G28 has been changed to preserve the IDEX mode across the homing operation.

That should let you select a mode (like Duplication Mode) and send the printer a part that only needs the left side of the bed, and you will get a duplicate part on the right side.

@InsanityAutomation
Copy link
Contributor

A ton of idex changes since this was opened 2yrs ago...

@github-actions
Copy link

github-actions bot commented Aug 8, 2020

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

3 similar comments
@github-actions
Copy link

github-actions bot commented Oct 7, 2020

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions
Copy link

github-actions bot commented Dec 6, 2020

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Mar 19, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants