Quirks and poorly optimized settings / firmware

Hey everyone !

I received my P2S last week and have been print a few parts successfully (except that my AMS2 pro doesn’t work properly). While it has a few very good extruder design, great rigidity and overall good build quality, I can’t help but notice a few quirks that make absolutely no sense to me as an experienced maker that has been using and building printers since 2015.

1. Redundant homing cycles in the start g-code

The stock start g-code contains an unconditional G28 immediately after the bed leveling block, outside any conditional guard — meaning the printer performs a full XYZ rehome after every print startup regardless of whether bed leveling ran or not. On top of that, the P2S firmware’s internal G28 macro always performs a double X+Y cycle on CoreXY (which is mechanically justified), but combined with the redundant G28 call you end up with 4 full X+Y homing cycles per startup. Removing the unconditional G28 brings it down to 3.

2. Motor noise reduction activated before input shaping

M982.2 S1 (cog noise reduction) is called before M975 S1 (input shaping) in the machine reset section. Since M982.2 depends on M975 being active to have any effect, noise reduction does nothing during the noisiest part of the startup sequence. Moving M975 S1 before M982.2 S1 fixes this immediately.

3. Volumetric flow max is artificially low

The stock Bambu PLA Basic profile is capped at 21 mm³/s, and generic PLA profiles at 12 mm³/s. The hotend is rated for 40+ mm³/s. Ludicrous mode scales speeds by 150%, implicitly pushing flow to ~31.5 mm³/s — which means Bambu themselves know the hardware handles it fine. The 12 mm³/s generic cap in particular feels like a deliberate incentive to buy Bambu-branded filament.

4. Travel acceleration lower than print acceleration

In the machine profile (Motion Ability tab), maximum acceleration for travel is set to 10 000 mm/s² while X and Y print acceleration is 20 000 mm/s². Travel moves carry no extrusion risk whatsoever — they should be at least equal to print acceleration, ideally higher. Capping travel acceleration at half the print acceleration is completely counter productive and actually dumb.

5. Sport/Ludicrous modes don’t scale the full picture

These modes scale travel speeds and global acceleration but ignore the limits on volumetric flow max, bridge speed, overhang speeds, and other flow-dependent parameters. The result is a printer that moves faster between points but severely impacts quality — an incomplete optimization to show off but that shouldn’t be used if you want precise / quality prints. Appropriate speed profiles along with correct printer limitations in the printer settings would produce much better quality / reliable prints.


All the start g-code fixes (redundant G28 removal, M975/M982.2 ordering) are available here if anyone wants them: :backhand_index_pointing_right: https://github.com/scoofz/P2S-start-gcode

As a conclusion, this printer is still an incredible value but clearly not fully thought out on the software / firmware side. Bambu, trust your users, allow them to push this printer to where it should sit. It’s still perfect for beginners, like all your printers, but allowing the power users to push past those limits and do it right would definitely make it the best bang for your buck on the market.

Happy to discuss any of these — curious if others have found additional quirks.

16 Likes

Such a great post. Thanks for putting this together! P2S is a great machine, but it does feel like bambu has a LOT of room for improvement on the software side of things, especially compared to the mature platforms like A1 and P1.

1 Like

Thanks for your input. After digging a little further, I’ve noticed that the P2S isn’t the only printer with this kind of issues. The starting gcode the H2D has the same issues, which means that probably all their recent printers have them.

Re: Volumetric flow on generic profiles

All the generics are tuned for safety on many different formulas
All the bambu ones are tuned presumably to their real characteristics
12 is still sometimes too fast for some mfr’s PLA. CC3D PLA Max as an example

Re: Ludicrous mode

Maybe dont put too much stock in that feature, These are convenience “once in a while”, manually invoked buttons. Save your real speed profile to your slicer, and use that profile, and you can hold all the tuning you desire.

I know 12 is basically for safety and honestly, it wouldn’t be a problem if they added the filament profiles that are present in Orca ! Right now, it’s Bambu vs the generic crap and it’s not fair.

As for the ludicrous / sport modes :

These bypass the limits set by the slicer and the firmware so no matter if I wanted to go that fast or not, I wouldn’t be able to obtain the same kind of speed with a slicer made profile.

I always felt like the amount of homes with p2s is just insane… Also super annoying with the placement of the filament cutter arm.

3 Likes

UPDATE

