Triple Z Axis G32 Bed Traming
-
Here is my WORKING files for my 3 lead-screw core-xy
DISCLAIMER: These files work for ME, they might not be considered the right or wrong way to do things but they are done the way I like them to be done.
; Config for CoreXY ; ; General preferences ; G90 ; Operate the motion system with absolute positioning moves M83 ; Operate the Extruder with relative positioning moves M669 K1 ; Set the machine to operate in CoreXY mode M552 S1 ; Enable Network M550 P"Core-XY" ; Set Machine Name ; ; Drives (121.XX) denotes the Can-Bus address that the toolboard LC1 is operating on ; M671 X-31:332:150 Y-10:-10:350 S5 ; The Z axis pivot point locations to allow true levelling to be undertaken M584 E121.0 S1 ; Drive mapping for the toolboard LC1 M584 X0.4 Y0.5 Z0.1:0.2:0.3 ; Drive mapping for the mainboard 6HC M569 P121.0 S1 ; Driver 121.0 is connected to the extruder motor output (Driver 0) on the toolboard LC1 & goes forwards M569 P0.1 S0 ; Driver 0.1 is connected to the Z1 axis motor (Front Left) on the mainboard 6HC & goes backwards M569 P0.2 S0 ; Driver 0.2 is connected to the Z2 axis motor (Front Right) on the mainboard 6HC & goes backwards M569 P0.3 S0 ; Driver 0.3 is connected to the Z3 axis motor (Centre Rear) on the mainboard 6HC & goes backwards M569 P0.4 S0 ; Driver 0.4 is connected to the X axis motor on the mainboard 6HC & goes backwards M569 P0.5 S0 ; Driver 0.5 is connected to the Y axis motor on the mainboard 6HC & goes backwards M350 X16 Y16 Z16 E16 I1 ; The stepper motors microstepping & interpolation amount M92 X160.00 Y160.00 Z800.00 E480.00 ; Steps per mm of each stepper motor M566 X700.00 Y700.00 Z160.00 E160.00 ; The maximum instantaneous speed changes expressed in (mm/min) that the stepper motors are allowed to achieve M203 X6000.00 Y6000.00 Z1200.00 E1200.00 ; The maximum speeds expressed in(mm/min) that the stepper motors are allowed to achieve M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; The maximum accelerations expressed in(mm/s^2 that the stepper motors are allowed to achieve M906 X800 Y800 Z800 E600 I30 ; The maximum motor currents expressed in(mA) & idle factor expressed as a % that the stepper motors are allowed to achieve M84 S30 ; The idle timeout ; ; Axis Limits ; M208 S1 X-12 Y-20 Z-1 ; Each axis's minimum travel locations M208 S0 X300 Y320 Z300 ; Each axis's maximum travel locations ; ; Endstops ; M574 X1 S1 P"121.io1.in" ; The X endstop is located at the X axis's minimum location & is mapped/connected to the io1.in port on the toolboard LC1 M574 Y1 S1 P"io3.in" ; The Y endstop is located at the Y axis's minimum location & is mapped/connected to the io3.in port on the mainboard 6HC M574 Z1 S2 ; The Z probe acts as a Z axis endstop & is located at Z axis's minimum & mapped/connected to the io0 port on the toolboard LC1 ; ; Z-Probe ; ;M950 S0 C"121.io0.out" ; Create servo pin 0 for BLTouch M558 P8 C"121.io0.in" H5 F100 T6000 ; The Z probe is of type 8 & is mapped/connected to 121.io0.in port on the toolboard LC1 ;M558 P8 C"io6.in" H5 F100 T6000 ; TEST FOR THE IR SENSOR CONNECTED DIRECTLY TO THE MAIN BOARD ;G31 X28 Y-38 Z0.117 P25 ; FOR THE BL TOUCH The Z probe's trigger value, offsets & trigger height G31 X-18 YO Z-0.400 P50 ; FOR THE MINI IR PROBE ON THE TOOL BOARD M557 X5:270 Y0:280 S44.1 ; The mesh grid's defined points ; ; Bed Heater ; M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed" ; Sensor0 is a thermistor & mapped/connected to the temp0 port on the mainboard 6HC M950 H0 C"out0" T0 ; The bed heater output is mapped/connected to the out0 port & mapped/connected to sensor0 on the mainboard 6HC M307 H0 B0 S1.00 ; The bed heater is set to PWM & limited M140 H0 ; The heated bed is mapped/connected to heater0 port on the mainboard 6HC M143 H0 S120 ; The heated bed it temperature limited to 120C on heater0 on the mainboard 6HC ; ; Hot End Heater ; M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Hot End" ; Sensor1 is a thermistor & mapped/connected to the temp1 on the toolboard LC1 (B4725) M950 H1 C"121.out0" T1 ; The hot end heater optput is mapped/connected to the out1 port & mapped/connected to sensor1 on the toolboard LC1 M307 H1 A312.4 C202.6 D15 S1 V24.2 B0 ; Testing M143 H1 S310 ; The hot end temperature is limited to 310C on heater1 on the toolbaord LC1 ; ; Fans ; M950 F0 C"121.out1" ; The part cooling fan (fan0)is mapped/connected to out1 on the toolboard LC1 M106 P0 S0 H-1 C"Part Cooling Fan" ; The part cooling fan (fan0)is set to value 0 & thermostatic control is turned off M950 F1 C"121.out2" ; The hot end cooling fan(fan1)is mapped/connected to out2 on the toolboard LC1 M106 P1 S255 H-1 ; The hot end cooling fan(fan1)is set to value 1 & thermostatic control turned off ; ; Tools ; M563 P0 D0 H1 F0 S"Hot End" ; Tool 0's definition G10 P0 X0 Y0 Z1 ; Tool 0's axis offsets G10 P0 R0 S0 ; Tool 0 is set to active & it's standby temperature is set to 0C ; ; Misc Settings ; ;T0 ; Define which tool is selected at start up M501 ; Run any config-overide settings
; bed.g ; ; called to perform automatic bed compensation via G32 ; G28 ; Home all axis's G30 P0 X2 Y-2 Z-99999 ; Probe near the front left lead-screw G30 P1 X152 Y278 Z-99999 ; Probe near the rear lead screw G30 P2 X290 Y-2 Z-99999 S3 ; Probe near the front right lead-screw G30 P0 X2 Y-2 Z-99999 ; Probe near the front left lead-screw (Second Pass) G30 P1 X152 Y278 Z-99999 ; Probe near the rear lead screw (Second Pass) G30 P2 X290 Y-2 Z-99999 S3 ; Probe near the front right lead-screw (Second Pass) G91 ; Switch to relative positioning moves G1 H2 Z1 F8000 ; Drop the Z axis (the bed) relative to its current position G90 ; Revert back to absolute positioning moves G1 X160 Y155 F8000 ; Position the nozzle at the centre of the bed G30 ; Probe and set the height as probed
; homeall.g ; ; called to home all axes ; G91 ; Switch to relative positioning moves G1 H2 Z5 F6000 ; Drop the Z axis (the bed) by 5mm relative to it's current position G1 H1 X-350 F6000 ; Fast travel the X axis close to it's endstop & stop G1 H2 Z-5 F6000 ; Raise the Z axis (the bed) by 5mm relative to it's current position G1 H2 Z2 F6000 ; Drop the Z axis (the bed) by 2mm relative to it's current position G1 H1 Y-350 F6000 ; Fast travel the Y axis close to it's endstop & stop G1 H0 X175 Y170 F6000 ; Fast travel both X & Y to place the probe at the bed centre G90 ; Revert back to absolute positioning moves G30 ; Raise the Z axis (the bed) and stop when probe is triggered and set Z to the trigger height
-
@Phaedrux Yes i realized what i had done late as i posted it and removed the H2 on the G1 move you will have to bear with me this is my first attempt @ setting up a 3D printer.
@jay_s_uk
Yes everything is in the correct order triple checked this including M671 and probe points.@fcwilt you are correct the lead screw points are outside the bed area however the probe points are the position where the bed mount attaches to the bed unless you know of a way to put an offset in for the actual positions ?
@gloomyandy your description fits my bed setup.
@CaLviNx just reading through your config should the M671 command come after M584 not before ?
Referance https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors.; bed.g
; called to perform automatic bed compensation via G32
;M561 ; clear any bed transform
G28 ; home all
G30 P0 X170 Y30 Z-99999 ; probe near a leadscrew middle right
G30 P2 X-180 Y-170 Z-99999 ; probe near a leadscrew Front left
G30 P1 X-190 Y190 Z-99999 S3 ; probe near a leadscrew rear left and calibrate 3 motorsG1 X0 Y0 F8000
G30 Z; homez.g
; called to home the Z axis
;
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 X0 Y0 F6000 ; go to first probe point
G30 ; use probe to find Z 0
G91 ; relative positioning
G1 Z10 F6000 ; lift Z relative to current position
G90 ; absolute positioning -
@Turricann said in Triple Z Axis G32 Bed Traming:
@CaLviNx just reading through your config should the M671 command come after M584 not before ?
Which part of my disclaimer did you not understand ?
-
@Turricann said in Triple Z Axis G32 Bed Traming:
@fcwilt you are correct the lead screw points are outside the bed area however the probe points are the position where the bed mount attaches to the bed unless you know of a way to put an offset in for the actual positions ?
How is it possible to probe at the lead screw locations? How can the probe get to those location without colliding with the lead screws?
The M671 values should be the actual XY position of each leadscrew while the G30 XY positions should be somewhere on the bed.
Frederick
-
@fcwilt or the kinematic mount positions
-
@jay_s_uk said in Triple Z Axis G32 Bed Traming:
@fcwilt or the kinematic mount positions
That's a more accurate explanation
@fcwilt some printers the lead screws only job is to move the axis, and they can also have pivots used to eliminate over constraining that axis
-
@fcwilt I understand what you mean, i had taken it as the M671 command needed to match the commands in the bed.g
ie the probe points but i have now updated the potions to match the actual lead screw position leveling seem to work better now but i need to run the leveling process twice as the first run did not adjust the offset correctly.output from the console.
G32
Leadscrew adjustments made: 1.999 1.920 3.028, points used 3, (mean, deviation) before (-0.548, 3.417) after (-0.000, 0.000)
Leadscrew adjustments made: 0.057 -0.082 1.163, points used 3, (mean, deviation) before (-2.838, 3.845) after (0.000, 0.000)
1/2/2021, 5:09:05 PM G32
Leadscrew adjustments made: 1.166 1.972 2.849, points used 3, (mean, deviation) before (-0.292, 2.602) after (-0.000, 0.000)
Leadscrew adjustments made: 0.115 -0.163 0.823, points used 3, (mean, deviation) before (-2.285, 3.068) after (0.000, 0.000) -
@CaLviNx said in Triple Z Axis G32 Bed Traming:
@jay_s_uk said in Triple Z Axis G32 Bed Traming:
@fcwilt or the kinematic mount positions
That's a more accurate explanation
@fcwilt some printers the lead screws only job is to move the axis, and they can also have pivots used to eliminate over constraining that axis
That was not the point I was trying to make.
My question dealt with how it was possible to probe the lead screw position (or the mount position).
And as we now see the OP misunderstood what the parameters to M671 should have been.
Frederick
-
@Turricann said in Triple Z Axis G32 Bed Traming:
@fcwilt I understand what you mean, i had taken it as the M671 command needed to match the commands in the bed.g
ie the probe points but i have now updated the potions to match the actual lead screw position leveling seem to work better now but i need to run the leveling process twice as the first run did not adjust the offset correctly.You still seem to be having a problem. On my printer two runs are always enough to get it spot on.
Does a single G30 to set the Z=0 datum work as expected? If you move to Z=0 is the nozzle touching (or nearly so) the bed?
Frederick
-
@Turricann said in Triple Z Axis G32 Bed Traming:
G1 X0 Y0 F6000 ; go to first probe point
G30 ; use probe to find Z 0The position of the probe for the G30 should match between homez and homeall (and any other place you are setting Z0)
-
Doing a single G30 probes the bed @X0, Y0(Bed center), Doing a G1 Z0 the nozzle moves so its touching the bed.
-
@Phaedrux I see i had not set the probe offset, however the bed is still not tramming correctly any other thoughts ?
-
@Turricann said in Triple Z Axis G32 Bed Traming:
Doing a single G30 probes the bed @X0, Y0(Bed center), Doing a G1 Z0 the nozzle moves so its touching the bed.
Thanks.
Seems like your Z probe is configured and working correctly.
Perhaps the following may help:
I don't do multiple passes in my bed.g - just one. And I also end the bed.g processing with setting the Z=0 datum at the center of the bed.
I obtain multiple passes by ending my homez.g file with two G32 commands.
Frederick
-
I have changed the M671 leadscrew Positions from where the leadscrews are to the pivot points under the bed as in @CaLviNx config.g example.
The bed leveling now seems more consistant,
1/2/2021, 9:51:43 PM G32
Leadscrew adjustments made: 0.291 0.320 0.311, points used 3, (mean, deviation) before (0.307, 0.010) after (-0.000, 0.000)
1/2/2021, 9:50:43 PM G32
Leadscrew adjustments made: 0.307 0.299 0.307, points used 3, (mean, deviation) before (0.305, 0.004) after (-0.000, 0.000)
1/2/2021, 9:49:43 PM G32
Leadscrew adjustments made: 0.308 0.294 0.297, points used 3, (mean, deviation) before (0.300, 0.005) after (-0.000, 0.000) -
@Turricann said in Triple Z Axis G32 Bed Traming:
I have changed the M671 leadscrew Positions from where the leadscrews are to the pivot points under the bed as in @CaLviNx config.g example.
The bed leveling now seems more consistant,
1/2/2021, 9:51:43 PM G32
Leadscrew adjustments made: 0.291 0.320 0.311, points used 3, (mean, deviation) before (0.307, 0.010) after (-0.000, 0.000)
1/2/2021, 9:50:43 PM G32
Leadscrew adjustments made: 0.307 0.299 0.307, points used 3, (mean, deviation) before (0.305, 0.004) after (-0.000, 0.000)
1/2/2021, 9:49:43 PM G32
Leadscrew adjustments made: 0.308 0.294 0.297, points used 3, (mean, deviation) before (0.300, 0.005) after (-0.000, 0.000)Did you try adding the G30 in your bed.g file to set the Z=0 datum after the leveling phase?
Your bed seems level but has a Z offset.
Frederick
-
@Turricann said in Triple Z Axis G32 Bed Traming:
I have changed the M671 leadscrew Positions from where the leadscrews are to the pivot points under the bed as in @CaLviNx config.g example.
@dc42 - is that the correct way to set M671 for printers with kinematic mounts?
Thanks.
Frederick
-
@fcwilt said in Triple Z Axis G32 Bed Traming:
@Turricann said in Triple Z Axis G32 Bed Traming:
I have changed the M671 leadscrew Positions from where the leadscrews are to the pivot points under the bed as in @CaLviNx config.g example.
@dc42 - is that the correct way to set M671 for printers with kinematic mounts?
Thanks.
Frederick
Sigh, this is yet another reason I add a disclaimer....
-
@fcwilt I would've thought gloomyandys answer was sufficient
-
@jay_s_uk said in Triple Z Axis G32 Bed Traming:
@fcwilt I would've thought gloomyandys answer was sufficient
Why?
dc42 did the code - who knows if these special cases were taken into account or if it even matters.
Even though I have kinetic mounts specifying the position of the leadscrews works fine.
Frederick
-
@fcwilt said in Triple Z Axis G32 Bed Traming:
who knows if these special cases were taken into account or if it even matters.
It's an approximation of location at any rate, since you're trying to approach zero, the farther off your estimate is, the longer it takes to reach. It says the position of lead screws, but that's just an assumption that most people will have printers with lead screws and won't have specifically designed pivot points, in which case, the lead screw is the natural pivot point. So technically, M671 is defining the pivot point, but in practice that's most commonly going to be a lead screw, and even more practically, it doesn't matter so much as long as you're "pretty close".