X-Y axes right angle adjustment

Post Reply
Darkmind
Posts: 16
Joined: Wed May 13, 2020 2:24 am

X-Y axes right angle adjustment

Post by Darkmind » Wed Feb 03, 2021 6:53 pm

Hi guys,

Could someone help me with setting X and Y axis to the right angle? I have been using my i3 Pro B for a long time and for majority of printed parts it seemed fine. However, recently I've noticed that X and Y axes are not set to exactly 90° to each other. There's small deviation of may be 0.5-1°

This results in the fact that for example a long box and a lid don't match each other if printed in different orientations (along X axis and along Y axis respectively). Also, because of that round objects are printed in elliptic shape. Visually it's impossible to recognize, it looks round, but when measured has deviation of ~1mm in diameter. That for example makes printing any gears impossible cause they won't work as part of one well tuned mechanism

The motor steps are tuned fine - narrow sticks printed along X and Y axes have exact length, so that tuning is not a problem. All symptoms say that X and Y axes are not aligned to 90° angle.

However I can't find where exactly I could assemble it incorrectly or which nuts/bolts are responsible for that.

So the main question is: How to tune angle between X and Y axes and what is the best way to measure it?

jonsag
Posts: 46
Joined: Tue Feb 06, 2018 5:08 am

Re: X-Y axes right angle adjustment

Post by jonsag » Thu Feb 04, 2021 2:22 am

Use skew correction in the Marlin firmware

From configuration.h

Code: Select all

 * Marlin automatically computes skew factors from these measurements.
 * Skew factors may also be computed and set manually:
 *
 *  - Compute AB     : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
 *  - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
 *
 * If desired, follow the same procedure for XZ and YZ.
 * Use these diagrams for reference:
 *
 *    Y                     Z                     Z
 *    ^     B-------C       ^     B-------C       ^     B-------C
 *    |    /       /        |    /       /        |    /       /
 *    |   /       /         |   /       /         |   /       /
 *    |  A-------D          |  A-------D          |  A-------D
 *    +-------------->X     +-------------->X     +-------------->Y
 *     XY_SKEW_FACTOR        XZ_SKEW_FACTOR        YZ_SKEW_FACTOR
 */
#define SKEW_CORRECTION

#if ENABLED(SKEW_CORRECTION)
  // Input all length measurements here:
  #define XY_DIAG_AC 143.55 //142.90 // should be 143.754808615 //282.8427124746
  #define XY_DIAG_BD 143.95 //143.10 //282.8427124746
  #define XY_SIDE_AD 101.65 //200

  // Or, set the default skew factors directly here
  // to override the above measurements:
  //#define XY_SKEW_FACTOR 0.0

  //#define SKEW_CORRECTION_FOR_Z
  #if ENABLED(SKEW_CORRECTION_FOR_Z)
    #define XZ_DIAG_AC 282.8427124746
    #define XZ_DIAG_BD 282.8427124746
    #define YZ_DIAG_AC 282.8427124746
    #define YZ_DIAG_BD 282.8427124746
    #define YZ_SIDE_AD 200
    #define XZ_SKEW_FACTOR 0.0
    #define YZ_SKEW_FACTOR 0.0
  #endif

  // Enable this option for M852 to set skew at runtime
  #define SKEW_CORRECTION_GCODE
#endif
These are my settings for my printer. I've compensated for X-Y axis, and it's possible to compensate X-Z and Y-Z also.

You can find my whole firmware here.
Also check out the README.

/jon

Darkmind
Posts: 16
Joined: Wed May 13, 2020 2:24 am

Re: X-Y axes right angle adjustment

Post by Darkmind » Sun Feb 07, 2021 6:47 am

Thanks a lot! That really helped :) Although, for some reason my printer didn't want to use neither calculated nor provided skew factor (I fail to understand why), but I was able to give the number via M852 S-0.016016 command and then save using M500. So a test square was printed with correct sides and diagonals

jonsag
Posts: 46
Joined: Tue Feb 06, 2018 5:08 am

Re: X-Y axes right angle adjustment

Post by jonsag » Sun Feb 07, 2021 8:36 pm

Great!

Did you do as per my instructions in the README?

First you compile and upload firmware with

Code: Select all

#define XY_SKEW_FACTOR 0.0
and do a test print

Then enter your measurements in the code and

Code: Select all

//#define XY_SKEW_FACTOR 0.0

and compile and upload again.

/jon

Darkmind
Posts: 16
Joined: Wed May 13, 2020 2:24 am

Re: X-Y axes right angle adjustment

Post by Darkmind » Fri Feb 12, 2021 6:01 pm

aah, right. Sorry, my bad. First doing, then reading manual as usual... Well, it seems to work with GCode-provided and stored settings, so I'll leave it there for now
However, your README is very nice, as it lists many useful options as well, thanks! I'll bookmark it

jonsag
Posts: 46
Joined: Tue Feb 06, 2018 5:08 am

Re: X-Y axes right angle adjustment

Post by jonsag » Fri Feb 12, 2021 7:23 pm

That's the way I do it also. :-P

You're welcome!

/jon

Post Reply