# Problem combining axis

• I am in construction of a new maschine. The unit has two Y axis and 4 Z Axis.
I am using Duet Ethernet and Duex5 with Firmware 1.9.2 Web Interface 1.9.3.

Now I am testing just the Y Axis

I have defined the axis like this

; Axis and motor configuration
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M569 P4 S1 ; Drive 4 goes forwards
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwards
M569 P7 S1 ; Drive 7 goes forwards
M569 P8 S1 ; Drive 8 goes forwards
M569 P9 S1 ; Drive 9 goes forwards
M574 X1 Y1 Z1 A1 S1 ; set endstop configuration (X and Y and endstops only, at low end, active High)
; Z Achsen kombinieren
M584 Y1:2 Z6:7:8:9 U2 ; Achsen auf dem Duex 5 zusammenfassen
;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
;M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
M667 S1 ; Core XY
M350 X16 Y16 Z16 U16 E16:16 I1 ; Set 16x microstepping with interpolation
M92 X800 Y800 U800 Z80 ; Set axis steps/mm
M906 X1000 Y1000 Z1000 E800 U1000 I20 ; Set motor currents (mA) and increase idle current to 20%
M201 X250 Y250 Z250 U250 E1000 ; Accelerations (mm/s^2)
M203 X5000 Y3000 Z5000 U3000 E3600 ; Maximum speeds (mm/min)
M566 X1200 Y1200 Z1200 U1200 E1200 ; Maximum instant speed changes mm/minute

Problem:
If I separate the axis with the M584 Y1 U2 command, I can home them individually. Everthing is fine and axis are running in
the right direction.

If I Combine them with M584 Y1:2 U2 and move the axis, the U Axis is inverted .
Means the axis are not running parallel as expected, but are running in opposite directions.

Any Ideas what I did wrong

• This command:

M584 Y1:2 U2

does not make sense. Driver 2 should only be assigned to one axis at a time.

the same is true in your initial M584 command:

M584 Y1:2 Z6:7:8:9 U2

• Well thanks for this quick Support.

I have changed the command to M584 Y1:2 Z6:7:8:9

When I do ( drive 1 and 2 combined )
G91
G1 Y10

Drive 1 will go positiv and 2 will go negativ.

Now I do
M584 Y1 U2

When I do
G91
G1 Y10 U10

both axis will go positiv direction.
Is this as expected ?

• That doesn't sound right to me. The direction in which a motor moves to achieve positive movement along an axis should not depend on which axis it is assigned to.

• I tried to figure out what it is, but failed.

I updated the firmware to the latest beta, just to be shure to not running on an older Problem.
Behaves the same.

I used different drives. The last I used were 3 and 4. It is always the same.
when I separate the axis by M584 Y3 U4, the U Axis runs in the wrong direction.
While combined with M584 Y3:4 they are running in parallel.

Why did I separate the axis ?
I found an example on this Forum how to sync two axis.
I can problably invert the U axis in the macro that does the sync ( have not tried by now ), but this
does not feel right.

• Thank you.

Here is the actual config.g

; Configuration file for testing Duet Ethernet and Wifi

; Communication and general
M111 S0 ; Debug off
M550 PDuetTest ; Machine name and Netbios name (can be anything you like)
M551 Preprap ; Machine password (used for FTP)
;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits

;*** Networking - Enable for both WiFi and Ethernet boards.
M552 S1 ; Turn network on

;*** Ethernet networking: Adjust the IP address and gateway in the following 2 lines to suit your network
M552 P192.168.11.121 ; (0 = DHCP)
M554 P192.168.11.1 ; Gateway

M555 P2 ; Set output to look like Marlin
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves

; Disable Fan 1 thermostatic mode
M106 P1 H-1