Ok, after further testing, my son printed one of the models present with the printer so with the base profile. The noise reduction doesn’t work at all. That thing is noisy as ■■■■ without my start gcode. So basically, if you’re tired of hearing your printer, use it :rofl:

1 Like

I noticed that too. I have a p1s and a p2s, the difference in noise cancellation (stock settings) is insane. The P2S reminds me of the old ender 3 boards before the silent motherboard fix.

1 Like

well, feel free to try my modified start gcode and report your results here.

Thanks for your suggestions, I tested both gcode changes and they seem to work fine. Personally I didn’t notice a change in noise cancellation. Homing sounds exactly the same to me, but I also wasn’t aware the P2S is loud in this regard.

Thanks for sharing this! I definitely noticed the improvement in sound reduction!

1 Like

I believe there was an update regarding the noise in the new update, does that solve the issue?

Thank you so much! the start g-code is marvelous.

You manage to reduce the start print from 8 minutes to roughly 2 minutes. This was driving me crazy.

Thank you so much again.

Rabbit

1 Like

I agree SO much with the homing being redundant. That was something I noticed after my second print “wow this thing takes FOREVER to start a print” and yeah… overall this machine is insanely loud. Even during printing the z hop dog barking sound was completely un expected. Ordered automotive sound deadening sheets to try and minimize it.

Those are my only complaints crazy long startup sequence and overall noise.

@user_209373457 I don’t think the changes in the update were related to what @Scoof mentions, I had already done the update and I checked the start G-code before editing it and there was still no M975 for input shaping included.

Start G-Code got updated.

Input shaping at the beginning got removed and an additional homing (was inactive before) was added.

Seem Bambu didn’t like your approach. :wink:

Yeah… I have no words lol… Seriously Bambu…

Gonna check it out when I get back home…

P2S start g-code changelog — 2026/04/21 vs 2026/02/26

A few notable changes in the latest revision:

1. Input shaping enabled earlier M975 S1 is now called earlier in the sequence, during the “prepare print temperature and material” section. This is a partial improvement — the M982.2 S1 (cog noise reduction) ordering bug in the reset block is still present and unfixed.

2. M500 save reworked The M500 (full EEPROM save) calls after bed leveling have been removed. A new M500 D1 (partial/differential save) now appears in the nozzle load line section, placed before the final nozzle heatup. A 3-second wait (M400 S3) has been added after it, likely to ensure the write completes before proceeding.

3. Nozzle lift after purge line increased G1 Z0.5 changed to G1 Z1 — the toolhead lifts 1mm instead of 0.5mm after printing the purge line.

Still unfixed:

  • M982.2 S1 (cog noise reduction) is still called before M975 S1 in the reset block, meaning noise reduction remains inactive during the noisiest part of startup

  • The redundant unconditional G28 after the bed leveling block is still present

Out of interest has any one noticed that there calibrated K factor values aren’t being used? Even after completing both flow rate and dynamics calibrations I had the feeling that my flow dynamics values weren’t being used as I was getting interesting finishes on my top surfaces (over extrusion at the edges and slight under extrusion during longer runs).

I was initially running with flow dynamics set to “off” as I assumed this would then take the values I have entered but when switching it back on for a print yesterday (assuming for the printer runs the calibration before printing) the top surface was significantly better.

I saw on reddit that someone had a similar issue on their A1 printer and that the start G-Code had no M900 function to call for their custom flow dynamic values. From what I could see in the G-Code for the P2S there is also no M900 function included? Has anyone else noticed this?

Here’s the reddit post: K-Factor profile ignored by printer : r/BambuLab

On M900 and flow dynamics on the P2S

You’re right that there’s no explicit M900 call in the P2S start g-code — this is a legitimate observation and the behavior isn’t fully documented.

What we know for certain:

  • The P2S start g-code contains no M900 call anywhere in the sequence

  • Flow dynamics calibration is triggered via M983.3, which is a proprietary Bambu command with no public documentation of its internal behavior

  • When calibration is set to run, M983.3 fires and the firmware handles whatever it does internally — we can’t see the result from the gcode side

  • Your empirical observation (better top surface quality with calibration enabled vs “off”) is real and consistent with reports from other users on Reddit

What we don’t know:

  • Whether M983.3 internally applies a K factor equivalent to M900 or uses a different pressure advance mechanism entirely

  • Whether the “off” setting applies a previously saved calibration value, a firmware default, or nothing at all

  • Whether manually saved K factor values from the calibration menu are ever applied to prints, and if so how

2 Likes