Skew compensation in the Bambu X1C Firmware

I too am interested in the X1Plus, but honestly, I’m going to wait till my warranty expires. I’ve been bitten on the butt to many times in my past and have learned my lesson about warranties. Also, I want to wait a couple of versions, so they get the kinks out of it.

@EdStreet with the X1Plus, can you go to the On-Screen Console and just type M1005 and see what the output is? It should report what the correction value is. Power cycle and repeat to see if the value is the same. Actually, you can do all the experimentation via the On-Screen Console via X1Plus without any printing.

There is a skew correction that does save between sessions now as well :slight_smile:

Really? That would be very useful :slightly_smiling_face:
I thought it was rooted Linux on top of the Bambu firmware binary blob and it would inherit any bugs in Bambu’s firmware. I’ll do some more research to understand it better.

1 Like

with the X1Plus, can you go to the On-Screen Console and just type M1005 and see what the output is? It should report what the correction value is.

@MrDB42, the log file Ed posted above shows that:

but I get you want to check if it’s the same after a restart

1 Like

First, using X1+, I don’t see any unencrypted logs except from the bed mesh and vibration frequency utilities, which are separate from actual print functions. X1+ is mostly just an enhanced interface with a few extra utilities, the print functions are all the same.

The “one-way ticket” bothered me at first, but it really is reversible. If you are out of warranty, or don’t care about it, I don’t see a downside. Even in warranty, Bambu may still help with issues that are not related to firmware.

If you decide not to keep it, just remove the microSD card and boot into the internal firmware. You will be asked by the “R” firmware (v1.06.xx) if you want to upgrade, agree and you will download official 1.07.03 or whatever is then current.

X1+ uses Bambu’s current firmware for printing, and they have said that they will continue to update the base soon after Bambu issues future updates. It actually downloads this base firmware to the card from the Bambu server.

3 Likes

Thanks @lkraus I didn’t want to be stuck on X1Plus if they had a major problem or if they stopped developing it. You comments and @EdStreet reassure me so I’m now excited to try it!

1 Like

Yep. Just set a somewhat random value either via I or X Y, M500, 01, 02, 03, R, etc. power cycle, inspect. Saves a lot of printing to experiment. And without looking at log files.

Whaaaat!!! I missed that in the documentation. Just to be clear, you can overwrite the “R” firmware and go back to whatever is current?

EDIT: I found the “gotcha” that stops me. You have to register your printer with Bambu in order to use X1Plus, so they will always know that you have changed the firmware on it. I’m back to waiting for my warranty to expire before I take the plunge.

Two things.

  1. the logs are in /tmp/syslog
3 Likes

Yes, though X1+ will no longer work without repeating the “R” downgrade again.

As long as the X1+ team continues to stay in sync with the Bambu updates, I don’t see a reason to go back to OEM.

Thanks, but I do try to keep my fingers out of things I don’t fully understand. Linux command lines are one of those things. Anything beyond ls and cd requires some research.

Though I suppose I could make up another microSD card as a backup…

1 Like

grep “my search here” /tmp/syslog - searches for a specific pattern in the file.
tail -f /tmp/syslog - gives you a scrolling real time log as it happens
less /tmp/syslog - you can use things like / and enter a search term, also scroll up and down the log.

3 Likes

I just remembered one extra step I did after setting the skew adjustment and before power cycling. I ran the printer calibration (all options: Lidar, Bed leveling, Vibration compensation, Motor noise).

I wonder if that was the “magic step” that saved the settings on my printer. I really don’t want to try it because I have things working, and I don’t plan on power cycling unless I absolutely have to before Bambu issues a new firmware with it working properly.

I would really like to see an “Advance Menu” with options like “Manual Bed Leveling”, “Skew Adjustment”, etc. that walk you through the process of each option. (I hated doing the manual bed leveling with their provided G-code, total pain).

@MrDB42 I’m not sure from your last reply if you currently have your compensation factor saved through power cycles or not. If not, until Bambu Lab fix this I suggest you use the M1005 [In] method and leave the M1005 [In] command in your start G-code. The compensation factor will then be applied after a power cycle. If you use this method (see these posts for details: here and here) you ideally need the measurement AD from a test print. The octagonal test print you created does not give you that measurement. You can use this spreadsheet to calculate the correction factor [In] to apply with M1005.

1 Like

@klomar I haven’t verified if my settings are being retained or not through a power cycle now. I’m tired… that’s all.

