Auto-leveling matrix is off

edited March 2017 in Extruder & Bed
I'm using my probe as both min endstop and autolevel. Everything is working fine except the matrix is slightly off. My offsets are correct and I have tried both 3 point and 9 point leveling with same problem. Autolevel is working but its off by a really small amount that gives me a bad first layer. Any ideas?
Im using dev firmware

Comments

  • What kind of off do you have? Same error everywhere or getting larger to one side? For both there is a fix.
  • It gets higher on one side. Like the bed is tilted.
  • edited March 2017
    It gets higher on one side. Like the bed is tilted.
    I have the same problem...

    When auto levelling is OFF and bed manually levelled prints are perfect.
    When auto levelling ON, the matrix is correctly generated but the firmware things the right side of the bed is 0.8mm lower than the left side - which makes the 1st layer a failure.


    Running latest (not dev) firmware on an ANet A8 (set up as P802_8_V1.5 Zonestar 3D) 

    I use auto levelling (16 point) with inductive sensor powered on 12VDC with voltage divider on digital output. On testing I get highly stable and repeatable readings.

    Auto levelling ( G1 Z+1 G28 X G28 Y G32 S2 P0) creates a levelling matrix correctly.

    The Problem - auto levelling operates when printing but is ineffective. The firmware always leaves a large gap between nozzle and bed on right side of heated bed and leaves a small gap on the left side of the bed. It seems to think the bed is tilted when it is not!

    The bed has been manually levelled in advance and is not warped

    Please advise what I am doing wrong?? 

    // #################### Z-Probing #####################

    #define Z_PROBE_Z_OFFSET 0.15 //thickness of blue tape 0.15mm (Nick. USe this variable to artifically adjust for weird nozzle sitting too high problem
    #define Z_PROBE_Z_OFFSET_MODE 0
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE true //was 0 by default (Nick)
    #define Z_PROBE_BED_DISTANCE 3 // assuming this is simply a distance greater than the antiicpated variation in the bed height?? Doesn't see to 'do' anything (Nick) 3.477?
    #define Z_PROBE_PIN ORIG_Z_MIN_PIN //was -1 by default. I have redefined as Pin 20 which was the pin assigned to ORIG_Z_MIN_PIN in the pins.h file. Correct?? (Nick)
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 0
    #define Z_PROBE_X_OFFSET 16.0 //probe is about 53mm behind the hot end nossle (Nick)
    #define Z_PROBE_Y_OFFSET 53.0 // probe is about 16mm to right of the hot end nossle (Nick)
    #define Z_PROBE_WAIT_BEFORE_TEST 0 //was o by default (Nick). Setting to 1 makes user press Ok putton to start autolevel - I think
    #define Z_PROBE_SPEED 1 //1mm/sec by default (Nick)
    #define Z_PROBE_XY_SPEED 100 //150mm/sec by default (Nick)
    #define Z_PROBE_SWITCHING_DISTANCE 0.5 //distance to move back up after triggering probe to untreigger - assumed (Nick)
    #define Z_PROBE_REPETITIONS 1 //1 by deafult (Nick)
    #define Z_PROBE_HEIGHT 1.6 // measured with feeler gauge when sensor just activated and no tape on bed by G30 P0 BUT adjusted by trial and error following(Nick)
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_FINISHED_SCRIPT ""
    #define Z_PROBE_REQUIRES_HEATING 0
    #define Z_PROBE_MIN_TEMPERATURE 150
    #define FEATURE_AUTOLEVEL 1
    #define Z_PROBE_X1 -11
    #define Z_PROBE_Y1 -7
    #define Z_PROBE_X2 170
    #define Z_PROBE_Y2 -7
    #define Z_PROBE_X3 -11
    #define Z_PROBE_Y3 140
    #define BED_LEVELING_METHOD 1 //was 0 by default (Nick)
    #define BED_CORRECTION_METHOD 0
    #define BED_LEVELING_GRID_SIZE 4 // Nick
    #define BED_LEVELING_REPETITIONS 1
    #define BED_MOTOR_1_X 0
    #define BED_MOTOR_1_Y 0
    #define BED_MOTOR_2_X 200
    #define BED_MOTOR_2_Y 0
    #define BED_MOTOR_3_X 100
    #define BED_MOTOR_3_Y 200
    #define BENDING_CORRECTION_A 0
    #define BENDING_CORRECTION_B 0
    #define BENDING_CORRECTION_C 0
    #define FEATURE_AXISCOMP 0 //not really needed unless frame is not square (Nick). Default 0
    #define AXISCOMP_TANXY 0
    #define AXISCOMP_TANYZ 0
    #define AXISCOMP_TANXZ 0


  • Update

    After exhaustive testing it appears that the firmware is applying the auto level matrix in the wrong sense. That is to say my gut feeling is that it has an incorrect sign (+ve instead of -ve say) so instead of levelling the bed it doubles the error!

    That is all I can think of. All other testing shows settings and good and frame components are aligned and good

    Any ideas before I give up on this magic and use good old manual leveling?
  • #define FEATURE_Z_PROBE true //was 0 by default (Nick)
    this should be 
    #define FEATURE_Z_PROBE 1 //0=disabled, 1=enabled (not sure if' true is recognised)

    #define Z_PROBE_BED_DISTANCE 3 // assuming this is simply a distance greater than the antiicpated variation in the bed height?? Doesn't see to 'do' anything (Nick) 3.477?
    sets how high to move nozzle between probe locations

  • Make also sure in eeprom that bending correction is 0. It adds and offset to measured values and is used to compensate flexing of bed when measuring but set without need it would also create a growing distance to one direction.

    Last thing is disable distortion correction.

    Very last thing: Try dev version where more problems are fixed, e.g. aborting autolevel if activation of probe fails instead of not moving.

    G1 Z1 is a bit close. You say you trigger at 1.6mm and start at 1mm? That causes also wrong results. Start at 5mm.
  • MartinH said:
    #define FEATURE_Z_PROBE true //was 0 by default (Nick)
    this should be 
    #define FEATURE_Z_PROBE 1 //0=disabled, 1=enabled (not sure if' true is recognised)

    #define Z_PROBE_BED_DISTANCE 3 // assuming this is simply a distance greater than the antiicpated variation in the bed height?? Doesn't see to 'do' anything (Nick) 3.477?
    sets how high to move nozzle between probe locations

    Thanks MartinH

    You are right - in 'Arduino world' the keyword true is the same as 1 and false is the same as 0..

    Cheers
  • Repetier said:
    Make also sure in eeprom that bending correction is 0. It adds and offset to measured values and is used to compensate flexing of bed when measuring but set without need it would also create a growing distance to one direction.

    Last thing is disable distortion correction.

    Very last thing: Try dev version where more problems are fixed, e.g. aborting autolevel if activation of probe fails instead of not moving.

    G1 Z1 is a bit close. You say you trigger at 1.6mm and start at 1mm? That causes also wrong results. Start at 5mm.
    Appreciated. I checked and had in both EEPROM and configuration.h the same...
    BENDING_CORRECTION_A 0
    BENDING_CORRECTION_B 0
    BENDING_CORRECTION_C 0
    DISTORTION_CORRECTION 0 

    The G1 Z1 thing was not really needed as I always add the following to my Gcode..

    ; Nicks start code
    G1 Z+10 ; lift Z slightly. Should not be needed?
    G28 X; Home X
    G28 Y; Home Y
    G1 X+70; Move sensor over centre of bed in prep for Z home using inductive sensor in place of limit switch
    G1 Y+70
    G28 Z ;Home Z
    G92 Z0; Set Z coords to zero – I think?
    M107 ; Turn off fan
    G90 ; Absolute positioning
    M82 ; Extruder in absolute mode
    {IF_BED}M190 S{BED}
    ; Activate all used extruder
    {IF_EXT0}M104 T0 S{TEMP0}
    G92 E0 ; Reset extruder position
    ; Wait for all used extruders to reach temperature
    {IF_EXT0}M109 T0 S{TEMP0}


    Have loaded the Dev version. Will test...

    Cheers & thanks




  • Use homing order XY preheat Z so you can set z probe position. That way you can do simply G28 for homing.
  • I'm using my probe as both min endstop and autolevel. Everything is working fine except the matrix is slightly off. My offsets are correct and I have tried both 3 point and 9 point leveling with same problem. Autolevel is working but its off by a really small amount that gives me a bad first layer. Any ideas?
    Im using dev firmware
    Just a newbie question - are you using the blue, square,ROKOSN04-N  auto level module  which Anet  include if  the A8  auto level version kit is purchased. Its 10v - 30v??
  • edited April 2017
    I'm using my probe as both min endstop and autolevel. Everything is working fine except the matrix is slightly off. My offsets are correct and I have tried both 3 point and 9 point leveling with same problem. Autolevel is working but its off by a really small amount that gives me a bad first layer. Any ideas?
    Im using dev firmware
Sign In or Register to comment.