Question about stepper motor (Steps-per-unit) calibration?

Hi all,

I am printing a small box, which need a good accuracy on Dimension.

My experience on Marlin firmware with other cartesian 3D printer. I can use G-code M92 to set the “Set Axis Steps-per-unit”, then I can get very good printing accuracy in x,y,z.

I am trying to do the similar XYZ calibration for my new P1P. Does any one have experience for this. I did not find any manual for doing this.

1 Like

I wouldn’t change steps for this but the size compensation in the slicer - look for “X-Y contour compensation” in the Quality tab.

I found this article “CoreXY Calibration”.

I am now looking the way to communicate with the printer by input g-code. and recive a feed back. like in octopi

You can edit the printer profile and add start Gcode if need be. I agree with @zviratko , though, and using the X-Y contour compensation option is the better bet if your need small adjustments. While I am not a machinist, I have found the printer to be so close on dimensions that adjustments have not been necessary.

You SHOULD do a flow calibration, as this too can affect dimensions,

1 Like

Thought about it the other day. You can disconnect the PFTE tube from the top of the printhead, insert filament directly, heat the thing up, extrude some filament just to make that it does work, then measure some 150 mm of filament above the top and print a file with G1 E100 F200 (take this is the correct command). Then measure whether exactly 50 mm are left.

I did the XYZ calibration for Cartesian printer, without printing. The process is as follow:

1, find a position and fix your caliper parallel on the axis;
2, touch the movable part of the caliper on the print head (for x) or the table (for y,z).
3, zero the caliper
3, move the head or the table for 100 mm (e.g. G0 x100). this will push the caliper;
4, read the real displacement from the caliper,
5, calculate a new steps/mm with the formula

The flow calibration is by this method no influence for XYZ calibration. I can do the flow calibration before or after XYZ calibration.

After all the hardware calibration. I think, it makes more sense, do the slice compensation.

1 Like

That is a handy tip if you do not have a DTI.

1 Like

I use the gauge method on my bed-slingers for setting steps. But flow rate will affect the dimensions of printed objects. See the “What not to do” part of Teaching Tech 3D Printer Calibration (teachingtechyt.github.io)

2 Likes

thank you,
I read also this web page before. It is very useful.
I fully agree with the Influence of the flow rate on the dimensions of printout.
I am lasy, for watting 10 min for print a 20 mm cube. So I prefer to measure the movement directly on the axis.

I printed the calibration target a few moment before. It looks good with original bambulab studio configuration.

1 Like

Of course the biggest problem with trying to adjust steps on the Bambu is that you have no idea what the current values are.

2 Likes

If you measure without the resistance of passing through the extruder the dimensions wont be accurate. The extruder has some resistance, and if you bypass that and calibrate the e-steps, you will get under extrusion during actual printing.


I am also having an issue with the steps. I printed a 20mm cube which is close (but not as accurate as I need some of my parts to be), and see the height as 19.58. I would like to increase the z-steps but don’t know yet how this can be done on my bambu p1p. I used to do this all the time on all my other machines but am quite stuck now unless someone can help with a solution. Sending commands via Gcode to update the steps would have been really useful so I could just update the steps to get better accuracy. Not sure if this will be available anytime soon or never.

It was mentioned before, since we have no access to the info concerning the current steps, there is no chance to calculate new steps based on traditional methods. I would consider checking the flow rate, or, if that does not help, open a ticket and ask the guys of BL.

I had the same problem on z axis - it is off 0.4%. Which comes out to be 1mm for 250mm height. Support said that there is nothing to be done. XY is correct. They recommended increasing flow , but it would just make print wider , not talles as z height is only affected by pulley system and threaded rods.
My pic of 250mm print coming out as 249mm

1 Like

In the slicer you can scale your model appropriately in the z direction.

4 Likes

I’m well aware, but it’s something that needs to be kept in mind and done manually every single time and I have multiple printers then this is something unique to keep in mind for this specific printer.
I guess hw solution would be to change or 3d print a new pulley on the z axis

I currently have a deviation of about 0.28mm. In each of the three dimensions. 25mm gives 24.72mm. 100mm gives 99.72mm. When the printer was new I had a different deviation in Z. But the last time I checked it was identical with X and Y.

So I have no size to adjust the motor steps. I think this applies to many of the X1 printers, I didn’t get a special one, but one of many. I think it will be similar with the P1.

I can make a test print of a workpiece and measure the deviation. I can compensate for this in the slicer. For example, by adding 0.28 mm to the object size in X, Y and Z. The result should then be more accurate.

Unfortunatly X-Y comensations it’s not working for prints using ams (multi color or multi material). I would need it for holes. Does anybody know a solution to that? Thank you.

  1. calibrate the printer and tighten the belts beforehand.

  2. print a large cuboid as a test object (vase mode or normal with 2 walls). Or print another suitable test object (perhaps a test print of what you want to print).

  3. take the external dimensions of the object.

  4. correct the deviation in the slicer, separately for X, Y and Z.

So if you are missing 0.2mm in X compared to the target dimension, add 0.2mm to the X object size in the slicer. The same applies to the other axes (Y and Z). You adjust the object dimensions in the slicer by the value that is missing (addition) or that is too much (subtraction). Then print the object.

The prerequisite is that the printer is mechanically in order and has no defects. Otherwise it would be possible for all printed objects to be larger or smaller at random.

If the hole sizes or cut-outs are not correct, only then use the X-Y correction for holes or other corrective measures.

Please note that materials usually shrink after printing and therefore days or weeks (or even months) later there may be (sometimes considerable) deviations from the original target dimensions.

Kind regards!

Hi,

thanks for the answer.

I’m already using OrcaSlicer and the overall dimensions are OK after calculating the correct shrinking value for my filaments (by using the Califlower from Printables, by the way the skew value was excellent on my X1C but the X-Y dimensonal accuracy was a little more off with the same filament than my dialed-in Prusa mk3s+). But I still have problems with smaller holes on my new X1C and there the “X-Y hole compensation” would be handy to have, but this setting unfortunatly does not work using AMS multi color/material, which is a shame.
I will continue to check the parameters for my filament (maybe I will reduce the flow even more … will see).

You mentioned tighten the belts beforehand. Is there an tutorial how to do this on the X1C and you can recommend? I read about the belts being springloaded? Sorry for maybe asking stupid question, but it’s my first Core XY (and my first closed source printer). So regarding some things I’m not sure what I can improve and control by myself on this printer :slight_smile:

Kind regards