; Axis and motor configuration
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes back
M569 P4 S0 ; Drive 4 goes back
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwards
M569 P7 S1 ; Drive 7 goes forwards
M569 P8 S1 ; Drive 8 goes forwards
M569 P9 S1 ; Drive 9 goes forwards
M574 X1 Y1 Z1 A1 S1 ; set endstop configuration (X and Y and endstops only, at low end, active High)
; Z Achsen kombinieren
M584 Y3:4 Z6:7:8:9 ; Achsen auf dem Duex 5 zusammenfassen
;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
;M665 R105.6 L215.0 B85 H250 ; set delta radius, diagonal rod length, printable radius and homed height
;M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
M667 S1 ; Core XY
M350 X16 Y16 Z16 U16 E16:16 I1 ; Set 16x microstepping with interpolation
M92 X800 Y800 U800 Z80 ; Set axis steps/mm
M906 X1000 Y1000 Z1000 E800 U1000 I20 ; Set motor currents (mA) and increase idle current to 20%
M201 X250 Y250 Z250 U250 E1000 ; Accelerations (mm/s^2)
M203 X5000 Y3000 Z5000 U3000 E3600 ; Maximum speeds (mm/min)
M566 X1200 Y1200 Z1200 U1200 E1200 ; Maximum instant speed changes mm/minute
M84 S10 ; Stop Idle Mode after 10 Seconds

; Thermistors
M305 P0 T100000 B3950 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
M305 P1 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set first nozzle thermistor ADC correction
M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set 2nd nozzle thermistor ADC correction

M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds

M307 H0 A250 C140 D5.5 B1
M307 H1 A250 C140 D5.5 B0
M307 H2 A250 C140 D5.5 B0

; Fans
M106 P1 S-1 ; disable thermostatic mode for fan 1

; Tool definitions
M563 P0 D0 H1 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
;*** If you have a single-nozzle build, comment the next 2 lines
M563 P1 D1 H2 ; Define tool 1
G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures
M92 E663:663 ; Set extruder steps per mm
4
; Z probe and compensation definition
;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
M558 P1 X0 Y0 Z0 ; Z probe is an IR probe and is not used for homing any axes
G31 X0 Y0 Z4.80 P500 ; Set the zprobe height and threshold (put your own values here)

;*** If you are using axis compensation, put the figures in the following command
M556 S78 X0 Y0 Z0 ; Axis compensation here

M208 S1 Y0 Z-0.2 A0 ; set minimum Z
M208 S0 Y450 U450 ; Maximum axis travel

T0 ; select first hot end

• The problem is that you are not creating the U axis in config.g, but you are trying to set parameters for the U axis. In particular you are trying to set the U axis maximum to 450 in the M208 command. But all the U parameters in your commands are being ignored because the U axis doesn't exist yet. So you need to create the U axis in your M584 command. After creating it, you can immediately use M584 again to assign both motors to the Y axis.

You can use the P parameter in your M584 command to make the U axis invisible if you wish.

• Many thanks for your help.

Still I probably did not understand it.

I have changed this

M584 Y3:4 Z5:6:7:8

to that

M584 Y3 U4 ; this should define the U axis
M574 U1 ; set the endstop, old endstop command was wrong
M584 Y3:4 Z5:6:7:8 ; Assign both axis to Y, Z Axis not used by now

; do all the other stuff as before

Well it is still the same.

Y axis is running parallel when M584 Y3:4 is send
U axis runs in the wrong direction when I send M584 Y3 U4

• Many thanks for your help.

Still I probably did not understand it.

I have changed this

M584 Y3:4 Z5:6:7:8

to that

M584 Y3 U4 ; this should define the U axis
M574 U1 ; set the endstop, old endstop command was wrong
M584 Y3:4 Z5:6:7:8 ; Assign both axis to Y, Z Axis not used by now

; do all the other stuff as before

Well it is still the same.

Y axis is running parallel when M584 Y3:4 is send
U axis runs in the wrong direction when I send M584 Y3 U4

Please add S0 or S1 (as appropriate) to your M574 U1 command. Alternatively, put the M574 command after the M584 command, then you need only one M574 command for all the endstop switches.

When you send M208, what does it report as the axis limits for the U axis? A problem with your original configuration was that the U axis minimum and maximum were both zero.

• M574 my fault. Have changed it

M208 Reports
Axis limits - X: 0.0 min, 230.0 max, Y: 0.0 min, 450.0 max, Z: -0.2 min, 200.0 max, U: 0.0 min, 450.0 max

Having the axis combined y+10 from the web Interface runs both axis in pos. direction.
pressing u+10 runs the U axis negativ.

Here is the complete config.g as it Looks now

; Configuration file for testing Duet Ethernet and Wifi

