Skew compensation in the Bambu X1C Firmware

yes, I only noticed this because I was printing functional models that needed to be accurate. When I lifted off plate I noticed what was like a brim but only to a single side (-X).

I printed a cube without changing anything and it was (-X, -Y) so the left side and rear had the first layer towards [LH] rear corner…

I disabled skew factor and it was gone. Now after resetting the value and starting the skew calibration process from the beginning everything is once good again.

I’m currently running v01.08.00.00 so I can verify all the specific [M1005] codes indeed work but not able to verify if saved.

  • P0
  • S1

updated and good to go, thank you both for the help

Summary

I’m currently following this sequence, along with a [M1005 I0] @ [Ending Gcode] script

1 Like

I’ve realized that this command for some reason accepts both P0/P1 and S0/S1 to change the value of comp_enable.

I was trying to figure out what the hell anyone would use this for and just now realized it - you want to home the printer without the skew correction applied, so this should (hypothetically, let me test it first) be placed at the beginning of print startup gcode:
M1005 S0 ; or P0

Then at the end of print startup:
M1005 S1 ; or P1

This seems like it could be a very important detail for anyone using relatively large skew factors. I need to do some testing before recommending anyone try this

5 Likes

Hey @Thermal_Runaway

Any update on testing this by chance?

I haven’t had a chance to yet. I’m out of town currently but I’ll share an update in a day or two

1 Like

Has anyone applied the skew correction successfully on their P1S? I tried with the

M1005 X# Y# 
M500

commands as per the PDF from some support interaction between Bambu and another user. I also saw that someone mentioned that P series FW are able to make sense of the M1005 command as well. I put it into my printer profile in Orca and ran a print but the measurements were exactly the same as before. I am currently trying it out with the XY Skew Factor Calculator spreadsheet and
M1005 I-0.003756, after resetting with M1005 I0.

/Edit: It didn’t work with that setting either. I still got the exact same measurements as before, meh. This doesn’t seem to do the trick for P1 printers or I did something wrong every time.

Hi @youwrote . See this post in this thread and the subsequent 7 posts, which includes a post where user @Acelya specifically asked Bambu Lab Support if the M1005 gcode command works on the P1 series. Bambu didn’t directly answer that question but said: ‘Our suggestion is to give it a try’

I can’t see anyone in this rather long thread of 450 posts confirming that it does in fact work on the P1S.

Did you add the gcode command at the end of your Machine start G-code?

Yes, I read those, thank you. I in fact skimmed the whole thread, which is why I also tried the M1005 I# method now. Yes, I added the command at the end of my machine start G-code. Although it shouldn’t make a difference, I also tried it in Bambu Studio instead of Orca Slicer. No luck, sadly. Thanks for your prompt reply! I might try getting in touch with support as well.

Also, thank you very much for this thread and all your efforts!

1 Like

If you do get in touch with Bambu support on this issue please let us know their respose, to assist other users of the P1 series printers. Thanks.

I just opened a ticket and will edit this very post with the answer as soon as I get one.

/edit: I just got an answer to my ticket, see the screenshot attached. Again, they say that the M1005 command should work for P1 series printers. However, I have tried 5 times to date and am on the sixth run at the moment. No changes so far. Each calibration print has values of X120.05 and Y199.59 with deviations of around 10 to 30 microns on both axes.

/edit 2: I just tested again with X120.04 and Y117.54. Still no changes. It’s hard to believe that the G-code does anything on my P1S.

/edit 3: After more back and forth with customer support, who again confirmed the P1S firmware can make sense of M1005, they suggested to adjust the belt tension and further stated: “There are inherent limitations to achieving precise dimensional accuracy, and it’s essential to remember this when assessing sizing. Due to these intrinsic constraints, there may be a point where further adjustments yield minimal improvements”. Since my adjustments didn’t yield any improvements, I might try fiddling with the belts again but atm I don’t see myself doing that. I did alot of work on the belts to minimize ringing/VFA while keeping the belt centered on the tensioning pulleys.

I hope this post was helpful to some and hope you have more luck!

4 Likes

My P1P is the same, I tried M1005 I-0.001838 and M1005 X119.8 Y119.58 M500 but nothing changed. I’m on the latest fw (01.06.00.00).

After a lot of failed tries with gcode I tried to set the belt tension with incremental spacers (0.5mm to 1.6mm) on the right side and the bambu test print did a 119,7mm 119,69mm.

2 Likes

Does anyone know that whether this skew correction works for A1/A1 Mini ?

Hi @jamiechang917

I don’t think it does. I think it only applies to the X1.

Do we know that the latest info in this thread, for the X1C, still apply to 1.8.0.0 firmware? I’m still using M1005 I-0.001671 for 0.1° or so, but haven’t verified it.

@the_Raz I think the 1.8.0.0 firmware now retains the correction factor when the printer is powered off so you shouldn’t need to keep applying it in the Machine start G-code if you’ve saved it with M500 but I haven’t verified it yet because I’m not using 1.8.0.0

Perhaps some other users on 1.8.0.0 could verify this?

@Thermal_Runaway @EdStreet

1 Like

@youwrote Thanks for your follow up edits on this topic.

1 Like

Hmm. Ok ready for another round of guess the settings?

before any change. I do not set or use M1005 and this is what it gave me.

Jul 14 20:56:32 info forward[1599]: [MCU][BMC]M1005:current XY_comp_ang = 0.00050

Using
M1005 I0.00023 yields this.

Jul 14 20:59:06 info forward[1599]: [MCU][BMC]M1005:new XY_comp_ang = 0.00023

  • reboot

  • looking at M1005 and the logs shows this.

Jul 14 21:01:47 info forward[1454]: [MCU][BMC]M1005:current XY_comp_ang = 0.00023

So yes it does save it and oh in case anyone missed it, I did NOT use M500 to ‘save’ the values.

5 Likes

@EdStreet Thanks for checking that :slightly_smiling_face:

@the_Raz

1 Like

Slightly off topic but has anyone tried this?
https://github.com/olistrik/goskew

1 Like

@D3SOL4TE Hi. This might be a useful solution for users with P1 and A1 printers. Thanks.

Edit: GoSkew only supports skewing linear moves (G0 & G1). If your gcode contains arcs (G2 & G3), they will be left unskewed.

Nice work on this progress everyone! Hopefully we can see the R&D team @BambuLab hard work in the near future with this finally being addressed and solved in a manner of making the edit seamless for all users.

This is the power of the community