P2S Bed Leveling Issue/Inconsistent First Layer Across the Bed

Hi everyone,

I’m fairly new to Bambu printers and I’m trying to understand an issue with the bed leveling on my P2S.

Printer: Bambu Lab P2S
Slicer: Bambu Studio
Nozzle: 0.4 mm
Filament: PLA
Automatic bed leveling: enabled
Build plate cleaning: thoroughly cleaned with warm water and dish soap, rinsed and dried without touching the print surface afterwards
Photos: unfortunately I don’t have useful photos of the issue at the moment

The problem

My first layer is not equally consistent across the entire build plate.

In some areas the nozzle distance looks correct, while in other areas it appears slightly too close or too far away.

This is not simply a case of poor adhesion. The actual nozzle-to-bed distance appears to vary depending on the position on the build plate.

The behaviour is repeatable in particular areas of the bed, which is why I don’t think this is caused by fingerprints, contamination or random adhesion problems.

I would expect the automatic bed leveling / mesh compensation to correct for these differences.

What I have already done

I have already adjusted the Z-offset, which improved the first layer overall.

However, a Z-offset obviously changes the nozzle distance globally, so while it can improve the average first layer, it does not solve the difference between different areas of the bed.

During troubleshooting I was also advised to change the start G-code so that the printer uses the complete bed mesh instead of only the area occupied by the current print.

The original command is:

G29 A2 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}

I changed this to:

G29 H

There appears to be another similar G29 A2 … command elsewhere in the start G-code as well, which made me question whether I actually understand correctly what these commands are doing.

What I’m trying to understand

  1. Does G29 H actually make the P2S use the complete stored bed mesh?
  2. Should all instances of the area-specific “G29 A2 X… Y… I… J…” command be replaced, or only one?
  3. Is using the complete mesh preferable if the bed itself has measurable height variation?
  4. Should the P2S normally compensate for this kind of difference automatically?
  5. If the nozzle-to-bed distance remains position-dependent after automatic bed leveling, could this indicate:
    • bed flatness issues,
    • a mechanical problem,
    • an incorrect mesh,
    • or a limitation/problem with the mesh compensation?
  6. Is there any way to inspect or retrieve the actual measured bed mesh from the P2S?

I would particularly like to see the actual mesh values, because that would make it possible to distinguish between a physically uneven bed and a compensation problem instead of trying to diagnose everything from first-layer appearance.

What I’m not trying to solve

I’m specifically trying to diagnose the bed leveling / mesh compensation behaviour, rather than general first-layer adhesion. Which is great by then way :laughing: .

The build plate is cleaned properly with water and dish soap, and I’m not looking to compensate for the problem indefinitely by changing bed temperature, adding glue, increasing brims or making larger and larger Z-offset adjustments.

I’d really like to understand what the printer is measuring, what mesh it is actually using during a print, and whether the leveling system is behaving as intended.

If anyone has investigated the P2S leveling system or these G29 commands in detail, I’d really appreciate your input.

Thanks!

There is no way to see the mesh values.

If you want to see your bed mesh the best option is to get a dial indicator and print out a holder that mounts to your toolhead - you can run a program to probe the bed and you can record the result at each location.

I didn’t bother reading the rest of your post, that just stuck out to me.

Ive read some other posts on this. On my p2s I took a indicator and set the heat bed to 50 to 60 degrees and used the 4 screws to level it out the best i could. Its not perfect because different temperatures, but after that I created a new p2s preset and in the start g code i set the z level to -.03. When comparing the start g code to the x1 carbon and i believe its true for others as well, their values are around that -.02 realm. Im just going off the top of my head, i know its close to that. they key is its in the negatives. the p2s started at .02 i think. Some folks have said its a bug, some folks said the proper fix is to drop the z, and i think some folks say to do flow calibrations and that. Regardless ive been a touch lazy and have just rolled with whatever bambu has filament wise. I mostly have their filament and kind of summed it up as good enough… lol I might try and see if calibrating yields better results one day. Best of luck

i just realized this. had to of happened in a firmware update at some point. under calibration there is a first layer calibration for the p2s and it looks like you can manually set the z heigh lower instead of doing it in the start g code. I haven’t tried it yet because I have something printing but, check it out, maybe it will help