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

Hi, if you (or others) still search for an answer i will provide it now:

On the Slicer go to Printer-Settings → Machine G-Code → Machine start g-code
scroll a little bit down until you find this (Bambu Lab A1 settings)

;===== reset machine status =================
;M290 X39 Y39 Z8
M204 S6000

To actually use the M290 stepps/unit you have to remove the “;”
Furthermore if you want to callibrate it you will find out (at least on the A1)
that when you set the Stepps/Unit higher your print gets smaller.
Lets say you have a print that is 100mmx100mm and it came out 99,45x99,75 you have to change it to something like this:

;===== reset machine status =================
M290 X38.807 Y38.898 Z8
M204 S6000

(Reminder, remove the “;” bevore the M290 and save it, if you can’t calculate it, ask ChatGPT, he might make the mistake to set the Stepps higher, then you can just substract it by the added ammount.
I can fully confirm that this works on the latest official Firmware, since my prints were 97,55 x 101,25 have fun :slight_smile:

3 Likes

M290 is “Babystepping” and supposedly applies to the first layer only - at least in Marlin. Bambu may do something different with it. I note that the M290 command is not commented out in the X1C start code.

1 Like

I think you are right somehow.
It would make sense to some degree since the part gets bigger the smaller you set it. Yet when i printed 100x100mm cube and set it to 40 my cube was several millimeters smaller on the whole hight (not just the first layer)

So yes it might be Babystepping and yes they probably changed some stuff from Marlin BUT against the odds it still works just perfect and lets me print with ±0,05 or less deviation.

Do you think this might backfire on some settings like the flow calculation in corners?

Hi,
Thank you soo much for this good news.
Does it work on A1 series ?
I have just got an A1 mini that doesn’t print accuracy.
I set on my other printer x/y step with M92 command.
Hope it will work on my A1 mini. I could test it tomorrow.
Thanks a lot !

I have checked the A1 mini settings but the M290 command isn’t here.
So I don’t know if the settings are same for the A1 mini ?

I found out that the Stepper Motors are the same (A1 & A1 mini).
You could try to add a section in the Printstart gcode and add:

M290 X39 Y39 Z(hopefully 8)
if the part comes out normal we have the right value (39), if not we can calculate it. When it collides you can only reset the firmware on the printer to set back to the original unknown M290 values.

Doing that is up to you, i didnt look into the A1 mini yet, worst thing that could happen is lost time so go ahead and try. If i wrote a little to unclear you can just write me back (i am not good at english explaining)

Yes very strange that Bambu lab changes gcode command !
But the M290 seems to work on A1 Mini and yes M290.2 doesn’t.
I have tried to modify it with M290 on my A1 mini and it works.
I just applied a proportional factor to x and y. I get :
M290 X38.89 Y38.96 Z8.
I used the calibration cross with linear regression.
I need to print a cross calibration again to see if all is ok now.
I have also contacted bambulab support but they doesn’t understand…