SOLVED Duet 3 Output Not Working
Using a Duet 3 in a new installation... My set-up works ok, sort of. I have 5 identical motors in the X/Y/ 3Z format. I can not get one on the motors to move. If I swap the motor leads out into an alternate stepper position, The motor works fine. The motor I plug into the nonworking slot (stepper 5) stops working. I ran a M115 and a M122... it looks ok. Any motor I move to the 0 position stops working but works in other positions. This thing is brand new!
My Duet M115 b22 Status Idle Mode: FFF Tool Position X 1.0 Y 1.0 Z 0.00 U 0.0 Extruder Drives Drive 0 0.0 Drive 1 0.0 Speeds Requested Speed 0 mm/s Top Speed 0 mm/s Sensors Vin 24.0 V V12 12.0 V MCU Temperature 38.8 C Fan RPM 0 Z-Probe 1000 Tools Extra Control All Tool Heater Current Active Standby Tool 1 T1 - Load Filament n/a n/a 210 160 Bed Bed off 81.8 C 0 0 Temperature Chart M122 8/21/2020, 11:34:36 PM M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (standalone mode) Board ID: 08DJM-956L2-G43S8-6J1D8-3SJ6M-9B0GG Used output buffers: 2 of 40 (13 max) === RTOS === Static ram: 154604 Dynamic ram: 162836 of which 100 recycled Exception stack ram used: 320 Never used ram: 75356 Tasks: NETWORK(ready,356) ETHERNET(blocked,436) HEAT(blocked,1112) CanReceiv(suspended,3404) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,204) MAIN(running,4528) IDLE(ready,76) Owned mutexes: === Platform === Last reset 00:12:36 ago, cause: power up Last software reset at 2020-08-21 22:41, reason: User, spinning module GCodes, available RAM 75404 bytes (slot 3) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN Error status: 0 MCU temperature: min 20.0, current 38.5, max 38.7 Supply voltage: min 23.8, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0 Driver 0: ok, reads 53874, writes 19 timeouts 0, SG min/max 0/0 Driver 1: ok, reads 53875, writes 19 timeouts 0, SG min/max 0/0 Driver 2: ok, reads 53880, writes 14 timeouts 0, SG min/max 0/0 Driver 3: ok, reads 53881, writes 14 timeouts 0, SG min/max 0/0 Driver 4: ok, reads 53881, writes 14 timeouts 0, SG min/max 0/0 Driver 5: ok, reads 53882, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2020-08-21 23:34:35 Slowest loop: 10.78ms; fastest: 0.21ms === Storage === Free file entries: 9 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 4.5ms, write time 27.5ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 375, MinFreeDm: 373, MaxWait: 54848ms Bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves: 2, completed moves: 2, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === 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 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 Code queue is empty. === Network === Slowest loop: 43.73ms; fastest: 0.03ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 1 of 8 - Ethernet - State: active Error counts: 0 0 0 0 0 Socket states: 5 2 2 2 2 0 0 0 === CAN === Messages sent 3035, longest wait 2ms for type 6011 === Linux interface === State: 0, failed transfers: 0 Last transfer: 756063ms ago RX/TX seq numbers: 0/1 SPI underruns 0, overruns 0 Number of disconnects: 0 Buffer RX/TX: 0/0-0 8/21/2020, 11:27:25 PM M115 b22 Board TOOL1LC firmware 3.1.0 (2020-05-15b1) 8/21/2020, 11:27:13 PM M115 FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.1.1 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2020-05-19b2
; Jubilee CoreXY ToolChanging Printer - Config File ; This file intended for Duet 3 hardware, main board plus two expansion boards (or, later, four tool boards) ; As of 10/14/2019 INCOMPLETE AND ONLY PARTIALLY TESTED. See the discord for more info. ; Name and Identification ; Printer name is now set on the R Pi. ; Networking ; Network M552 S1 Enable Network ; Access point is configured manaually M586 P0 S1 ; Enable Http M586 P1 S0 ; Disable FTP M86 P2 S0 ; Disable Telnet ; Debugging M111 S0 ; Debug off M929 P"eventlog.txt" S1 ; Start logging to file eventlog.txt ; General Preferences M555 P2 ; Set Marlin-style output G21 ; Set dimensions to millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Kinematics M669 K1 ; CoreXY mode ; Axis to driver mapping M584 X0 Y1 U2 Z3:4:5 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension. M584 E22.0:23.0 ; Set Hermera extruder drives up on Hermera Toolboards M569 P0 S0 ; Drive 0 direction | X stepper M569 P1 S1 ; Drive 1 direction | Y Stepper M569 P2 S0 ; Drive 2 direction | U Tool Changer Lock M569 P3 S0 ; Drive 3 direction | Front Left Z M569 P4 S0 ; Drive 4 direction | Front Right Z M569 P5 S0 ; Drive 5 direction | Back Z M569 P22.0 S0 ; set tool 2 extruder direction on Hermera Toolboards M569 P23.0 S0 ; set tool 3 extruder direction on Hermera Toolboards ; Leadscrew locations (really, kinematic coupling locations) extracted from CAD model assuming back right build plate corner is (0, 0) M671 X300:5:152.5 Y316:316:-14 S10 ; Front Left: (300, 316) | Front Right: (5, 316) | Back: (-14, 152.5) ; Axis and motor configuration M350 X8 ; Set 8x microstepping for axes use interpolation. M350 Y8 I1 ; Set 8x microstepping for axes use interpolation. M350 U4 I1 ; Set 4x for toolchanger for lock use interpolation. M350 Z8 I1 ; Set 8x microstepping for axes use interpolation. M350 E16 I1 ; Motor Configurations M906 X1600 Y1600 Z1600:1600:1600 E1250 I30 ; motor currents (mA) and Idle percentage M906 U900 I60 ; Motor currents (mA) and Idle percentage M201 X800 Y800 Z800 E1300 U800 ; Accelerations (mm/s^2) M203 X6000 Y6000 Z1000 E1200 U9000 ; Maximum speeds (mm/min) M566 X1000 Y1000 Z500 E3000 U50 ; Maximum jerk speeds mm/minute M92 X80 Y80 ; Steps/mm for X,Y with 20 tooth pulleys. M92 Z1600 ; Steps/mm for Z - TR8*4 / 0.9 deg stepper M92 U11.515 ; Steps/mm for tool lock geared motor. M92 E837 ; Extruder - 0.9 deg/step
@beachtec M906 are axis values, so set only one value for Z.
And E needs two values for M906. (for some of the other M settings also)
"Example: If you have two motors on your Z axis, physically connected to Z and E0 stepper drivers, configured with M584 Z2:3, set M906 Z200, not M906 Z200:200"
Veti last edited by
VERY IMPORTANT! Assigning a drive using M584 does not remove its old assignment. Therefore, if you assign a drive that defaults to being an extruder drive, you should also assign the extruder drives explicitly as in the above example. Failure to do so may result in unexpected behaviour.
so do one M584 statement
@JoergS5 That is interesting because my general guidance here has been from following @dc42's awesome wordpress blog https://github.com/Duet3D/RRF-machine-config-files/blob/master/E3D_Tool_Changer/dc42-duet3-centreZero-2Titan-2Hemera/sys/config.g... here it is as a cut and paste:
; Network M550 P"ToolChanger" ; Set machine name M552 P192.168.1.153 S1 ; Enable Networking M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet M667 S1 ; Select CoreXY mode ; Drive direction M569 P0 S1 ; Drive 0 Z M569 P1 S0 ; Drive 1 Y M569 P2 S0 ; Drive 2 X M569 P3 S0 ; Drive 3 E0 M569 P4 S0 ; Drive 4 E1 M569 P5 S0 ; Drive 5 COUPLER M569 P22.0 S0 D2 ; Drive 22.0 (E2) spreadCycle mode M569 P23.0 S0 D2 ; Drive 23.0 (E3) spreadCycle mode M584 X2 Y1 Z0 C5 ; Axis to driver mapping M584 E3:4:22.0:23.0 ; set extruder drivers M208 X-185:178.5 Y-149:49 Z0:300 C0:500 ; Set axis maxima & minima M92 X100 Y100 Z1600 C200 E834:834:409:409 ; Set steps per mm assuming x16 microstepping M350 E16:16:16:16 I1 ; Configure microstepping with interpolation M350 C16 I1 M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation M566 X400 Y400 Z8 C2 E200:200:200:200 ; Set maximum instantaneous speed changes (mm/min) M203 X35000 Y35000 Z1200 C10000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min) M201 X6000 Y6000 Z400 C500 E2500:2500:2500:2500 ; Set accelerations (mm/s^2) M906 X2000 Y2000 Z1330 C500 E1400:1400:1000:1000 I30 ; Set motor currents (mA) and motor idle factor in percent M84 S120 ; Set idle timeout
@DC42 is a kind of Ninja to me and his M584 section here has 2 entries; I thought maybe the Hermera(s) (running on ILC toolboard's over the CAN bus) might need a separate one... I mean @dc42 put it in HIS config.g file. That said, I have shrunk it to one... and the problem remains...
I would LOVE to sort this!!!... and thank you all for trying to help!!!
@beachtec you confuse me with @Veti , the M584 was from him, the M906 comment was from me.
Did you change the M commands to have 2 entries for E?
Can you please repost the config how it is now? Maybe it's not moving because the endstops have a problem and are triggered from the beginning.
And I did not understand completely your first description: is it in slot 5 or 0 which is not working? Is an endstop assigned to the slot which is not working?
@JoergS5 I am sorry for any confusion. Stepper 5 is NoOp. Steppers 3,4,5 are configured together to be the Z-axis. Motors 3,4 run and behave correctly. Swapping connectors with stepper 5, the new motor attached to stepper 5 connector does not function while the MOTOR that WAS connected to stepper 5 works fine in another position on the z-axis. I have commented out the stops (making no difference). Just trying to simplify and reduce the problem surface. I will post it in a few minutes. @JoergS5 , thank you for looking at this!!!
Are you getting any error messages in the console when you try to move the motors?
Please check if your Duet 3 may be affected by this known issue.
@beachtec a different thing is that the M92 for Z is wrong.
M92 Z1600 ; Steps/mm for Z - TR8*4 / 0.9 deg stepper
400 steps per rotation with M350 Z8 => 3200 steps for 4 mm => Z800 would be correct.
@beachtec Lucky me. I have seen that error msg. My board# is WD41-412
@JoergS5 all 1.8 degree steppers (except the Hermera of course) ...
@beachtec so I was fooled by the comment...
Back to your problem, I think the first step to analyze would be to isolate the problem and test stepper 5 connector as single drive configuration (for drive X eg). If this works, the 3-drive-Z can be tested. Because now it could be a defective driver, a configuration issue, a wiring issue or something else.
@JoergS5 Fair enough... I should have probably done that before I posted! I will test a file and publish the results.
@beachtec you don't need a file, you can move the steppers by direct g-code commands in the "Send G-Code" field of the DWC duet web control. That's one of the advantages of Duet, the direct execution of all commands (with the exception of some config settings).
(> sorry if this bothers you, I don't know whether you are familiar with Duet).
I wrote one anyway to try on a few different axis. Stepper 5, nothing. Other steppers work with the same settings.
@JoergS5 I am very grateful for the help and am always learning... do not worry about bothering me at all! I am good!
and I love that command line window!
@beachtec if driver 5 is defective, the common procedure is to look at the Duet 3 whether a defect is visible for warranty, so detailed images of front and back of the stepper 5 driver would be the next step. Inspections would be made by the moderators/administrators.
It's confusing that M122 shows no errors for driver 5, so I expect that the driver is not defect. Maybe a connection problem of the connector?
I do not understand it either. I believe that if the wiring was at fault, the stepper driver would have worked when a motor known to be working well was swapped out and the power was cycled. But when I did that. The drive I motor I swapped into Drive 5 did not work and the motor formerly in drive 5... worked fine in the new location. I would MUCH rather fix it then replace it... it's a lot of time and delays... but I understand. By the way, I wanted to redo all of my connectors doing this but there was just enough to do the job in my box but I tested them and they all show good connections, and the same Impedance and coil phasing. I have only had it a few days... been waiting to work on it this weekend.
@beachtec you'll have to wait for the experts. Good luck!!
Did you check out that link I posted? Send an email to see if you're affected by the diode problem. If so, replacement is really the only way to go.
Thank you for your help with this issue.
This forum is loaded with great people, support and solutions that drive a deeper understanding of your products and the creative ways they can be used.. it is straight up good reading, I always learn something and sometimes even gain a bit of humility!
I had my replacement Duet 3 sent overnight and installed it straight away... within minutes everything was working properly, even a few little issues I had with noise on drive 0 and 1, which seemed like it might just be tuning, were cleared up and the machine performed perfectly. I love drivers on this board, it is so quiet!
Anyway, thank you again for your help and support. Cheers!
@beachtec nice to hear that it has a good end. Happy printing!