Solved Need help understand dual Z auto bed compensation
I've built a 300x300x400 hyper cube evo and i'm just working out my first print kinks and i'm struggly to understand how the auto bed compensation works with my dual Z.
M569 P1 S0 ; Drive 0 goes backwards
M569 P1 S0 ; Drive 1 goes backwards
M569 P2 S1 ; Drive 2 goes backwards
M569 P3 S0 ; Drive 3 goes backwards
M569 P4 S1 ; Drive 4 goes backwards
M584 X0 Y1 Z2:4 E3 ; Drive 0 controls X, Drive 1 controls Y, Drive 2:4 controls Z, Drive 3 controls E
; Motor order: Left (1), Right (2)
M671 X-35:335 Y150:150 S3 ; Location of the Lead Screws
; Axis Limits
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X285 Y295 Z390 S0 ; Set axis maxima
M574 X1 S1 ; Set active High endstops (S1=SENSORED) (X-MIN(1)) (S3=SENSORLESS)
M574 Y1 S3 F0 R0 ; Set active High endstops (S1=SENSORED) (Y-MIN(1)) (S3=SENSORLESS)
M574 Y1 S3 ; Set endstops controlled by motor load detection
M574 Z1 S2 ; Use zprobe and home to min
M915 X Y S7 R0 F0 ; set X and Y to sensitivity 7, do nothing when stall, unfiltered
M574 Z1 S2 ; Set endstops controlled by probe
M307 H3 A-1 C-1 D-1 ; Disable heater on PWM channel for BLTouch
M558 P9 H5 F120 T6000 ; Set Z probe type to bltouch and the dive height + speeds
G31 P25 X-24 Y-19 Z0.22 ; Set Z probe trigger value, offset and trigger height
M557 X25:270 Y25:290 S20 ; Define mesh grid
M561 ; clear any bed transform, otherwise homing may be at the wrong height
G31 X0 Y0 ; don't want any probe offset for this
G28 ; home the printer
;*** Remove the following line if your Z probe does not need to be deployed
M98 Pdeployprobe.g ; deploy the mechanical Z probe
G30 P0 X35.0 Y150.0 Z-99999 ; probe near a leadscrew
G30 P1 X270.0 Y150.0 Z-99999 S2 ; probe near a leadscrew
;*** Remove the following line if your Z probe does not need to be retracted
M98 Pretractprobe.g ; retract the mechanical Z probe
When i run the bed level, i get different results no matter how many times I run it and when i see it run, it seems backwards from what i have setup - is that how it actually works?
Going to post a onedrive video with the video of this:
First run of bed gave this:
Leadscrew adjustments made: 2.098 -1.566, points used 2, deviation before 1.188 after 0.000
Then 2nd run gave this:
Leadscrew adjustments made: 2.141 -1.603, points used 2, deviation before 1.213 after 0.000
That is what i get after running the auto bed compensation and then running a run mesh grid compensation
is the X/Y/Z arrows 0,0 or is that at the full 300/300 corner? not sure what the perspective of the image is
G31 X0 Y0 ; don't want any probe offset for this
Why don't you want probe offsets for this? X0 Y0 would be your nozzle. The BlTouch is not your nozzle. You need to tell the system where the probe is in relation to the nozzle. Hence the offset.
Your video shows you probing no where close to your leadscrews. You want to probe with the BLtouch as close as possible. If it's really out of level you may need to rerun it a few times until the adjustments made barely change anymore. Then you'll probably want to rehome Z once with the probe in the center of the bed to re-establish your Z0 point. Then run mesh grid compensation.
Have you seen this? https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
That G31 was in the file I used to start with, i didn't put that mention in there
So it should probe near the lead screws - i'm not sure why its probing the exact opposite.
I did a manual bed level and managed to get a test cube done to confirm some setup. Maybe after some sleep the setup for this dual z level will click - i obviously have something backwards since it is doing the probe like its rotated 90 degrees on wrong x/y
The arrows on the mesh compensation image indicate 0,0 and that should be the front left of the bed in order for the coordinates to make sense.
Are you sure you have your motors turning the right way?
I can home to 0,0 and it does what I expect. I have homing set to the front left and the motors go there when i Home all. Using the head movement functions I see correct movements when i advance X/Y/Z
It was a mirrored configuration... once i printed my test cube i saw it was mirrored... did the cable swap/flip a zillion times until i got it working again. 0,0 homes correctly, xyz move and now my dual z is near the lead screws. I think i just needed to sleep on it thanks for the help!!
Glad you got it sorted out.
The coreXY setup guide describes a motor test you can do to ensure things are moving correctly. Also, as you realized, just because it homes to the right place doesn't mean it's not mirrored, since you're able to correct for the mixup by specifying the direction of homing in your files.
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:
G1 S2 X10 F3000
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 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:
G1 S2 Y10 F3000
For 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.
For firmware 1.18 and earlier: 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.