Mesh Bed Compensation on one plane for Belt 3D Printers
-
Is it possible to only probe on one plane? In my case I want to probe only the Y-Axis with a BLTouch. I have a printer with a continuous belt as printing platform. The printhead is tilted 45degree which leads to the printing gantry being the X and Y axis, the belt is therefore the Z-axis.
What I've tried so far:
Setup for BLTouch on a SKR Pro V1.2 running RRF:
M574 Y1 S2 ;Setup Y as probe ; Y-Probe M558 P9 H6 F120 T8000 X0 Y1 Z0 C"^probe" ; enable Y probe, set dive height, probe speed and travel speed M557 X50:170 Y0:10 S20 ; define mesh grid G31 X34.4 Z9 Y0 ; BLtouch offset M950 S0 C"servo0" ; Setup servo 0 as servo port on SKR
Homing Y is a workaround because probing does not work at the moment
G91 ;relative positioning G1 H2 Y-15 X15 F50000 ;lift y relative to current position G1 H2 X50 Y50 ;Move X M401 ;deploy probe G1 H1 Y-285 F2400 ;move Y down until BLTouch is triggered G90 ;absolute positioning G1 Y4 F50000 ;Backoff 3mm G4 P500 ;wait for 0,5s M401 ;deploy probe G1 H1 Y-285 F200 ;move Y down slower until BLTouch is triggered M402 ;retract probe G1 Y10 F50000 ;lift y
Using G29 and G30 moves the Z axis, which in my case is the belt, so probing can't finish as the Y axis rather than the Z axis has to be moved.
I've tried a custom bed.g in combination with calling G32
M561 ; clear any bed transform G90 G1 X170 Y5 G30 P0 G1 X140 G30 P1 G1 X110 G30 P2 G1 X80 G30 P3 G1 X50 G30 P4 G1 X20 G30 P5
But that also doesn't work out unfortunately.
Is it maybe possible to create a heightmap sort of manually?
For instance usingG1 H1 Y-285 F2400 ;move Y down until BLTouch is triggered
saving the trigger height as point 1 and then move the the next point and do the same steps multiple times until you get a decent heightmap of the y axis (5 would probably be sufficient).
-
@semi55 Heightmaps for belt printers are not supported but you can use orthogonal axis compensation with some macro magic.
AFAIK heightmaps support different axis pairs (instead of X and Y) as of v3.3 but I don't think that concept is applicable to belt axes because they are indefinitely long.
-
@chrishamm so this would help if the printing angle is not exactly 45degree from the printbed or am I getting it wrong?
Would for instance switching the kinematics to CoreXZ from CoreXY temporarily be and option? So switching to CoreXZ, running Mesh Bed Compensation, switching back to CoreXY and changing the coordinates of the created heightmap with some code magic?
-
@semi55 Orthogonal axis compensation helps with Y not being 100% perpendicular to the belt Z axis. Since the heightmap is intended to compensate the Z height depending on the X/Y (or other) axes, you'd have to replace Y with Z but I guess there isn't an easy way to change the slicer for this.