Bambu X1C XY Calibration

Disclaimer: Try this at your own risk. I originally goofed by missing a zero when inputing the correction, and my printhead slammed to the back. These settings are easy to reset back to default, but just make sure you don’t miss any digits :slight_smile:

So I went down a rabbit hole trying to figure out if I can calibrate my X1C. As of Oct 2024 you can’t calibrate the XZ/YZ, but you can calibrate the XY which I will describe how to do below.

Bambu uses marlin for g-code, and there is a gcode command, M852, that allows you to add a correction for skew. Bambu has wrapped that code in another (M1005), and only use it to correct the XY skew (using M852 with Bambu has no effect).

In this reddit post (https://www.reddit.com/r/BambuLab/comments/1adh0bn/comment/kwp3rh3/), some user received instructions on how to correct the XY skew of their printer. It includes an stl of a calibration square and a pdf with instructions (Bambulab Skewness Correction - Google Drive).

Bambu’s way involves printing the calibration square, measuring the diagonals with calipers, and inputing those values in your start gcode as:

M1005 X##.## Y##.##
M500 ; saves value in eeprom permanently

With the numbers as measured in mm.

If you read that pdf you will see that you will have to do this multiple times, printing the calibration square again and updating your gcode as above by inserting the new X and Y. The way the M1005 command is used in this instance is cumulative. Each time you start a print this is applied again, and again, etc. so once you are satisfied that your XY values are close enough, you have to remove those gcode lines. Otherwise you will keep adding new M1005 X Y gcode lines into your eeprom

There is a way to reset all these changes by injecting

M1005 I0
M500

That undoes all those XY changes. This is why I don’t like this method, because it could take 3-4 times before getting the value where you want, and if you reset you have to start all over again.

Now there is a better way. Using this google sheet (Bambu Labs Skew Compensation Calculator (X1-C) - Google Sheets), you can calculate a skew angle (you need to make a copy of the sheet, or copy to your computer as an excel spreadsheet).

All you have to do then is in your start gcode add the

G-Code Correction String

it calculates, as

M1005 I###
M500

The benefit with the I command is that it is not cumulative in the eeprom. Every time you start a print it overwrites the old value. So even if you leave the command there, it will just overwrite it. I tested this and my 2 diagonals were within .01mm of each other on the first try.

So with all this rambling out of the way, here are the steps I did.

  • I printed the calibration square that Bambu originally provided scaled up 150% to make the calculation more accurate.
  • I used the values I measured with my calipers and inserted those in the google sheet to calculate my skew value (the google sheet has an image showing you were to measure on your square. The square that bambu provided has an arrow on one of the diagonals and that should point to the top right)
  • In bambu studio I went to my printer settings, and inserted my correction factor as shown below. I have the reset command commented out in case I ever need to have it. But otherwise this has been working great so far. Make sure to click save after you enter your g-code correction to save as a new profile.
    image

If anything is unclear let me know.

P.S. Something I saw in the Bambu forums is that for some the command is not sticky, meaning the M500 does not cause it to save permanently, so keeping the start g-code as I’m using it is not a bad idea since that will ensure the correction is always applied.

3 Likes

Any idea if this would be the same for a P1S? I did the calilantern and got a score of 631 so I definitely need to change some settings.

Yes, I believe this works the same for the P1S.

OK thanks.

I am finding myself a bit frustrated though because I bought this printer so I didn’t have to screw around with calibration and all that and here we are. Were there any guidelines on how accurate of a score the calilantern needed? I seem to recall that maybe Ryan said something in the big V4 thread, but I was having trouble finding it.

Yeah, that frustrates me as well. This is a set it and forget it tool, and that is why I got it as well. I got tired of trying to tweak my CR10 Smart Pro and having failed prints all the time.

Don’t get me wrong I love what Bambu has done here, but it would have been nice if they have some sort of developer mode where we could go in and do things if we choose to.

I was in the 700s, and by fixing XY I got something like an 880. I still think you will be fine though. Before finding out about the V3D and calibration, I built a filament extruder that required a ton of PETG parts, and they all fit together and lined up perfectly. I think we are all over-stressing about this.

2 Likes

So I’ve tried using this code on 2 calilanterns now and it doesn’t seem to do anything for correcting the XY skew. I’ve gotten the same XY Skew twice in a row even with corrections.

Ok. I realize now that I put it in wrong and put an extra 0 when doing it the second time. “0.0001” is what I had when I think it should have been “0.001”. The first time I had “0.0007” and then it suggested I go up to the “0.001”.

I fixed it to “0.001” and am just reprinting the bottom part of the lantern.

Just be careful that you copied the value off the spreadsheet correctly. I goofed and missed a zero and my printhead was slamming to the back of the printer.

I can’t copy directly from the spreadsheet as the lantern one puts it in a percentage so I have to add two extra zeros and then put it into the gcode but thanks for the warning.

This is the spreadsheet I used for calibration (posted in the original post I did on my calibration method). The I value is in radians and if the value gets too big you will have the issue I had. I don’t want anyone else hearing the motor screeching I heard.

Look at the size of your extruder vs the size of the Core/YZ plates. There is your reason to check this and make sure all is well. You get a twist in that core, and you are going to have problems getting your router trammed properly, or worse problems with the bearings not riding correctly. Same with the YZ plates, but those will be less noticeable since they dont print standing up off the bed. I know it doesn’t seem like much, and your score sounds like your machine is running well. But it can make much more of a difference here than it will on something small like an extruder.

Alright. I’m convinced that XY calibration doesn’t do anything. Measured the same again after a third print with following settings.

Don’t get me wrong I don’t disagree with you. Of course try to get it as calibrated as possible. After I did my xy correction I got a score of 881. I think us bambu users will have to live with this reality. I believe there are many bambu users here that have not had issues, so I’m crossing my fingers.

Maybe the P1S doesn’t support the M1005 code. Marlin uses M852 and all bambu did for the X1C is wrap that in M1005. You could try M852 with the same I value and see if that does something.

I don’t believe anyone in the beta was using a bambu printer, so hopefully no one currently building has any issues at all! I don’t think anyone will. But we have noticed a difference in our parts after getting our calibrations set much better so we want to see that carried on to everyone that is building, that can make the adjustments anyways. Hopefully all of yall will send a message to bambu, show them your results vs some of the other printers end results and ask why you cant make an adjustment to have your printer as good as one half the price??

I’ve read a couple forum posts and they more or less confirmed it doesn’t work on the P1 series. So there goes a whole day of printing on nothing. Only thing I managed to improve was dimensional accuracy by scaling my print to X =100.30% and Y=100.22%.

Did you add the scale directly into your gcode so it’s permanent, and did you get the scale value from the V3D sheet?

Yeah it is frustrating. They are trying to be the Apple of 3D printers, but in this case people are making things, and they should be allowed to adjust since depending on material etc, no 2 prints will be the same.

I read in one of the Bambu forums that they are working on skew adjustments. It would be nice if they released that now.

1 Like

Yes as shown above and the first time I used a value straight from that spreadsheet.

I found my answer here. Direct from product support a couple weeks ago saying no skew correction on P1 Series printers.

https://www.reddit.com/r/BambuLab/comments/1ftpcd0/p1_printers_dont_support_skew_correction/

The interesting part is where it’s mentioned that a FW update is coming that will include skew correction. :crossed_fingers: