Help with setting up firmware for coreXY machine - unable to home.
-
I am homing at the front left of the printer. The XY position displayed is 0,0. The endpoints trigger (and the board LED lights up) when I press the contacts. The X axis increases when I go to the right. The Y axis increases when I go to the back. Here is the config.g
; Configuration file for Duet WiFi (firmware version 1.17)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Mon Jul 10 2017 20:30:20 GMT-0600 (Mountain Daylight Time); General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves
M555 P2 ; Set firmware compatibility to look like MarlinM667 S1 ; Select CoreXY mode
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X400 Y400 Z400 S0 ; Set axis maxima; Endstops
M574 X1 Y1 Z0 S0 ; Define active low and unused microswitches
M558 P1 X0 Y0 Z1 H5 F120 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
M557 X15:385 Y15:385 S20 ; Define mesh grid; Drives
M569 P0 S0 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes backwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M350 X16 Y16 Z16 E16 I0 ; Configure microstepping without interpolation
M92 X87.489 Y87.489 Z4000 E420 ; Set steps per mm
M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
M203 X9000 Y9000 Z180 E1200 ; Set maximum speeds (mm/min)
M201 X500 Y500 Z250 E250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Heaters
M143 S260 ; Set maximum heater temperature to 260C
M140 H-1 ; Disable heated bed; Tools
; Network
M550 PHypercube ; Set machine name
M551 PXXXXXX ; Set password
M552 S1 ; Enable network
M587 SXXXXXX P"XXXXXXX" ; Configure access point. You can delete this line once connected
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Custom settings are not configured
-
That looks ok to me. Perhaps it is something in your homing files - please share them too.
What happens if you home just X: are you able to move X and/or Y after that? Similarly if you home just Y.
-
If I home either only X or only Y I can move those axis just fine. It I home both then it locks up. Here are the Homing files:
Homeall
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool on Mon Jul 10 2017 20:30:20 GMT-0600 (Mountain Daylight Time); Relative positioning
G91; Lift Z
;G1 Z5 F6000; Course home X or Y
G1 S1 X-405 Y-405 F1800
; Course home X
G1 S1 X-405
; Course home Y
G1 S1 Y-405: Move away from the endstops
G1 X5 Y5 F6000; Fine home X
G1 S1 X-10
; Fine home Y
G1 S1 Y-10; Absolute positioning
G90; Go to first bed probe point and home Z
G1 X15 Y15 F6000
G30; Uncomment the following line to lift the nozzle after probing
;G1 Z5 F100
Home X
; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool on Mon Jul 10 2017 20:30:20 GMT-0600 (Mountain Daylight Time); Lift Z relative to current position
G91
G1 Z5 F6000
G90; Move quickly to X axis endstop and stop there (first pass)
G1 X-405 F1800 S1; Go back a few mm
G91
G1 X5 F6000
G90; Move slowly to X axis endstop once more (second pass)
G1 X-405 F360 S1; Lower Z again
G91
G1 Z-5 F6000
G90
Home Y
; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool on Mon Jul 10 2017 20:30:20 GMT-0600 (Mountain Daylight Time); Lift Z relative to current position
G91
G1 Z5 F6000
G90; Move quickly to Y axis endstop and stop there (first pass)
G1 Y-405 F1800 S1; Go back a few mm
G91
G1 Y5 F6000
G90; Move slowly to X axis endstop once more (second pass)
G1 Y-405 F360 S1; Lower Z again
G91
G1 Z-5 F6000
G90 -
This has me puzzled because I can't see the problem. Please try these:
1. Send M208 with no parameters, check that the axis limits it reports are correct and as you have defined them in config.g i.e. minimum zero and maximum 400 on each axis.
2. Send M564 S0 to disable soft endstops and then see if it lets you move after homing.
-
I am confused as well. It looked to me like things were correct. Now with you being puzzled now I am VERY confused. I will try those suggestions to see what happens. Thanks for the help!
-
OK, well it works now if I do the Homeall manually. If I issue a G28 ; home all axes then the system will home correctly but then just hangs up. No messages in the console nothing. It just sits there and I have to reset and manually do the Homeall then run without the G28. Ideas?
-
When you say it works if you do the homeall manually, do you mean it works if you send G28 X, then G28 Y, then G28 Z?
-
Two things:
1. In homex.g and homey.g you do the fine homing at low speed (F360). In homeall.g you don't. You should add that F360 parameter to the commands that fine home X and Y.
2. I remember reading a report recently that another user had to remove comment lines from his homeall file to get it to work. So I am wondering whether there is a problem if the file ends with a comment line. Try removing the two comment lines at the end of homeall.g. Or maybe putting a blank line at the very end would work.
-
So when I say Homeall manually it is pressing the home icon on the PanelDue screen. Sending the G28 command from the gcode file not manually from the screen. I will try if sending the code individually if it works and I will then test to see if removing comments makes it work as well. I will do them separately so that I know which one is doing what.
-
If I enter the codes G28 X and G28 Y then tell it to print without a G28 code in the gcode file it works. If I have the codes G28 X and G28 Y in the gcode file with no G28 it works. If I just have G28 it stops working. Must be something with the Homeall file. There are no comments at the end anymore. The F360 parameters are there. Wow am I baffled!!!
-
I just had the same issue with the generated homeall.g file. Despite going through it line by line I could not find an issue.
In the end I just completely cleared the file, saved it empty, and then manually inserted the X, Y, Z homing commands from their respective homing files into homeall.g.
Now it works.Duet Ethernet with 1.18.1 by the way.
-
Next time anyone has this issue, please save the homeall.g file that doesn't work so that you can send it on to me. I have just created a new homeall.g file using the config tool, and it works OK for me.
-
If I enter the codes G28 X and G28 Y then tell it to print without a G28 code in the gcode file it works. If I have the codes G28 X and G28 Y in the gcode file with no G28 it works. If I just have G28 it stops working. Must be something with the Homeall file. There are no comments at the end anymore. The F360 parameters are there. Wow am I baffled!!!
Could it possibly be a problem reading the homeall.g file on the SD card? Here are some things to try:
-
After running G28 or pressing Home All, check the Console page of DWC for error messages
-
Look at the printer status on DWC or PanelDue after it has got stuck running homeall. Is it still Busy, or has it reverted to Idle?
-
Go into the system file editor in DWC, edit homeall.g, select all the text and press control-C to copy it to clipboard. Then go to the Macros page of DWC, create a macro called e,g, "Home all", and put the text you copied into it. Then see if running the macro has the same problem
-
Move the SD card to a PC. Run the disk checking tool on it to check it for errors. Then rename homeall.g to homeall.bak, then copy homeall.bak to homeall.g. Put the card back in the Duet, restart the Duet, and see if the problem is still there.
HTH David
-