(a lot of) autolevel issues

edited June 2015 in Extruder & Bed

i just built a smartrap, which has the Z min endstop on its extruder for autolevel. the hotend gets pressed up if it hits the bed and this triggers the Z endstop with an lever.

at first i tried with marlin firmware, the auto bed level feature did this:

it probes the grid or the 3 measure points, finishes this without error and starts to print BUT it has an Z offset of 2 mm after the probing procedure. it tries to print in the air 2mm above the bed. i tested hundrets of firmware settings but it ALWAYS did the same...

so i tried it with repetier firmware, i set everything up as usual and hit the SAME problem... i had a 2mm offset after its auto level measure procedure.

i tried everything but was not able to get it to work... went to sleep, woke up tried it again and now it does not complete the 3 point measure, it stops now at the first point with the probe/Z endstop triggered and does not move to the 2 other points.
in the log it says:

Z-probe: -2.02 X:10.0 Y:20.0

after this it stops and stays where it is. i thought the eeprom could cause this problem, so i sent a M500 to overwrite it and changed the eeprom value from 1 to 2 and backwards for every upload... but the issue persists really hard.

it looks like the probing gets aborted because the hotend/probe reaches a negative position... but i have no idea how to fix this.

it does NOT care which value i enter at: Z_PROBE_HEIGHT and PROBE_BED_DISTANCE but homing the Z axis works normal, so it starts from 0 which is an Z-offset of 0.35

