Problems with distortion correction - V1.0dev

Hello everyone,

i'm running into strange problems while setting up my printer with the new 1.0 Firmware.

I managed to get Autolevel working fine and tried to use the same coordinates for distortion correction.
The printer returns: "Could not activate z-probe offset due to coordinate constraints"
I know, that this happens if you accidently send the Head to coordinates it cannot physically reach, but since it is working fine with autolevel, I can't see the problem. Maybe it is because my X_MIN_POS is at -20?

Here are the relevant settings:

#define X_MAX_LENGTH 520
#define Y_MAX_LENGTH 400
#define Z_MAX_LENGTH 465
#define X_MIN_POS -20
#define Y_MIN_POS 0
#define Z_MIN_POS 0

#define DISTORTION_CORRECTION 1
#define DISTORTION_CORRECTION_POINTS 6
#define DISTORTION_LIMIT_TO 2
#define DISTORTION_CORRECTION_R 100
#define DISTORTION_PERMANENT 1
#define DISTORTION_UPDATE_FREQUENCY 15
#define DISTORTION_START_DEGRADE 0.5
#define DISTORTION_END_HEIGHT 2
#define DISTORTION_EXTRAPOLATE_CORNERS 0
#define DISTORTION_XMIN 26.5
#define DISTORTION_YMIN 0
#define DISTORTION_XMAX 450
#define DISTORTION_YMAX 320

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define EXTRUDER_IS_Z_PROBE 0
#define Z_PROBE_DISABLE_HEATERS 0
#define Z_PROBE_BED_DISTANCE 20
#define Z_PROBE_PIN 71
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET 46.1
#define Z_PROBE_Y_OFFSET -71.2
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 0.7
#define Z_PROBE_XY_SPEED 100
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 5
#define Z_PROBE_HEIGHT 0.1
#define Z_PROBE_DELAY 0
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define FEATURE_SOFTWARE_LEVELING 0
#define Z_PROBE_X1 26.5
#define Z_PROBE_Y1 0
#define Z_PROBE_X2 450 
#define Z_PROBE_Y2 0
#define Z_PROBE_X3 26.5
#define Z_PROBE_Y3 320
#define BED_LEVELING_METHOD 0
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 6
#define BED_LEVELING_REPETITIONS 5

Thank you very much for your time and help
Jagi


Comments

  • Can you post the log from sending G33 until failure, so I can see at which stage this happens. Negative x min should be no problem especially if autoleveling already already worked there.
  • This is the complete console output:

    15:31:14.725: X:-20.00 Y:0.00 Z:457.188 E:0.0000
    15:31:37.446: Z correction disabled
    15:31:37.447: Reference Z for measurement:20.100
    15:31:37.455: Error:Activating z-probe would lead to forbidden xy position: -20.000360, 71.20
    15:31:37.455: RequestStop:
    15:31:38.168: fatal:Could not activate z-probe offset due to coordinate constraints - result is inaccurate! Printer stopped and heaters disabled due to this error. Fix error and restart with M999.
    15:32:17.076: Z-probe:19.147 X:26.50 Y:320.00


    It seems like the x-Position is set below x_min @ -20.000360.
    Does "#define Z_PROBE_X1 26.5 " accept float? - This does not seem to be the problem, changing it to  "#define Z_PROBE_X1 27" did not help.



  • Yes, that is in deed the problem. Only thing I wonder is that if I compute position I get -19.6 so your bed must have a rotation that this results in -20.00036. So solution is to decrease distortion area by 0.5mm.
  • Is this rotation caused by the rotation matrix of Autoleveling?

    Thank you for the quick help!
  • edited January 2018
    Repetier said:
    Yes, that is in deed the problem. Only thing I wonder is that if I compute position I get -19.6 so your bed must have a rotation that this results in -20.00036. So solution is to decrease distortion area by 0.5mm.
    Am I right to assume, that changing the "#define Z_PROBE_X1 26.5" to a higher value, for example to 30, should fix the problem?

    I tried this, and it did not help. It's quite confusing, since the console output did not change much:

    10:25:53.989: Reference Z for measurement:20.100
    10:25:53.997: Error:Activating z-probe would lead to forbidden xy position: -20.000406, 71.20
    10:25:53.997: RequestStop


  • It's working now, but I don't really know why.

    The new Settings are:

    #define DISTORTION_XMIN 28
    #define DISTORTION_YMIN 5
    #define DISTORTION_XMAX 450
    #define DISTORTION_YMAX 320

    As I see it, the fix was to set DISTORTION_YMIN from 0 to 5. Since the problem looked like it was on the X-axis when looking at  the console output, this looks like a bug to me

  • I would think the DISTORTION_XMIN correction fixed it. First test with zprobe x1 changed could not work since it is not used for distortion.

    And yes, the rotation causes coordinates to change in "printer" coordinate system. That is all very confusing I know. But G32 works with autolevel disabled, while G33 has it enabled to only add differences.
  • edited January 2018
    OK, thank you very much for the Info and Help!
Sign In or Register to comment.