Duet Wifi - Dual Z Motor Configuration
-
Attempting to get my printer to level using 2 independent Z motors.
1 x Z motor wired into drive 2
1 x Z motor wired into drive 4Only 1 motor operates. If I switch the motors between the two drives, the opposite motor will operate (but still only 1 at a time)
Config.G as follows;
BLV mgn Cube
Send code...
Status
Idle
Mode: FFF
Tool Position
X
0.0
Y
0.0
Z
0.00
Extruder Drives
Drive 0
0.0
Speeds
Requested Speed
0 mm/s
Top Speed
0 mm/s
Sensors
Vin
24.4 V
MCU Temperature
30.8 C
Z-Probe
0
Tools
Extra
Control All
Tool Heater Current Active Standby
Tool 0
T0 - Load Filament Heater 1
active 17.9 C
0
0
Bed Heater 0
off 17.3 C
0
0
Temperature Chart
System Directory
0:/sys/config.g
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Oct 18 2020 09:46:25 GMT+0100 (British Summer Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"BLV mgn Cube" ; set printer name
M669 K1 ; select CoreXY mode; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S1 ; physical drive 0 goes forwards
M569 P1 S1 ; physical drive 1 goes forwards
M569 P2 S1 ; physical drive 2 goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M569 P4 S1 ; physical drive 4 goes forwards
M584 X0 Y1 Z2:4 E3 ; two Z motors connected to driver 2 (left motor) and driver 4 (right motor)
M671 X-67:355 Y0:0 S0.5 ; position of leadscrew/bed pivot point at left and right of X axis
M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z400.00:400.00 E418.00 ; set steps per mm
M566 X720.00 Y720.00 Z12.00:12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00:180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z250.00:250.00 E1000.00 ; set accelerations (mm/s^2)
M906 X1600 Y1600 Z1600:1600 E1600 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X350 Y445 Z350 S0 ; set axis maxima; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P25 X12 Y54 Z1.75 ; set Z probe trigger value, offset and trigger height
M557 X36:336 Y0:250 S125 ; define mesh grid; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B0 R0.811 C653.0 D4.65 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S100 ; set temperature limit for heater 0 to 100C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 R3.948 C85.0 D3.42 S1.00 ; disable bang-bang mode for heater and set PWM limit; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
M950 F2 C"fan1" Q500 ; create fan 2 on pin fan1 and set its frequency
M106 P2 S1 H1 T45 ; set fan 2 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0CT0
M501
; Custom settings are not defined; Miscellaneous
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power lossSure i must be doing something stupid; any pointers greatly appreciated.
-
m122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3 (2021-06-15 21:44:54) running on Duet WiFi 1.02 or later
Board ID: 08DGM-917NK-F2MS4-7J1F8-3SD6N-KHT8F
Used output buffers: 3 of 24 (13 max)
=== RTOS ===
Static ram: 23876
Dynamic ram: 75312 of which 224 recycled
Never used RAM 12148, free system stack 114 words
Tasks: NETWORK(ready,14.0%,244) HEAT(delaying,0.0%,326) Move(notifyWait,0.1%,283) MAIN(running,85.8%,441) IDLE(ready,0.2%,29), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 00:11:00 ago, cause: software
Last software reset at 2024-10-20 15:57, reason: User, GCodes spinning, available RAM 12148, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Step timer max interval 0
MCU temperature: min 30.1, current 30.9, max 32.0
Supply voltage: min 24.2, current 24.4, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0
Driver 0: position 0, standstill, SG min/max 0/248
Driver 1: position 0, standstill, SG min/max 0/245
Driver 2: position 0, standstill, SG min/max not available
Driver 3: position 0, standstill, SG min/max not available
Driver 4: position 0, standstill, SG min/max not available
Driver 5: position 0
Driver 6: position 0
Driver 7: position 0
Driver 8: position 0
Driver 9: position 0
Driver 10: position 0
Driver 11: position 0
Date/time: 2024-10-20 16:08:09
Cache data hit count 4294967295
Slowest loop: 10.26ms; fastest: 0.14ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 3.8ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 83, maxWait 129780ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 15, completed moves 15, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
Heater 1 is on, I-accum = 0.0
=== GCodes ===
Segments left: 0
Movement lock held by 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
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 15.68ms; fastest: 0.00ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
HTTP sessions: 1 of 8- WiFi -
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 0
WiFi firmware version 1.23
WiFi MAC address 84:0d:8e:b3:b4:98
WiFi Vcc 3.40, reset reason Turned on by main processor
WiFi flash size 4194304, free heap 24288
WiFi IP address 192.168.0.2
WiFi signal strength -70dBm, mode none, reconnections 0, sleep mode modem
Clock register ffffffff
Socket states: 0 0 0 0 0 0 0 0
- WiFi -
-
I also get this message in the console, but wiring seems fine visually, and as mentioned above, one motor at a time seems to work fine
-
@wharris87 It's complaining about driver 2, the Z driver. If both motors were connected to the Z output before, have you put the jumpers on the second Z output?
See option A in the wiring diagram:
Ian
-
Bingo, thankyou
-
@wharris87 said in Duet Wifi - Dual Z Motor Configuration:
M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z400.00:400.00 E418.00 ; set steps per mm
M566 X720.00 Y720.00 Z12.00:12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00:180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z250.00:250.00 E1000.00 ; set accelerations (mm/s^2)
M906 X1600 Y1600 Z1600:1600 E1600 I30 ; set motor currents (mA) and motor idle factor in per centRemove the second Z value in these entries. Each value is set per axis, not per motor. It's only for extruders where multiple entries can be defined here since each extruder motor is it's own axis.