Dimensional Accuracy Issues with Bambu Lab P1S – Any Tips?

Hi everyone!
I’ve recently started using this amazing printer (Bambu Lab P1S with a 0.4 mm nozzle). I’m really impressed with it in many ways, but I’ve encountered some issues with dimensional accuracy.

I mainly print mechanical parts, so precision is absolutely critical for me. I usually use PLA (either Bambu Lab or Sunlu).

For example, a part that’s supposed to be 15 mm ends up measuring 14.74 mm — a difference of nearly 0.3 mm, which is unacceptable for things like bearing seats or tight-fitting joints.

On the other hand, a part that should be 240 mm ends up around 243 mm.

Has anyone else experienced this? Have you found a good way to compensate for these discrepancies?

Thanks in advance for any advice!

Hi Luca,

I just came across these two accuracy test tools:

https://makerworld.com/de/models/1307486-x-y-hole-contour-test#profileId-1341117

https://makerworld.com/de/models/803990-shrinkingtest-v4-1-by-alex_vg#profileId-744301

Maybe this helps.

Best

1 Like

That is really a lot and filament shrinking certainly can not make prints bigger. I would say, either something is very strange in the print settings or it is a mechanical problem. That needs to be sorted first before touching calibration models.

Maybe you can upload one of the projects as 3mf file, so we can see if something is fishy in the print settings?

PIGNONI.3mf (134,3 KB)

OK, I hope you can help me.

  1. Was printed with a scale increase of 101.01%
  2. Standard print (no scaling)

IMO, for a print that is critical, I wouldn’t use 100% infill. I’d knock that down to 85-90% to avoid overshooting the geometry limits with extrusion issues.

The second thing I would suggest, write down your correction adjustments like XY Hole adjustment and then zero them out. Then tune the extrusion. Once the extrusion is as good as you can get it, then re-tune that hole adjustment. I find many times people forget to sort the flow ratios out first before starting to adjust things.

For reference, my P1S will hold around 0.2 mm with no adjustments. So, getting to +/-0.1mm should be doable without spending more than an hour or two.

Sorry for the long delay, I only found time now. I think, material shrinking should not be a problem with items as small as the gears in the 3mf. My first bet would be underextrusion. Although 14.74 instead of 15 is a bit much to be caused by underextrusion.
Anyway, I would first start by dialing in shrinking and flow.
To calibrate shrinking, of course I recommend my model and workflow, which HD3000 has already linked :wink: ShrinkingTest V4.1 by Alex_vG by Alex_vG - MakerWorld I recommend to read the text completely for some background.

Next, for calibrating flow, I would use either the calibration tab in BambuStudio or in Orca Slicer.

With those two steps I usually get outer dimensions within 0,05mm even for large dimensions.

Precise holes are a bit problematic. In my opinion, slicers don’t yet provide the correct tool to compensate them at all sizes. I prefer to adjust my model with test prints. You can also us XY hole compensation, but in my experience, it doesn’t work correctly. E.g. in your 3mf, I guess that the round hole is too small, while the slit for the feather key is ok. hole compensation will widen both by the same amount. If you need repeatable precision better than 0,1mm, you approach the limits of FDM printing. In that case, I would print bores slightly too small and finish them with drilling.
I would stay away completely from XY contour compensation.

For PLA, typical shrinking is in the range of 0,2 … 0,3%. So your scaling of 101% is almost certainly overcompensating shrinking.

If your dimensions are still completely off, then something is fishy.

TLDR;

Let’s do some math:

Pulley at X-Y motor is about 20T, pitch of GT2 is 2mm, 360° rotation of Nema17 is 200 steps.

Hence, each step of stepper will move the nozzle by a distance of
(20x2) / 200 = 0.2mm

Of course there would be some cases the printer has to round up (or down) the coordinate by 0.2mm, like X = 115.126 mm → 115.20 mm or like 115.098 mm → 115.00 mm. I don’t really know exactly how the firmware round up those decimals.

So the worst case scenario is +/- 0.2mm

That is the capability of the hardware. I cannot comment on the software side, slicer + firmware, like how accurate they are and how many decimal places they can calculate back and forth without losing some decimal by rounding up.

Well, you are asking too much from the printer.

