CoreXY, Y endstop and homing not functioning properly
-
CoreXY Printer
The Y endstop has been replaced with a new one, no difference
Firmware has been flashed and configured from scratch twice, no differenceThe Issue:
The Y axis will not home or move properlyThe background:
The printer sets up properly and functions properly, including proper head motion as described in the “Configuring RepRapFirmware for a CoreXY printer” when entered directly into the G-Code Console. Interestingly, reversing the Y motor (M569) from “motor runs forwards” to “motor runs backwards” does not affect the head movement.The X axis homes properly, retracts, then slowly actuates the endstop. Just as coded.
The Y axis just buries itself in the endstop the first try and then stays there. It does not recognize the endstop, even though the indicator light on the board does come on, and the GUI indicates Yes for “endstop hit”.
The Z axis also homes properly.
After “homing”, the Y axis will not move more than 1mm at a time in the negative direction (the endstop is at the max position), and only two or three times before refusing to respond. However, it will continue to respond to positive direction inputs.
The default homing scripts include the lowering and raising of the Z axis. If the Z axis is too close to its homing point during the Y axis homing routine, when the Z axis raises itself, it will crash through its endstop and actually pin itself against the frame.config:
; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.0.3 on Sat Sep 07 2019 15:25:54 GMT-0700 (Mountain Standard Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 ; set printer nameM669 K1 ; select CoreXY mode
; Network
M551 P"toor" ; set password
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S1 ; enable FTP
M586 P2 S1 ; enable 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
M569 P4 S1 ; physical drive 4 goes forwards
M584 X0 Y1 Z2 E3:4 ; set drive mapping
M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z160.00 E420.00:420.00 ; set steps per mm
M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; set accelerations (mm/s^2)
M906 X640 Y640 Z640 E1400:1400 I50 ; set motor currents (mA) and motor idle factor in per cent
M84 S20 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X300 Y300 Z280 S0 ; set axis maxima; Endstops
M574 Y2 S1 ; set active low and disabled endstops
M574 X1 Z1 S1 ; set active high endstops; Z-Probe
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:215 Y15:195 S20 ; define mesh grid; Heaters
M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0
M143 H0 S150 ; set temperature limit for heater 0 to 150C
M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1
M143 H1 S285 ; set temperature limit for heater 1 to 285C
M305 P2 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 2
M143 H2 S285 ; set temperature limit for heater 2 to 285C; 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:2 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on; Tools
M563 P0 S"Extruder 0" D0 H1 F1 ; 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
M563 P1 S"Extruder 1" D1 H2 F1 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0Chomey:
; Custom settings are not defined
; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v2.0.3 on Sat Sep 07 2019 15:25:55 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Y305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 Y-5 F6000 ; go back a few mm
G1 S1 Y305 F360 ; move slowly to Y axis endstop once more (second pass)
G1 Z-5 F6000 S2 ; lower Z again
G90 ; absolute positioning -
The comment next to setting the Y end stop mentions active low.
Is the Y end stop device actually active low? It is configured as active high.
Frederick
-
First, thank you for your response.
The comment is wrong, it is configured by the S1 as an active high. I have played with that setting in an attempt to find out what is going on, so that is just an old comment that I didn't update. In fact, the first endstop that I used was an active low, and the behavior of the axis was the same. -
If you send M574 by itself in the gcode console, what does it reply with?
If you trigger the endstop with your finger before the head actually makes contact does it stop?
Can you confirm that the 0,0 origin point is at the front left of the printer? X+ moves to the right and Y+ moves towards the back?
Could you post your other homing files as well?
This is on firmware 2.0.3 I take it?
-
Thank you too, this has been a bit frustrating. I primarily work out of state, so I get very little time, and even less uninterrupted time, to build/test/troubleshoot this thing. Going on 8 months of a couple days every two months.
And this is actually 2.04RC1
Console Reply:
8:09:49 PM
M574
Endstop configuration: X: low end active low, Y: low end active low, Z: low end active lowThat is really odd, as the config.g file calls out that the y axis is a 2, which is high end.
Manually hitting the microswitch stops the carriage, but it does not bounce back and then retrigger the switch as it's supposed to. Maybe explained by the confusion about low/high? And the Z axis still crashes into the frame, running right through it's own endstop.
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v2.0.3 on Sat Sep 07 2019 15:25:55 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Z-285 F1800 ; move Z down until the endstop is triggered
G92 Z0 ; set Z position to axis minimum (you may want to adjust this); Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 S2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2.0.3 on Sat Sep 07 2019 15:25:55 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 X-305 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 X5 F6000 ; go back a few mm
G1 S1 X-305 F360 ; move slowly to X axis endstop once more (second pass)
G1 Z-5 F6000 S2 ; lower Z again
G90 ; absolute positioningI do not use the homeall (yet).
-
Try putting the endstop config all on the same line. Delete the entire endstop section and retype it from scratch.
M574 X1 Y2 Z1 S1
X at low end, Y at high end, Z and low end, all active high switches.
At what point exactly is the Z axis crashing into the frame?
Endstops are only detected when the G1 move has the S1/H1 switch. S2 allows movement without being homed.
-
OK, changed the code as you suggested.
No change in behavior, and the M574 command still does not recognize the Y2 parameter:; Endstops
M574 X1 Y2 Z1 S1 ;X low end, Y high end, Z low end, all active high9:21:47 PM
M574
Endstop configuration: X: low end active low, Y: low end active low, Z: low end active lowThe Z axis endstop is at the minimum, so physically the highest point that the table can travel. (I know that you know this, this is for me to think it out).
So when Z is homed, it first retracts a bit (goes down), then travels up until it triggers the stop.When the Y axis is homed, it starts by raising the Z axis. The default raise value is 5, and if the table is down less than 5, it raises the table 5, or until it runs into the frame. This occurs whether the Z axis is homes or not. And the Z axis does home itself fine, and motion control is fine once it is homes. Only the Y homing seems to screw it up.
And another interesting problem. The Z axis moves about 5 cm, not 5 mm, when it either homes or I manually control it. Maybe this is correct, but since the X and Y seem to move in mm, shouldn't the Z as well? And modifying the steps per mm in the config file does not seem to affect it at all.
-
Sorry, substitute "homed" for "homes" in the above.
-
Something seems very strange here indeed.
Can you upload your actual files rather than copy and paste?
What does your folder structure look like on the SD card?
-
Here are the files:
0_1568004240172_config.g
0_1568004266584_homex.g 0_1568004272088_homey.g 0_1568004279822_homez.gNot sure what you mean by the folder structure, maybe this helps?
Thank you again, especially given the time where you are, this is awesome!!!
-
As I suspected...
Your config files are fine, they just aren't in the right place. You've got them in the g-code folder where you would put sliced gcode files for printing. All the config files must go in the /sys folder.
At this point it may be easiest to pull the SD card and use a PC to move the files over. Then to access the /sys folder and your config files with the DWC you use the Settings tab on the left side and then go to the system editor tab.
https://duet3d.dozuki.com/Wiki/Duet_Web_Control_Manual#Section_System_Editor
-
That certainly took care of the Z axis scaling issue.
The other axis don't want to home, but I'll work on that tomorrow. I suspect that it now is in the code and easily resolved.
Thank you very much for your time and patience. Sorry for such an amateur mistake. -
You're not the first person to make that mistake. It happens.
I think you're well on your way though, the rest of the config looked ok. With the files in the right place it should be a lot easier to figure out what is going on now since the machine should respond as expected.
Any further issues should be easy to resolve.