need Guru on duet 3 mini5 using stall guard/sensor less homing
-
@oliof
Hi i can post everything , just when i think ive fixed it it happens again, when a motor stalls do you know if it turns of the power to that stepper motor? -
@moth4017 See the M915 description. With
R0
a stall is only reported but nothing is done beyond that. If your motor stops while it should be moving and you haven't setR2
/R3
, then it is most likely a physical issue, i.e. binding.I can tell you that I can create stall reports on Z when enabling Z hop just from the back emf of stopping a short movement if sensitivity is high enough (-:
-
@oliof
Hi yes im using R0 , the file below is using R1 as i have just tried itI have 3 stepper motors on the Z axis , when i send the Z axis to the bottom of the printer , 1 or 2 of the motors will loose drive , its not always the same motor and its not all the tame.
; home_max_Z
echo "start home max Z"
M122
;M569 P0.4 ; Check status in console
;M569 P0.5
;M569 P0.6
G91 ; relative positioning
M569 P0.4 S1 D3 V10 ; set to stelth chop
M569 P0.5 S0 D3 V10 ; set to stelth chop
M569 P0.6 S1 D3 V10 ; set to stelth chopM915 P0.4 S2 F0 R1 H400 ; Configure Z-Axis Stall Detection
M915 P0.5 S2 F0 R1 H400 ; Configure Z-Axis Stall Detection
M915 P0.6 S2 F0 R1 H400 ; Configure Z-Axis Stall Detectionecho "diag before stall detection setup"
G1 P50
echo "stall detection setup"
M17 Z ;energise a motor for stealthChop tuning
G1 P240 ; pause to allow the drivers to characterise the motor
G1 H1 Z-2.4 F6000 ; move a little for cal of sensorless homing / not stalled
echo "after stall detection setup"
;M569 P0.4 ; Check status in console
;M569 P0.5
;M569 P0.6echo "lower motor current"
M913 Z80 ; Lower motor current %
M566 Z15.00 ;jerk
M201 Z50.00 ; set accelerations (mm/s^2)
G4 P150 ;wait time ms
M574 Z2 S4 ; Configure Z-Axis stall detection homing
;M569 P0.4 ; Check status in console
;M569 P0.5 ; Check status in console
;M569 P0.6 ; Check status in consoleecho "home max z"
G1 H1 Z350 F3000 ; Home Z-Axis actuators independently
G92 Z300 ; set a Z height
;M569 P0.4 ; Check status in console
;M569 P0.5 ; Check status in console
;M569 P0.6 ; Check status in console
G90 ; absolute positioningG4 P300
;revert back
echo "after revert back"
M913 Z100 ; Reset motor current
M569 P0.4 S1 D2 V2000 ; reset motors back to spread cycle,
M569 P0.5 S0 D2 V2000 ; reset motors back to spread cycle,
M569 P0.6 S1 D2 V2000 ; reset motors back to spread cycle,
;M569 P0.4 ; Check status in console
;M569 P0.5 ; Check status in console
;M569 P0.6 ; Check status in console
M84 ; turn off motors
echo "The bed has landed" -
ive also tries
s values from 1 to 50
H values 200, 400,
F1 and F0
jerk settings and acceleration -
@moth4017 what firmware version are you using? Use M115 to check.
-
@dc42 release 3.4.1
the one you did 7 days ago -
@moth4017 we'll need to see your config.g file and your homing files.
-
; Config.g G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Valkyrie 3030 V004" ; set printer name M669 K1 ; core xy ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 D2 ; physical drive 0 goes forwards M569 P0.1 S1 D2 ; physical drive 1 goes forwards M569 P0.2 S1 ; physical drive 2 goes forwards ( blown needs replacing) M569 P0.3 S0 ; physical drive 3 extruder M569 P0.4 S1 D2 ; physical drive 4 goes forwards D3=stealthchop M569 P0.5 S0 D2 ; physical drive 5 goes backwards M569 P0.6 S1 D2 ; physical drive 6 goes forwards M584 X0.1 Y0.0 Z0.4:0.5:0.6 E0.3 ; set drive mapping FL,FR,RC M350 X16 Y16 I1 ; configure microstepping with interpolation M350 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z320.00 E562.00 ; set steps per m M566 X800.00 Y800.00 Z100.00 E100.00 P1 ; set maximum instantaneous speed changes (mm/min) jerk M203 X24000.00 Y24000.00 Z6000.00 E400.00 ; set maximum speeds (mm/min) M201 X2200.00 Y2200.00 Z100.00 E250.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E800 I50 ; set motor currents (mA) and motor idle factor in per cent M84 X Y S20 ; Set idle timeout sec ; Axis Limits M208 S1 X-28 Y-50 Z0 ; set axis minima "Travel Area" M208 S0 X290 Y295 Z405 ; set axis maxima "Travel area" ; Endstops M574 X1 S3 ; configure sensorless endstop, 1 = low end, 2 = high end. s3 = single motor, S4 multipule motors M574 Y2 S3 ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z2 S4 ; configure sensorless endstop for high end on Z, 1 = low end, 2 = high end. S4 multipule motors M671 X-20:300:150 Y0:0:280 S25 ; leadscrews at front left,front right, rear Center s= max correction factor must be in same order as M584 M558 P8 C"!io3.in" H10 F8000 T8000 R0 A2 S0.05 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 Z0.9 ; set Z probe trigger value, offset and trigger height bigger the posative number the closer to the bed G31 P500 X27 Y-15 ; set x,y trigger value, offset and trigger height M557 X10:290 Y10:285 S100 ; define mesh grid ; Heaters ;Bed M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed T °C" ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"out0" T0 Q10 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 R0.838 K0.331:0.000 D3.08 E1.35 S0.90 B0 ; PDI info for 8mm aluminium bed 700w Heater NTC 100K 3950 M140 H0 ; map heated bed to heater 0 M143 H0 S130 ; set temperature limit for heater 0 to max C ;extruder M308 S1 P"temp1" Y"pt1000" A"Extruder T °C" ; configure sensor 1 as thermistor on pin e0temp (104gt2) M950 H1 C"out1" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 R3.558 K0.357:0.000 D9.14 E1.35 S1.00 B0 V23.8 ; disable bang-bang mode for heater and set PWM limit M143 H1 S320 ; set temperature limit for heater 1 to max C ;Chamber M308 S2 P"temp2" Y"thermistor" T100000 B4267 A"Chamber T °C" ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out5" T2 ; create chamber heater output on 1.out0 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit M141 H2 ; map chamber to heater 2 M143 H2 S100 ; set temperature limit for heater 2 to 280C M308 S10 Y"mcu-temp" A"MCU" ; defines sensor 10 as MCU temperature sensor M308 S11 Y"drivers" A"Duet stepper drivers" ; defines sensor 11 as stepper driver temperature sensor G1 H1 Z-0.2 F3000 ; Fans M950 F0 C"out4" Q250 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 C"Part Fan" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out3" Q250 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T35 C"Extruder Fan" ; set fan 1 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 0C T0 ; Custom settings are not defined M98 P"/macros/home_max_Z" ;External Buttons M950 J1 C"!io2.in" ;config input pin switch NO connected to io2 and Gnd M581 P1 T0 C0 ;T0 = emergency stop on trigger; T1 = pause print; T{N} = runs the macro "sys/trigger{N}.g", rising edge S1 falling edge S0 ;M581 P1 T4 c0 ;run a macro trigger4.g M582 T0 ; Check External Trigger
; homex.g echo "start" M569 P0.0 ; Check status in console M569 P0.1 ; Check status in console G91 ; relative positioning M569 P0.0 S1 D3 V10 ; set to stealth chop M569 P0.1 S1 D3 V10 ; set to stealth chop M915 P0.0 S30 F0 R1 H200 ; Configure Z-Axis Stall Detection M915 P0.1 S30 F0 R1 H200 ; Configure Z-Axis Stall Detection echo "stall detection setup" M17 X Y ; Check status in console G1 P140 ;pause to allow the drivers to characterise the motor G1 H1 X-0.2 F3000 ; move a little for cal of sensorless homing / not stalled G1 H1 Y-0.2 F3000 ; move a little for cal of sensorless homing / not stalle echo "lower motor current" M913 X70 Y70 ; Lower motor current % G4 P150 ; wait 150ms M574 X1 Y2 S3 ; Configure Z-Axis stall detection homing M569 P0.0 ; Check status in console M569 P0.1 ; Check status in console echo "home x" G1 H1 X-350 F6000 G1 H2 X10 Y10 G1 H1 X-350 F6000 ; Home Z-Axis actuators independently M569 P0.0 ; Check status in console M569 P0.1 ; Check status in console G90 ; absolute positioning G1 X150 F6000 ; move to center of bed ;revert back echo "after revert back" M913 X100 Y100 ; Reset motor current % M569 P0.0 S1 D2 ; reset motors back to spread cycle, M569 P0.1 S1 D2 ; reset motors back to spread cycle, M569 P0.0 ; Check status in console M569 P0.1 ; Check status in console
;homey.g echo "Home Y" M569 P0.0 ; check status in console Y M569 P0.1 ; check status in console X G91 ; Relative positioning M569 P0.0 S1 D3 V10 ; set to stelth chop M569 P0.1 S1 D3 V10 ; set to stelth chop M915 P0.0 S10 F0 R1 H200 ; Configure x-Axis Stall Detection M915 P0.1 S10 F0 R1 H200 ; Configure x-Axis Stall Detection echo "stall detection setup" M17 X Y G1 P140 G1 H1 X-0.5 F3000 ; move a little for cal of sensorless homing / not stalled G1 H1 Y-0.5 F3000 ; move a little for cal of sensorless homing / not stalled echo "lower motor current" M913 X70 Y70 ; Lower motor current % G4 P150 M574 X1 Y2 S3 ; Configure Z-Axis stall detection homing M569 P0.0 ; check status in console M569 P0.1 ; check status in console echo "Home Y" G1 H1 Y350 F6000 G1 H2 X-10 Y10 G1 H1 Y350 F6000 ; Home Z-Axis actuators independently M569 P0.0 ; check status in console M569 P0.1 ; check status in console G90 ; absolute positioning G1 Y150 F6000 ; move to center of bed ;revert back echo "after revert back" M913 X100 Y100 ; Reset motor current M569 P0.0 S1 D2 ; reset motors back to spread cycle, M569 P0.1 S1 D2 ; reset motors back to spread cycle, M569 P0.0 ; check status in console M569 P0.1 ; check status in console
and this is the one thats causing the issues
; home_max_Z echo "start home max Z" M122 ;M569 P0.4 ; Check status in console ;M569 P0.5 ;M569 P0.6 G91 ; relative positioning M569 P0.4 S1 D3 V10 ; set to stelth chop M569 P0.5 S0 D3 V10 ; set to stelth chop M569 P0.6 S1 D3 V10 ; set to stelth chop M915 P0.4 S2 F0 R1 H400 ; Configure Z-Axis Stall Detection M915 P0.5 S2 F0 R1 H400 ; Configure Z-Axis Stall Detection M915 P0.6 S2 F0 R1 H400 ; Configure Z-Axis Stall Detection echo "diag before stall detection setup" G1 P50 echo "stall detection setup" M17 Z ;energise a motor for stealthChop tuning G1 P240 ; pause to allow the drivers to characterise the motor G1 H1 Z-2.4 F6000 ; move a little for cal of sensorless homing / not stalled echo "after stall detection setup" ;M569 P0.4 ; Check status in console ;M569 P0.5 ;M569 P0.6 echo "lower motor current" M913 Z80 ; Lower motor current % M566 Z15.00 ;jerk M201 Z50.00 ; set accelerations (mm/s^2) G4 P150 ;wait time ms M574 Z2 S4 ; Configure Z-Axis stall detection homing ;M569 P0.4 ; Check status in console ;M569 P0.5 ; Check status in console ;M569 P0.6 ; Check status in console echo "home max z" G1 H1 Z350 F3000 ; Home Z-Axis actuators independently G92 Z300 ; set a Z height ;M569 P0.4 ; Check status in console ;M569 P0.5 ; Check status in console ;M569 P0.6 ; Check status in console G90 ; absolute positioning G4 P300 ;revert back echo "after revert back" M913 Z100 ; Reset motor current M569 P0.4 S1 D2 V2000 ; reset motors back to spread cycle, M569 P0.5 S0 D2 V2000 ; reset motors back to spread cycle, M569 P0.6 S1 D2 V2000 ; reset motors back to spread cycle, ;M569 P0.4 ; Check status in console ;M569 P0.5 ; Check status in console ;M569 P0.6 ; Check status in console M84 ; turn off motors echo "The bed has landed"
-
This post is deleted! -
@Arnold_R_Clark no, you are absolutely right. Simple microswitches are far superior to sensorless homing in ease of configuration, repeatability, and reliability. I have so far spent more time dealing with weird behavior of the sensorless homing setup I am running purely to be able to show how it would work for those that insist, than it would have been to order microswitches, wait a week for them to arrive, and fitting them -- including the wait time I guess.
-
@arnold_r_clark hi I do agree with you, i had 3 micro switches on the z axis but I needed the inputs for other functions and as the x an y axis work fine 100 % after the first homing , I thought it was going to become an easy exercise..... yes I could get an extension board but progress of stepper drivers and software can be archived . I'm not one to give up so I have persevered for 3 versions of software and a lot of reading and testing I'm sure at some point it will be as reliable as the X and Y. Wish me luck and a few more beers ..
-
The thing is I am running stalldetect homing on all 5 axis on the same printer flawlessly. I mean its bonkers! The difference is I run the Duet 2 wifi + Duex 5 as is TMC 2660 drivers. I still find it strange that the TMC 2209 drivers act so different
-
The 2660s do StallGuard2 in SpreadCycle, the 2209s do StallGuard4 in StealthChop. They work differently, so it's not a super big surprise that they need specific tuning.
-
hi any thoughts on how i can track the homing issues ?
-
-
No more Gurus out there playing with the Duet 3 mini5 tmc2209
-
@moth4017 Guru meditation …
-
@infiniteloop tried for 6 months ... its not working . but ever hopeful
-
@moth4017
this is my config and it works nice; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Mon May 02 2022 10:42:59 GMT+0200 (Mitteleuropäische Sommerzeit) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Bear 2.1 Duet3d mini5+" ; set printer name M918 P1 E4 F2000000 ; configure direct-connect display ; Network M552 P192.168.178.148 S1 ; enable network and set IP address M553 P255.255.255.0 ; set netmask M554 P192.168.178.1 ; set gateway M586 P0 S1 C"*" ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 D3 V100 ; x physical drive 0.0 goes forwards M569 P0.1 S1 D3 V100 ; y physical drive 0.1 goes forwards ;M569 P0.0 S0 D3 V40 ; x physical drive 0.0 goes forwards ;M569 P0.1 S1 D3 V40 ; y physical drive 0.1 goes forwards M569 P0.2 S0 D3 V0 ; z1 physical drive 0.2 goes forwards M569 P0.3 S0 D3 V0 ; z2 physical drive 0.3 goes forwards M569 P0.4 S1 D3 ; e physical drive 0.4 goes forwards was d2 M584 X0.0 Y0.1 Z0.2:0.3 E0.4 ; set drive mapping ; z axis compensation M671 X-36.5:289.3 Y105:105 S1.75 M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X100.00 Y100.00 Z400.00 E398.00 ; set steps per mm ;M566 X360.0 Y360.0 Z360.0 E360.0 ; set maximum instantaneous speed changes (mm/min) Worked with vibrations ;M566 X360.0 Y360.0 Z360.0 E360.0 ; set maximum instantaneous speed changes (mm/min) M566 X900.0 Y900.0 Z60.0 E3000.0 P1 ; set maximum instantaneous speed changes (mm/min) ;M566 X900 Y900 Z60 E3000 P1 M203 X9000.00 Y9000.00 Z1800.00 E4800.00 ; set maximum speeds (mm/min) ;M203 X15000.00 Y15000.00 Z1800.00 E4800.00 ; set maximum speeds (mm/min) M201 X2500.00 Y2500.00 Z100.00 E10000.00 ; set accelerations (mm/s^2) ;M201 X8000.00 Y8000.00 Z100.00 E10000.00 ; set accelerations (mm/s^2) M203 X9000 Y9000 Z600 E20000 ; Sets the maximum feedrates that your machine can do in mm/min ;M203 X15000 Y15000 Z600 E20000 ; Sets the maximum feedrates that your machine can do in mm/min ;M566 X360.0 Y360.0 Z360.0 E360.0 ; set maximum instantaneous speed changes (mm/min) ;M566 X520.0 Y520.0 Z360.0 E360.0 ; set maximum instantaneous speed changes (mm/min) ;M203 X12000.00 Y12000.00 Z1800.00 E4800.00 ; set maximum speeds (mm/min) ;M201 X2500.00 Y2500.00 Z100.00 E10000.00 ; set accelerations (mm/s^2) ;M201 X3500.00 Y3500.00 Z250.00 E10000.00 ;M201 X4500.00 Y4500.00 Z250.00 E10000.00 ;M906 X920 Y990 Z800 E1050 I100 ; set motor currents (mA) and motor idle factor in per cent M906 X920 Y1050 Z800 E1050 I100 ; set motor currents (mA) and motor idle factor in per cent M564 H0 ; allow unhomed movement M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y-4 Z0 S1 ; set axis minima M208 X250 Y210 Z200 S0 ; set axis maxima ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S2 ; configure Z-probe endstop for low end on Z M915 X S30 H150 R0 ;M915 Y S30 H150 R0 M915 Y S65 H150 R0 ; Z-Probe ;M558 P1 C"io3.in+io3.out" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds ;G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height ;M557 X15:215 Y11:195 S20 ; define mesh grid ; Z-Probe PINDA M574 Z1 S2 ; Above at EndstopsSet endstops controlled by probe ;M558 P5 C"io3.in" I1 H0.7 F1000 T6000 A20 S0.005 ; PINDA M558 P5 C"io3.in" I1 H1.0 F1000 T8000 A20 S0.005 ; PINDA H dive height old M558 P5 C"io3.in" I1 H1.4 F1000 T8000 A20 S0.005 ; PINDA H dive height ;M558 P5 C"io3.in" I1 H1 F1000 T6000 A20 ; PINDA ;M558 P5 C"io3.in" I1 H1.5 F600 T8000 A20 S0.03 ; PINDA M308 S2 P"temp2" A"PINDA" Y"thermistor" T100000 B3950 ;G31 P1000 X23 Y5 Z0.837 ; PEI Sheet Offset C0.0010 S20 H2 original ;G31 P1000 X23 Y5 Z0.870 ; PEI Sheet Offset C0.0010 S20 H2 ;G31 P1000 X23 Y5 Z0.855 ; PEI Sheet Offset C0.0010 S20 H2 ;G31 P1000 X23 Y5 Z1.315 ; Textured Sheet Offset ;G31 P500 X23 Y5 Z0.630 ;trigger height Octoprint sheet ;G31 P1000 X23 Y12 Z1.130 ;trigger height Octoprint sheet ;G31 P1000 X23 Y5 Z0.738 S21 H2 T0.02 ; Nozzle offset - Powder Coated Sheet with temperature compensation (0.02mm/°C) ;G31 P1000 X23 Y5 Z1.130 S21 H2 T0.02 ; Nozzle offset - Zirflex. Powder Coated Sheet with temperature compensation (0.02mm/°C) ;G31 P1000 X23 Y5 Z1.06 S21 H2 T0.02 ; Nozzle offset - Satin Powder Coated Sheet with temperature compensation (0.02mm/°C) ;M557 X24:221 Y10:195 P3 ; Define mesh grid M557 X36:244 Y14:208 P5 ; Define mesh grid ;M557 X12:220 Y5:197 P3 ; Define mesh grid ; ##### Z-Probe Settings for PINDA 2 ;M558 P5 C"io2.in" I1 H1 F1000 T6000 A3 ; Prusa PindaV2 Endstop ;M308 S2 P"temp2" A"Pinda V2" Y"thermistor" T100000 B3950 ; Prusa PindaV2 Thermistor M376 H5 ; Fade height 5mm ; Heaters M308 S0 P"temp0" A"MK52" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 R0.22 ; disable bang-bang mode for the bed heater and set PWM limit 21s for 5 degrees M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" A"Volcano" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 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 M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out5" Q100 ; create fan 0 on pin out3 and set its frequency M106 P0 C"Part Cooling" S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 C"Revo Fan" S255 H1 T45 ; set fan 1 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 0C ; Custom settings are not defined M556 S100 X0,586 ; Miscellaneous M501 ; load saved parameters from non-volatile memory T0 ; select first tool ; Default config.g template for DuetPi ; Replace this with a proper configuration file (e.g from https://configtool.reprapfirmware.org) ; Display initial welcome message ;M291 P"Please go to <a href=""https://www.duet3d.com/StartHere"" target=""_blank"">this</a> page for further instructions on how to set it up." R"Welcome to your new Duet 3!" S1 T0 M98 P"mksmini12864.g" M98 P"/sys/surface.g" ;G4 S30 ;M999
-
@danielkrah
Hi are you using sensor less homing on your Z access? -
@moth4017 oh you're asking on sensorless for Z? That's quite likely not going to work since unless you're taking special precautions a) you can't move the Z fast enough b) your print head has to be super rigid so it doesn't just flex when it hits the print bed c) you'll need a rigid print bed that doesn't care about getting hit with the weight of the full gantry.
And even then, the lack of precision on sensorless homing really doesn't make it suitable for Z.