Confused with manual bed leveling and bed screw calibration

Basic Information:

Printer Model: Tronxy XY-3 pro
MCU / Printerboard: Tronxy cxy-v6

Describe your issue:

I’ve finishing setup klipper/mainsail on my xy3-pro which is a non-probe cartesian with 4 bedscrews.
Reading the klipper “manual bed leveling” docs i’m confused on the exact procedure or sequence due to this:

the documentation says to run Z_ENDSTOP_CALIBRATE which recommends setting the endstop so that it triggers .5mm above the bed and then use the paper test to find the true “negative” offset, so far so good, i’ve setup my min z to -2mm in the config for that.

Then below that, on the bedscrew calibration it says to run BED_SCREWS_ADJUST and put the nozzle above each screw then adjust it with the same paper test so that it ends up at paper-thickness. Again, so far so good by itself…

But if i do that, then the endstop won’t trigger .5mm above the bed, in fact it won’t trigger until the nozzle has crashed and pushed the bed downwards, because the procedure to calibrate the bedscrews means raising the bed(or put it differently, LOWERING the endstop).

¿so what’s the correct procedure?, do i first do a bed screw adjustment with a .5mm(or .7) feeler gauge, then run the Z_ENDSTOP_CALIBRATE so that the endstop position is at a negative Z (i.e.: after triggering the endstop)

In general, I recommend arranging the Z endstop such that one can home away from the bed. (A “Z max” endstop instead of a “Z min” endstop.)

If one must home the Z towards the bed, then I recommend arranging the Z endstop such that it triggers before the nozzle touches the bed. Often, one can setup the endstop so that it triggers while the nozzle is around .5mm still above the bed. With this hardware setup, one would use something like a position_endstop: 0.5.

During a BED_SCREWS_ADJUST it should enable one to adjust the bed screws to the Z=0 position, such that it maintains the Z endstop trigger position of 0.5mm prior to the nozzle contacting the bed.

Cheers,
-Kevin

I have a large format cartesian, homing to zmax would not only be very slow but induce unnecessary wear on the bushings(as any homing after a print will essentially be at least 1.6 to 2x the z height), it would give me no protection against bed crash.

¿but how?, if i raise the bed then it will stop reliable triggering the endstop if the bed is not flat( Z stops at the endstop, then with the screws i bring each screw to paper thickness of the nozzle ~0.1mm, which would theoretically mean that when endstop triggers it will remain at 0.1mm above the surface).
But that’s a big IF as it’s expecting sub 0.1mm accuracy on the endstop switch AND sub 0.1mm flatness on the bed.

If the bed has a bulge then the nozzle will crash in those positions BEFORE triggering the endstop.

That’s the whole issue, it’s not clear to me which of the two levelling methods should be used, or both at the same time or in what sequence.
For example, it makes no sense to run Z_ENDSTOP_CALIBRATE alone if you have no idea how the bed is positioned it could very well be completely tilted, but running the screw adjustment first invalidates the “start at 0.5mm above” from the endstop calibrate

This typically is something you cannot avoid with your concept of homing to Z min and not using a probe. Otherwise:

  1. Set your bed screws in a way that you have enough adjustment head-room in both directions
  2. Make sure you have 2-3 mm distance between nozzle and bed (via your endstop)
  3. Move the head over the first screw
  4. Go down, e.g. 1.5 mm
  5. Level this screw position
  6. Go up again to avoid scratching your bed
  7. Repeat No 3 to 6 for each screw → Now you will have a basic bed levelling
  8. Re-tune your endstop so that the nozzle is roughly 0.5 mm over the bed
  9. Repeat No 3 to 6 for each screw to your final first layer height, e.g. paper test

Now hope that your bed is mechanically stable and will retain its position.

not much of “my concept” but “the way most cartesian “older” printers are built” (they all home on zmin and a lot of them don’t have any probe).
Doing more testing yesternight i also discovered that the bed screw calibration process puts the nozzle at 0.1mm above “z=0”(which is the endstop if not configured) -something that’s not specified in teh documentation-
This makes the problem even worse as it guarantees that rising the bed to meet the nozzle will NEVER trigger the endstop(since the nozzle is already stopping before triggering it).

What i did is to use a .6mm feeler gauge with the bedscrew calibration process (was going to use .5 before i discovered the 0.1mm Z position) thus theoretically leaving the bed .5mm below endstop trigger.
Then i ran the Z_ENDSTOP_CALIBRATE process thus levelling the nozzle past the endstop trigger point with paper, which ended up being Z=-0.45, i did a quick 20mm cube print as i didn’t had much time but i think i’m still getting an iffy first layer as it did not look very cohesive.

Another thing i’ve noticed when leveling is that “down X and up X” does not return to the same position: when lowering the nozzle i was getting barely any resistance on the paper, went down a notch and it pinched the paper too hard so i backed the same distance but now it does not even touch it, went down the same distance and now it doesn’t pinch the paper (meaning than going down does not move the exact distance than going up, i have dual z screws with belt, everything is tight including belt and brass nuts and side wheels run free and nothing seems to have play and the printer does not even have 7KG printed).

Edit: i’ll have to see on how to submit/propose a documentation change, because it’s physically impossible for the enstop to trigger following the documentation if you follow screw cal → endstop cal