INITIAL HOMING BLUES
-
Where a printer homes is not tied to where 0,0 is.
On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis endstop is at the rear.
In most cases you want these to be the axis maxima.
This allows 0,0 to at the left-front corner of the bed, which is quite common though some folks (like me) prefer to have 0,0 be at the center of the bed.
So don't assume that the endstop switch locations automatically define position 0,0.
Frederick
-
Slicers use a right hand coordinate system, with 0,0,0 being front left. Y+ extends back from there, X+ goes to the right, and Z+ goes up. Setting up the firmware to use the same coordinates makes sure your parts come out oriented the same way as they are shown in the slicer and not rotated or worse, mirrored.
The endstop positions can be at the low end (near the 0 points) or they can be at the high end (near the opposite end of 0). That's controlled by the endstop definition and the direction of homing moves in the homing macros.
https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_Set_endstop_configuration
Additionally, motor direction for coreXY printers is important.
https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter
Note the movement section to check for proper motor directionality. Also note the examples of the homing files.This is an excellent write up as well. https://drmrehorst.blogspot.com/2017/08/setting-up-3d-printers-origin.html
So just to reiterate, the 0,0,0 point should be at the front left of the printer. Where the printer homes to is completely independent.
If you post your config.g and homing files we can suggest what to change. But we will need to ensure first that your motor directions are correct. Then it's just a matter of setting the correct endstop position in config.g and setting the correct movement direction in the homing files.
-
@fcwilt said in INITIAL HOMING BLUES:
On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis is at the rear.
On my FT-5, facing the machine, the X axis endstop is on the right, the Y axis is at the rear. I said home right rear, 0,0 because thats what my gridded bed shows, with front right, 0,300, and front left 300, 300.
-
@P; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.0.4 on Mon Sep 16 2019 10:02:48 GMT-0700 (Pacific Daylight Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer nameM667 S1 ; select CoreXY mode
; 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 forwards
M569 P1 S1 ; physical drive 1 goes forwards
M569 P2 S0 ; physical drive 2 goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X64 Y64 Z64 E32 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z4000.00 E412.53 ; 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 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S0 ; set axis minima
M208 X300 Y300 Z380 S0 ; set axis maxima; Endstops
M574 X1 Y1 Z0 S0 ; set active low 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 S120 ; set temperature limit for heater 0 to 120C
M305 P1 T100000 B4138 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 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off; 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
haedrux ; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.0.4 on Mon Sep 16 2019 10:02:48 GMT-0700 (Pacific Daylight Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer nameM667 S1 ; select CoreXY mode
; 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 forwards
M569 P1 S1 ; physical drive 1 goes forwards
M569 P2 S0 ; physical drive 2 goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X0 Y1 Z2 E3 ; set drive mapping
M350 X64 Y64 Z64 E32 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z4000.00 E412.53 ; 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 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S0 ; set axis minima
M208 X300 Y300 Z380 S0 ; set axis maxima; Endstops
M574 X1 Y1 Z0 S0 ; set active low 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 S120 ; set temperature limit for heater 0 to 120C
M305 P1 T100000 B4138 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 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off; 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
-
; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight 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 positioningPhaedrux ; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight 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 positioning -
; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight 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 positioning@Phaedrux ; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 Y5 F6000 ; go back a few mm
G1 S1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
G1 Z-5 F6000 S2 ; lower Z again
G90 ; absolute positioning -
; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:06 GMT-0700 (Pacific Daylight Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Y-305 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 Y5 F6000 ; go back a few mm
G1 S1 Y-305 F360 ; move slowly to Y axis endstop once more (second pass)
G1 Z-5 F6000 S2 ; lower Z again
G90 ; absolute positioning@swrightlast ; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v2 on Sun Aug 25 2019 14:27:07 GMT-0700 (Pacific Daylight Time)
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G90 ; absolute positioning
G1 X15 Y15 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 S2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning -
@swrightlast said in INITIAL HOMING BLUES:
I said home right rear, 0,0 because thats what my gridded bed shows, with front right, 0,300, and front left 300, 300.
This orientation can be maintained if you wish. Just note that parts printed will be rotated 180 degrees from the preview in the slicer. Provided of course that we get the rest of the config setup.
Were you able to perform this test yet?
For a CoreXY or H-Bot machine, RepRapFirmware assumes that the motor connected to the X motor output moves the head in the +X and +Y directions when it runs forwards, and that the Y motor moves the head in +X and -Y directions when it runs forwards. [Note: firmware 1.18 and earlier assumes that the motor connected to the Y motor output moves the head in the -X and +Y directions when it runs forwards].
So you can start with these M569 commands in config.g:
M569 P0 S0 ; X motor runs forwards
M569 P1 S0 ; Y motor runs forwards
Then test for the correct X motor movement by sending these commands from the console:G91
G1 S2 X10 F3000If the head moves diagonally in the +X and +Y directions, all is well. If it moves in the -X and -Y directions, change the S parameter to S1 in the M569 P0 command. If it moves towards +X and -Y, or towards -X and +Y, turn the power off and swap the X and Y motor connections.
When you have the X motor moving correctly, test the Y motor by sending from the console:
G91
G1 S2 Y10 F3000For firmware 1.19 and later: If the head moves diagonally in the +X and -Y directions, all is well. If it moves in the -X and +Y directions, change the S parameter in the M569 P1 command to S1.
Important: make sure that you have chosen a right-hand axis system. That is, looking down on the printer the +Y direction should be 90 degrees anticlockwise from the +X direction. If instead it is 90 degrees clockwise, you have a left-hand axis system, which will give you mirror-image prints.
-
@swrightlast said in INITIAL HOMING BLUES:
M574 X1 Y1 Z0 S0 ; set active low endstops
So this says that you have the endstops on the low end, which according to your bed decals is correct. And you use active low endstop switches.
If you wanted to change this to a right hand coordinate system with 0,0 in the front left, you'd need to change it to be
M574 X2 Y2 Z0 S0
which tells it that the switches are located at the high end of travel.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)This is correct movement direction for low end endstop position. Same for your homey commands.
If you wanted to change to a right hand coordinate system, the directions of the movements would have to be reversed. Ex:
G1 S1 X305 G1 X-5 G1 S1 X305
So this leaves just my previous question about testing for correct motor direction movement. The test as described above assumes a right hand coordinate system. So I'm interested to see what you report.
When you tell it to home X, which direction does the print head move? It should be moving to the right as it's currently configured.
-
@Phaedrux When homing x, it moves toward the front in the y direction.
-
Please do the motor direction test I posted above.