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!