UVW movement issues with [3.6.0]
-
I've been using 3.5.4 fairly happily for several months with a CoreXY + UVW printer, and have not had any kinematics issues.
I moved to 3.6.0 yesterday and I have two issues.
- When doing a multi motion system print my UVW axis extruders can't print squares in some parts of the print - they are just coming out as diagonal lines
- I am finding some intermittent homing issues with V (this dual motor 2nd Y axis) - with the W IDEX motor stopping working.
Diagnostic info here - or in my main SV08 thread here - https://forum.duet3d.com/post/355968
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0 (2025-05-25 08:05:42) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 0JD4M-958L1-M2NS0-7JTDG-3SN6K-91FKZ Used output buffers: 1 of 40 (36 max) === RTOS === Static ram: 137420 Dynamic ram: 134416 of which 240 recycled Never used RAM 71764, free system stack 150 words Tasks: NETWORK(1,ready,30.5%,153) ETHERNET(5,nWait 7,0.3%,315) HEAT(3,nWait 6,0.0%,335) Move(4,nWait 6,0.0%,209) TMC(4,nWait 6,3.1%,341) CanReceiv(6,nWait 1,0.1%,772) CanSender(5,nWait 7,0.0%,325) CanClock(7,delaying,0.0%,350) MAIN(1,running,66.0%,103) IDLE(0,ready,0.0%,29) USBD(3,blocked,0.0%,144), total 100.0% Owned mutexes: === Platform === Last reset 00:23:05 ago, cause: software Last software reset at 2025-06-06 07:27, reason: User, Gcodes spinning, available RAM 69292, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 MCU temperature: min 44.8, current 49.9, max 50.0 Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.2, max 12.4, under voltage events: 0 Heap OK, handles allocated/used 99/42, heap memory allocated/used/recyclable 2048/1588/1092, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2025-06-06 07:50:30 Slowest loop: 11.44ms; fastest: 0.05ms === Storage === Free file entries: 19 SD card 0 detected, requested/actual speed: 25.0/25.0MBytes/sec SD card longest read time 2.9ms, write time 3.9ms, max retries 0 === Move === Segments created 9, maxWait 354248ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 13160.00/13160/0.00 10840.00/10840/0.00 8001.00/8001/0.00 37009.00/37009/-0.00 23151.00/23151/0.00 405.00/405/-0.00 0.00/1/-1.00 9600.00/9600/0.00 0.00/1/-1.00 Next step interrupt due in 269 ticks, disabled Driver 0: standstill, SG min 0, mspos 24, reads 18307, writes 39 timeouts 1 Driver 1: standstill, SG min 0, mspos 632, reads 18307, writes 39 timeouts 1 Driver 2: standstill, SG min 0, mspos 136, reads 18307, writes 39 timeouts 1 Driver 3: standstill, SG min 0, mspos 968, reads 18306, writes 40 timeouts 1 Driver 4: standstill, SG min 0, mspos 648, reads 18306, writes 40 timeouts 1 Driver 5: standstill, SG min 0, mspos 616, reads 18307, writes 39 timeouts 1 Phase step loop runtime (us): min=0, max=370, frequency (Hz): min=539, max=10000 === DDARing 0 === Scheduled moves 236, completed 236, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x80000033, drives owned 0x80000023 Code queue is empty === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000 Code queue is empty === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 === CAN === Messages queued 12667, received 94565, lost 0, ignored 0, errs 0, boc 0 Longest wait 2ms for reply type 6031, peak Tx sync delay 273, free buffers 50 (min 48), ts 6567/6566/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 44.16ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 === Multicast handler === Responder is inactive, messages received 0, responses 0 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 6 2 2 2 2 2 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0
M669 Kinematics is CoreXY, no segmentation, modified matrix: 1.00 1.00 0 0 0 0 0 0 0 1.00 -1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 1.00 1.00 -1.00 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 06/06/2025, 07:41:18 M584 Driver assignments: X0.3 Y0.4 Z0.1:0.2:0.0:1.3 U1.0 V1.5:1.6 W1.1 (r)(c)A1.4 (r)(c)B0.5 (r)(c)D1.2 E121.0:122.0:123.0, 9 axes visible 06/06/2025, 07:40:45 M913 Motor current % of normal - X:100, Y:100, Z:100, U:100, V:100, W:100, A:100, B:100, D:100, E:100:100:100 06/06/2025, 07:38:45 M906 Motor current (mA) - X:800, Y:800, Z:800, U:800, V:800, W:800, A:750, B:750, D:750, E:800:800:800, idle factor 30%, timeout 30.0 sec
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Jan 29 2025 10:20:21 GMT+0000 (Greenwich Mean Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"Duet 3" ; set hostname ; Network M552 P0.0.0.0 S1 ; configure Ethernet adapter M586 P0 S1 ; configure HTTP M586 P1 S1 ; configure FTP ; Wait a moment for the CAN expansion boards to become available G4 S2 ; Smart Drivers M569 P0.0 S1 D2 ; driver 0.0 goes forwards (Z axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Z axis) M569 P0.2 S0 D2 ; driver 0.2 goes backwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (X axis) M569 P0.4 S0 D2 ; driver 0.4 goes backwards (Y axis) M569 P1.3 S1 D2 ; driver 0.5 goes backwards (Z axis) - changed to 1.3 forwards M569 P1.0 S0 D2; driver 1.0 goes backwards (U axis) M569 P1.1 S0 D2 ; driver 1.1 goes backwards W axis) M569 P1.4 S0 D2 ; Z-hopper 2 M569 P0.5 S1 D2 ; Z-hopper 1 M569 P1.5 S0 D2 ; VH Axis Left M569 P1.6 S1 D2 ; VH Axis Right M569 P1.2 S1 D2 ; U AXIS Z Hopper M569 P121.0 S0 D2 ; driver 121.0 goes backwards (extruder 0). X M569 P122.0 S0 D2 ; driver 122.0 goes backwards (extruder 1). C M569 P123.0 S0 D2 ; driver 123.0 goes backwards (extruder 2). U ;M569 P124.0 S0 D2 ; driver 124.0 goes backwards (extruder 2). a ;M569 P125.0 S0 D2 ; driver 125.0 goes backwards (extruder 2). b ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.3 Y0.4 Z0.1:0.2:0.0:1.3 U1.0 V1.5:1.6 W1.1 A1.4 B0.5 D1.2 a0.1 b0.2; set axis mapping M350 X16 Y16 Z16 U16 V16 W16 A16 B16 D16 I1 ; configure microstepping with interpolation M906 X800 Y800 Z800 U800 V800 W800 A750 B750 D750 a100 b100 ; set axis driver currents ; A - 1.8 degree, 0.7mm pitch - 200*16/0.7 = 4571 ; A - 1.8 degree, 1mm pitch - 200*16 = 3200 M92 X80 Y80 Z533.33 U80 V80 W80 A3200 B3200 D4571 ; configure steps per mm if exists(global.vMin) == false global vMin = 120 global vMax = 340 global yMin = -5 global yMax = 210 M208 X0:327 Y0:210 Z0:300 U3:216 V120:329.39 A0:4 B0:3 W120:324.87 D0:3.5 a0:4 b0:4; set minimum and maximum axis limits M566 X540 Y540 Z100 U540 V540 W540 A100 B100 D100 ; set maximum instantaneous speed changes (mm/min) M203 X{350*60} Y{350*60} Z{20*60} U{350*60} V{350*60} W{350*60} A{20*60} B{20*60} D{10*60}; set maximum speeds (mm/min) ;M203 X{100*60} Y{100*60} Z{10*60} U{100*60} V{100*60} W{100*60} A{10*60} B{10*60} D{10*60}; set maximum speeds (mm/min) if !exists(global.xyMaxFeed) global xyMaxFeed = 0 set global.xyMaxFeed = 21000 ;M201 X2000 Y2000 Z500 U2000 V2000 W2000 A1000 B1000 D1000 ; set accelerations (mm/s^2) M201 X6000 Y6000 Z500 U6000 V6000 W6000 A500 B500 D500 ; set accelerations (mm/s^2) ; Extruders M584 E121.0:122.0:123.0 ; set extruder mapping M350 E16:16:16 I1 ; configure microstepping with interpolation M906 E800:800:800 ; set extruder driver currents M92 E492:492:492 ; configure steps per mm M566 E120:120:120 ; set maximum instantaneous speed changes (mm/min) M203 E{30*60}:{30*60}:{30*60} ; set maximum speeds (mm/min) M201 E250:250:250 ; set accelerations (mm/s^2) ;M566 E60:60:60 ; set maximum instantaneous speed changes (mm/min) ;M203 E{15*60}:{15*60}:{15*60} ; set maximum speeds (mm/min) ;M201 E125:125:125 ; set accelerations (mm/s^2) ; Kinematics ;M669 K8 ; configure CoreXYUV kinematics M669 K1 ; configure CoreXY kinematics ; X:Y:Z: U: V: W:A:B:D M669 V0:0:0: 1: 1:-1:0:0:0 ; Probes M558 K0 P8 C"121.io1.in" H5 F1200:300 T18000 ; configure unfiltered digital probe via slot #0 if exists(global.probeK0) == false global probeK0 = 2.5 global probeK1 = 2.1 G31 P500 X-17 Y10 Z2.5 ; set Z probe trigger value, offset and trigger height M558 K1 P8 C"122.io1.in" H5 F1200:300 T18000 ; configure unfiltered digital probe via slot #1 G31 K1 P500 U-17 V10 Z2.1 ; set Z probe trigger value, offset and trigger height M558 K2 P8 C"!121.io2.in" H1 F300 T300 ; configure unfiltered digital probe via slot #2 B Axis G31 K2 P500 X0 Y0 Z-2.5 B0 ; B Axis Optical Probe M558 K3 P8 C"io3.in" H1 F300 F300; Ball Probe ; Endstops M574 X1 S3 ; configure X axis endstop ; M574 Y1 S3 ; configure Y axis endstop M574 Y1 P"io8.in" S1 ; configure X axis to B axis optical probe M574 Z1 S2 K0; configure Z axis endstop M574 W2 P"!122.io0.in" S1 ; configure C axis endstop - dummy end stop M574 U2 P"!123.io0.in" S1 ; configure U axis endstop - dummy end stop M574 V2 P"io4.in" S1 ; V Axis optical M574 B1 S2 K2 M574 A1 P"122.io2.in" S1 ; configure A axis endstop M574 D1 P"123.io2.in" S1 ; configure D axis endstop ; 122.io3.in - dummy endstop when A swapped out ; Sensors M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"121.temp0" Y"thermistor" A"Nozzle" T110000 B4487 C6.95777e-8 ; configure sensor #1 M308 S2 P"122.temp0" Y"thermistor" A"Nozzle2" T110000 B4487 C6.95777e-8 ; configure sensor #2 M308 S3 P"123.temp0" Y"thermistor" A"Nozzle3" T110000 B4487 C6.95777e-8 ; configure sensor #3 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S105 A0 ; configure heater monitor #0 for heater #0 M307 H0 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #0 M950 H1 C"121.out0" T1 ; create heater #1 M143 H1 P0 T1 C0 S305 A0 ; configure heater monitor #0 for heater #1 M307 H1 R6.387 K1.184:0.189 D1.91 E1.35 S1.00 B0 V24.5 ;M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 M950 H2 C"122.out0" T2 ; create heater #2 M143 H2 P0 T2 C0 S305 A0 ; configure heater monitor #0 for heater #2 ;M307 H2 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #2 M307 H2 R6.946 K0.880:0.127 D1.68 E1.35 S1.00 B0 V23.9 M950 H3 C"123.out0" T3 ; create heater #3 M143 H3 P0 T3 C0 S305 A0 ; configure heater monitor #0 for heater #3 M307 H3 R8.957 K0.898:0.044 D1.24 E1.35 S1.00 B0 V24.3 ;M307 H3 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #3 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"121.out2+out2.tach" ; create fan #0 M106 P0 S0 L0 X1 B0.1 ; configure fan #0 M950 F1 C"121.out1+out1.tach" ; create fan #1 M106 P1 C"Hotend" S0 B0.1 H1 T45 ; configure fan #1 M950 F2 C"122.out2+out2.tach" ; create fan #2 M106 P2 C"E2Cool" S0 L0 X1 B0.1 ; configure fan #2 M950 F3 C"122.out1+out1.tach" ; create fan #3 M106 P3 C"Hotend2" S0 B0.1 H2 T45 ; configure fan #3 M950 F4 C"123.out2+out2.tach" ; create fan #4 M106 P4 C"E3Cool" S0 L0 X1 B0.1 ; configure fan #4 M950 F5 C"123.out1+out1.tach" ; create fan #5 M106 P5 C"Hotend3" S0 B0.1 H3 T45 ; configure fan #5 ; Tools ; X:Y:Z:U: V:W:A:B:C:D:a :b ; 0 1 2 3. 4 5 6 7 8 9 10 11 M563 P0 D0 H1 F0 ; create tool #0. XYB M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures ;M563 P1 D1 H2 F2 ; create tool #1 ;Tool T1 - Left Nozzle - 2nd Gantry as X and Y. UVD ;M563 P1 D2 H3 F4 ;M563 P1 D2 X3 Y4 H3 F4 M563 P1 D2 X10 Y11 H3 F4 G10 P1 X0 Y0 U0 V0 S0 R0 M568 P1 R0 S0 ; set initial tool #1 active and standby temperatures ;Tool T2 - Right Nozzle 2nd Gantry as X and Y. WXA ;M563 P2 D1 H2 F2 ;M563 P2 D1 X5 Y4 H2 F2 M563 P2 D1 X10 Y11 H2 F2 G10 P2 X0 Y0 U0 V0 S0 R0 M568 P2 R0 S0 ; set initial tool #1 active and standby temperatures ; T3 - duplicate mode M563 P3 D0:1 H1:2 X0:3 Y1:4 F0:1 G10 P3 X0 Y0 U0 V-150 S0 R0 M567 P3 E1:1 M568 P3 S1 ; Miscellaneous ; Custom settings M915 X Y U V R0 F0 M671 X410:-60:-60:410 Y420:-10:420:-10 S7 M307 H1 R7.427 K0.701:0.030 D1.50 E1.35 S1.00 B0 V24.5 M307 H2 R7.020 K0.857:0.148 D1.65 E1.35 S1.00 B0 V24.0 M307 H0 R0.527 K0.163:0.000 D5.70 E1.35 S1.00 B0 M557 X20:300 Y20:220 S40 M950 S1 C"122.io0.out" M280 P1 S60 ; Set Servo if exists(global.servo1pos) == false global servo1pos = 60 global probeAngle = 162 global probeOut = 80 global probeIn = 165 global probeSpeed = 1 M950 S5 C"1.io1.out" ; Probe Servo M280 P5 S162 ; Set Servo M42 P5 S0 ; Servo Off ; Electro Magnet M950 P4 C"1.out1" M42 P4 S0 ;M42 P1 S0 ; Allow movement without homing ;M564 S0 H0 ; Backlash compensation M425 U0.1 V0.1 S1 ;Secondary Queue Length ;M595 Q0 P100 ;M595 Q1 P100 ;G10/G11 Retraction M207 S2 ;Timers if exists(global.AOff) == false global AOff = 0 global BOff = 0 global T0Off = 0 global T1Off = 0 global magnetOff = 0 global servo5Off = 0 global T0Clean = true global T1Clean = true global degSec = 4.25 global primeTime0 = 4 global primeTime1 = 3 global preHeatT = 20 global xyParked = false global uvParked = false if !exists(global.p0state) global p0state = "null" global p1state = "null" M929 P"eventlog.txt" S2 M98 P"setExtGlobals.g"
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.5.10 on Mon Jan 27 2025 22:07:16 GMT+0000 (Greenwich Mean Time) M98 P"0:/macros/ClearAllocs.g" M98.1 A"Probe In" M98 P"homeA.g" M98 P"homeX.g" M98 P"homeY.g" Z0 M98 P"homeU.g" Z0 ; This also homes A,D,W M98 P"homeV.g" Z0 G1 X100 Y20 F10000 M98 P"homeZ.g" Z0
;homew.g echo "homew" G90 M98 P"homeA.g" G1 A4 F300 G91 M400 ;M574 C1 P"122.io2.in" S1 ; configure C axis endstop ; X:Y:Z:U: V:W:A:B:D ; 0 1 2 3. 4 5 6 7 8 M574 A1 P"122.io3.in" S1 ; Move A off of io2 M574 W2 P"122.io2.in" S1 ; Take over end stop var maxTravel = move.axes[5].max - move.axes[5].min + 5 ; calculate how far X can travel plus 5mm G1 H1 W{var.maxTravel} F6000 ; coarse home in the +W direction ;M400 G1 W-5 F3000 ; move back 5mm ;M400 G1 H1 W{var.maxTravel} F500 ; fine home in the +W direction ;G1 C-10 F6000 G90 ; absolute positioning G1 W313 F6000 G92 W{312.5+1.0249939 +1.9} G90 G1 A0 F300 M574 W2 P"122.io0.in" S1 ; Move U back to io0 M574 A1 P"122.io2.in" S1 ; Move A back to io2 ;M569 P1.0 S0 D3 V2000 ; driver 1.0 goes backwards (U axis) ;M569 P1.1 S0 D3 V2000 ; driver 1.1 goes backwards (V axis)
; homeu.g echo "homeu" ; G90 M98 P"homeD.g" G1 D3.7 F300 G91 G1 H2 U-10 F5000 G90 M98 P"homeW.g" ; This homes A and C echo "homeU - after homeW" G1 A3 F300 G1 W324.7 F5000 G91 M400 ;M574 C1 P"122.io2.in" S1 ; configure C axis endstop M574 D1 P"123.io3.in" S1 ; Move A off of io2 M574 U2 P"123.io2.in" S1 ; Take over end stop var maxTravel = move.axes[3].max - move.axes[3].min + 5 ; calculate how far X can travel plus 5mm G1 H1 U{var.maxTravel} F6000 ; coarse home in the +U direction ;M400 G1 U-5 F3000 ; move back 5mm ;M400 G1 H1 U{var.maxTravel} F500 ; fine home in the +U direction G1 U-25 F6000 G1 W-8 F6000 G90 ; absolute positioning G1 U200 F6000 G92 U{207.93+0.94-0.5+1-1.25-4.7} ; Move 3 more over G90 G1 A0 F300 G1 D0 F300 M574 U2 P"123.io0.in" S1 ; Move U back to io0 M574 D1 P"123.io2.in" S1 ; Move A back to io2 ;M569 P1.0 S0 D3 V2000 ; driver 1.0 goes backwards (U axis) ;M569 P1.1 S0 D3 V2000 ; driver 1.1 goes backwards (V axis)
;homeV.g M950 J2 C"nil" M574 V2 P"io4.in" S1 ; V Axis optical ; increase Z G91 ; relative positioning if exists(param.Z) ;G1 H2 Z{param.Z} F6000 else G1 H2 Z5 F6000; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ;G1 U345 ; home V G91 ; relative positioning var maxTravel = move.axes[4].max - move.axes[4].min + 15 ; calculate how far V can travel plus 5mm G1 H1 V{var.maxTravel} F6000 ; coarse home in the +V direction G1 V-5 F6000 ; move back 5mm G1 H1 V{var.maxTravel} F1000 ; fine home in the +V direction G90 ; absolute positioning ; decrease Z again G91 ; relative positioning ;G1 H2 Z-5 F6000 ; move Z relative to current position G1 V-10 F5000 ;G1 V-10 U-10 F15000 G90 ; absolute positioning M574 V0 ; Temporarily release V Optical M950 J2 C"io4.in" ; if !exists(global.trigger2Time) global trigger2Time = 0 set global.trigger2Time = state.upTime+2 ;M581 V S0 T2 R0 ; V end stop executes - trigger2.g47 M581 P2 S0 T2 R0 ; V end stop executes - trigger2.g
;trigger2.g echo {state.thisInput},"trigger2 V Axis end stop triggered" if state.upTime > global.trigger2Time set global.trigger2Time = state.upTime+2 M122 M114
-
@dwuk3d Just to clarify, as there's a lot going on in your config, I'm checking your kinematics and tool assignments.
The axes setup for the IDEX axis appears to be dual markforged rather than CoreXY? You have this kinematic for V (Y axis):; X:Y:Z: U: V: W:A:B:D M669 V0:0:0: 1: 1:-1:0:0:0
while U (tool 1, X axis, I think) and W (tool 2, Y axis) are set to only move when directly commanded (ie don't move when V is moved). (Sorry, this is probably answered in your long thread, but I couldn't find it!)
Your tool mapping also seems odd for an IDEX axis. For T1 you have:
; Tools ; X:Y:Z:U: V:W:A:B:C:D:a :b ; 0 1 2 3. 4 5 6 7 8 9 10 11 ... ;Tool T1 - Left Nozzle - 2nd Gantry as X and Y. UVD ;M563 P1 D2 H3 F4 ;M563 P1 D2 X3 Y4 H3 F4 M563 P1 D2 X10 Y11 H3 F4 G10 P1 X0 Y0 U0 V0 S0 R0 M568 P1 R0 S0 ; set initial tool #1 active and standby temperatures
The M563 X and Y parameters appear to be mapped to a (10) and b (11) axes, which themselves seem to be mapped to two of the Z driver assignment? They are also not listed in the M584 output.
M584 X0.3 Y0.4 Z0.1:0.2:0.0:1.3 U1.0 V1.5:1.6 W1.1 A1.4 B0.5 D1.2 a0.1 b0.2; set axis mapping
They are also not listed in the M584 output.
06/06/2025, 07:41:18 M584 Driver assignments: X0.3 Y0.4 Z0.1:0.2:0.0:1.3 U1.0 V1.5:1.6 W1.1 (r)(c)A1.4 (r)(c)B0.5 (r)(c)D1.2 E121.0:122.0:123.0, 9 axes visible
I note that what appears to be the correct drive assignments, ie X maps to drive 3 (U), and Y maps to drive 4 (V) is commented out. Also the axis limits for a and b is only 0 to 4:
M208 X0:327 Y0:210 Z0:300 U3:216 V120:329.39 A0:4 B0:3 W120:324.87 D0:3.5 a0:4 b0:4; set minimum and maximum axis limits
I'm not sure why this works in 3.5.4, but I can see why it shouldn't! Or I'm misunderstanding what's going on here. I haven't looked at the homing files closely to see if there's extra drive reassigning there. I'd guess that homing behaviour may be affected by which tool is selected.
Ian
-
Your understanding of my V axis is correct - it moves in the Y direction, and moves itself, plus also the U and W motors - to keep them in the same place.
U & W IDEX axis then move directly (on top of any movement needed by the V axis).So the IDEX Axis is Dual Markforged, and the XY Axis is CoreXY.
This all was surprisingly easy to configure and worked first time (other than perhaps the odd direction reverse change).It all worked pretty well - though apart from 3 issues
Until recently I have had the tools setup with
T1 X=U Y=V Z=Z
T2 X=W Y=V Z=ZI currently have 3 issues. (I guess I should raise separate threads for each one).
- In 3.5.4 - layer shifts - which seem to be related to my Z hopping AB&D Axis and/or the Z Axis.
These are rapid movements of usually non printing Tools a short distance - while the other tool is doing things in the other motion system.
As part of an attempt to resolve this issue I have changed the tool definitions for T1 and T2 to have dummy X&Y axis (lower case a and b in my config.g - which are actually mapped to 2 of the 4 Z gantry motors) - and are then using the actual UV&W axis in my G1 movements - which I changed in the GCODE using a post processor. - see extract of GCODE at the end of this reply.
I thought RRF might be getting confused about the X and Y's being different thinks on the two motion systems - so thought if I completely removed the connection between these from the tools definitions it might stop them being affected. - This didn't work by itself.
Though this, together with changing my Z Axis layer change moves instead of just G1 Zn - to be T-1 G1 Zn M400 T0 may have fixed the layer shift issue - as it is no longer occurring in my small test prints. NB/ I have seen it before on T0 too - when T1 or T2 were doing something.
Specifically the last occurrence of this I nailed down to T0 doing a G1 Z.4 - which caused T2 to rapidly move in the V direction until it hit the back - but for the V coordinates not changing in RRF.
It may also be linked to the B A & D Axis - because my previous workaround to this issue was to not use these extra Zhopping axis at all for Z Hopping.-
In 3.5.4 - speed issues -
Some of the tools, particularly T1 and T2 in Multiple motion systems seem to be going 3-4 times faster than the feed rates specified. My workaround to this at the moment is to put a feedrate on every move, and divide it by a fixed amount on the T1 and T2 tools to slow them down to a usable speed - Seeing if this still occurred on 3.6.0 was one of my main motivations for moving to 3.6.0.
@dc42 has made some comments on this directly on my main thread - the last of which was asking for a M584 dump -
in 3.6.0 only -
This actual issue - where I am getting some issues with the W axis not moving - With G1's and DWC moves directly asking for moves of the W Axis - and it sometimes not responding - which makes me think that maybe it is an issue with the fact that these axis are on the slave Mini5+ board - as I know there were issues with things like slow movements and jumping about in earlier 3.6 rc's
Filled in squares - consisting on WV and UV. G1 movements, which work ok on 3.5.4. coming out as simple diagonal lines (in the opposite direction to what you would get if only V movements were happening on VW - i.e. Right to Left (-U and -W). as V increases.
Corrections: The two diagonal lines are facing outwards - so this would indicate that maybe the W and U motors are not working and only V movement is happening. NB/ This is only for the printing in the middle of the bed, not for the priming at the edge. I will put some M99's in to see if I can do a dump of the settings while the error has actually occurred.
If it would be easier I could try restoring the tools definitions to put the redirects back in - and try to recreate it again on 3.6.0 with T1 and T2 moves being X&Y redirected to UVW by the tool definitions.
(Once I have restored my system - as my attempt to downgrade back to 3.5.4 has currently bricked it. Update - Had to erase firmware on 6HC board again to get 3.5.4 installed.
Some example square drawing GCODE for T2 that I had the issue with.
NB/ M802 is a macro that I added in to try and detect if a layer shift had occurred and report it - at present it just does an M99M106 S0 ; Filament gcode G10 S220 P2 ; set nozzle temperature ;prev preheat:0:T2:**NO PREHEAT** M116.1 ; wait for temperature to be reached ; printing object Cube id:0 copy 0 ; stop printing object Cube id:0 copy 0 ; printing object Cube id:2 copy 0 G1 F300.0 E-.8 M486 S-1 M486 S2 G1 A{global.aOffset+0.4} F7500.0 M802 L607; G1 F7500.0 W181.417 V203.485 G1 F7500.0 A{global.aOffset+0.4} M802 L610; G1 F7500.0 A{global.aOffset} M802 L612; G1 E.8 F300.0 ;TYPE:Inner wall ;WIDTH:0.499999 G1 F750.0 G1 F500.0 W162.832 V203.485 E.69225 G1 F500.0 W162.832 V184.899 E.69225 G1 F500.0 W181.417 V184.899 E.69225 M73 P19 R3 G1 F500.0 W181.417 V203.445 E.69076 G1 W181.874 V203.942 F7500.0 ;TYPE:Outer wall G1 F750.0 G1 F500.0 W162.374 V203.942 E.7263 G1 F500.0 W162.374 V184.442 E.7263 G1 F500.0 W181.874 V184.442 E.7263 G1 F500.0 W181.874 V203.902 E.72481 G1 E-.8 F300.0 M73 P20 R3 G1 A{global.aOffset+0.4} F7500.0 M802 L632; G1 F7500.0 W180.342 V185.036 A{global.aOffset+0.4} M802 L634; G1 F7500.0 A{global.aOffset} M802 L636; G1 E.8 F300.0 ;TYPE:Bottom surface ;WIDTH:0.506511 G1 F1500.0 G1 F1000.0 W181.075 V185.768 E.03911 G1 F1000.0 W181.075 V186.424 E.02477 G1 F1000.0 W179.893 V185.242 E.06315 G1 F1000.0 W179.237 V185.242 E.02477 G1 F1000.0 W181.075 V187.079 E.09818 G1 F1000.0 W181.075 V187.735 E.02477 M73 P21 R3 G1 F1000.0 W178.581 V185.242 E.1332 G1 F1000.0 W177.926 V185.242 E.02477 G1 F1000.0 W181.075 V188.391 E.16823 G1 F1000.0 W181.075 V189.046 E.02477 G1 F1000.0 W177.27 V185.242 E.20325 G1 F1000.0 W176.614 V185.242 E.02477 G1 F1000.0 W181.075 V189.702 E.23828 G1 F1000.0 W181.075 V190.357 E.02477 G1 F1000.0 W175.959 V185.242 E.27331 G1 F1000.0 W175.303 V185.242 E.02477 G1 F1000.0 W181.075 V191.013 E.30833 G1 F1000.0 W181.075 V191.669 E.02477 G1 F1000.0 W174.648 V185.242 E.34336 G1 F1000.0 W173.992 V185.242 E.02477 G1 F1000.0 W181.075 V192.324 E.37838 G1 F1000.0 W181.075 V192.98 E.02477 G1 F1000.0 W173.336 V185.242 E.41341 G1 F1000.0 W172.681 V185.242 E.02477 G1 F1000.0 W181.075 V193.636 E.44844 G1 F1000.0 W181.075 V194.291 E.02477 G1 F1000.0 W172.025 V185.242 E.48346 G1 F1000.0 W171.369 V185.242 E.02477 G1 F1000.0 W181.075 V194.947 E.51849 G1 F1000.0 W181.075 V195.602 E.02477
- In 3.5.4 - layer shifts - which seem to be related to my Z hopping AB&D Axis and/or the Z Axis.
-
@droftarts Update - ran it again - with an abort mid print.
While it is printing on UV.
I have found that something is stopping the U motor from working - which now I have corrected the direction of the diagonal lines makes more sense.
The U motor works ok when it is priming - but not while printing.
At the time of the error W is still working - but I suspect that something after my priming is going to stop that motor from working too.
Also - just discovered that the loss of movement of the U Axis motor also spans Emergency restarts - so something in my Job when run in 3.6.0 is causing my motors to turn off.
So after an Emergency stop U doesn't work, but W still does.
If I do a G1 H2 U-1 then the motor turns back on again.Kinematics is CoreXY, no segmentation, modified matrix: 1.00 1.00 0 0 0 0 0 0 0 1.00 -1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 1.00 1.00 -1.00 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 0 0 0 0 0 0 0 0 0 1.00 Driver assignments: X0.3 Y0.4 Z0.1:0.2:0.0:1.3 U1.0 V1.5:1.6 W1.1 (r)(c)A1.4 (r)(c)B0.5 (r)(c)D1.2 E121.0:122.0:123.0, 9 axes visible Motor current % of normal - X:100, Y:100, Z:100, U:100, V:100, W:100, A:100, B:100, D:100, E:100:100:100 Motor current (mA) - X:800, Y:800, Z:800, U:800, V:800, W:800, A:750, B:750, D:750, E:800:800:800, idle factor 30%, timeout 30.0 sec === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0 (2025-05-25 08:05:42) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 0JD4M-958L1-M2NS0-7JTDG-3SN6K-91FKZ Used output buffers: 16 of 40 (36 max) === RTOS === Static ram: 137420 Dynamic ram: 136672 of which 0 recycled Never used RAM 68444, free system stack 134 words Tasks: NETWORK(1,ready,33.8%,180) ETHERNET(5,nWait 7,0.3%,316) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,209) TMC(4,nWait 6,3.3%,343) CanReceiv(6,nWait 1,0.1%,768) CanSender(5,nWait 7,0.0%,329) CanClock(7,delaying,0.0%,350) MAIN(1,running,62.3%,103) IDLE(0,ready,0.0%,29) USBD(3,blocked,0.0%,144), total 100.0% Owned mutexes: HttpGCodeReply(NETWORK) File(MAIN) === Platform === Last reset 00:05:31 ago, cause: power up Last software reset at 2025-06-06 15:37, reason: User, Gcodes spinning, available RAM 71836, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x04 MCU temperature: min 49.2, current 49.4, max 50.0 Supply voltage: min 24.0, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.2, max 12.4, under voltage events: 0 Heap OK, handles allocated/used 198/82, heap memory allocated/used/recyclable 2048/1776/576, gc cycles 13 Events: 0 queued, 0 completed Date/time: 2025-06-06 15:42:36 Slowest loop: 80.45ms; fastest: 0.05ms === Storage === Free file entries: 16 SD card 0 detected, requested/actual speed: 25.0/25.0MBytes/sec SD card longest read time 2.8ms, write time 3.4ms, max retries 0 === Move === Segments created 30, maxWait 278179ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 3200.00/3200/-0.00 0.00/0/-0.00 107.00/107/-0.66 27439.00/27440/-1.00 14962.00/14962/-0.00 9839.00/9838/1.00 9282.00/9281/0.11 7368.00/7368/0.00 8317.00/8317/-0.62 Next step interrupt due in 119 ticks, disabled Driver 0: standstill, SG min 0, mspos 616, reads 55597, writes 0 timeouts 0 Driver 1: standstill, SG min 0, mspos 248, reads 55597, writes 0 timeouts 0 Driver 2: standstill, SG min 0, mspos 488, reads 55597, writes 0 timeouts 0 Driver 3: standstill, SG min 0, mspos 792, reads 55597, writes 0 timeouts 0 Driver 4: standstill, SG min 0, mspos 472, reads 55597, writes 0 timeouts 0 Driver 5: standstill, SG min 0, mspos 184, reads 55598, writes 0 timeouts 0 Phase step loop runtime (us): min=0, max=100, frequency (Hz): min=671, max=10273 === DDARing 0 === Scheduled moves 212, completed 212, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x20000000, drives owned 0x20000000 Code queue is empty === DDARing 1 === Scheduled moves 131, completed 131, LaErrors 0, Underruns [0, 0, 0] Segments left 0, axes/extruders owned 0x80000003, drives owned 0x80000003 Code queue is empty === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.0 Heater 3 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP is ready with "M290 R1 Z-0.05" in state(s) 0 Telnet is idle in state(s) 0 File is ready with "M122" in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is doing "G4 P91" in state(s) 0 0, running macro Queue2 is idle in state(s) === CAN === Messages queued 2465, received 13422, lost 0, ignored 0, errs 0, boc 0 Longest wait 3ms for reply type 6061, peak Tx sync delay 216, free buffers 50 (min 48), ts 909/909/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 42.50ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 === Multicast handler === Responder is inactive, messages received 0, responses 0 = Ethernet = Interface state: active Error counts: 0 0 0 0 0 0 Socket states: 6 2 2 2 2 2 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 Cancelled printing file 0:/gcodes/Box3.gcode, print time was 0h 1m 'abort' command executed
-
@dwuk3d UPDATE - The turning off of motors seems to be intermittent - They started working half way through layer 1 on Red on attached photo (might relate to a few commands like M122 that I added in)
, and on layer 2 on White
-
@dwuk3d Further update
Have tried various combinations of inserts of G1 H2's into print to try and kick motors back into action.
Adding this to the start of the extruding section seems to kick U & V back into action.
But they drop out again after priming.;M98 P"0:/macros/changeFilament.g" A previous_extruder B new_filament_temp L layer_num N next_extruder F first_layer_temperature1 M98 P"0:/macros/changeFilament.g" A0 B220 L0 N1 F220 M203 M201 M106 S0 ; Filament gcode G10 S220 P1 ; set nozzle temperature ;prev preheat:0:T1:**NO PREHEAT** M116.1 ; wait for temperature to be reached ; printing object Cube id:0 copy 0 ; stop printing object Cube id:0 copy 0 ; printing object Cube id:2 copy 0 ; stop printing object Cube id:2 copy 0 ; printing object Cube id:1 copy 0 G1 F450.0 E-.8 M486 S-1 M486 S1 G1 D{global.dOffset+0.4} F15000.0 M802 L416; G1 F15000.0 U142.213 V205.264 G1 F15000.0 D{global.dOffset+0.4} M802 L419; G1 F15000.0 D{global.dOffset} M802 L421; G1 E.8 F450.0 ;TYPE:Inner wall ;WIDTH:0.499999 G1 F1500.0 G1 F750.0 U123.627 V205.264 E.69225 G91 G1 H2 U0.1 V0.1 ; Added to see if it makes a difference G1 H2 U-0.1 V-0.1 ; Added to see if it makes a difference G90 M73 P10 R3 G1 F750.0 U123.627 V186.678 E.69225 G1 F750.0 U142.213 V186.678 E.69225 G1 F750.0 U142.213 V205.224 E.69076
Priming within changefilament works ok
if global.primeLayer[param.N] < param.L M98.1 A"clean T1" T1 while iterations < var.primeLoops M203 U{global.xyMaxFeed} V{global.xyMaxFeed} G1 F12000 G1 U48 V295 F12000 M801 U{50+0.4*(4-iterations)} V{295+0.4*(4-iterations)} T1 S{10+0.8*(iterations-4)} A{20+0.8*(iterations-4)} ; Prime set global.primeLayer[param.N] = param.L if exists(param.L) && param.L > 0 && global.primeLayer[param.N] < param.L T1 M203 U{global.xyMaxFeed} V{global.xyMaxFeed} G1 F12000 G1 U48 V295 F12000 M801 U50 V295 T1 S10 ; Prime set global.primeLayer[param.N] = param.L G1 D{global.dOffset} F500 set global.T1Clean = false var timeC = state.upTime+state.msUpTime/1000 ;echo {state.thisInput},"M598 started" ;M598 ;M400 ;echo {state.thisInput},"M598 waited for ",{state.upTime+state.msUpTime/1000-var.timeC},"secs" if param.A != 0 echo {state.thisInput},"No need to wait for Y Axis, Move W Over" G1 W300 F10000 else set var.timeC = state.upTime+state.msUpTime/1000 while global.startParkXY == -1 ; move.axes[1].machinePosition > 25 G4 P59 M400 echo {state.thisInput},"waited for xy to start Parking ",{state.upTime+state.msUpTime/1000-var.timeC},"secs" if global.startParkXY < var.timeC echo {state.thisInput},"too late by ",{state.upTime+state.msUpTime/1000-global.startParkXY},"secs" echo >>>"delays.g" ",",var.startHeat-var.startWait,",-",{state.upTime+state.msUpTime/1000-global.startParkXY} set global.delayAdjust = state.upTime+state.msUpTime/1000-global.startParkXY else echo >>>"delays.g" ",",var.startHeat-var.startWait,",",{state.upTime+state.msUpTime/1000-var.timeC} set global.delayAdjust = 0 set var.timeC = state.upTime+state.msUpTime/1000 if global.startParkXY+0.1 > var.timeC G4 P{floor((global.startParkXY+0.1 - var.timeC)*1000)} echo "waited further",floor((global.startParkXY+0.1 - var.timeC)*1000),"ms" set global.uvParked = false set global.startParkUV = -1 M800 T2 H1 M203 W{global.xyMaxFeed} V{global.xyMaxFeed} G1 F12000 G1 W310 F20000 M203 M201 echo {state.thisInput},"finished changeFilament"
With the M801 having the following Gcodes for the priming - which always seem to work
var speed = 1500 G1 D{global.dPrimeOffset} F300 G1 F{var.speed} G1 U{param.U} V{param.V} F{var.speed} ;M800 T{param.T} H0 ; ZHop down G1 U{param.U} V{param.V+param.S} E{var.E} F{var.speed} G1 U{param.U+var.S2} V{param.V+param.S} E{var.E*2} F{var.speed} G1 U{param.U+var.S2} V{param.V} E{var.E*2} F{var.speed} G1 U{param.U} V{param.V} E{var.E} F{var.speed} G1 U{param.U-2} V{param.V+param.S/2} F{var.speed} G1 U48 V295 F2000 G1 D{global.dOffset} F300 M400 echo {state.thisInput},"prime time T1",{state.upTime+state.msUpTime/1000 - var.primeT},"s"
I added in the M203's due to the speed issue - will try removing them to see if that makes a difference.
Update - it's not the M203s or M201s - removed them all and still get the same issue.Also just went back to 3.5.4 - it didn't brick this time, and have run the exact same config and print and it is again as expected working fine on 3.5.4 (not withstanding the speed issue).
-
@dwuk3d said in UVW movement issues with [3.6.0]:
From your config.g:
M84 S30 ; set motor current idle timeout
I don't know if it has anything to do with the problem, but M84 is deprecated in RRF3.6.
-
@DIY-O-Sphere thanks for the suggestion.
I tried commenting out the M84 and M906 in caee it was some sort of timeout issue - but it didn't remove the issue.
; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout
The only other things I can think of to try are:
A. Reinstating the redirects in the tools definitions - and then seeing whether using X&Y instead of the real axis makes any difference
B. Removing the U&V axis adjusting motion from the V axis kinematics - and instead doing the adjustment in the actual G1.
C. Changing my driver wiring around to put XYUVW all on the master 6HC board - as I suspect its probably 3.6.0's changes to handling of toolboards that is the issue,Think I will investigate sourcing/making up some 6HC<>mini5+stepper driver cable adaptors before doing this - to make swapping steppers around between boards less hassle.
Thinking about it I guess sourcing in line male 6HC and Mini5+ stepper connectors is going to be hard - maybe it would be easier if I just put inline 2.54mm plugs and sockets into the stepper wires I need to swap around.
Or even easier just make up some extension cables at the nema17 end of the cables so that I can swap the other ends of the stepper cables around instead.
-
-
@droftarts yes UV&W are all connected to a connected Mini5+, will try swapping them with 3 of my Z axis motors to see if that makes a difference.
-
@dwuk3d Tried a simple test - just swapping around the cables and driver allocations for U<>X and W<>Y.
So now XY and are on the Mini5+ board
UW are on he 6HC board, and V is on the Mini5+ boardOn 3.5.4 homing worked fine - but printing on XY was a bit odd - it seem to pause and not finish its object - and go slow when the 2nd motion system started
Then when the 2nd motion system started to try and print things went a bit haywire - with heads moving W direction when they shouldn't.
So my conclusion from this test is as per documentation - you can't mix motion systems and driver boards.
Therefore I don't think swapping over my XY,UVW onto the 6HC board is going to be feasible - because their Z hopper/mesh adjustment axis AB&D will all be on a separate board within the same motion system - so will likely cause the same issue.
I could swap over XYB onto the Mini5+. and UVWAD to be on the 6HC to confirm that the Mini5+ has issues on 3.6.0 with the XY axis instead of UVW - however that is going to involve rewiring 12 stepper cables (due to plug size differences) - so not that keen to do it.
PS/. I have had Z split across the 2 boards for months - and that hasn't caused any issues - including when it was Z Hopping one motion system while the other one was priming - although - thinking about it - I wonder if that split might be the cause of my 'layer shift' issue - so maybe I should move Z completely off to its own separate Mini5+ board if the layer shift issue comes back again.
-
@dwuk3d said in UVW movement issues with [3.6.0]:
So my conclusion from this test is as per documentation - you can't mix motion systems and driver boards.
That's correct. Each motion system needs a separate movement pipeline. Expansion bards, including main board used as expansion boards, have only one pipeline.
-
@dc42 Thanks - but confirming this unfortunately that does not resolve my issue.
My setup is currently
Motion System 1
XYB on Master 6HC board - works ok.Motion System 0
UVWAD - on Slave Mini5+ boardMotion system 1 works fine on both 3.5.4 and 3.6.0
Motion System 0 works fine (apart from excess speed and layer shift issues - which I will report on separate threads) on 3.5.4
But on 3.6.0 Motion System 0 hardly works at all - with U & W motors seeming to stop working early in the print - The 'switch off' sometimes persists across emergency stops - but If I do G1 H2 U or W they seem to start working again.