topic_solved Help with sensorless in duet 3 mini 5+
I'm installing a 3 mini 5+ duet and this is my first contact with RRF 3.3. I have other machines with RRF 2.05.
It's a Cartesian printer that I'm still finishing and I'm having trouble getting home without endstop (sensorless) working, on X and Y.
I tried to follow the documentation and tips on the forum but I still can't figure out what I did wrong. Can anyone give me a hand?
Here are my configuration files. Please ignore all the part related to heaters and thermistors, for now I am dedicating myself to finishing moving the shafts. In Z I have 2 independent motors in 0.2 and 0.4. All G32 and G29 operation is correct. My problem is just the sensorless in X and Y, the motors don't stop working even after hitting the side and bottom:
; Configuration file for Duet 3 Mini 5+ (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat Mar 13 2021 18:31:13 GMT+0800 (中国标准时间) ; General preferences M669 K0 G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"AGraber Duet3 Mini 5+" ; set printer name ; Lcd rgb fysect pioneer M918 P2 E2 C50 R6 M150 R150 U150 B255 P55 X2 ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes forwards M569 P0.1 S0 ; physical drive 0.1 goes forwards Y M569 P0.2 S0 ; physical drive 0.2 goes forwards M569 P0.3 S0 ; physical drive 0.3 goes forwards M569 P0.4 S0 ; physical drive 0.4 goes forwards ;DUAL Z M584 X0.0 Y0.1 Z0.2:0.4 E0.3 ;M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M671 X20:200 Y0:0 S3 ; leadscrews at left (connected to Z) and right (connected to E0) of X axis M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z1600:1600 E420 ; set steps per mm M566 X900.00 Y900.00 Z200:200 E120 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z600:600 E1200 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z100:100 E250 ; set accelerations (mm/s^2) M906 X500 Y500 Z800:800 E800 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 X220 Y220 Z200:200 S0 ; set axis maxima ; Endstops M574 X S3 M574 Y S3 ;M915 X R0 F0 ;M915 Y R0 F0 M915 X Y R0 F0 S3 H200 ;main command need for sensorless homing ;M574 X1 S1 P"!io3.in" ; configure active-high endstop for low end on X via pin io0.in ;M574 Y1 S1 P"!io5.in" ; configure active-high endstop for low end on Y via pin io1.in ;M574 Z1 S1 P"!io6.in" ; Z-Probe M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"^io3.in" H5 F120 T6000 A1 R0.2 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X24 Y-2 Z2 ; set Z probe trigger value, offset and trigger height M557 X24:210 Y20:200 P3:3 ; define mesh grid ; Heaters M308 S0 P"temp0" 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 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"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 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 M308 S2 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C ; 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"out4" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off M950 F2 C"out5" Q500 ; create fan 2 on pin out5 and set its frequency M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"out6" Q500 ; create fan 3 on pin out6 and set its frequency M106 P3 S0 H-1 ; set fan 3 value. Thermostatic control is turned off M950 F4 C"40.out0" Q500 M106 P4 S0 H-1 M950 F5 C"io1.out" Q500 M106 P5 S0 H-1 M950 F6 C"io2.out" Q500 M106 P6 S0 H-1 M950 F7 C"io4.out" Q500 M106 P7 S0 H-1 ; Tools M563 P0 D0 H1 F0:1 ; 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 ;M563 P1 D1 H2 F3:2 ; define tool 1 ;G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets ;G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous ;M575 P1 S1 B57600 ; enable support for PanelDue M564 H1 S1
M564 H0 S0; Permite movimentar sem home feito M400 ; wait til stuff stops M574 X1 Y1 S3 ; use stall guard for endstops M913 X45 Y45 ; drop motor currents to 50% G91 ; set relative G1 Z5 F1200 G1 H4 X-240 F1200 ; move forward 250mm, stopping at the endstop G1 X11 F1200; move away from end G92 X0 G1 Z-5 F1200 G90 ; back to absolute positioning M400 ; wait again M913 X100 Y100 ; motor currents back to 100% M564 H1 S1; Não permite movimentar sem home feito
M564 H0 S0; Permite movimentar sem home feito M400 ; wait til stuff stops M574 X1 Y1 S3 ; use stall guard for endstops M913 X50 Y50 ; drop motor currents to 50% M201 X1000 Y1000 ; reduce acceleration on X/Y to stop false triggers M915 P1 S3 R0 F0 H400; Sensitivity 3, don’t take action, don’t filter, 400steps/sec G91 ; set relative G1 Z5 F1200 G1 H4 Y-230 F4000 ; move forward 250mm, stopping at the endstop G1 Y18 F1200; move away from end G92 Y0 G1 Z-5 F1200 G90 ; back to absolute positioning M400 ; wait again M913 X100 Y100 ; motor currents back to 100% M201 X3000 Y3000 ; accel back to original ;M574 X1 Y1 S0 ; set endstops back M564 H1 S1; Não permite movimentar sem home feito
M98 Phomex.g M98 Phomey.g M98 Phomez.g G1 X0 Y0
G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X86 Y112 F4800 ; go to first probe point G30 ; home Z by probing the bed
I appreciate if anyone can help.
fcwilt last edited by
I don't use sensorless homing so I really have little to offer.
However you are using G1 H4 rather than G1 H1.
I have no idea if that would have any bearing on your problem or not.
Is there a reason you are using H4?
Ah, I just switched to the 4 possible values of H in my attempts to get the sensorless to work. He ended up staying there.
fcwilt last edited by
I had already read and verified everything in this post. I still have the same problem with him. I think he didn't solve it either, because I followed every step exactly. The X and motors continue to force after stopping, as if the stall does not work.
I corrected the parameters in config.g:
M574 X1 S3 sets the X axis to low position, and the S value to multiple motor load detection
M574 Y1 S3 sets the Y axis to low position, and the S value to multiple motor load detection
M915 X Y R0 F0 S3 H200 ;main command need for sensorless homing
The tip of configuring M569 with D3 and V40 only made things worse, the engine became even more aggressive.
M915 X Y R0 F0 S3 H200
H200? Is that really what your H value calculated out to? In your first post it's even H400. Your homing speed would have to be really chooching to get up to 400steps per second.
What kind of motors are these? Do you have the specs available?
gloomyandy last edited by
@rodrigormaraujo If you want sensorless homing to work then you are going to need the V40 (or something like it) on your M569 commands. Without it the driver will switch to spreadcycle at a very low speed and stall detection (on the TMC2209 driver) only works when in stealthchop mode. The D3 is just setting explicitly what I think is already the default for the Mini 5+.
I left the default value in the documentation.
Hnnn (optional) Minimum motor full steps per second for stall detection to be considered reliable, default 200
If you want sensorless homing to work then you are going to need the V40 (or something like it) on your M569 commands. Without it the driver will switch to spreadcycle at a very low speed and stall detection (on the TMC2209 driver) only works when in stealthchop mode. The D3 is just setting explicitly what I think is already the default for the Mini 5+.
I put the V40 back without the D3. The behavior remains the same, except that the noise of the engine trying to force it after having already parked the car on the left becomes even louder.
M915 X Y R0 F0 S3 H200 ;main command need for sensorless homing
What happens when you try lower values than S3 in that command?
It doesn't seem to change anything with S-60, S-10, S0, S3...
With S-60 only the engine looks weaker, as if it were using less force, but the behavior is the same.
I don't know if it helps but I'll post a video of what happens.
RodrigoRMaraujo last edited by RodrigoRMaraujo
Gentlemen, I come here to thank you!
I just removed the H parameter from the M915, add S3 and everything worked beautifully! I also left the V40 in the M569 as my friend warned and I increased the homing speed from F1200 to F4000. It is perfect. Thank you very much to all of you!
@rodrigormaraujo thanks for reporting back! I'm glad you got it working.