I was just “speaking aloud” that I forgot to mention that in the beginning when my printer did retain my settings, I got the skew correction dialed in, then did a system calibration.

After that is when I realized that my printer was retaining the skew correction after power cycles. But I have not verified if this was what made my machine hold the skew correction via the M1005 X[n] Y[n] iterative method. I’m hoping someone else might test this hypothesis this time.

Right now, I’m just going to be a bit lazy and just keep my machine on (although I just did run the full calibration tests). If I have to power cycle, I will rerun the test prints and see what it is.

This was a “typo” on my part. It’s an octagon (8 sides). My bad. I’ve always gotten hexagons and octagons swapped around in my head. My high school geometry teacher was always correcting me (never did stick). So, you can use it with your spreadsheet calculations (I did experiment with it and the M1005 I[n] command and it worked).

It is a nice object with large flat sides so you can use the flats of the jaws on a set of calipers to check. Also, I press the print across the beam of the caliper to help alignment with the fixed external jaw and keep consistency across my measurements.

The one trick I found with this print is to avoid putting the jaws where the debossing of X and Y lettering is. No matter how small I set the text there is always some minor bulging at those locations. I’m tempted to remove the debossing and use a sharpie marker. Maybe embossing would be better… :thinking:

20240423_152023

You guys are getting me really confused here :upside_down_face:

In any case a heads-up in case I understand your post correctly regarding how you used the octagon:

  • M1005 X[n] Y[n] works if you are measuring the diagonal parallel sides
  • M1005 I[n] does NOT work unless you calculate the skew angle different from the ‘marlin formula’ which I assume @klomar implemented in those spread sheets - geometry teacher wouldn’t be happy :wink:
1 Like

@Nebur The measurement @MrDB42 shows in his photo is not AD. You can’t get AD from his octogon. This photo shows AD on the original test print from Bambu Lab.

geometry teacher wouldn’t be happy

:grinning:

Yeah - basically what I was trying to say in a more general way. The whole octagon idea works only for the M1005 X[n] Y[n] variant of the command unless you scrap the marlin formula and do your own trigonometry…

1 Like

Maybe this will help…

ABCD octagon measuring: M1005 I[n] calculations.
Skew Test Octogon ABCD

XY octagon measuring: M1005 X[n] Y[n] iterative.
Skew Test Octogon XY

But if I’m wrong Im wrong.

Yep, I’m wrong. I had to look at it from a distance and go to extremes to see that it wont work.

​​

​​

1 Like

Nooooope! :smiley:
Assuming no skew AD would be fine but AC and BD would be ‘short’ for a lack of better words.
Just compare the octagon side by side with the corresponding vertices of the original instructions:

Y
^     B-------C
|    /       /
|   /       /
|  A-------D
+-------------->X

Yep - that works.

Maybe this will help…

No, you don’t have the surfaces on your octagon to measure AD

AD on this octagon would be 70.71

I admit it. I was wrong! Took me just a few seconds in CAD to do a quick sketch to see the issue.
Skew Exageration

I forgot one of the fundamentals of engineering. ALWAYS check for extreme situations.

1 Like

I’ve been following this conversation and it seems like a good time to chime in and say that we might want to update our example of skew.

I did some exaggerated testing for myself to see the effects of the compensation and its worth noting that the machines Y-Axis is the reference component of whats straight on the machine - the compensation racks the top and bottom of the parallelogram like this…

Top is +20º comp, middle is none, bottom is -20º
(Using the M1005 I0 method, +/- 0.349066 Rad as the “I” value)

I made a calculator also, mainly to see if I understood the calculations and if they gave the same results when the parallelogram was represented skewing a different way (the way it physically does on the machine). In the process I realized that I like/trust the M1005 I0 method best. I believe that when you use the M1005 XY method you may not get a 100% predictable result because its using some kind of internal constant to represent the width that you also need to measure (in other words the two diagonal measurements aren’t enough information to do the math - a third dimension needs to be known, if you don’t give it one its using some nominal value that might not match what you physically printed).

I copied this over to a google doc to share if interested (it probably needs tweaks, I have notes in it for my own reference as I worked through it - also I was printing and measuring a 100mm shape I made to be stiffer than the Bambu Support provided shape - picture at bottom for an example. I made that shape 100mm and added the extra legs because I also measure across X&Y to use as my shrinkage factor in Orca Slicer)

5 Likes