Why does the H2D perform bed leveling with both nozzles?

Somewhat odd question here maybe:

If bed leveling is performed to probe the flatness of the build platform and nozzle offset calibration is performed to probe the nozzle offset, then why on earth does my H2D have to perform the bed leveling routine with both nozzles and take an absolute eternity before starting the print? Probing with the right nozzle will yield an accurate map of the bed that is valid independent of the nozzle and the nozzle offset will clearly calibrate that aspect. So what is going on here?!
Really looking forward to everyone’s input on this one.

Because bed mesh is relative to specific nozzles. It depends on many things including slight misalignments between nozzles, and the tip of nozzle is not a “flat, horizontal surface”, it has an angle too which would contribute to difference of bed meshs.

In short, the offset detection is not as accurate as having both nozzles probed. I’m pretty sure when we get the Vortek, it would perform a 6 nozzle probing lol.

I’m sorry, but that doesn’t make much sense. the bed leveling is for probing the bed shape, not the nozzle. the bed shape, high spots and low spots, is completely independent of any nozzle alignment. besides, the nozzle offset calibration already takes care of that.

you’re over simplifying the process. it’s not just the bed, it’s also the nozzle tip. It’s a relation between two surfaces, the bed surface, and the nozzle tip surface.

The reason the H2D probes both nozzles is that the printer needs an accurate Z-offset for each nozzle relative to the build plate surface. The important part for a good first layer is the distance between each nozzle tip and the probed surface, not just how flat the plate is in theory.

In any multi-nozzle setup, each nozzle can have a slightly different effective length due to manufacturing tolerances or wear, so each one needs its own calibrated offset.

For example, if the left nozzle is 0.01 mm closer to the build plate than the right one and you only probe or calibrate the right nozzle, the first layer printed with the left nozzle will be off by 0.01 mm across the entire build area unless the firmware compensates for that difference.

The same logic applies even more strongly in a Vortex-style toolchanging system. Since the nozzle is mechanically picked up and locked into place, even a very small variation in how it seats — due to tolerances in the locking mechanism, wear, or micro-alignment differences — can shift the effective nozzle height slightly.

If the system cannot guarantee a perfectly repeatable mechanical engagement every single time a nozzle is picked up, then in practice each nozzle would require its own calibrated Z-offset, and ideally a verification or calibration routine whenever a different nozzle is loaded.

That’s why multi-nozzle and toolchanging systems rely heavily on per-nozzle probing: even tiny inconsistencies in how the nozzle is mounted will directly affect the first-layer accuracy.

Right but @Kulfuerst has a point though because I too think this is overkill.

If you calibrate the full bed with the right nozzle and on a reference point you calibrate the Z offset of the left nozzle you can add or substract (depending on the direction of the offset) this offset to every points of the right nozzle calibration.

Even if the left nozzle has a slight difference in X and Y, this gets measured on the back of the plate during offset calibration and the interpolation of the right nozzle calibration can be used wherever the left nozzle lands on the plate.

For me, X and Y offset is measured on 1 point only, same could be done for Z offset.

I certainly hope the Vortek calibration of the 6 nozzles will only probe 1 point for each in X, Y and Z (in addition to the full bed leveling of 1 of the nozzle that you would have done as part of the setup) and not do a full bed calibration for each nozzle…

1 Like

Still I agree with @philch that the shape of the bed is not going to be different if you measure it with the left or the right nozzle. The bed/build plate is still the same shape.

So if the left nozzle orifice has a slightly different shape than the right one, that might cause a slightly different Z-offset for the left nozzle.

Additionally the firmware is first doing a mesh with both nozzles and after that it does a nozzle offset calibration!
How silly is that?

If the shape of the bed is known (meshed with right nozzle), the only thing required is to determine the offset between the two by measuring the same spot on the bed with both nozzles.

The bed mesh is not even measured beyond the common area that both nozzles can cover.

Unless the shape of the X-rail is so strongly bent that those 2 meshes are not within a certain tolerance.

I have not heard any argument yet that would require a full mesh with both nozzles.

1 Like

The arguments for nozzle offset fall apart based on the fact that there is a dedicated nozzle offset calibration specifically for that purpose. Besides, you cannot probe two variables, bed flatness and nozzle offset, at the same time using the nozzle tip.

The x-gantry runs a rigid toolhead on linear rails. There is no way I can twist this for two nozzle probing to make sense.

Never thought about it but in theory should only need to do MBL with one nozzle then perform a nozzle offset calibration for the other nozzle to get the offset between the two nozzles then apply the offset at nozzle changes at least that’s how my toolchanger works. Keeping with the BL vein does that mean the printer will do a MBL for every nozzle prior to printing with the H2C or will it just do a nozzle offset calcuation?

