Quantcast
Channel: Reprap Forum - Firmware - Marlin
Viewing all articles
Browse latest Browse all 12112

Skew Correction in Marlin 1.1.7

$
0
0
Does skew correction only correct during delta calibration / bed leveling or also correct skew when printing parts?


I dont know how to activate this feature.
In console:
M852
Outputs:
Skew Factor XY: 0.00 XZ: 0.00 YZ: 0.00


Stock Code:
/**
 * Bed Skew Compensation
 *
 * This feature corrects for misalignment in the XYZ axes.
 *
 * Take the following steps to get the bed skew in the XY plane:
 *  1. Print a test square (e.g., [www.thingiverse.com])
 *  2. For XY_DIAG_AC measure the diagonal A to C
 *  3. For XY_DIAG_BD measure the diagonal B to D
 *  4. For XY_SIDE_AD measure the edge A to D
 *
 * 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 282.8427124746
  #define XY_DIAG_BD 282.8427124746
  #define XY_SIDE_AD 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


With my measured values:
/**
 * Bed Skew Compensation
 *
 * This feature corrects for misalignment in the XYZ axes.
 *
 * Take the following steps to get the bed skew in the XY plane:
 *  1. Print a test square (e.g., [www.thingiverse.com])
 *  2. For XY_DIAG_AC measure the diagonal A to C
 *  3. For XY_DIAG_BD measure the diagonal B to D
 *  4. For XY_SIDE_AD measure the edge A to D
 *
 * 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 141.03
  #define XY_DIAG_BD 141.56
  #define XY_SIDE_AD 100.89

  // 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 140.64
    #define XZ_DIAG_BD 140.49
    #define YZ_DIAG_AC 139.79
    #define YZ_DIAG_BD 139.91
    #define YZ_SIDE_AD 99.23
    #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

Also tried:
#define SKEW_CORRECTION

#if ENABLED(SKEW_CORRECTION)
  // Input all length measurements here:
  #define XY_DIAG_AC 141.03
  #define XY_DIAG_BD 141.56
  #define XY_SIDE_AD 100.89

  // 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 140.64
    #define XZ_DIAG_BD 140.49
    #define YZ_DIAG_AC 139.79
    #define YZ_DIAG_BD 139.91
    #define YZ_SIDE_AD 99.23
    //#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

My process between uploading or upgrading firmwares:
G29 P0;
M502
M500
M140 S60 ;
M104 S160 ;

G28
M665 B70 ; (error with g33 unless this command 1st)
G33 P3 V1 ;
M500 ;

G28;
G29 P1;
G29 S1;
G29 A;
M500;

Printer is a 3ku Delta.
nozzle as probe
heated bed.
It prints nicely. I just havent figured out how to enable this feature.
M501:
Recv: echo: V47 stored settings retrieved (614 bytes; crc 20025)
Recv: Unified Bed Leveling System v1.01 active.
Recv: 
Recv: Unified Bed Leveling initialized.
Recv: 
Recv: Mesh loaded from slot 1
Recv: Mesh 1 loaded from storage.
Recv: echo:  G21    ; Units in mm
Recv: echo:  M149 C ; Units in Celsius
Recv: 
Recv: echo: Filament settings: Disabled
Recv: echo:  M200 D1.75
Recv: echo:  M200 D0
Recv: echo: Steps per unit:
Recv: echo:  M92 X80.00 Y80.00 Z80.00 E110.34
Recv: echo: Maximum feedrates (units/s):
Recv: echo:  M203 X300.00 Y300.00 Z300.00 E200.00
Recv: echo: Maximum Acceleration (units/s2):
Recv: echo:  M201 X4000 Y4000 Z4000 E3000
Recv: echo: Acceleration (units/s2): P R T
Recv: echo:  M204 P1000.00 R2000.00 T3000.00
Recv: echo: Advanced: S T B X Z E
Recv: echo:  M205 S0.00 T0.00 B20000 X20.00 Y20.00 Z20.00 E5.00
Recv: echo: Unified Bed Leveling:
Recv: echo:echo:  M420 S1
Recv: 
Recv: Unified Bed Leveling System v1.01 active.
Recv: 
Recv: Active Mesh Slot: 1
Recv: EEPROM can hold 8 meshes.
Recv: 
Recv: echo: Endstop adjustment:
Recv: echo:  M666 X0.00 Y-1.04 Z-1.32
Recv: echo: Delta settings: L R H S B XYZ
Recv: echo:  M665 L228.00 R108.59 H296.73 S160.00 B70.00 X-0.47 Y0.32 Z0.16
Recv: echo: Material heatup parameters:
Recv: echo:  M145 S0 H205 B60 F255
Recv: echo:  M145 S1 H240 B100 F255
Recv: echo: PID settings:
Recv: echo:  M301 P21.04 I1.24 D89.65
Recv: echo: Z-Probe Offset (mm):
Recv: echo:  M851 Z0.30
Recv: echo: Skew Factor:
Recv: echo:  M852 I0.00 J0.00 K0.00
Recv: echo: Linear Advance:
Recv: echo:  M900 K170.00 R0.03

Viewing all articles
Browse latest Browse all 12112

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>