Tuning of Sensorless Homing



  • Hi All

    I am trying to set up the sensor-less homing on my Duet 2/Duex5 controlled printer and am so far have had some issues in that the bed drives into the ends of the Z-Axis assemblies and skips steps but does not sense them.

    I am wanting to use the sensor-less homing to do a 'gross' homing of the ball-screw driven Z-Axis actuators which are prone to falling under the weight of the bed when the motors are idled which leaves the bed on a bad angle. This does not cause any damage as the bed is mounted with ball and socket joints. After this gross homing is completed, the printer will then use the BL-Touch probe and the independently driven Z-Axis actuators to to the more accurate bed levelling (G32).

    I have setup a testing macro that is essentially a modified 'homeall' sequence. The G32 would be added in later.

    G91                                  ; relative positioning
    G1 Z10 F6000 S2                      ; lift Z relative to current position
    G1 S1 X480 Y475 F9000                ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 X-5 Y-5 F6000                     ; go back a few mm
    G1 S1 X480 Y475 F360                 ; move slowly to X and Y axis endstops once more (second pass)
    M400                                                   ; make sure everything has stopped before we make changes
    M915 P2:5:6 S-30 F0 H250 R0                            ; Configure Z-Axis Stall Detection
    M584 X0 Y1:7 Z2 U5 V6 E3 P5                            ; Separate Z-Axis Lead screws and drive independently
    M913 Z50 U50 V50                                       ; Lower motor current by 50%
    M574 Z1 U1 V1 S3                                       ; Configure Z-Axis stall detection homing
    G91                                                    ; relative positioning
    G1 S1 Z-650 U-650 V-650 F500                           ; Home Z-Axis actuators independently
    M400                                                   ; make sure everything has stopped before we make changes
    M913 Z100 U100 V100                                    ; Reset motor current
    M584 X0 Y1:7 Z2:5:6 U5 V6 E3 P3                        ; Reset drive mapping
    M574 Z1 S2                                             ; Reset Z-Axis to be controlled by probe
    G90                                  ; absolute positioning
    G1 Z10 F6000 S2                      ; lift Z relative to current position
    G1 X220 Y197.5 F9000                 ; go to first bed probe point
    M558 F400                            ; adjust first probe speed
    G30                                  ; home Z by probing the bed
    M558 F120                            ; reset probe speed
    G30                                  ; home Z by probing the bed
    

    My config configures the rest of the U and the V axes:

    ; Drives
    M569 P0 S0                                           ; X drive goes backwards
    M569 P1 S0                                           ; Y1 drive goes backwards
    M569 P2 S0                                           ; Z1 drive goes backwards
    M569 P3 S1                                           ; E0 drive goes forwards
    M569 P5 S0                                           ; Z2 drive goes backwards
    M569 P6 S0                                           ; Z3 drive goes backwards
    M569 P7 S1                                           ; Y2 drive goes forwards
    
    M584 X0 Y1:7 Z2:5:6 U5 V6 E3 P3                      ; Apply custom drive mapping, U is a dummy Axis and P3 is setting the number of visible axes
    M671 X222:-10:520 Y581:25:25 S10.0                   ; leadscrews at rear middle, front left and rear right
    
    M350 X16 Y16 Z16 U16 V16 E16 I1                                 ; Configure microstepping with interpolation
    M92 X160 Y80 Z320.00 U320.00 V320.00 E946.00                    ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 U12.00 V12.00 E120.00               ; Set maximum instantaneous speed changes (mm/min)
    M203 X10000.00 Y10000.00 Z400.00 U400.00 V400.00 E1200.00       ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z20.00 U20.00 V20.00 E250.00             ; Set accelerations (mm/s^2)
    M906 X1000.00 Y1500.00 Z1500.00 U1500.00 V1500.00 E1200.00 I100 ; Set motor currents (mA) and motor idle factor in per cent
    
    M84 S0                                                          ; Set idle timeout (0 is disable a time out, always on ) 
    
    ; Axis Limits
    M208 X0 Y0 Z-0.5 U-0.5 U-0.5 S1                      ; Set axis minima
    M208 X470 Y465 Z650 U650 V650 S0                     ; Set axis maxima
    
    ; Endstops
    M574 X2 Y2 S1                                        ; Set active high endstops
    
    ; Z-Probe
    M574 Z1 S2                                           ; Set endstops controlled by probe
    M307 H3 A-1 C-1 D-1                                  ; Disable heater on PWM channel for BLTouch
    M558 P9 H5 F120 T9000 X0 Y0 Z1                       ; Set Z probe type to bltouch and the dive height + speeds
    G31 P500 X25.4 Y0.2 Z0.847                           ; Set Z probe trigger value, offset and trigger height
    M557 X25.4:435 Y10.2:440 P5                          ; Define mesh grid
    

    Any help would be greatly appreciated



  • Is anyone able to weigh in on this issue?


  • Moderator

    What is the lead of your ball screws?

    Stall detection on the Z axis is difficult even under ideal circumstances.

    There needs to be enough back EMF to trigger the stall so the dive speed needs to be frighteningly high.

    You may have better luck with RRF3 as it has an additional multi motor stall option.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3

    Try lowering the motor current even further than 50%. Lower is as low as you can go and still get reliable movement.

    Increase the dive speed from 500mm/min you have now.

    And play with the sensitivity.



  • @BenNorton01 said in Tuning of Sensorless Homing:

    After this gross homing is completed, the printer will then use the BL-Touch probe

    Since you have BLTouch, have you considered using it for Z homing?

    You can still do dual speed homing since the BLTouch extends and is thus triggered before the bed hits the nozzle.


Log in to reply