I’m observing a consistent dimensional difference between the X and Y axes on my Bambu Lab H2S, which becomes noticeable on larger parts.
Test case:
• Model size: 100.00 × 100.00 mm
• Material: ABS
• Shrinkage compensation: not applied
• Expected overall size: approximately 99 mm due to ABS shrinkage
Measured results (without shrinkage compensation):
• X ≈ 99.2 mm
• Y ≈ 99.0 mm
• Difference between axes: ~0.2–0.29 mm
The exact value varies slightly from print to print, but the difference itself is stable and repeatable.
If I apply shrinkage compensation to bring the part back to nominal size, the result becomes approximately
100.0 × 100.2 mm, meaning the axis-to-axis difference remains and is simply shifted to the final dimensions.
It is not clear whether the Y axis is underscaled or the X axis is overscaled — what is consistently observed is the relative difference between the two axes.
Additional observations:
• Hole radius is the same in both X and Y directions
• On shorter dimensions, the difference between X and Y is minimal or nearly absent
• The deviation appears on longer dimensions, suggesting that the error accumulates with increasing model length
• The overall dimensional deviation visible in photos is caused by ABS shrinkage and is not considered in this analysis; only the stable system-level difference between X and Y is evaluated
What I’ve checked:
• Belt tension appears normal
• No visible mechanical play
• Same behavior across different ABS filaments
• XY / dimensional compensation in the slicer is disabled
Question:
Could this stable X/Y difference on the H2S be related to axis mechanics, belt routing or elasticity, or scaling calibration?
Are there recommended calibration procedures or diagnostic test prints to verify large-scale axis accuracy?
Sorry for my English — I’m writing this with the help of a neural network.
I have similar deviations on the X1C. I think, that is one of the drawbacks of the CoreXY gantry, which is difficult to align the axis perfectly perpendicular, which results in slightly different dimensions.
I guess on H2x, the best way to get rid of those deviations is the Vision Encoder plate.
Do you get similar results using a filament with minimal shrinking like PLA? That lets you narrow down if this is printer / settings specific and effects all filaments or if this is from shrinking of (in your case) ABS?
If you find this is shrinking specific, one note you made makes me think -
ABS is more susceptible to shrinking/warping with temperature fluctuations, especially when cooling. It’s not uncommon for the bed temperature to be lower closer to the edges than in the middle to some extent, and so parts of the print closer to the edges will be at a lower temperature sooner than the rest of the model. Ideally this difference is small enough not to matter. There is no mention of cooling – how long are you letting the part cool down before removal? Letting it cool longer to a lower temperature before removal may be helpful, but maybe you already are letting it get quite cool?
I measured a consistent X:Y ratio of 1:1.0015 on printed objects on a X1C, which I was able to correct by adding M290.2 X1.0000 Y0.9985 to the start gcode.
The same thing may or may not work on the H2S. I suggest the OP try asking support because that’s where these undocumented gcode came from.
You’ll also want to keep the layer times consistent and avoid short or excessively long layer times (especially with a material like ABS that shrinks significantly).
No shrinkage coefficient was applied — this model was printed without any shrinkage calculation or compensation. I understand how ABS shrinkage works and I’m not focusing on the absolute size deviation.
The printed part (red ABS) measures:
• X = 148.92 mm
• Y = 149.15 mm
This results in a stable axis-to-axis difference of ~0.23 mm.
The concern is not that the part is smaller overall (which is expected with ABS), but that one axis is consistently larger than the other.
Even if shrinkage compensation is applied
This cross was printed aligned normally along the X and Y axes (not at 45°).
There is a small difference between the X and Y measurements, but it is minor — depending on how it’s measured, it may be around 0.1 mm or slightly more.
So if we say that the printer will not do anything different for PLA vs ABS other than temperature and any configurable options like pressure advance / flow rate and the deviation from true is twice to almost three times (2.9, correct?) that of PLA, this would seem to point to a characteristic difference between ABS and PLA. This is where my thoughts were going in regards to the cooling of the plate since ABS can be effected by rapid cooling as well as the build plate temperature differences as you get closer to the edges. Perhaps upping the chamber temperature which would in turn make for a more extended cool-down time.
You’ve done tons of troubleshooting, I’m anxious to see what results you get after the encoder plate.
Have you considered only printing big chunky children’s toys, I think you’d find your variance totally acceptable.
Yes, that would be an incredible coincidence if I actually needed to print something like that.
I printed ABS at 65 °C chamber temperature. I also have other prints of different shapes, and they show the same 0.2 mm error. It’s incredibly frustrating.
At this point the only options left are printing diagonally, or trying again without an actively heated chamber. Although I already tried to rule out shrinkage at this scale — I kept the part on the bed for a couple of hours at 65 °C with both the chamber and the bed heated. I even tried putting it in the freezer. There was no meaningful difference.
I also separately printed calibration models. Dimensional differences are still present, even with a shrinkage compensation factor applied. The shrinkage factor used was 99.41. The measured dimensions are approximately Y ≈ 99.98 mm and X ≈ 99.81 mm.
I am attaching the 3MF file as well as photos for reference. The overall trend of an approximately 0.2 mm dimensional discrepancy remains consistent across prints
Here are samples printed at 45 degrees. There is still a difference, but it is already minor and, overall, acceptable to me. A shrinkage compensation factor was applied, although not very precisely.
“Due to the design of the chamber heating assembly and the airflow within the chamber, the XY environment is not completely uniform. As a result, slight differences in shrinkage across the build area are normal.
In chamber temperature hold mode, the heated air circulates from the bottom towards the door. Not all areas of the chamber will have identical temperatures, and some variation in shrinkage is expected. These differences are considered normal and do not indicate any malfunction of the printer.”
Honestly, this answer sounds like complete nonsense.
If the printer has non-uniform shrinkage across the XY plane and this is considered “normal”, then how exactly is the user supposed to compensate for it in a reasonable and repeatable way?
• Should I apply different scaling factors for X and Y?
• What if the shrinkage depends on the part’s position on the build plate?
• What if the same part changes dimensions simply by being moved a few centimeters?
In that case, dimensional calibration becomes meaningless, because any compensation assumes stable and uniform behavior.
Saying “this is normal” without providing a practical and actionable compensation method is not an answer.
From a user perspective, this turns precise engineering prints into guesswork.