Homing problem after Duet2 WiFi Upgrade
I have installed a new Duet2 3D as an upgrade into a 3D printer that was built from a kit provided by our local makerspace. It’s a cartesian printer with 2 z-axis motors, and one each on x, y and e. All are NEMA 17 motors marked with the following information: 17HS5005-20B JUGTEK 174501.
My initial testing shows that the lcd display works and the bed and extruder heat as expected. The cooling fans also work as expected. On initialization, the IR bed sensor provides the expected 4 led flashes, z-probe measurements are indicated on the web interface and the numbers change when I move a white piece of paper under the probe.
Unfortunately, when I try to home the x- and y-axes the motors start with a terrible grinding/vibrating noise, and then the build plate moves smoothly toward home until it hits the endstop and resumes the grinding/vibrating noise until I kill the printer with the emergency stop button. If I let it run a bit longer, the printer stops and I receive the following error message: M112 M999 error homing failed.
Prior to installing the Duet2 into this printer I was using an Einsy Rambo controller. Sensorless homing worked without problems and the printer otherwise worked well.
I suspect the cause of my problems is that I’m not using the correct sensorless endstop settings but I’m not sure where to start resolving the problem. I’m wondering if anyone can help me resolve this problem?
I’m running RepRapFirmware for Duet 2 WiFi/Ethernet 2.05.1 (2020-02-09b1).
Thanks in advance for your suggestions.
My config files are as follows:
; Configuration file for Duet WiFi (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 13:36:42 GMT-0400 (Eastern Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Nova300" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S0 ; physical drive 2 goes backwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z1600.00 E146.50 ; 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 X1100 Y1100 Z1300 E1100 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y300 Z350 S0 ; set axis maxima ; Endstops M574 X1 Y1 S3 ; set endstops controlled by motor stall detection M574 Z1 S2 ; set endstops controlled by probe ; Z-Probe M558 P1 H10 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X0 Y-15 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X25:275 Y25:275 S83 ; define mesh grid ; Heaters M305 P0 T100000 B3950 R4700 ; set thermistor + ADC parameters for heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M305 P1 T100000 B4725 C7.060000e-8 R4700 ; set thermistor + ADC parameters for heater 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on ; 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 are not defined
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 13:36:42 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 X-305 Y-305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X5 Y5 F6000 ; go back a few mm G1 H1 X-305 Y-305 F360 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X25 Y40 F6000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z10 F100 ; lift Z relative to current position ;G90 ; absolute positioning
; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 13:36:42 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass) G1 H2 X5 F6000 ; go back a few mm G1 H1 X-305 F360 ; move slowly to X axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 13:36:42 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 H2 Y5 F6000 ; go back a few mm G1 H1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass) G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 13:36:42 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G90 ; absolute positioning G1 X25 Y40 F6000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z10 F100 ; lift Z relative to current position ;G90 ; absolute positioning
JamesM last edited by
I don't know anything about using stall detection instead of endstops but in your config.g the endstop section says it is to use stall detection but no M915 line is in your config to set it.
Hopefully someone else will chime in on the ir sensor since I have only used a bltouch.
@lhbru Do you get a grinding noise when you move the axis normally? eg send:
G91 G1 H1 X-10 Y-10 F1800 G90
@droftarts - there is no grinding with normal axis movements using the G-codes you provided. Movement is smooth and quiet.
@lhbru Hmm... Is the grinding in the Z axis, trying to move too fast? Try:
G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G90
The grinding at the end will be that you need to tune sensorless homing for your machine. See https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
@droftarts: the z-axis grinds and does not move with the command G1 H2 Z10 F6000. I am also seeing the following error message: Warning: motor phase A may be disconnected reported by driver(s) 2.
@droftarts : I've just rechecked what happens when I send the command G1 H1 Y-10 X-10 F1800. There's no grinding and no error messages are shown. The problem appears to be with the z-axis, not x or y as I originally thought...
elmoret last edited by
If normal moves are grinding, that generally indicates miswired stepper motors. If you move an X-axis motor to your Z-axis stepper driver and do a Z move, what. happens?
G91 ; relative positioning G1 H2 Z10 F60 ; lift Z relative to current position G90
F60 is 1mm/s
@droftarts: slowing speed to F60 does not resolve the problem. I will recheck the wiring on the stepper motors. I've done a visual inspection to ensure that the wire are inserted into the correct pin locations. They all look correct. I'll double check each connector to make sure I don't have a bad crimp - I needed to re-wire/re-crimp all the connectors to make the transition and I may have missed one. I'll also try the suggestion of @elmoret after I check the integrity of the connectors.
Also verify that your motor phases are correctly wired
Each of your Z motors are going to one of the Z motor ports, correct?
Thank you all! One problem seems to be solved: I double checked to ensure the motor phases are correctly wired as recommended by @Phaedrux. That aspect of the wiring is OK. I then found one bad crimp on a wire inserted into one of the new z-axis connectors. I repaired it and verified that all the other connectors are sound. The z-axis now moves smoothly and quietly following issuance of the commands provided by @droftarts.
My remaining problem is that x- and y-axis homing is not yet working properly. When the build platform reaches either the x or y end stop after a home x or y command is issued, it hits the end and does not stop running until I hit the emergency stop. The error message, homing failed, is shown. I'm going to run through the motor stall detection configuration procedures in the link recommended by @JamesM above. Please LMK if you have other suggestions on what I might need to do to solve this one.
Thanks again everyone. I'm very grateful for the kind help you've provided.
@lhbru The link that @JamesM provided is just the gcode dictionary link, and should be used in conjunction with this guide: https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
@droftarts My x- and y-axis homing problems are now solved. After reading the the stall detection and sensorless homing guide, I changed the speed settings in the G1 command lines homex.g and homey.g from F1800 to F4800 so that the homing speed is greater than the minimum F2400 that derives from the default stall detection threshold of 200 steps/second. I also commented out the lines associated with the second slow fine homing moves. Now, when I command home x or home y, the build platform moves quietly to the endstops and the platform stops as expected. Thanks so much for pointing me in the right direction
I have final question related to specifying a stall detection configuration using M915. I haven't yet added M915 line to my config.g. because the changes I made in the homex.g and homey.g seem to have solved my homing problems. I take this to mean that the default M915 settings do not need to be modified by adding a M915 line to config.g. Is this the right way to think about this, or would it better for me to add the M915 line to config.g? And if I add the line would you please confirm where it should be placed? I'm thinking it should follow the two M574 commands in the Endstops section of config.g?
Again thanks to all for your help.
mendenmh last edited by
I would always add an explicit line, so you are not dependent on defaults, and so that you can easily see what to change if there is an issue. 'hidden' configuration can be very hard to diagnose.
I'm thinking it should follow the two M574 commands in the Endstops section of config.g?
Sounds like a good place.
All problems are solved - and just completed a first print with the new Duet2. Thanks again to all who helped - I'm very grateful!