Y movement homes to the wrong direction
-
Hi,
I have a custom toolchanger coreXY printer, mostly like the e3d toolchanger.
The hardware endstops are Xmin, Ymax and a BLtouch for the bed at Zmin.
I home the X correctly but the Y goes to Ymin instead of going to Ymax. I have checked the wiring, the movements of each motor (they move in the correct direction, X motor goes X+Y+ and Y motor goes X+Y-) and the firmware many times.
Can anybody please help fix this strange thing?I use a duet wifi, firmware 3.2
My config file is:
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.0 on Sun Jan 03 2021 18:41:40 GMT+0200 (Χειμερινή ώρα Ανατολικής Ευρώπης); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"ToolChanger" ; set printer name
M669 K1 ; select CoreXY mode; Network
;M587 S"andreas" P"as2138774" ; WiFi Settings
M552 S1 P"andreas" ; Enable WiFi Networking
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S1 ; physical drive 0 goes forwards (X axis)
M569 P1 S1 ; physical drive 1 goes forwards (Y axis)
M569 P2 S1 ; physical drive 2 goes forwards (Z axis)
M569 P3 S1 ; physical drive 3 goes forwards (E0)
M569 P4 S2 ; physical drive 4 goes forwards (Coupler)
M584 X0 Y1 Z2 E3 C4 ; set drive mapping
M350 E16 C8 I0 ; configure microstepping without interpolation
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X100.00 Y100.00 Z400.00 E420.00 C100.00 ; set steps per mm
M566 X400.00 Y400.00 Z10.00 E100.00 C2.00 ; set maximum instantaneous speed changes (mm/min)
M203 X16500.00 Y16500.00 Z1000.00 E5000.00 C5000 ; set maximum speeds (mm/min)
M201 X4000.00 Y4000.00 Z400.00 E2500.00 C500.00 ; set accelerations (mm/s^2)
M906 X1200 Y1200 Z1000 E1500 C400 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X-7.5 Y0 Z0 C0 S1 ; set axis minima
M208 X325 Y322 Z325 C500 S0 ; set axis maxima; Endstops
M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
M574 Y2 S1 P"!ystop" ; configure active-low endstop for high end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
M574 C1 S3 ; configure sensorless endstop for low end on C;Stall Detection
M915 C S5 F0 H200 ; coupler; Z-Probe
M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X-15.3 Y49.47 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X2.5:325 Y49:315 S25 ; define mesh grid
M307 H3 A-1 C-1 D-1 ; Disable the 3rd Heater to free up PWM channel 5 on the Duex board; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S140 ; set temperature limit for heater 0 to 140C
M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S300 ; set temperature limit for heater 1 to 300C; Fans
M950 F0 C"fan0" Q100 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q100 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
M950 F2 C"fan2" Q80 ; create fan 2 on pin fan2 and set its frequency
M106 P2 H2:3 L0.15 X110 B0.3 T40:70 ; set fan 2 value; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; reset tool 0 axis offsets
G10 P0 R0 S0 ; reset initial tool 0 active and standby temperatures to 0C;tool offsets - stock
;G10 P0 X55 Y322 Z-5 ; T0; Filament diameter
M404 P0 N1.75 D0.4;deselect tools
T-1; Custom settings are not defined
;M572 D0 S0.05 ; pressure advance T0
M501 ; read stored parameters
M80 ; Turns on the ATX power supply
M81 ; Turns off the ATX power supply -
the movement is defined in the home scripts.
post all of them
-
Thanks for the help.
I found the problem as you mentioned -
Might be a good idea to post them anyway. It's possible to change either homing direction or motor direction to accomodate for an incorrect endstop definition.
Keep in mind that 0,0 origin point should be the front left corner. x+ goes to the right, x- goes to the left, y- goes to the front, y+ goes to the back. If the motors move opposite to this you should change the motor direction. From there the endstop position is either at the high end or low end of travel of the axis. Set with M574 X1 or X2, etc. Then the homing direction in the homing files should move the axis towards the endstop.