Auto bed leveling with inductive sensor

I have a cartesian printer on which I used an inductive sensor for both Y-min sensing and auto bed leveling.
This is described for Marlin firmware and works ok.

Since repetier firmware has a very good implementation for a filament sensor i changed to repetier firmware.
I only have problems now with auto bed leveling.

As far as I can discover autobed leveling in repetier works in a different manner, in which seperate z-min endstops and z-probe are used. Am I correct?

Is it possible to use the inductive sensor in repetier in the same manner as in Marlin?

Also, is it possible to change to 4 probing positions instead of 3?


  • First simple part - 4 point or 9 are no problem in latest versions if you select grid for leveling with n = 2 or 3.

    In latest dev we did some improvements on having z min and endstop identical. You might try that and report if it works. I have the same setup but with z probe height 0, so for me everything works. You must set ALWAYS_CHECK_ENDSTOPS false I guess since you trigger above bed and still need to go down, which the normal moves prevent if endstops are checked.
  • I will try the dev version.

    Can you explain what you mean with the z-probe height of 0?

    When I home my printer, using the inductive sensor I have a gap between the bed and nozzle of 0.25 mm. After that I do a G29 to autolevel.
    In Repetier I set an offset of -0.25 and everything prints fine. That is with Marlin firmware and Repetier host.

    I would like the same behaviour with Repetier firmware.
  • Stupid question, but where can I find the latest dev version?

    or development branch on github.

    If you are 0.25 above bed when triggering z probe height is 0.25.

    G29 is not the best for autoleveling as it is not meant for autoleveling. It just sets z position based on mean z height. G32 does the grid measurement and also computes bed rotation and sets height correctly so G0 Z0 should do what it is supposed to do.
  • I will try that.

    And thank you for all your great help.
    I find it rather difficult to understand everything that is happen with the z-axis.

    I understand you recommendating for applying a z-max sensor with a z-probe, but in my case that is not very efficient to implement. My z-heigt is 300 mm, so to let the plate travel to z-max everytime when homing takes forever.

    Is it possible to implement both a z-min sensor and a z-probe. And if so does the z-probe first has to trigger before z-min to be able to use a G32.

    Am I correct that I only have to do a G32 S2 once and then the values get stored in eeprom? And will these values be used everytime after homing?

    Btw I will do a paypal transfer for all your great work and support.
  • z min and z probe with different sensors is not supported as you would need z min trigger below bed so extruder must crash into bed to trigger. That is not what you want. So you need either z min sensor = z probe sensor and play a bit with latest dev version. There it might work now, but I'm lacking a good test printer to verify. Or you have z max endstop/homing where homing is not critical and G32 S2 corrects z length to do everything right.

    While I understand that z-max homing takes a while with slow z axis, it is not that much compared to a 6 hour print and it gives you more possebilities like continuing a paused print after a filament change where you moved z/x/y during change or if filament went out and you want to continue at a special position. Plus it makes homign much easier, but as I said with z probe = z min it should now be possible with some limitations as not having endstop tests during print, only while homing.
  • I am going to follow your recommendation of using the z-max endstop for homing.

    I need a little help with the setup.
    How do I tell the printer the distance from the probe to the bed after homing?
    I guess it is possible to lower the z-axis until it mearly touches the nozzle and then read the value on my display and set that value in the firmware, correct?
    I suppose I also can you that position to trigger my z-min endstop to prevent the bed from running into the endstop?

    I also want to use auto-leveling so I gues the z-probe is triggered somewhat lower than the z-min endstop, which makes the z-min endstop a last guard in case the z-probe does not function.

    I hope I understand things correctly now, soI can set up my printer properly to function with your firmware.

    Final addition will be a filament runout sensor from which I understand from you it will be easy to set up with z-max endstops.
  • WIth z max endstop the z length defines how far it goes down. If you have z probe just set it smaller (safe side) and let z probe G32 S2 measure and set z length correctly. Things you should know
    1. #define ENDSTOP_Z_BACK_ON_HOME 3
    so your z max is not triggered even if autoleveling moves z up/down at top.
    2. Yes, you can have z min endstop below bed level as last resort. Especially with spring loaded beds this works.
    3. Filament runout is as easy as with z min but you can set filamentchange to home xy and z if it is possible to change extrude rposition during change. Also filament detector currently only supports sensors that toggle signal while printing so you can detect slippage/clogging as well.
  • I am slowly beginning to understand it.

    I have my printer setup to home to Z-max, which is 216.4 mm under the nozzle.
    I have set the z home distance to 216.4
    When I type G0 Z0 the bed perfectly levels.

    I have enabled the Z- probe and when I go G29 it autolevels and after leveling goes to position Z 15.1

    What do I have to do to store the values to eeprom and make sure the autobedleveling values are properly integrated in the z distance to the extruder?
    Do I have to do anything with the Z_PROBE_OFFSET_FROM_EXTRUDER value?

  • Sure you are using repetier-firmware? We do not have Z_PROBE_OFFSET_FROM_EXTRUDER and our autoleveling command is G32 S2 (S2 to store result in eeprom). G29 only does 3 point measurement of z to adjust height using average height measured.
  • Yes, I use Repetier, Only got confused with Marlin setting.

    This is my Z_MAX_LENGTH value: 216.6

    This value sets my bed under the extruder when I give G0 Z0.

    Doing some G30's at different bed positions gives:
    1.63 X45 Y00
    1.28 X145 Y00
    1.38 X145 Y150

    These are my z-probe settings:
    Z value in the display is 3.1
    I don't see the connection between all the values, which makes it hard to understan what I am doing.

    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 0
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE 1
    #define Z_PROBE_BED_DISTANCE 2
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 1
    #define Z_PROBE_X_OFFSET 45
    #define Z_PROBE_Y_OFFSET 0
    #define Z_PROBE_SPEED 2
    #define Z_PROBE_XY_SPEED 150
    #define Z_PROBE_HEIGHT 1
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_X1 50
    #define Z_PROBE_Y1 20
    #define Z_PROBE_X2 250
    #define Z_PROBE_Y2 20
    #define Z_PROBE_X3 250
    #define Z_PROBE_Y3 160
    #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 FEATURE_AXISCOMP 0
    #define AXISCOMP_TANXY 0
    #define AXISCOMP_TANYZ 0
    #define AXISCOMP_TANXZ 0
  • I finally have it working :)
    Using the configurator and your z-probe instructions I was able to set everything right an understand what happens.

    One final question: When I use G32 S2 autobedleveling results are stored in eeprom, right?
    Are they overwritten when I do a M502 and M500 to restore eeprom values, so I have to do a G32 again?

    Thanks for all the help.

  • Autoleveling is not handled by eeprom configuration, so they do not get overwritten. Only thing that might get overwritten is if autoleveling is enabled. Not sure if that shows up in config. M320 S1 would enable it again in any case.
  • What do you mean it is not handled by EEPROM? Will not a autolevel be remembered between reboots?

    If I get you right I would have to do autolevel every time I turn on the printer?

  • No, i meant autolevel is stored in eeprom but not visible for editing in the eeprom editor. S2 still stores it in eeprom so you do not need to repeat every time.
  • Hi. I am having several problems with my z-offset in my printer. I do not have the LCD screen, I am doing everything from my computer with REPETIER HOST. But I can not analyse my z-offset because I can not move my Z axis through the Negative Values... 

    I have an Inductor Sensor. 
    Can you help me please? I am nob at this. 
  • G1 S1
    allows moving to negative values in our firmware.
    But you need to send it as G1 command - host will not send it with move buttons.
Sign In or Register to comment.