Z probe error when homing to zmin but still runs through the routine.

I'm using the latest dev revision and am trying to get homing to zmin working with my blthouch.  The G28 seems to work just fine if your looking @ the machine, but in the console I get this error right before the nozzle/head starts moving down towards the bed:

18:30:28.312: N2 G28
18:30:32.496: RequestStop:
18:30:34.700: fatal:Could not activate z-probe offset due to coordinate constraints - result is inprecise! Printer stopped and heaters disabled due to this error. Fix error and restart with M999.
18:30:45.619: X:185.00 Y:-0.00 Z:-0.000 E:0.0000
18:30:57.207: N3 M999
18:30:57.207: M110 N1
18:30:57.239: DebugLevel:6
18:30:57.239: info:Continue from fatal state

G32 & G33 work just fine

Any idea if I'm doing something wrong, or is this a bug?


  • ok, I moved the printhead to zmax, then ran G32 S2.  and now G28 Z0 seems to work fine.  Odd, but it works for now.
  • did an M112 to restart the printer and tried G28 Z0 and failed with the same error as my first post.  Seems like I have to move to zmax, run G32 S2 and only then will it work.  I'm confused

    this is my latest gcode:

    my start gcode is G28, nothing else.
  • Latest dev now tests for succes on repositioning. I guess you have not homing order XYPreheat Z with z probe pos at 100,100 so activating at that position works. You seem to z probe at 0,0 and this needs to move into negative coordinates to activate z probe and that would not work according to your settings.
  • edited April 2
    I'm not understanding your response.
    My homing order is set to HOME_ORDER_XYZ

    Should I be using the homing order xy preheat z?

    I don't mind setting it to that, but I don't need the nozzle to be hot to probe since my probe is a bltouch.

    You are right regarding the negative position. I have seen the hotend be maybe 20mm above the bed but z value on the LCD or via m114 is less than that. So yes it moves into the negative value.

    Also if I move to x185 up z160 and confirm that location with m114, then send g28 I right away get the request stop. The nozzle/head then runs through the expected homing sequence which takes about 35 seconds then returns the error below.

    7:01:56.092: N7 M999
    7:01:56.092: M110 N1
    7:01:56.162: DebugLevel:6
    7:01:56.162: info:Continue from fatal state
    7:02:00.079: N2 M114
    7:02:00.142: X:185.00 Y:-0.00 Z:-0.000 E:4.4999
    7:02:23.516: N3 G1 Z160.76 F720
    7:02:48.903: N4 M114
    7:02:49.766: X:185.00 Y:-0.00 Z:160.760 E:4.4999
    7:03:04.369: N5 G28 Y0
    7:03:05.405: X:185.00 Y:0.00 Z:160.760 E:4.4999
    7:03:13.792: N6 M119
    7:03:13.823: endstops hit: x_max:L y_min:L z_min:L z_max:H Z-probe state:L
    7:03:27.298: N7 M119
    7:03:27.336: endstops hit: x_max:L y_min:L z_min:L z_max:H Z-probe state:L
    7:03:37.321: N8 M114
    7:03:37.355: X:185.00 Y:0.00 Z:160.760 E:4.4999
    7:03:54.739: N9 G28 X0
    7:03:55.759: X:185.00 Y:0.00 Z:160.760 E:4.4999
    7:04:03.971: N10 G28
    7:04:05.993: RequestStop:
    7:04:40.236: fatal:Could not activate z-probe offset due to coordinate constraints - result is inprecise! Printer stopped and heaters disabled due to this error. Fix error and restart with M999.
    7:04:50.339: X:185.00 Y:-0.00 Z:-0.000 E:4.4999

    My eeprom @ https://drive.google.com/file/d/0B1drD8vmGXPxTTIyWnd3MjJwcmM/view?usp=drivesdk
  • Ok. Figured it out and it was a stupid mistake on my part. Probe y offset should have been -5 not +5.

    Could the FW provide more specific errors in the future?
  • Any idea how to say that so any one will understand it and it is still short to reduce memory usage? It does say exactly what it meant but I agree that it is not so obvious without long explanations.

    BTW: I meant with preheat since that is the combination where you can set a xy position for z probing. You would set temperature to 0 so it does not heat for probing.
  • That makes more sense.

    Regarding the error it says it's coordinate and z probe offset. I was thinking it could say the result of the math. Ie "would result in y coordinate equals -5". That way I would at least know it's the y coordinate is off.

    Understanding the math you use in firmware would help us calculate these values. Similar to how you have the probe and dual nozzle graphic in the configurator with the table next to that.
  • I can not really say what part is wrong, especially for deltas it is the bounding circle that gets violated, but I added for next update the message:

    error: Activating z-probe would lead to forbidden xy position: -5, 0

    before the fatal message. That should help to see what is wrong.
  • That's awesome! Would make it much easier to diagnose. Great work and keep up the awesome updates!!!
  • @Repetier, I tried changing the zhoming to the folowing:
    #define ZHOME_PRE_RAISE 2
    #define ZHOME_HEAT_ALL 1
    #define ZHOME_HEAT_HEIGHT 10
    #define ZHOME_X_POS 999999
    #define ZHOME_Y_POS 999999

    I try homing soon as I power the printer on with G28, but I get the following.  I'm thinking the error action -37.799 is what you added?  The homing procedure continues as expected but errors out with the following.  I haven't chaging anything else I can think of that would affect this except the homing order and preraise height.  Not sure why this is happening

    3:35:27.883: Info:Relative positioning
    3:35:27.885: Error:action speed [mm/s]-37.799999, 5.00
    3:35:27.886: RequestStop:
    3:35:28.746: T:26.05 /0 B:26.74 /0 B@:0 @:0 T0:26.05 /0 @0:0 T1:26.63 /0 @1:0
    3:35:28.787: busy:processing
    3:35:29.836: T:26.05 /0 B:26.63 /0 B@:0 @:0 T0:26.05 /0 @0:0 T1:26.63 /0 @1:0
    3:35:30.916: busy:processing
    3:35:30.937: T:26.05 /0 B:26.63 /0 B@:0 @:0 T0:26.05 /0 @0:0 T1:26.63 /0 @1:0
    3:35:31.023: fatal:Could not activate z-probe offset due to coordinate constraints - result is inprecise! Printer stopped and heaters disabled due to this error. Fix error and restart with M999.
  • See I BedLeveling line 504 should be

    Com::printErrorF(PSTR("Activating z-probe would lead to forbidden xy position: "));

    and not

    Com::printErrorF("Activating z-probe would lead to forbidden xy position: ");

    Current version only works on due systems so you are seing wrong message before coordinates.

    #define ZHOME_X_POS 999999
    #define ZHOME_Y_POS 999999

    means do not change position so your problem can occur. Set it to a position where activating works!

  • So is this my mistake or a bug? The configurator tool says to use 999999 for no change.
  • Yes 999999 is no change and that is the error I think. You need to go away form 0,0 first to make activating work and you don't.
  • But here's where that logic doesn't work.
    1. Print finished. Print head is left at random XYZ coordinate
    2. I turn off the printer
    3. I power on the printer.
    4. I home z up, xy, z preheat. Z=10, x and y = 100

    At step 4 is where the logic fails. Since the FW has no idea where the print head is on the xy plane, moving +100 in xy will smash my printed against the max x and y positions grinding my stepper motors. It might also move past z Max causing other issues.

    I think this homing sequence would be more logical.
    1. Z up
    2. X, Y
    3. Preheat.

    The existing sequence would work if the 999999 wasn't causing this issue. This is why I think this is either a bug or a feature request. Hopefully that makes sense.
  • In step 4 you home xy first so you know where you are on xy position, so position is not unknown as you think. After that it goes to set position and starts z probing/homing. Or did I miss something?
  • I'll have to reload the FW with that setting and set the zup to something other than 999999 and let you know.
Sign In or Register to comment.