CoreXY homing issues



  • So I'm working on getting my new CoreXY build working. So far, I've run into an issue that I can seem to figure out, the printer will home in Y, but then it will go to home in X when Y is at minimum, and it doesn't move and makes a horrendous racket (motors skipping). If I set the middle of the print area as X0 Y0 with G92 I can move X and Y no problem and they move in the directions I would expect. End stops are all reporting correctly. Any idea whats going on here?

    Config is as seen below:

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri May 29 2020 12:19:21 GMT-0500 (Central Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"ToolChanger" ; Set machine name
    M587 S"*******" P"********"
    M669 K1 ; select CoreXY mode
    ;M667 S1

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P4 S0 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M584 X0 Y4 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z400 E683.3 ; 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 Z300 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z40.00 E250.00 ; set accelerations (mm/s^2)
    M906 X1600 Y1600 Z800 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X-35 Y-49 Z-350 S1 ; set axis minima
    M208 X328.5 Y243 Z0 S0 ; set axis maxima

    ; Endstops
    M574 X1 Y1 Z1 S1 ; set active low and disabled endstops

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
    M557 X-20:215 Y-34: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 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
    M569 P1 R-1



  • @DukeMachine As this is a homing issue, it might be an idea if you posted your homing files.



  • Probably a good idea, here they are:

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri May 29 2020 12:19:21 GMT-0500 (Central Daylight Time)
    G91 ; relative positioning
    ;G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-368.5 Y-297 F6000 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X-368.5 ; home X axis
    G1 H1 Y-297 ; home Y axis
    G1 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-368.5 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H1 Y-297 ; then move slowly to Y axis endstop
    G1 H1 Z-305 F600 ; move Z down stopping at the endstop
    G90 ; absolute positioning
    G92 Z-308.7 ; set Z position to axis minimum (you may want to adjust this)

    ; homex.g
    ; called to home the X axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri May 29 2020 12:19:21 GMT-0500 (Central Daylight Time)
    G91 ; relative positioning
    ;G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-368.5 F6000 ; move quickly to X axis endstop and stop there (first pass)
    G1 X5 F6000 ; go back a few mm
    G1 H1 X-368.5 F360 ; move slowly to X axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    ; homey.g
    ; called to home the Y axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri May 29 2020 12:19:22 GMT-0500 (Central Daylight Time)
    G91 ; relative positioning
    ;G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Y0 F6000 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y5 F6000 ; go back a few mm
    G1 H1 Y0 F360 ; move slowly to Y axis endstop once more (second pass)
    G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Fri May 29 2020 12:19:22 GMT-0500 (Central Daylight Time)
    G91 ; relative positioning
    G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 Z-305 F100 ; 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 Z5 F100 ; lift Z relative to current position
    ;G90 ; absolute positioning


  • Moderator

    @DukeMachine said in CoreXY homing issues:

    If I set the middle of the print area as X0 Y0 with G92 I can move X and Y no problem and they move in the directions I would expect. End stops are all reporting correctly.

    What directions are they moving? -X to the left, +X to the right, -Y to the front, +Y to the back?

    Where are the endstops physically located?
    M574 X1 Y1 Z1 S1 ; set active low and disabled endstops
    Based on your M574 settings your endstops should be at the front for Y and the left for X. Your homing directions are correct if the endstops are actually located there.

    ; Axis Limits
    M208 X-35 Y-49 Z-350 S1 ; set axis minima
    M208 X328.5 Y243 Z0 S0 ; set axis maxima
    

    Unrelated to your X and Y issues, but your Z axis minima and maxima are backwards.

    Once you have the endstops correctly defined you can test motor movement for corexy using the method described here: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Movement_section



  • Uh now that you mention it, it seems Y moves it in left and right, X moves it backwards and forwards. Whats intended to be the X-axis endstop is front left, y-axis endstop is also front.



  • Solved it, you pointed me in the right direction. My motor directions were different, swapped M569 P4 S0 to S1 and it works great now. Thanks for the help.



  • @Phaedrux So I do have one more question, I have my z-axis home at my lowest point, and I have no bed probe. How exactly do I get the printer to recognize that prints need to start at Z maximum not Z=0?


  • Moderator

    @DukeMachine said in CoreXY homing issues:

    How exactly do I get the printer to recognize that prints need to start at Z maximum not Z=0?

    You've got that backwards. Prints start at 0 and increase in size from there. In the case of the corexy where the bed moves down, z0 is when the nozzle touches the bed and increasing means the bed moves down.

    I mentioned that your M208 Z minima and maxima are reversed. You need to correct that first and then verify that +z moves the bed down, if it doesn't, change the motor direction.


Log in to reply