Possible Sources of Axis Error

I love my new MPCNC! It’s mostly working great. I’m using @Jeffeb3’s Pi image to drive it, Ultimaker Rambo board, dual endstops, and some 84oz/in steppers from Amazon. I’ve done some engraving with a v-carve bit, some light wood cutting, some vinyl cutting, and of course I’ve drawn some crowns.

My y-axis is perfectly accurate (to within my ability to measure), but my x-axis comes up consistently short ~0.6mm on 500mm. I should probably be happy with 0.12% error, but I’m wondering if I can get better. Drawing a 500mm x 500mm box with a ballpoint pen, my diagonals are equal (since I did my dual-endstop calibration), and both sides of the box in the x dimension measure the same ~499.4mm.

I’m trying to understand the possible sources of axis error, especially axis error that’s consistent on both x-axis rails. Here are my ideas. I’d love help listing out any others:

  • Belt too loose (check for consistent tension with the other axis)
  • Skipping steps (has a distinctive sound)
  • Bed surface very unlevel (Though I think an 0.6mm x-error would require a 24.5mm z-error across 500mm tan(acos(499.4mm/500mm))*499.4mm=24.5mm)
  • Both 16T pulleys slightly loose?
  • GT2 belts slightly out of tolerance?
Does anyone else have any ideas on what could cause an axis to have a consistent error across both rails in that axis?