Homing sequence - Z axis first, then X and Y [SOLVED]
-
@doctrucker : correct, my z limit switch is on max, also the bed is down when the switch is activated
-
@veti : in the homeall.g the z-homing procedure is on top - that works fine …
… but, if I press after a the reset the button "Home Z" I get the error message: "Error: Must home These axes: XY before homing These: Z"
-
@phaedrux : As DocTrucker has already correctly suspected i will move the bed down before any other moves, to avoid part collision
-
If you want to bypass the warning you can force the current position to an arbitary position by doing G92 X[any number] Y[any number] Z[any number] then doing the usual drives onto limit switch commands.
-
@thwe Use G1 S2 Zxx to move the Z axis a bit before homing the other two axis. See:
https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move
Specifically:
G1 Xnnn Ynnn Znnn S2 Ignore endstops while moving. Also ignore if axis has not been homed. On Delta and CoreXY, axis letters refer to individual towers.
You will see this in the documentation that was already linked:
https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_ZG91 ; relative mode G1 S2 Z4 F200 ; raise head 4mm to ensure it is above the Z probe trigger height G90 ; back to absolute mode
-
@thwe said in Homing sequence - Z axis first, then X and Y:
@veti : in the homeall.g the z-homing procedure is on top - that works fine …
… but, if I press after a the reset the button "Home Z" I get the error message: "Error: Must home These axes: XY before homing These: Z"
Check that your homeall.g file is set up to home Z using a G1 S1 Z command. That message should only be produced if you are using a Z probe to home Z. https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Homing_Z
-
@dc42 : There is a "G1 S1 Zxxx" command in my homez.g - see my file:
*; homez.g
; called to home the Z axis
;
; Drive 0 as X
; Drive 1 as Y
; Drive 2 as Z -> 1st Z-motor (left one, viewed from ahead) which is normal Z
; Drive 3 as U -> 2nd Z-motor (right one, viewed from ahead) which is now U
; Drive 4 as ExtruderG91 ; relative positioning
M584 Z2 U3 P4 ; Split Z into 2 (Z+U)
G1 S1 Z999 U999 F800 ; Move the bed down in the Z direction. S1 to stop if endstop is triggered
G1 S2 Z-3 U-3 F800 ; Move the bed up 3mm in the -Z direction, ignore if axis are not homed
G1 S1 Z5 U5 F200 ; Move slowly in the +Z direction again to stop exactly at the homing switch
M400 ; Wait for current moves to finishG4 P100
G1 S2 Z0.00 U0.04 F200 ; Correction of a mounting suitability from the limit switches
G4 P100M584 Z2:3 P3 ; Join U to Z again
G92 Z290 ; set position of Z relativ to the bed (!!must be adjusted here!!)
G90 ; Back to absolute mode
G1 Z280 F1000 ; Move bed to Z Position*and here is my homeall.g
*M98 Phomez.g ; Z homing
M98 Phomex.g ; X homing
M98 Phomey.g ; Y homing
G90
G1 X150 Y150 Z280 F1800 ; Goto Zero-Position*In my understanding (Attention: i am a beginner ) it should work so?
Again, if I click the button "Home all" in the DWC, it works fine - but I first click the button "Home Z" I get the already posted error message
OK, the difference of the buttons after a restart: "Home All" is highlighted in blue, the others in orange.
-
I've just tested homing Z before XY on a Cartesian printer, and it's working for me if I don't try to do any XY movements in homez.g. This is with my current firmware build that I hope will soon be the 2.02RC4 release.
What the code implements is that if there is a Z probe configured and either the Z endstop type is set to "Z probe" or the Z endstop position is set to "none", then X and Y must be homed before Z. I don't think this has changed since the 2.01 release that you are using, but I could be wrong.
Please post your config.g file.
-
My config.g:
############## Configuration file for Duet WiFi ##############
; ############## executed by the firmware on start-up ##############
;
; Firmware Electronics: 1.04
; Firmware Version: 2.01 (RTOS), 2018-07-26b2
; WiFi-Server: 1.21
; Web-Interface: 1.22.3
;
; Drive 0 as X
; Drive 1 as Y
; Drive 2 as Z -> 1st Z-motor (left one, viewed from ahead) which is normal Z
; Drive 3 as U -> 2nd Z-motor (right one, viewd from ahead) which is now U
; Drive 4 as Extruder; ############## General preferences ##############
M667 S1 ; Switch to CoreXY mode
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M555 P1 ; Set firmware compatibility to look like RepRapFirmare; ############## Network - Connect to a wifinet ##############
M552 S0 ; Disable network
M550 DUTH-PULLEYX ; Set machine name
M552 S1 ; Enable network
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; ############## Drives ##############
M569 P0 S1 ; Drive 0 -> X -> goes forwards
M569 P1 S0 ; Drive 1 -> Y -> goes backwards
M569 P2 S0 ; Drive 2 -> Z1 -> goes forwards
M569 P3 S0 ; Drive 3 -> Z2 (U) -> goes forwards
M569 P4 S1 ; Drive 4 -> EXTRUDER -> goes forwards; ############## Dual Z-Drives ##############
M584 X0 Y1 Z2:3 U3 E4 P3 ; Driver 0=X, 1=Y, 2+3=Z, 3=U, 4=Extruder, 3 axis visible; ############## Drives setting ##############
M350 X16 Y16 Z16 U16 I1 ; Configure microstepping with interpolation
M350 E16 I1 ; Configure microstepping with interpolationM92 X66.667 Y66.667 Z800 U800 ; Set axis steps per mm
M92 E408 ; Set extruder steps per mmM566 X1200 Y1200 Z120 U120 E120 ; Set maximum instantaneous speed changes/jerk (mm/min)
M203 X12000 Y12000 Z4500 U4500 E1200 ; Set maximum speeds (mm/min)
M201 X450 Y450 Z200 U200 E200 ; Set accelerations (mm/s^2)
M906 X1900 Y1900 Z1900 U1900 E1500 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; ############## Axis Limits ##############
M208 X0.00 Y-25.00 Z0 S1 ; Set axis S1 = minimum
M208 X295.00 Y310.00 Z290.00 S0 ; Set axis S0 = maximum; ############## Endstops ##############
M574 Z0 U0 X1 Y1 S1 ; 1 = low end, 0 = high end, S1 = active high (NC), S0 active low (NO); ############## Z-Probe ##############
M558 P8 I1 H5 R0.3 X0 Y0 Z0 F240 T2000 ; Set Z probe type to unmodulated and the dive height + speeds
G31 X0 Y0 Z-0.1 P100 ; Set Z probe trigger value, offset and trigger height; ############## Define mesh grid ##############
M557 X10:290 Y10:290 S70 ; Define mesh grid; ############## Heaters ###
M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
M307 H0 A145.0 C600.0 D0.85 B0 ; Set heating process parameters for heater 0
M143 H0 S120 ; Set temperature limit for heater 0 to 120C
M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
M307 H1 A612.5 C241.5 D8.00 B0 ; Set heating process parameters for heater 1
M143 H1 S280 ; Set temperature limit for heater 1 to 280C; ############## Fans ##############
M106 P0 S0.8 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency, Thermostat control off
M106 P1 S0.5 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency, Thermostat control on
M106 P2 S0.5 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency, Thermostat control on; ############## Tools ##############
M563 P0 D0 H1 ; 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; ############## Automatic power saving ##############
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss; ############## Custom settings ##############
M81 ; 24VDC power supply OFF at starting
M912 P0 S-1.9 ; Calibrating the CPU temperature; ############## Miscellaneous##############
M501 ; Load saved parameters from non-volatile memory; END OF FILE
.
.
.by the way - here is a video of my printer:
my corexy with 2 endstops on t axis -
and something else - a piezo orion for bed leveling is also planned, already available but not yet installed ..
in a test setup he has worked with the above config.g
-
The M574 command in your config.g file is wrong. You have it set to "no endstop", which is why the firmware is asking you to home X and Y first. See https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration.
-
oh no, the article mentioned about setting up the endstops with m574, I've read several times ... and yet not correctly implemented ...
the solution of the problem:
M574 Z2 U2 X1 Y1 S1
; for my documentation
; Xn / Yn / Zn / Un -> endstop position
; ... n = 0 -> no endstop
; ... n = 1 -> at low end (min endstop)
; ... n = 2 -> at high end (max endstop)
; Sn -> endstop type
; ... n = 1 -> active high (NC), default
; ... n = 0 -> active low-high (NO)Thanks for your help