I think there is one oversight in your calculation: Those 200 steps are full steps, but nobody would ever actuate stepper motors at full steps. The least useful stepsize is 1/2 step.

Typically you would use something around 1/16. There are drivers that use 1/256 steps. This doesn’t mean, accuracy achieves 1/256 of a full step, but certainly better than full steps. Nobody can tell, what exactly BambuLab has implemented.

Let’s assume 1/16 step is realistic, then accuracy would be 0,0125mm. Certainly better than what the rest of the mechanical system is capable of.

1 Like

TLDR;

My take on the microstepping is the frequency range: 50khz or 250khz range, which is out of audible range for human ear.

You do 1/2 stepping, theoretically, you gain resolution by “2 times” but you lose torque by the same ratio compare to full stepping and holding torque. Same goes for 1/16 or 1/250. Of course, when you slap someone on the face with 1/16 of power would make the sound 16 times quieter :sweat_smile:

Nema17 has 2 windings setup as 4 poles on the stator and 50 poles on the rotor, hence the magic number 200 steps per revolution. Those 200 positions actually kind of snap on or strongly lock on when apply DC current (holding current) to the motor. You flip the DC current flow of one winding, you effectively move the rotor to next locking position.

Microstepping of 1/2 works like you gentle tap on the tool head for 50 000 times per second with half of the force and hope the stepper rotor move half way from one snapped position to the next position. It actually does work when the load is low or no load. But when friction applied, load applied, inertia of the whole motion system applied, will the force generated by PWM 50% duty cycle can actually spin the motor by half a step? Same for 1/16 stepping, will PWM 6.25% duy cycle can actually move the same mass for a distance of 0.0125mm.

I do understand while the print head already is in motion, it take a lot less force to do microstepping and thus microstepping is somewhat achievable. But is it readily reliable or just “good enough”?

If the printer used T8 lead screw or ball screw for the X-Y movement (the latter is way better) then each step of stepper can move the print head by 8mm / 200 = 0.04mm or 4mm / 200 = 0.02mm accurately. The trade off is nema 17 max speed is only about 3000 RPM, or 50 rev/s. For belt/pulley setup, it can fly at 50rev * 20 teeth * 2mm pitch = 2000mm/s, while with T8 lead screw it is 50*8 = 400mm/s

They all advertise, this printer can move fast print fast, 10m/s² acceleration, that printer can do 20m/s²… but can they claim how accuracy it is?

If you ever program or operate a real big ass CNC machine before and be able to move the spindle by 0.001mm reliably, you’d understand all belt/pulley motion systems of cheap 3D printers are just a joke

But once you know it’s limit and accept it, it can work wonderfully within it’s capability.

Even full steps don’t keep the motor perfectly in place as soon as you apply torque to the motor. And half steps don’t wiggle forth and back, you energise both windings at the same time.

Anyway, I have achieved repeatability far beyond 0,1mm and absolute accuracy around 0,1mm of my parts. So I’m very sure that the OP’s inaccuracies are not caused by a motion system that is capable of no more than 0,2mm resolution. And it would not explain an error of almost -0,3mm and +3mm anyway. So clearly there is something else happening.

1 Like

Guys, sorry — I took a break for the Easter holidays. I didn’t think I had dropped such a bomb, but hey, it’s great to see all the opinions and open discussion.
As for the motor and stepper settings, I don’t really agree — I’ve built 3D printers with much tighter tolerances, and I was using an old slicer like Simplify3D, which compared to Bambu Lab feels like playing with stone wheels.
That said, I honestly don’t know where to start to solve this dilemma. Right now I’m printing at 101% scaling, and the dimensions are within ±0.07 mm, which is acceptable — but I still need to figure out where the issue is coming from.
Any suggestions?

By the way — while I’m here — how do I submit a new project to the Maker Lab? I’m finalizing a scale RC model of an F-35 jet, and I think a lot of users might enjoy it!

Did you read the recommendations in this post? especially the comments on X-Y hole and contour compensation?

1 Like

Yes, I’ve read them and I find them really interesting. After the holidays — Friday is a public holiday here in Italy and I’ll be away for the weekend — but as soon as I’m back, I’ll get to work to improve the situation.

1 Like