I’ve had my Duet 2 Ethernet board for quite a while now and for the first couple of years it pretty much worked flawlessly. However, I would say around the time firmware version 3.X came out I started to have the oddest issue that has become so problematic that I have stopped using my 3D printer all together for the past couple of years now. I miss my printer and I have some things I would like to print right now. SO, over the weekend I started over, disconnected all the wiring, grabbed the latest firmware and web interface, used the config tool and tried a complete redo in the hopes it would solve the problem I never did solve before.
What happens is a coin flip as to which way the Axis want to home, I believe it could have been X or Y in the past, but after my redo I have only seen it with the X axis so far. If I issue the test commands in the console for Core XY testing, I get diagonal movement in the correct direction. I believe it only changes Axis home direction after a power cycle. I.E. if it homes correctly I can print a bunch of things without issue, however with absolutely nothing being changed the next time I turn it on a week, two later it will decide on it’s own that the X Axis homes in the other direction. I can’t make sense of what it is doing, it’s Zero’s and One’s and I’m not changing the Zero’s or One’s, it’s very frustrating. Turning it off and on again may correct the issue, or it may be 10 power cycles later and it still homes wrong and I have to just give up.
Can anyone please make sense of this or point me at ANY possible causes. I’m at a loss at this point. Below is a sample of the current config that works, but after all the redo work did the random swap of direction on me after a few reboots yesterday.
Thank You
The printer is a 300x300x300 Custom made Linear Rail version of a Hyper EVO
; Configuration file for RepRapFirmware on Duet 2 Ethernet
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.5.4 on Sun Sep 15 2024 12:30:08 GMT-0700 (Pacific Daylight Time)
; General
G90 ; absolute coordinates
M83 ; relative extruder moves
M550 P"DueTpek" ; set hostname
; Network
M552 P192.168.200.85 S1 ; configure Ethernet adapter
M553 P255.255.255.0 ; set netmask
M554 P192.168.200.1 ; set gateway
M586 P0 S1 ; configure HTTP
; Smart Drivers
M569 P0 S0 D2 ; driver 0 goes backwards (X axis)
M569 P1 S0 D2 ; driver 1 goes backwards (Y axis)
M569 P2 S0 D2 ; driver 2 goes backwards (Z axis)
M569 P3 S1 D2 ; driver 3 goes forwards (extruder 0)
M569 P4 S0 D2 ; driver 4 goes backwards (Z axis)
; Motor Idle Current Reduction
M906 I30 ; set motor current idle factor
M84 S300 ; set motor current idle timeout
; Axes
M584 X0 Y1 Z2:4 ; set axis mapping
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M906 X1100 Y1200 Z1200 ; set axis driver currents
M92 X160 Y160 Z400 ; configure steps per mm
M208 X0:300 Y0:300 Z0:300 ; set minimum and maximum axis limits
M566 X1800 Y1800 Z24 ; set maximum instantaneous speed changes (mm/min)
M203 X12000 Y12000 Z360 ; set maximum speeds (mm/min)
M201 X800 Y800 Z40 ; set accelerations (mm/s^2)
; Extruders
M584 E3 ; set extruder mapping
M350 E16 I1 ; configure microstepping with interpolation
M906 E800 ; set extruder driver currents
M92 E578 ; configure steps per mm
M566 E120 ; set maximum instantaneous speed changes (mm/min)
M203 E3600 ; set maximum speeds (mm/min)
M201 E250 ; set accelerations (mm/s^2)
; Kinematics
M669 K1 ; configure CoreXY kinematics
; Probes
M558 K0 P8 C"zprobe.in" H5 F120 T6000 ; configure unfiltered digital probe via slot #0
G31 P500 X36 Y63 Z0.7 ; set Z probe trigger value, offset and trigger height
; Endstops
M574 X1 P"xstop" S1 ; configure X axis endstop
M574 Y1 P"ystop" S1 ; configure Y axis endstop
M574 Z1 S2 ; configure Z axis endstop
; Mesh Bed Compensation
M557 X15:215 Y15:195 S20:20 ; define grid for mesh bed compensation
; Sensors
M308 S1 P"spi.cs1" Y"thermocouple-max31856" ; configure sensor 0 as thermocouple via CS pin spi.cs1
M308 S0 P"spi.cs2" Y"thermocouple-max31856" ; configure sensor 1 as thermocouple via CS pin spi.cs2
; Heaters
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S100 ; set temperature limit for heater 0 to 100C
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
; Heated beds
;M140 P1 H0 ; configure heated bed #1
; Tools
M563 P0 D0 H1 ; create tool #0
M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
; Miscellaneous
T0 ; select first tool