A twist should not influence the height difference because the 2 nozzles are in line with the gantry.

However in this exaggerated image of a bent gantry there could be an effect on the height of the left and right nozzles.

Assuming the linear rail by itself is straight enough so that those deviations are negligible, only the mounting of the rail could introduce some deformation.
But as mentioned before, I assume that this is still negligible.

Besides this possible error, I still don’t see a reason to probe the entire bed twice with both nozzles.

Its so much overkill. Just started a two nozzle print. I changed the bed type so i decided to set bed level to “on” instead of “auto”. It probed the full bed with the right nozzle, then did the 5 point with the right nozzle, switched to left nozzle and tried the five point and at the third probe point (back left) it came back and started all the probe points, came back to right nozzle and did 5 point probe, came back on fourth probe (back left), switched to the left nozzle AGIAN and probed the full bed AGAIN, finally did did a 5 point probe and started print. All the taps with the left nozzle take a bunch of taps. Yes all the screws are tightened and after all this time the first layer looks amazing but it takes like 20-25 minutes. I wonder why the H2D doesnt do the little shimmey that the X1C does during bed leveling? I honestly hate the H2D compared to the X1C it just seems like its in beta still yet they bring out new printers. I bought the X1C very early and it was so much better than this. At least i have the bad first layer rippling fixed but i had to adjust the gcode to raise the z height by .02mm for that. Just so many problems out of the box… I feel Bambu is not worried about quality anymore.

Which type of build plate required that Z+0.02mm offset?

By default the Smooth PEI has no offset, and the Textured PEI has a Z-0.02mm offset, to compensate for the top/bottom of the texture.

the textured plate was adjusted to Z 0.02mm offset. This fixed all first layer issues with the textured plate.

this is the adjusted gcode

;===== for PEI Plates , lower the nozzle as the nozzle was touching topmost of the texture when homing ==
{if curr_bed_type==“Textured PEI Plate”}
G29.1 Z{0.02} ; for Textured PEI Plate = Bambu Lab default -0.02
{else}
G29.1 Z{0.05} ; for Smooth PEI Plate = Bambu Lab default 0.00
{endif}

Y’all claiming that it’s overkill why not just do a first layer test with both of your nozzles, you would be very surprised.

There are errors in nozzle placement, alignment, flexural deformations caused by extrusion pressure, difference in heat expansion caused by different nozzle seat designs… if it’s really that simple why not just do the 1+1=2, right nozzle + offset = left nozzle, y’all really think that the engineers doing this work are drop outs from primary school?

Real world isn’t ideal, and that makes our lives so much harder but also more interesting

You are mentioning a lot of factors that might all influence the difference between the left and the right nozzle.

But I don’t see why those differences are “different” at other locations on the build plate.

The first firmware version didn’t mesh the entire build plate with both nozzles, and my prints were fine too.

And if they want to compensate for heat expansion, they should probe at extrusion temperatures, and not the 140C they use now.

I don’t think they are!
But no one here, has so far given me any clear reason, why meshing the bed with both nozzles is required.

And I can’t think of one either.

Still, if someone comes up with plausible explanation I am willing to accept that.

@SupportAssistant is it possible for Bambu Labs to explain the reason why the H2D requires a bed mesh with both nozzles at the start of a print?

And why this is then not performed on initial calibration?

I’m afraid you will only get an answer like « our engineers have determined this was the optimal way of doing it »…

When I was optimizing my tramming gcode with a dial gauge, I issued a ticket to ask why the tramming gcode provided by bambu on the H2D was probing the plate in an asymetrical manner (X=70 at the front left, X=90 at the back left, X=280 at the front right, X=285 at the back right) and this is the answer I received…

I then convinced myself that it must only be to leave enough room for your hand to reach the screws on the left and a typo on the right but then H2S tramming gcode is now X70 for both front and back on the left and X280 and X270 on the right, head being smaller, my assumption might be still be right as I can’t see why it’s not symetrical but I never received a technical explanation other than « that’s how it should be » after at least 5 back and forth mails to support…

Honestly im gonna die from laughter if it performs a 6 nozzle bed mesh.
Like ok… you have the most “advanced” multicolor system (its not, its an overcomplicated mess, 0.1/10 of real benefit), but on top of that it takes 3 hours to start printing… oh my god… i can see it coming.

Most of these factors come into play once the print starts, and if those really played a role, then they would make the mesh irrelevant as the first probing was missing all that data.

TBH all the people saying that its as easy as 1+1 , it is. Voron and Klicky probe did it years ago, and still do.