; Communication and general
M111 S0 ; Debug off
M550 PDuetTest ; Machine name and Netbios name (can be anything you like)
M551 Preprap ; Machine password (used for FTP)
;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits

;*** Networking - Enable for both WiFi and Ethernet boards.
M552 S1 ; Turn network on

;*** Ethernet networking: Adjust the IP address and gateway in the following 2 lines to suit your network
M552 P192.168.11.121 ; (0 = DHCP)
M554 P192.168.11.1 ; Gateway

M555 P2 ; Set output to look like Marlin
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves

; Disable Fan 1 thermostatic mode
M106 P1 H-1

; Axis and motor configuration
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes back
M569 P4 S0 ; Drive 4 goes back
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwards
M569 P7 S1 ; Drive 7 goes forwards
M569 P8 S1 ; Drive 8 goes forwards
M569 P9 S1 ; Drive 9 goes forwards

M584 Y3 U4 ; Erstmal Achsen definieren
; Z Achsen kombinieren
M584 Y3:4 Z6:7:8:9 ; Achsen auf dem Duex 5 zusammenfassen
M574 X1 Y1 Z1 U1 S1 ; set endstop configuration (X and Y and endstops only, at low end, active High)

;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
;M665 R105.6 L215.0 B85 H250 ; set delta radius, diagonal rod length, printable radius and homed height
;M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
M667 S1 ; Core XY
M350 X16 Y16 Z16 U16 E16:16 I1 ; Set 16x microstepping with interpolation
M92 X800 Y800 U800 Z80 ; Set axis steps/mm
M906 X1000 Y1000 Z1000 E800 U1000 I20 ; Set motor currents (mA) and increase idle current to 20%
M201 X250 Y250 Z250 U250 E1000 ; Accelerations (mm/s^2)
M203 X5000 Y3000 Z5000 U3000 E3600 ; Maximum speeds (mm/min)
M566 X1200 Y1200 Z1200 U1200 E1200 ; Maximum instant speed changes mm/minute
M84 S10 ; Stop Idle Mode after 10 Seconds

; Thermistors
M305 P0 T100000 B3950 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
M305 P1 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set first nozzle thermistor ADC correction
M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set 2nd nozzle thermistor ADC correction

M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds

M307 H0 A250 C140 D5.5 B1
M307 H1 A250 C140 D5.5 B0
M307 H2 A250 C140 D5.5 B0

; Fans
M106 P1 S-1 ; disable thermostatic mode for fan 1

; Tool definitions
M563 P0 D0 H1 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
;*** If you have a single-nozzle build, comment the next 2 lines
M563 P1 D1 H2 ; Define tool 1
G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures
M92 E663:663 ; Set extruder steps per mm
4
; Z probe and compensation definition
;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
M558 P1 X0 Y0 Z0 ; Z probe is an IR probe and is not used for homing any axes
G31 X0 Y0 Z4.80 P500 ; Set the zprobe height and threshold (put your own values here)

;*** If you are using axis compensation, put the figures in the following command
M556 S78 X0 Y0 Z0 ; Axis compensation here

M208 S1 Y0 Z-0.2 U0 ; set minimum Z
M208 S0 Y450 U450 ; Maximum axis travel

T0 ; select first hot end

• I've just spotted the issue. You have selected CoreXY configuration. In that configuration, both the X and Y motors together drive the X and Y axes. However, any additional axes you create will be standard Cartesian axes.

Can you explain how your two Y axes are intended to work - do you have two separate CoreXY gantries?

Depending on what you are trying to achieve, you may be able to use the CoreXYUV kinematics in RRF.

• The Maschine is a big xy System.

I have 2 Motors that drive the y axis. gantry drive
I have 2 Independent x axis on one bridge using 2 Motors ( dual x drive )
I have 4 z Motors

• Thanks, you made my day.

I was shure it was a newbie mistake.
I have changed

M667 S0

now it is working as expected

• I think what David is asking is it CoreXY kinematics or Cartsesian with two motors on each axis. To clarify, on a CoreXY, both motors contribute to motion in both the X and the Y directions. If only one motor turns then the gantry moves at 45 degrees to both axes. It sounds like your dual motors only drive one axis at a time. If that is the case, then it's not CoreXY. Maybe a picture of your printer would help.

Edit I was typing while you were - pleas ignore the above.

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.