Need Help with Configuration for Core XY Printer

  • I've been struggling for several days, reading, trying, redoing, etc the configuration for my Core XY Print using the IR Z Probe.

    Would someone be willing to take a look at my config files and let me know what I need to change.
    Right now it seems the X and Y homing works, but the Z home raises the bed slightly and then the Y axis starts moving very slowly.

    I know the bed size is probably wrong .. as I actually have a 480 x 480 bed, with a 500 Z.

    Apparently I can'g upload the files, so I'm going to just paste them here.
    These are all the config files I have in the system:

    M111 S0 ; Debug off
    M550 Mega-DBot ; Machine name (can be anything you like)
    ;M551 Ppassword ; Machine password (used for FTP connections)
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
    ;*** Adjust the IP address and gateway in the following 2 lines to suit your network
    M552 S1 ; Enable WiFi
    ;M552 P10.200.10.104 ; IP address (0 = use DHCP)
    ;M554 P10.200.10.1 ; Gateway
    ;M553 P255.255.255.0 ; Netmask
    M555 P2 ; Set output to look like Marlin
    ;M575 P1 B57600 S1 ; Comms parameters for PanelDue

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves

    ; ************* Machine Movement configuration *****************
    ;M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it) //X or Y
    M569 P0 S0
    M569 P1 S1 ; Drive 1 goes forwards //X or Y
    M569 P2 S0 ; Drive 2 goes forwards //Z Motor
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S0 ; Drive 4 goes forwards
    ; If you use an endstop switch for Z homing, change Z0 to Z1 in the following line, and see also M558 command later in this file
    ;M574 X1 Y1 Z1 S0 ; set endstop configuration
    M574 X1 Y2 Z0 S0
    ;M574 X2 Y1 Z1 S0
    M667 S1 ; set CoreXY mode
    M92 X100 Y100 Z400 ; Set axis steps/mm
    M906 X500 Y500 Z800 E400 ; Set motor currents (mA)
    M201 X2000 Y2000 Z100 E4000 ; Accelerations (mm/s^2)
    M203 X30000 Y30000 Z300 E1500 ; Maximum speeds (mm/min)
    M566 X600 Y600 Z24 E300 ; Maximum jerk speeds mm/minute
    M208 X270 Y260 Z265 ; set axis maxima (adjust to suit your machine)
    M208 X0 Y-10 Z0 S1 ; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)

    ; ************* Z probe *****************
    M558 P1 X0 Y0 Z1 ; Analog Z probe, also used for homing the Z axis
    G31 Z1.20 P500 ; Set the probe height and threshold (put your own values here)

    ; ************* Thermistors and heaters *****************
    ;*** If you have a Duet board with 4.7K thermistor series resistors, change R1000 to R4700 to the following M305 commands

    ;M305 P0 T100000 B3950 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction

    M570 S120 ; Increase to allow extra heating time if needed
    ;M141 H3 ; Un-comment this to set chamber heater/thermistor channel
    M143 S285 ; Un-comment this to set maximum extruder temperature, default is 262C

    ; ************* Tool definition *****************
    M92 E417:417 ; set extruder 0 and 1 steps/mm based on Titan's formula of 417 calibrated to:

    ; ============== Chimera Dual HotEnd w/Dual Extruders ============
    ; Nozzle 0
    M563 P0 D0 H1 ; tool 0 uses extruder drive 0 and heater 1
    G10 P0 S0 R0 X-18 Y0 ; set tool 0 temperatures and offsets
    ;M301 H1 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 0

    ;Nozzle 1
    M563 P1 D1 H2 ; tool 1 uses extruder drive 1 and heater 2
    M301 H2 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 1
    G10 P1 S0 R0 X18 Y0 ; set tool 1 temperatures and offsets

    ; ============== Cyclops Dual Filament HotEnd w/Single Extruder ============
    ; uncomment here when using - comment out Chirmera
    ;M563 P0 D0 H1 ; define tool 0
    ;G10 P0 S0 R0 X0 Y0 ; set tool 0 temperatures and offsets
    ;M563 P1 D1 H1 ; define tool 1
    ;G10 P1 S0 R0 X0 Y0 ; set tool 1 temperatures and offsets

    T0 ; select first hot end

    [c]; homeall file for use with dc42 Duet firmware on CoreXY printers
    ; This file assumes the endstop switches are at the low end of each axis.
    ; Reverse the X and Y movement for high-end switches.
    ; Adjust the bed upper and lower limits in config.g (M208 commands) to get the correct homing positions

    G91 ; relative mode
    G1 S1 X-240 Y-240 F3000 ; course home X or Y
    G1 S1 X-240 ; course home X
    G1 S1 Y-240 ; course home Y
    G1 X4 Y4 F600 ; move away from the endstops
    G1 S1 X-10 ; fine home X
    G1 S1 Y-10 ; fine home Y

    ; If you are using a microswitch for Z homing, insert similar code for the Z axis here,
    ; but use lower feed rates suitable for your Z axis.

    G90 ; back to absolute mode

    ; If you homed the Z axis using an endstop switch, you can insert a G92 command here to correct the height.

    ; The following code assumes you are using a Z probe to do Z homing. Remove it if you are using a microswitch.
    ; Adjust the XY coordinates in the following to place the Z probe over a suitable spot,
    ; preferably near the centre of the bed if your Z probe supports that

    G1 X100 Y100 F2000
    ; This file leaves the head at the zprobe trigger height so that you can slip a piece of paper under it and then do G0 Z0 to check the height.
    ; If you prefer to send the printer to X0Y0Z0, un-comment the following lines
    ;G1 X0 Y0 F5000
    ;G1 Z0

    [c]; X axis homing file for dc42 Duet firmware
    G1 Z4 F200
    G1 X-340 F3000 S1
    G1 X4 F600
    G1 X-10 S1
    G1 Z-4 F200

    [c]; Omerod 2 Y homing file for dc42 Duet firmware
    G1 Z4 F200
    G1 Y240 F3000 S1
    G1 Y4 F600
    G1 Y-10 S1
    G1 Z-4 F200

    G1 Z5 F200
    G1 X45 Y0
    G1 Z0 F200

    [c]; Pause macro file
    M83 ; relative extruder moves
    G1 E-4 F2500 ; retract 4mm
    G91 ; relative moves
    G1 Z5 F5000 ; raise nozzle 2mm
    G90 ; absolute moves
    G1 X0 Y85 F5000 ; move head out of the way of the print

    [c]; Resume macro file
    G1 R1 Z2 F5000 ; move to 2mm above resume point
    G1 R1 ; lower nozzle to resume point
    M83 ; relative extruder moves
    G1 E4 F2500 ; undo the retraction[/c]

  • administrators

    I presume you are using the IR sensor to do Z homing. I suggest you check that G30 is working correctly. Home X and Y, move the head to a suitable point for probing (over the centre of the bed?), and run G30. It should slowly raise the bed until the sensor triggers, then stop.

    Things I notice about your files:

    1. Homeall.g does Z homing at X100 Y100, but homez.g does it at X45 Y0. You should use the same coordinates for both, e.g. the coordinates of the centre of the bed assuming yu can probe there..

    2. The G1 X45 Y0 (which you should adjust - see #1) command in homez.g does not specify a feed rate. This is probably why the head is moving slowly. Add F5000 to it.

    3. As you said, your M208 commands should be adjusted to match your bed size and homing switch offsets.

  • What David said but things I noticed too.

    In your config.g you define X as being low end but Y as being high end. (M574 X1 Y2 Z0 S0). It depends how you have fitted your switches but are you sure Y shouldn't be low end as well? In your homeall.g you move Y negative but in your homeY. you move it positive. If homeY works as it should then Y2 is correct in your config.g but you need to change homeall to move Y the same way.

    General observations.

    You have a Z lift in your X and Y homing files - good idea to put this in you homeall as well.
    Your motor currents for X and Y look a little low at 500mA. It depends what motors you have but as a general rule, setting the motor currents to 80% of their rated current seems to be best practice. However, if you are still commissioning it's probably best to leave them low until you get everything working as it should
    It's also best practice to wire switches as being active high rather than active low. Then, if a switch fails or a wire falls off, it'll fail safe rather than allow the axis to crash into a hard stop.


  • administrators

    +1 for Ian's observations.

  • Thank you all! .. I will try to work out all your suggestions and report back.

  • @dc42:

    +1 for Ian's observations.

    Thanks to you David, that I was able to make those observation. A year or so ago, I hadn't got a clue and there is still much that I don't know, but I try to help where I can.

  • Thanks again to both of you .. I now have my beast working .. at least all the homing and I can 'dry' print a file.

    I still need to tune my heaters - and work on the IR Z-probe distance and Z offset .. so I'll be doing some more research/reading before I come back and bug you guys for help again.

Log in to reply