Solved: Homing issue with X & Y after upgrading to RRF3



  • After upgrading my Duet2Wifi to RRF3, the homing of X & Y seem to skip a few lines in the homex.g & homey.g.

    ; homex.g
    ; called to home the X axis
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Feb 29 2020 02:47:10 GMT+0100 (Central European Standard Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-405 F1800 *; move quickly to X axis endstop and stop there (first pass)*
    G1 H2 X5 F6000 ; go back a few mm
    G1 H1 X-405 F360 *; move slowly to X axis endstop once more (second pass)*
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    The lines with strikethrough above are the steps that seem to be skipped, resulting in the homing process moving Z up 5mm, X +5mm, and Z down 5mm.

    When I issue the lines induvidually through console, these lines do not move the print head at all, but I can hear the motor going out of idle mode:
    G1 H1 X-405 F1800
    G1 H1 X-405 F360

    I verified that the XY can move backwards after the failed homing by moving XY forward 10mm, then back 10mm again.

    Then I tried to swap out H1 with H2 in the G1 command, which sure enough moved the homing procedure the way it should, although naturally ignored the endstop;
    G1 H2 X-405 F360

    This leaves me a bit confused. Anyone got any idea why it is not moving at all with G1 H1?

    Video of homex.g & homey.g:
    https://1drv.ms/v/s!Akm99K6I5YFdtz-XHEBY4wdwNGfn?e=ytUjW4
    Video of 'G1 H1 X-405 F360':
    https://1drv.ms/v/s!Akm99K6I5YFdt0DJlV3X4WiDtfgq?e=cxEwka



  • How are your endstops or probes defined?



  • ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Feb 29 2020 02:47:10 GMT+0100 (Central European Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Tronds Printer" ; set printer name

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S1 ; enable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X81.35 Y80.95 Z400.00 E804.76 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E800 I10 ; set motor currents (mA) and motor idle factor in per cent
    M84 S1 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X400 Y400 Z500 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F800 T2000 A10 R0.75 S0.02 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X38 Y-6 Z2.15 ; set Z probe trigger value, offset and trigger height
    M557 X20:380 Y20:380 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S70 ; set temperature limit for heater 0 to 70C
    M307 H0 A215.5 C660 D10 S1.00 V11.6 B0 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M303 H0 S70
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C (105sec til 220)
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan1" Q500 ; create fan 0 on pin fan1 and set its frequency
    M106 P0 S1 H1 T45 ; set fan 0 value. Thermostatic control is turned on
    M950 F1 C"fan0" Q500 ; create fan 1 on pin fan0 and set its frequency
    M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off

    ; 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
    M572 D0 S0.45 ; Pressure advance causes the extruder drive position to be advanced or retarded during printing moves by an additional amount (0.8% of tube (56cm) = 0.448 proportional to the rate of extrusion. At the end of a move when the extrusion rate is decreasing, this may result in the extruder drive moving backwards (i.e. retracting). Therefore, if you enable this feature, you may need to reduce the amount of retraction you use in your slicing program to avoid over-retraction.

    ; 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
    T0 ; select first tool



  • @trondve said in Homing issue with X & Y after upgrading to RRF3:

    M574 Z1 S2 ; configure Z-probe endstop for low end on Z
    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F800 T2000 A10 R0.75 S0.02 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X38 Y-6 Z2.15 ; set Z probe trigger value, offset and trigger height

    You generally do not want an endstop AND a probe on the same axis. Get rid of the M574 Z1 (although, without a pin, it may be doing nothing...).

    The real fix will be to use G30. I believe that G30 works much better than G1 Hx commands, with a BLt.

    My /sys/homez.g:

    ; Home Z Axis
    
    G90 G1 X150 Y150 F10000   ; Move to the center of the bed
    
    M558 F500                ; Set the probing speed
    G30
    M558 F50                 ; Set a slower probing speed
    G30
    

    my /sys/deployprobe.g:

    M280 P0 S10
    

    And /sys/retractprobe.g:

    M280 P0 S90
    


  • I figured they would be normally open, according to this picture:
    https://1drv.ms/u/s!Akm99K6I5YFdt0GSyHfKQ8xba9T-?e=PumwLP
    But then I keep getting error: G28 X - Failed to enable endstop

    So now I gave it a shot with normally closed, which does not result in any error. but still doesnt work.



  • @Danal My Z works fine, and Z only has the probe, not an endstop switch. But I'll look into your recommended changes.

    X & Y is not homing correctly however.



  • @trondve said in Homing issue with X & Y after upgrading to RRF3:

    @Danal My Z works fine, and Z only has the probe, not an endstop switch. But I'll look into your recommended changes.

    X & Y is not homing correctly however.

    Ah, OK, I missed that in your OP. Let me look some more at your config.



  • @trondve said in Homing issue with X & Y after upgrading to RRF3:

    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop

    Try

    M574 X1 S1 P"^xstop" ; configure active-high endstop for low end on X via pin xstop

    (and on Y as well).



  • Also, you can push the switch with your finger, and watch it change on the "Machine Specific" screen in the web interface. You may need to scroll down, the switches are "lower right" depending on your exact screen size.



  • @Danal said in Homing issue with X & Y after upgrading to RRF3:

    Also, you can push the switch with your finger, and watch it change on the "Machine Specific" screen in the web interface. You may need to scroll down, the switches are "lower right" depending on your exact screen size.

    I got them reversed in this config it seems. Triggered says Yes while not pushing it, I assume its supposed to be Normally Open (Active low) as I initially thought..



  • @trondve said in Homing issue with X & Y after upgrading to RRF3:

    @Danal said in Homing issue with X & Y after upgrading to RRF3:

    Also, you can push the switch with your finger, and watch it change on the "Machine Specific" screen in the web interface. You may need to scroll down, the switches are "lower right" depending on your exact screen size.

    I got them reversed in this config it seems. Triggered says Yes while not pushing it, I assume its supposed to be Normally Open (Active low) as I initially thought..

    In that case, add ! at the beginning (with or without ^).

    M574 X1 S1 P"!^xstop"

    Note: You can issue this via the web console, and play around with the combinations. Put it in config.g when you have it like you want it. (Avoids a bunch of resets while experimenting).



  • And, you generally want the switches physically wired as "normally closed" so that a broken wire or loose connector makes the switch look triggered. This stops the home move before it starts, and avoids a machine crash.



  • M574 X1 S1 P"!^xstop"
    M574 Y1 S1 P"!^ystop"

    This worked well! Now it does indeed perform a full homing procedure without issues.

    @Danal said in Homing issue with X & Y after upgrading to RRF3:

    And, you generally want the switches physically wired as "normally closed" so that a broken wire or loose connector makes the switch look triggered. This stops the home move before it starts, and avoids a machine crash.

    And I will definately do this, as I have had some loose connectors in "Normally Open mode" resulting in the print head hammering the side.
    Great tips! And tank you a ton for your help!


Log in to reply