homex.g makes moves in Y direction but homey.g work fine
-
I have a CoreXY printer that I'm configuring with a Duet board. While my homey.g file works as expected, my homex.g file is not behaving correctly, even though I've used the same approach for both. I don't understand why this is happening.
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.0 on Mon May 27 2024 12:24:16 GMT+0200 (Central European Summer Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"Duet 3" ; set hostname ; Network M552 P192.168.2.1 S1 ; configure Ethernet adapter M553 P255.255.255.0 M586 P0 S1 ; configure HTTP ; Smart Drivers M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Y axis) M569 P0.2 S0 D2 ; driver 0.2 goes forwards (Z axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (extruder 0) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0.0 Y0.1 Z0.2 ; set axis mapping M350 X32 Y32 Z32 I1 ; configure microstepping with interpolation M906 X800 Y800 Z800 ; set axis driver currents M92 X88.8 Y88.8 Z400 ; configure steps per mm M208 X-5:229 Y-5:229 Z-5:255 ; set minimum and maximum axis limits ; Axes - Testing M566 X1200 Y1200 Z300 ; set maximum instantaneous speed changes (mm/min) M203 X4800 Y4800 Z1200 ; set maximum speeds (mm/min) M201 X2000 Y2000 Z300 ; set accelerations (mm/s^2) ; Axes - What should be ;M566 X12000 Y12000 Z300 ; set maximum instantaneous speed changes (mm/min) ;M203 X48000 Y48000 Z1200 ; set maximum speeds (mm/min) ;M201 X20000 Y20000 Z300 ; set accelerations (mm/s^2) ; Extruders M584 E0.3 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E550 ; set extruder driver currents M92 E420 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E28800 ; set maximum speeds (mm/min) M201 E250 ; set accelerations (mm/s^2) ; Kinematics M669 K1 ; configure CoreXY kinematics ; Endstops M574 X2 S3; configure X axis endstop X2 means axis high end S3 stands for sensorless M574 Y2 S3 ; configure Y axis endstop Y1 means axis low end M574 Z2 S3 ; configure sensorless Z axis endstop at high end M915 X S1 R0 F0 ; sensitivity is set up here M915 Y S1 R0 F0 ; sensitivity is set up here M915 Z S-1 R0 F0 ; Sensors M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4036 C7.725999999999999e-8 ; configure sensor #0 M308 S1 P"temp1" Y"thermistor" A"Nozzle" T100000 B4036 C7.725999999999999e-8 ; configure sensor #1 ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S115 A0 ; configure heater monitor #0 for heater #0 M307 H0 R2.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 M950 H1 C"out1" T1 ; create heater #1 M143 H1 P0 T1 C0 S300 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"out3" ; create fan #0 M106 P0 S0 L0 X1 B0.1 ; configure fan #0 M950 F1 C"out4" ; create fan #1 M106 P1 S0 B0.1 H1 T45 ; configure fan #1 M950 F2 C"out7" ; create fan #2 / back fan M106 P2 S0 ; Tools M563 P0 D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.5.0 on Mon May 27 2024 12:24:16 GMT+0200 (Central European Summer Time) M400 ; Wait for current moves to finish M913 X70 Y70 ; drop motor current to 70% M400 G91 ; relative positioning ;G1 H2 Z10 F12000 ; lift Z relative to current position G1 H1 X320.5 F10000 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X-20 F12000 ; go back a few mm G1 H1 X320.5 F7000 ; move slowly to X axis endstop once more (second pass) ;G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 M913 X100 Y100 ; return current to 100% M400
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v3.5.0 on Mon May 27 2024 12:24:16 GMT+0200 (Central European Summer Time) M400 ; Wait for current moves to finish M913 X50 Y50 ; drop motor current to 70% M400 G91 ; relative positioning ;G1 H2 Z10 F12000 ; lift Z relative to current position ;G1 H1 Y320.5 F10000 ; move quickly to Y axis endstop and stop there (first pass) G1 H1 Y320.5 F10000 ; Testing ;G1 H2 Y5 F12000 ; go back a few mm G1 H2 Y-15 F12000 ; Test G1 H1 Y320.5 F7000 ; test ;G1 H1 Y320.5 F7000 ; move slowly to Y axis endstop once more (second pass) ;G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 M913 X100 Y100 ; return current to 100% M400
-
@qlqlo Most likely, it's the G1 H2 command at line 12 in your homex.g:
G1 H2 X-20 F12000 ; go back a few mm
This causes a diagonal move, as you're telling it to move the 'X' motor on it's own, rather than in the X axis direction. Remove the H2.
Some notes:
- You shouldn't use G1 H2 on X and/or Y moves on CoreXY homing sequences, because it moves the individual motor (creating a diagonal move) rather than a move in either the X or Y axis direction, which requires both motors.
- When you're using G1 H1 moves, you need to make sure both axes hit the endstop, by sending a G1 H1 X.. Y.. move, which will stop as soon as the first endtop is triggered, followed by individual G1 H1 X.. and G1 H1 Y.. to get both to home. As soon as an axis has touched home, you can use a normal G1 X.. or Y.. (no H1 or H2) to move it away from the axis, as it has homed.
- All homing and these moving away moves should be done in G91 relative position mode.
See https://docs.duet3d.com/User_manual/Machine_configuration/Configuration_coreXY#homing-files
You could also do a basic configuration in the RRF configuration tool to get an example, to show where yours is going wrong: https://configtool.reprapfirmware.org/ This has had some errors in it (including adding the G1 H2 commands that your homing files have) but should be fixed now.
Ian