CoreXY Configuration Advice

  • Evening All.

    I have a Hypercube Evolution build with Duet Ethernet and BLTouch probe, which I have got working mostly, including auto bed compensation. However just tonight I've read that I should be running the G29 command on my CoreXY setup over the G32 and here is where I have hit a problem.
    Basically as I initiate run mesh grid compensation it either complains there is no grid assigned to the G29 command or doesn't deploy the probe and the nozzle crashes into the bed.

    Ideally I'd like to see someones CoreXY settings if at all possible, so I can see where I am going wrong and what goes where, but failing that some idea of what could be out would be appreciated.

    My config.g is as below;

    ; CoreXY Hypercube Evolution Duet firmware

    M111 S0 ; Debug off
    M550 Hypercube ; Machine name (can be anything you like)
    M551 xxxxxxxxxxx ; 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 P0.0.0.0 S1 ; IP address (0 = use DHCP)
    M554 P192.168.1.1 ; Gateway
    M553 P255.255.255.0 ; Netmask
    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue

    ; Machine configuration
    M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it)
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M569 P4 S1 ; 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 Z0 S1 ; set endstop configuration (X and Y and endstops only, at low end, active high)
    M667 S1 ; switch to CoreXY mode
    M92 X80 Y80 Z395 ; Set axis steps/mm
    M92 E420:420 ; Set extruder steps/mm
    M906 X800 Y800 Z900 E800 ; Set motor currents (mA)
    M201 X800 Y800 Z400 E1000 ; Accelerations (mm/s^2)
    M203 X15000 Y15000 Z2000 E3600 ; Maximum speeds (mm/min)
    M566 X600 Y600 Z30 E20 ; Maximum jerk speeds mm/minute
    M208 X290 Y244 Z275 ; set axis maxima (adjust to suit your machine)
    M208 X0 Y0 Z-0.5 S1 ; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves

    ; Z probe
    M307 H3 A-1 C-1 D-1 ; use pin 3 on header for bltouch
    M558 P5 X0 Y0 Z1 H5 F500 T2000 ; probe type and use probe for homing z
    G31 X24 Y-18 Z0 P25 ; set probe height

    ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
    ;M557 P0 X60 Y0 ; Four...
    ;M557 P1 X60 Y165 ; ...probe points...
    ;M557 P2 X222 Y165 ; ...for bed...
    ;M557 P3 X222 Y0 ; ...levelling
    ;M557 P4 X141 Y82.5 ; 5th probe point for levelling

    ; Thermistors and heaters
    ;*** If you have a Duet board with 1K thermistor series resistors, change R4700 to R1000 to the following M305 commands
    ; You can also use S and B parameters to define the parameters of the thermistors you are using
    M305 P0 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 R4700 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M301 H1 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 0
    M301 H2 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 1
    M570 S120 ; Increase to allow extra heating time if needed

    ; Tool definition
    M563 P0 D0 H1 F0 ; Define tool 0 & Fan 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    ;*** If you have a dual-nozzle build, un-comment the following 3 lines
    ;M563 P1 D1 H2 ; Define tool 1
    ;G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures

    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0 ; Axis compensation here
    T0 ; select first hot end

    I am still using a bed.g file, which I'm not sure if I should be or not and it's as follows;

    G28 ; home all
    G91 ; relative mode
    G1 Z5 F500 ; allow for 5mm between the nozzle and the bed
    G90 ; absolute mode
    M401 ; deploy probe
    M557 X10:280 Y10:220 S20 ; Define grid
    G29 ; run auto bed mesh level
    M402 ; retract probe
    G1 X10 Y10 F5000

    Meshlevel.g as follows;

    T0 ; select tool
    G91 ; relative coordinates
    G1 Z5 F6000 ; lower bed
    G28 X ; home X
    G28 Y ; home Y
    G90 ; absolute coordinates
    G1 X10 Y10 F3000 ; go to first bed probe point
    G28 Z ; Home Z
    M401 ; deploy probe
    G29 S2 ; clear height map
    M557 X10:280 Y10:220 S20 ; Define grid
    G29 ; Start mesh level
    M402 ; retract probe
    M374 ; save calibration data

    Thanks for your time.


  • I have a 12x12 corexy machine, that does bed leveling with an inductance probe. Below are my config.g and bed.g. How I do my leveling & bed.g looks to be different than the gcodes you use, but maybe it can help you troubleshoot.


    ; Init –------------------------------------------
    M111 S0 ; Debug off
    M550 Pavey's C-Bot ; Machine name
    M555 P2 ; Set output to look like Marlin
    G21 ; Work in millimeters
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M667 S1 ; Set CoreXY mode
    M208 X305 Y305 Z520 ; set axis maxima
    M563 P0 D0 H1 ; Tool 1 : D0 = Extruder stepper 1. H1 = First extruder heater.

    ; Stepper drive directions ----------------------------
    M569 P0 S1 ; X - Drive 0 goes forwards
    M569 P1 S0 ; Y - Drive 1 goes reversed
    M569 P2 S1 ; Z - Drive 2 goes forwards
    M569 P3 S0 ; E1 - Drive 3 goes backward - Bondtech BMG

    ; Endstop configuration -----------------------------------
    M574 X1 S0 ; Endstop configuration: X is min, NO, active LOW
    M574 Y1 S0 ; Endstop configuration: Y is min, NO, active LOW
    M574 Z1 S0 ; Endstop configuration: Y is min, NO, active LOW

    ; Accleration, jerk, speeds ----------------------------
    M201 X900 Y900 Z60 E1200 ; Maximum accelerations (mm/s^2)
    M566 X600 Y600 Z60 E600 ; Maximum jerk in mm/min
    M203 12000 12000 Z1200 E2500 ; Maximum travel speeds in mm/min

    ; Stepper Microstepping ---------------------------------------
    M92 X399.486 Y401.084 Z1609.82 ; Set XYZ axis steps/mm, 1/64 microstepping.
    M92 E415 ; Set extruder steps per mm, 1/16 microstepping, Bondtech BMG, 3:1 gear ratio, 415 E-step at 1/16th

    ; Z Probe --------------------------------
    M558 P4 X0 Y0 Z1 T5400 ; Set probe type + which axes should use the probe. M558 must come before G31.
    G31 X49 Y66 Z0 P500 ; Set the XY probe offset from toolhead inmm, + Z height and trigger threshold (put your own values here)
    ; If XY offsets are entered, they must be counted for in bed.g's G30 commands. Z was .4 without PEI

    ; Thermistors and heaters --------------------------------
    M305 P0 T100000 R4700 ; Bed thermistor
    M305 P1 T100000 R4700 B4267 ; E3D thermistor has beta value 4267
    M143 H0 S110 ; Set the maximum bed temperature in c - default is 110c
    M143 H1 S270 ; Set the maximum temperature of the hot-end in c - default is 263c

    ; Fans -----------------------------; Note: Before setting P0 theromstatic (H1), P1 would auto-turn on during boot.
    M106 P0 T60 H1 ; Hotend cooler: Enable fan to kick on at 60c.
    M106 P1 H-1 ; Filament cooler: Must do H-1, or it'll turn on with P0 for some reason.
    M106 P1 S0 ; Filament cooler: Must do, or will go full blast on start :S

    ; Firmware Retraction & Pressure Advance -----------------
    M207 S0.5 R-.1 F5400 T5400 ; Firmware Retraction : Positive S retracts, negative R unretracts (possitive R extra-extrudes),
    ; F retract speed, T unretract speed, Z zlift - Slicer must insert G10 & G11
    M572 D0 S0.05 ; Pressure Advance, acts like 'coast' in Simplify 3D.

    ; Finalization --------------------------------------------------------
    M18 ; Disable stepper motors
    T0 ; select first hot end

    ; config-override.g ---------------------------------------
    M501 ; Read values from config-override.g made by M500 - for pid autotune via M303

    And bed.g:

    M561 ; Clear any bed transform, otherwise homing may be at the wrong height
    G28 ; home the printer
    G1 X3 Y26 F1500 ; Move the nozzle to the front left corner of the bed. Same as in Simplify 3d start script 25mm/sec
    G92 X0 Y0 ; Zero coordinates here, bed home.

    ; Probe the bed and do 5-factor auto calibration
    ; I calculated (with calipers) probe from toolhead offsets are X49 Y52 & were entered into config.g's G31 command.

    ; These toolhead points were pre-caluclated by manually driving the toolhead around from home, and marking the locations.
    ; Make sure you never define a point that the sensor can't reach!
    ; IF you want to use these points, be sure you set config.g's G31 X0 Y0, or things will start smashing around.
    ;G30 P0 X0 Y0 Z-99999 ; Four... - Front Left
    ;G30 P1 X0 Y201 Z-99999 ; ...probe points... - Back Left
    ;G30 P2 X207 Y201 Z-99999 ; ...for bed... - Back Right
    ;G30 P3 X207 Y0 Z-99999 ; ...levelling - Front Right
    ;G30 P4 X103 Y100 Z-99999 S5 ; 5th probe point - Center + store the levelling

    ; These are the same toolhead points, but with the sensor offsets added. Note, to use these points, you must set config.g's G31 X49 Y66
    G30 P0 X49 Y66 Z-99999 ; Four... - Front Left
    G30 P1 X49 Y239 Z-99999 ; ...probe points... - Back Left
    G30 P2 X256 Y239 Z-99999 ; ...for bed... - Back Right
    G30 P3 X256 Y66 Z-99999 ; ...levelling - Front Right
    G30 P4 X152 Y150 Z-99999 S5 ; 5th probe point - Center + store the levelling

    G1 X0 Y0 F5400 ; Go back to the zero of the bed 90mm/sec
    G92 X3 Y26 ; Trick the printer to think it's offset again.
    G1 X0 Y0 F600 ; Send X & Y back to original machine home so we can purge the nozzle over open space 10mm/sec
    G92 X0 Y0 ; Zero coordinates here. Simplify3D will apply the above G1 X3 Y26 offset again before the prints starts.

  • Thanks buddy, appreciate your input. I'm going to look at your code tomorrow and make some comparisons.


  • administrators

    If when you run G29 it complains that there is no grid defined, there are three possibilities:

    1. No M557 command has been executed to define the grid. Avoid this by putting a suitable M557 command in config.g.

    2. A M557 command has been executed, but there was something wrong with it. Run the M557 command from the GCode Console in DWC and see if it produces any error messages.

    3. You have attempted to load an existing height map (usually using G29 S1), but it failed. This could be because you generated the height map using firmware 1.18 or earlier and then loaded it using firmware 1.19. The height map format changed between firmware versions.

  • Thanks David, I think I have it sorted now.
    Basically I think the update to V1.19 has helped, as before on V1.18 it wouldn't deploy the probe which was my main problem. With V1.19 + your little update, it deploys the probe and seems to work a treat.

    Now to fine tune some settings.


Log in to reply