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 positioningThe 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 F360I 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 F360This 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 heightYou 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 endstopSo 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! -
"!^xstop" is actually by configuring via config tool is "(active-low, pull-up)" options.
-
@VladimirK vladimir is this you from 360 videos??
hey if so youve been great for me to lean the ropes i could use some help with the set up of my modded ender5 plus on duet 2 with 120volt bed and 420c hot end and a heated chamber later on -
@A Former User said in Solved: Homing issue with X & Y after upgrading to RRF3:
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!Old topic but was relevant to me as a new user how tries to find answers with the outdated wiki.
Anyhow this caught my eye as everywhere NC is recommended. Yes, in general for end stops that is the safe option but with 3d printer we usually have stop just in one end and now as Duet doesn't seem to handle the start state properly during homing, this NC will just cause homing to always succeed and that in could cause the machine to fly full speed to positive end which is much worse than slow homing speed bump to negative end.
I don't know why it doesn't fail the homing, it certainly should as it's not seeing any rising or falling edges of the limit if NC loop is open.
With this functionality, I'd much rather choose the NO.
-
@willmackey said in Solved: Homing issue with X & Y after upgrading to RRF3:
Old topic but was relevant to me as a new user how tries to find answers with the outdated wiki.
Which part is out dated?
-
@phaedrux said in Solved: Homing issue with X & Y after upgrading to RRF3:
@willmackey said in Solved: Homing issue with X & Y after upgrading to RRF3:
Old topic but was relevant to me as a new user how tries to find answers with the outdated wiki.
Which part is out dated?
Just noticed some stuff not matching the reality anymore which as a fresh Duet user caused some head scratching and wasted time going through configs. Didn't keep track of them unfortunately but around this endstop topic atleat:
- Switch status page (I think it was called endstops) in the Machine-specific menu. Wiki still guides there but it no longer exists (some object model browser update is related to this but OMB isn't there either?).
- Whole endstop wiki page only describes two settings (NO / NC) and I guess there only used to be only 2 settings based on YT videos but now there's 4 settings for the endstops and I have no idea how 'active low pull-up' differs from 'active low'. Inputs seem to be pulled-up even without the pull-up selection.
But in general it is really nice to see so comprehensive documentation!