Duet 3 - Motors only respond properly duing the home command
-
@JoergS5 I trying typing in the Gcode and the DWC thinks its moving the motors and instantly changes the Z to 0.00 but nothing moves on the printer
M114
X:0.000 Y:0.000 Z:0.000 E:0.000 E0:0.0 Count 11500655 11500655 11500655 Machine 0.000 0.000 0.000 Bed comp 0.000 -
I know what David would say now: please make M122 and show the report...
-
-
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode)
Board ID: 08DJM-956L2-G43S4-6JTDJ-3SJ6L-9866G
Used output buffers: 1 of 40 (17 max)
=== RTOS ===
Static ram: 154604
Dynamic ram: 161668 of which 56 recycled
Exception stack ram used: 528
Never used ram: 76360
Tasks: NETWORK(ready,356) ETHERNET(blocked,424) HEAT(blocked,1192) CanReceiv(suspended,3820) CanSender(suspended,1420) CanClock(blocked,1424) TMC(blocked,60) MAIN(running,4528) IDLE(ready,76)
Owned mutexes:
=== Platform ===
Last reset 00:37:42 ago, cause: software
Last software reset at 2020-05-30 11:47, reason: User, spinning module GCodes, available RAM 76360 bytes (slot 0)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
Error status: 0
MCU temperature: min 40.2, current 40.9, max 41.0
Supply voltage: min 11.0, current 11.2, max 11.4, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 10.3, current 10.5, max 10.7, under voltage events: 0
Driver 0: standstill, reads 24358, writes 45 timeouts 0, SG min/max 0/538
Driver 1: standstill, reads 24361, writes 45 timeouts 0, SG min/max 0/533
Driver 2: standstill, reads 24361, writes 45 timeouts 0, SG min/max 0/512
Driver 3: standstill, reads 24394, writes 14 timeouts 0, SG min/max 0/0
Driver 4: standstill, reads 24397, writes 11 timeouts 0, SG min/max 0/0
Driver 5: standstill, reads 24399, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2020-05-30 12:25:06
Slowest loop: 78.72ms; fastest: 0.22ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 3.5ms, write time 36.7ms, max retries 0
=== Move ===
Hiccups: 39690(0), FreeDm: 375, MinFreeDm: 369, MaxWait: 858529ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 67, completed moves: 67, 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: 148.97ms; 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: 2 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 9060, longest wait 0ms for type 0
=== Linux interface ===
State: 0, failed transfers: 0
Last transfer: 2262962ms ago
RX/TX seq numbers: 0/1
SPI underruns 0, overruns 0
Number of disconnects: 0
Buffer RX/TX: 0/0-0
- Ethernet -
-
I don't see errors, but I am not an M122 expert.
-
@Oliver3d said in Duet 3 - Motors only respond properly duing the home command:
12V rail voltage: min 10.3, current 10.5, max 10.7, under voltage events: 0
12V rail voltage: min 10.3, current 10.5, max 10.7, under voltage events: 0 is near your limit of 10 V, but it was not lower than 10 limit of
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
Do you have a good enough power supply? -
@JoergS5 I have 40amp at 12v
-
but M122 reported only 11 V, if you have a PSU MeanWell or similar, there is a potentiometer where you can set voltate higher or lower (better all power turned off when you change it). I don't think this is the reason, but to exclude it from the list...
https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Hardware_Overview says 12 V:
VIN in the range 12V-32V must be provided to the Duet. ...I don't know how strict this must be fulfilled.
-
@JoergS5 I adjusted the voltage up to 12.6 measured at the supply voltage terminals of the Duet board
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode)
Board ID: 08DJM-956L2-G43S4-6JTDJ-3SJ6L-9866G
Used output buffers: 1 of 40 (14 max)
=== RTOS ===
Static ram: 154604
Dynamic ram: 161668 of which 56 recycled
Exception stack ram used: 528
Never used ram: 76360
Tasks: NETWORK(ready,356) ETHERNET(blocked,436) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1432) CanClock(blocked,1436) TMC(blocked,192) MAIN(running,4528) IDLE(ready,76)
Owned mutexes:
=== Platform ===
Last reset 00:01:15 ago, cause: power up
Last software reset at 2020-05-30 11:47, reason: User, spinning module GCodes, available RAM 76360 bytes (slot 0)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
Error status: 0
MCU temperature: min 31.7, current 40.2, max 40.3
Supply voltage: min 12.4, current 12.7, max 12.8, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 11.7, current 12.0, max 12.1, under voltage events: 0
Driver 0: standstill, reads 28910, writes 17 timeouts 0, SG min/max 0/506
Driver 1: standstill, reads 28911, writes 17 timeouts 0, SG min/max 0/513
Driver 2: standstill, reads 28911, writes 17 timeouts 0, SG min/max 0/535
Driver 3: standstill, reads 28915, writes 14 timeouts 0, SG min/max 0/0
Driver 4: standstill, reads 28919, writes 11 timeouts 0, SG min/max 0/0
Driver 5: standstill, reads 28919, writes 11 timeouts 0, SG min/max 0/0
Date/time: 2020-05-30 12:47:39
Slowest loop: 128.05ms; fastest: 0.22ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 7.2ms, write time 0.0ms, max retries 0
=== Move ===
Hiccups: 27374(0), FreeDm: 375, MinFreeDm: 372, MaxWait: 11975ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 25, completed moves: 25, 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: 97.18ms; 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: 2 of 8- Ethernet -
State: active
Error counts: 0 0 0 0 0
Socket states: 2 2 2 2 2 0 0 0
=== CAN ===
Messages sent 304, longest wait 0ms for type 0
=== Linux interface ===
State: 0, failed transfers: 0
Last transfer: 75770ms ago
RX/TX seq numbers: 0/1
SPI underruns 0, overruns 0
Number of disconnects: 0
Buffer RX/TX: 0/0-0
- Ethernet -
-
And now it's working all ok?
( sorry, ) -
@JoergS5 I wish it was that easy.
-
One last idea today: please put in to the command line: M669 and validate that type is Delta (K3).
-
M669
Kinematics is Linear delta -
Sorry, I don't have more ideas now. Maybe tomorrow again. Good luck with searching. I'll tell you if I have an enlightment...
-
@JoergS5 Thank you very much for your help, I’ll keep trying and keep you posted. And thank you for the compliment on the printer design earlier.
-
You will have a very stiff and good printer!
-
there is a thread about high hiccups:
https://forum.duet3d.com/topic/8660/high-number-of-hiccups-during-basic-moves
your M122 reported a lot of hiccups, you may try lowering the microstepping to 16:
M350 X256 Y256 Z256 I0 ; configure microstepping without interpolation
to
M350 X16 Y16 Z16 I1
(M92 needs to be changed also to
M92 X640.00 Y640.00 Z640.00 E837.20
)Another thread about it: https://forum.duet3d.com/topic/8688/stepper-movement-hiccups-and-microstepping/4
This could explain lost steps. For Delta it seems to be best to set 16x interpolated (to 256).10240 steps/mm and 18000 mm/min=300 mm/s means 3 Mio pulses for every stepper each second, which is too much. (The limit is 3*120 kHz for three steppers and 200 kHz for one stepper for Duet 2. Duet 3 is more powerful, but I expect not so much better...)
-
@JoergS5 said in Duet 3 - Motors only respond properly duing the home command:
G1 H1 X815 F180
After your last suggestion I started messing around with the motor speeds and the micro stepping and have managed to get all the motors moving when commands are sent.
I have had to lower the motor speeds down dramatically otherwise the motors would stall. I'm assuming this is because the Nema 17 motors aren't big enough for the setup on my printer.This is my latest config.g file that seems to be working, do you see anything that might be causing this problem other than the motor size?
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.1.1 on Sat May 30 2020 16:16:49 GMT-0700 (Pacific Daylight Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"OLIVER3DPRINTER" ; set printer name
M665 R224.25 L573.75 B200 H500 ; 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; Network
M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0.5 S1 ; physical drive 0.5 goes forwards
M569 P0.4 S1 ; physical drive 0.4 goes forwards
M569 P0.3 S1 ; physical drive 0.3 goes forwards
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M584 X0.5 Y0.4 Z0.3 E0.0 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X640.00 Y640.00 Z640.00 E837.20 ; set steps per mm
M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
M203 X1500.00 Y1500.00 Z1500.00 E1200.00 ; set maximum speeds (mm/min)
M201 X20.00 Y20.00 Z20.00 E1000.00 ; set accelerations (mm/s^2)
M906 X2000 Y2000 Z2000 E800 I50 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 Z0 S1 ; set minimum Z; Endstops
M574 X2 S1 P"io1.in" ; configure active-high endstop for high end on X via pin io1.in
M574 Y2 S1 P"io4.in" ; configure active-high endstop for high end on Y via pin io4.in
M574 Z2 S1 P"io3.in" ; configure active-high endstop for high end on Z via pin io3.in; Z-Probe
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M556 S50 X0 Y0 Z0 ; set orthogonal axis compensation parameters
M557 R200 S50 ; define mesh grid; Heaters
M308 S0 P"temp1" Y"pt1000" R2200 ; configure sensor 0 as PT1000 on pin temp1
M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp2" Y"pt1000" R2200 ; configure sensor 1 as PT1000 on pin temp2
M950 H1 C"out2" T1 ; create nozzle heater output on out2 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit; Fans
M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 S"TITAM AQUA" 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 0C; Custom settings
M575 P1 B57600 S1; Miscellaneous
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss -
@Oliver3d said in Duet 3 - Motors only respond properly duing the home command:
It looks like you have a set of config files in the root of the SD card. Those should all be in the /sys folder. If you are editing the files in the root of the card they won't be used at all.
-
First of all I am relieved that the cause is now clear.
Phaedrux comment is of course correct and I'm a bit annoyed at myself for not having seen it yesterday! The configurator and upload process put it into the correct sys folder, so those changes were working, but you may have changed something in the root folder which was ineffective...
Your used ball screws are heavy, so to move the higher mass I would prefer Nema 23 steppers. I see the following further possible improvements
-
the coupling between stepper and ball screw is not very stiff, it is better to use so called Oldham couplers (two aluminium parts separated by a plastic part, AKA Rotex, jaw coupling). The most expensive and very stiff coupling would be a "metal bellows coupling", but I haven't seen it at 3D printers yet. Another possibility is a belt coupling. The advantage is that you could introduce a gear ratio for a higher torque if you need it (but needs some space). A direct stiff steel coupling is another possibility, but then the stepper and ball screw axes must match exactly to avoid damage.
-
the ball screw spindle should be fixed at the bottom with a loose bearing (floating bearing) each, otherwise the ball screw spindle will "try to escape the force" and will bend (only a bit in the region of micrometers, but I expect this will have an effect. Ball spindle bearings have a high precision, it would be a pity if they were lost again due to bending.) Another effect will be that the spindle begins to vibrate with some stepper speed, which will produce vibrations in the whole construction.
-