independant z axis steppers, for bed leveling
-
You're missing the M671 command.
You need to give it the coordinates of your lead screws as close as you can estimate (relative to your 0,0 position).
If driver 7 is on the left side, list that one first. Then list driver 8.
I don't know where your lead screws are, so you're going to have to measure that one.
Then you need to edit your bed.g file to probe two points as close as you can get to your lead screws.
There are examples in the link provided. Where exactly are you getting stuck?
-
@Phaedrux
stuck on modding the homeall.g and homez.g and bed.g now m671 arghhhhhh, lolthe original z (7) is on the right
my table is 440(x) and 535(y) all MM
0:0 is the front left corner
left leadscrew is at x0 ,y267.5 closest to (Z8 leadscrew)
right leadscrew is at x440, y267.5 (Z7 leadscrew) -
Your homing files don't really need to change if you don't want to. Everything can be done in the bed.g file which is called with G32.
So if your lead screws are at those locations in that order..
M671 X440:0 Y267.5:267.5 S5
Now is the lead screw actually at X0? that would mean in line with the endstop position. Is it maybe actually a bit off to the left more? Remember, this is relative to the 0,0 point on your bed, which is the front left corner of the printable area. Your leadscrew is outside of that area. And same on the right side, its probably a bit more than 440. Anyway I'll use your numbers as an example.
So that lists two X coordinates and two y coordinates, one for each lead screw. Starting with the x440 lead screw since it's connected to the 7 driver which is listed first in M584.
The S5 at the end increases the amount of correction per run to 5mm since you have such a large bed.
So add that M671 command below your M584 in config.g
In bed.g you'd want something like this to set z0 using the probe (since the homeall is using an endstop) and probe as close to the lead screws as possible taking your probe offset into account.
M561 ; clear all bed compensation G28 ; home all axis G90 ; absolute positioning G1 X220 Y250 Z25 ; move probe to center of the bed G30 ; set Z0 position with the probe G1 Z20 ; return to 20mm height G30 P0 X430 Y226.6 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X10 Y226.6 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors G1 X220 Y250 Z25 ; move probe to center of the bed G30 ; set Z0 position with the probe
Note that it might take a few runs of G32 to correct for the tilt entirely.
Note that if you run your G28 homeall again after doing this it will reset the Z0 position with the endstop and you'll have some amount of offset from the actual bed surface. (unless you've perfectly nailed the endstop position to match the nozzle touching the bed.) So best to use G28 before G32, and then start the print, or add a single G30 to the center of the bed into your slicer start gcode.
-
@Phaedrux
the printable area is 440 by 535. the leadscrews are 50mm out from the printable area on both the right and left side both at y 267.5and YES Z0 is right on with the bed and the nozzle, well a papers width
im more into setting things up mechanically first , rather than relying completely on software to fix things, less chance of errors lateri get what your saying . the left leadscrew will actually be, x-50 /Y2267.5 and the right will be x490/y267.5
-
@Phaedrux said in independant z axis steppers, for bed leveling:
M671 X440:0 Y267.5:267.5 S5
Alright, so then we'd need to add/subtract 50mm
And just to confirm since the previous thread we now have 0,0 in the front left corner, correct? We want a right hand coordinate system and since everything is relative to the 0,0 point based on that it kind of matters.
@tracar said in independant z axis steppers, for bed leveling:
i get what your saying . the left leadscrew will actually be, x-50 /Y2267.5 and the right will be x490/y267.5
Yes, exactly.
-
@Phaedrux
yes 0.0 is front left -
Alright, so with all that in place, I suggest reducing motor currents a bit, and trying the bed.g with a hand near the power switch.
-
@Phaedrux
motor current is irrelevant here as it is all external driver, but for fun i have the external drives set to 300ma -
@Phaedrux said in independant z axis steppers, for bed leveling:
G32
Error: Probe points P0 to P1 must be in clockwise order starting near minimum X and Y
-
Ah k. Just change the order of the p1 and p2 points in bed.g.
Move the p2 line above the p1 line and then change p2 to p1 and p1 to p2.
The m671 has to follow the order of the drivers. But the points don't.
-
i got this far:
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Aug 02 2020 19:54:07 GMT-0600 (Mountain Daylight Time)
M561 ; clear any bed transform
G29 ; probe the bed and enable compensationM561 ; clear all bed compensation
G28 ; home all axis
G90 ; absolute positioning
G1 X220 Y290 Z5 ; move probe to center of the bed
G30 ; set Z0 position with the probe
G1 Z10 ; return to 20mm height
G30 P1 X10 Y295 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G30 P0 X0 Y295 Z-99999 ; probe near a leadscrew, half way along Y axis
G1 X220 Y267.5 Z10 ; move probe to center of the bed
G30 ; set Z0 position with the probe
-
@tracar said in independant z axis steppers, for bed leveling:
Y295
i changed it a bit so center of the bed is exactly in line with the leadscrews, changed it to 295..
-
@Phaedrux said in independant z axis steppers, for bed leveling:
p2 to p1 p1 to p2 ?
Error: Probe points P0 to P1 must be in clockwise order starting near minimum X and Y -
still:
Error: Probe points P0 to P1 must be in clockwise order starting near minimum X and Y
it probes 50mm infront of the bed on the first probe.
i think i changed stuff to suit this bed.. i may be incorrect....Z50 y9.1 is the very first g32 probe point
-
@Phaedrux said in independant z axis steppers, for bed leveling:
M561 ; clear all bed compensation
getting somewhere now
had to disable mesh compensation. then it does stuff8/28/2020, 5:51:16 AM G32
Leadscrew adjustments made: 0.547 -1.117, points used 2, deviation before 0.843 after 0.000i intentionally set the left side of the table lower than the right anf run g32 again. it says it adjusted but the table remains tilted . is this right?
looks like its getting more out of tilt when another g32 is called
-
@tracar said in independant z axis steppers, for bed leveling:
i have the right dimensions added.
it probes 3 places,
it adjusts the bed, (but adjusts reversed so gets more of a tilt)
then sets zo 7mm below the nozzle.we are so close !!!
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Aug 02 2020 19:54:07
M561 ; clear all bed compensation
G28 ; home all axis
G90 ; absolute positioning
G1 X220 Y330 Z25 ; move probe to center of the bed
G30 ; set Z0 position with the probe
G1 Z25 ; return to 25mm height
G30 P0 X440 Y330 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X0 Y330 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G1 X220 Y330 Z25 ; move probe to center of the bed
G30 ; set Z0 position with the probe+++++++++++++++++++++++++++++
; Drives
M569 P5 S0 T5 R1 ; physical drive x axis goes forwards
M569 P6 S1 T5 R1 ; physical drive y axis goes forwards
M569 P7 S1 T5 R1 ; physical drive z axis goes forwards
M569 P8 S1 T5 R1 ; physical drive z2 axis goes forwards
M569 P3 S1 ; physical drive 3 goes forwards
M584 X6 Y5 Z7:8 U8 E3 P3 ; set drive mapping
M671 X-50:490 Y330:330 S5 ; x leadscrew position left to right from o,o on y axis , S5 means can adjust up to 5 mm
M350 X16 Y16 Z16 U16 E16 I1 ; configure micro stepping with interpolation
M92 X200.00 Y200.00 Z800.00 U800.00 E138.23 ; set steps per mm
M566 X200.00 Y200.00 Z12.00 U12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X25000.00 Y25000.00 Z1000.00 U1000.00 E2400.00 ; set maximum speeds (mm/min)
M201 X400.00 Y400.00 Z20.00 U20.00 E400.00 ; set accelerations (mm/s^2)
M906 X300 Y300 Z300 U300 E800 I30 ; set motor currents (mA) x,y,z,u are external stp/dir drivers
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 U0 S1 ; set axis minima
M208 X440 Y535 Z900 U900 S0 ; set axis maxima; Endstops
M574 X1 Y2 Z1 U1 S0 ; set active high endstops 1= minimum 2=maximum end, S1 = normally closed and S2 = normally open; Z-Probe
M307 H7 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch
M950 S0 C"exp.heater7" ; create servo pin 0 for BLTouch
M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X0 Y40.9 Z-2.703 ; set Z probe trigger value, offset and trigger height
M557 X50:400 Y50:400 S100 ; define mesh gridwhat is needing adjustment?
-
updated changes
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Aug 02 2020 19:54:07
M280 P7 S160 ; Alarm Release and Push-Pin UP
M561 ; clear all bed compensation
G28 ; home all axis
G90 ; absolute positioning
G1 X220 Y330 Z25 ; move probe to center of the bed
G30 ; set Z0 position with the probe
G1 Z25 ; return to 25mm height
G30 P0 X440 Y330 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X0 Y330 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G1 X220 Y330 Z25 ; move probe to center of the bed
G30 ; set Z0 position with the probe
M280 P7 S90
M671 X-50:490 Y330:330 S5 ; x leadscrew position left to right from o,o on y axis , S5 means can adjust up to 5 mm
G31 P500 X0 Y0 Z4.247 ; set Z probe trigger value, offset and trigger height
i believe it works as intended now with the above changes
but since both z steppers (Z and U) are independant with each its own endstops, how can i configure homeall /homez to do this independantly to bring z and u Up at the same time and stop when both endstops are triggerd ?
-
@tracar again read this link https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors.
Scroll down 2/3 of the page and read the section for axis levelling using endstops.
-
@dhusolo
g32 works great alreadyi need help with setting the second z axis (U) as a independant entity that can be homed and Pre level the bed with (Z), before any g32 happens
-