why does it not probe correctly? im getting frustrated!


  • settings:

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

    #define FEATURE_Z_PROBE 1
    #define Z_PROBE_BED_DISTANCE 1
    #define Z_PROBE_PULLUP 1
    #define Z_PROBE_ON_HIGH 1
    #define Z_PROBE_X_OFFSET 0
    #define Z_PROBE_Y_OFFSET 0
    #define Z_PROBE_SPEED 2
    #define Z_PROBE_XY_SPEED 140
    #define Z_PROBE_HEIGHT -6
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_X1 10
    #define Z_PROBE_Y1 20
    #define Z_PROBE_X2 140
    #define Z_PROBE_Y2 20
    #define Z_PROBE_X3 70
    #define Z_PROBE_Y3 135
    #define FEATURE_AXISCOMP 1
    #define AXISCOMP_TANXY 0
    #define AXISCOMP_TANYZ 0
    #define AXISCOMP_TANXZ 0
  • The reason is quite simple. Negative heights were not permitted. I have corrected this so value still -1 are now permitted (0.92.3). Negative values mean you are below plate and extruder has hit bed and crushed it. So negative is normally an error and probing simply stops. Now I permit small negative values for force sensors. Not sure why you have -2mm - does the sensor really requires you to push the bed 2mm down to trigger?

    So updating should help. If you really need that negative values check Commands.cpp case 32: there you see the code and -1 test. Feel free to set it to -10 if you need it.
  • edited June 2015
    it already runs the 0.92.3 version, and why does it say -2 after it hit the bed and not stop there and say 0 or go to 0??
    it moves for additional 2 mm... i don´t want this and i have no idea how to tell it to move 2 mm back up after probing.

    EDIT: ok the endstop needs this 2mm until it clicks, i need a setting where i can add this 2mm after it clicks, like this setting: ENDSTOP_Z_BACK_ON_HOME 0 this seems to only work for a homing process, not auto level.

    the negative high setting of the probe high was a frustated try (because i already tried values from 0 to 100)... not the real setting, the problem is: the printer does completely ignore this value. it ALWAYS hits the bed because it does not move up after the probe was triggered.

    how do i eleminate the negative high in the Z axis? 

    i cannot move or adjust the trigger/hardware, it has to be a value in the firmware or it should measure the distance by its own (thats why i has auto level, right?)
  • edited June 2015

    after i changed this value: ENDSTOP_Z_BACK_ON_HOME from 0 to 1.1, the probing process worked.
    now it reaches every measure point, BUT it grinds on the bed while moving from one point to the next, because it still does not lift the Z axis after each point.

    AND if i try tp print something the hotend stays in the negative (like before) and grinds on the bed.
    i think here should the Z_PROBE_HIGH value help but this value is ignored by the printer. 
    its not possible to add an offset to the Z axis after the leveling process and this would solve my problem.

    any idea?
  • edited June 2015
    since the Z_PROBE_HIGH value does not work, i changed the ENDSTOP_Z_BACK_ON_HOME value to 0.35 and add to the beginning of the g-code:

    G32 S2

    this way the print starts in the right high for the first layer and i can see the Z axis moving while it prints BUT (!), it moves "wrong", the print is not leveled correctly, on one side of the bed the hotend is on the bed, on the other side its 0.5 away, even after a sucessful (?) auto level procedure.

    this whole auto level "feature" generates way more work and problems than it should solve. really nothing works like described, maybe its the design of this french printer here... causes problemes from the first minute.

    is repetier able to handle "french" printers...?
    (since i built it, i know why i should never buy a french car) ;)

  • Back on home is only used for homing and on deltas it happens at the top so it does not help you at the bottom.


    would be better. It is where you start probing and this should surely be above bed.

    What happens is that z probe measures distance til switch and adds Z_PROBE_HIGH and that must be >0 (or >-1 with latest update from yesterday that is still 0.92.3). But 1 -6 = -5 so you were in trouble.

    After each probe we go back to start height. But as I said 1 is not much and if you had it previously wrong it might even be below bed, so a bit higher value helps here.

    Also remember values are in eeprom and must be changed there!
  • edited July 2015
    after a sleepless night i got it working now...

    but with marlin, not with repetier :(

    the problem(s) was/were: 

    1. the eeprom, i forgot to overwrite it on some tries, but not on all of my tries. and i did not know, it has to set to defaults M502 before it can read out a new config with M500, if you want to do this via a command and not with the firmware value.

    2. the Z_PROBE_HIGH value was ignored by the printer all the time until the end, even with disabled eeprom

    3. the Z-PROBE_BED_DISTANCE was also ignored, even with disabled eeprom

    4. i made a mistake with the steps per mm settings, the printer moved 20% too much/far (explains the wrong Z axis movement after probing)

    i switched back to marlin because here i can manipulate the Z offset after probing with M555 Z 
    this way i was able to figure the problem out.

    the printer is now enabled to print on cold, clean glass without any help

    but it loses its Z offset on every power up, even i write it into the eeprom.
    i have to add this offset via command every time i power it up...

  • Hi Deesun,

    I'm wondering if you've tried going back to Repetier for Auto Leveling.  I have a similar design for the Z-probe which also requires negative Z_PROBE_HEIGHT values.  I think if you follow the suggestions recommended above you will be able to solve your problems that you were having. 

    I have another issue that I'm curious to know if anyone else is experiencing.  It seems like after probing (G32 or G32 S3) I can rarely reach Z=0.  I usually manually move in Manual Control to Z=0 after probing to adjust my Z_PROBE_HEIGHT, but I notice that the motor stops moving as I approach 0.  It may display a Z=0 in Repetier host, but you will see that the motors are not moving within this "deadzone", which means that auto level does not function in this zone.  When I use the SMARTLCD Controller to manually move Z position, however, it will not show the Z position at 0 but rather it will stop say at 0.45mm.  When I turn the knob it will not move any further to 0.

    At first I thought this was only during manual moves (Manual Control in Host and using Smart Controller), however, this also happens during printing.  You will notice that in the first layer auto level is not moving at all.  In fact, if the deadzone is from 0.00-0.45mm the Z stage will not move at all until it is out of this range.  This means that if I am printing supposedly at Z=0 it will print the first layer with no auto level, and then without moving the Z stage, print the second layer.  This eventually causes my extruder to jam due to the immense build up in pressure.

    I'm examining the code to see what the problem can be but I haven't found anything yet.  Anyone else with this problem?
  • Could it be that you have Z-correction (distortion correction) enabled but not tested with G29? In that case it will add a distortion matching the garbage in your eeprom maybe. It would then report 0 also not beeing at 0 since it added distortion.
Sign In or Register to comment.