Page 1 of 1

X-Y axes right angle adjustment

Posted: Wed Feb 03, 2021 6:53 pm
by Darkmind
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?

Re: X-Y axes right angle adjustment

Posted: Thu Feb 04, 2021 2:22 am
by jonsag
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

Re: X-Y axes right angle adjustment

Posted: Sun Feb 07, 2021 6:47 am
by Darkmind
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

Re: X-Y axes right angle adjustment

Posted: Sun Feb 07, 2021 8:36 pm
by jonsag
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

Re: X-Y axes right angle adjustment

Posted: Fri Feb 12, 2021 6:01 pm
by Darkmind
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

Re: X-Y axes right angle adjustment

Posted: Fri Feb 12, 2021 7:23 pm
by jonsag
That's the way I do it also. :-P

You're welcome!

/jon