Questions regarding Z endstops, probing, and a possible bug

edited October 2017 in General
I am currently setting up endstops and probing on my cartesian printer. I am trying to see if the below scenario is possible, and I also think I discovered a bug.

I plan to have X min and Y min endstops that will be used for homing. I also plan to have a Z max endstop that will actually have a limit switch at both the top and the bottom wired in series. I will place the limit switches just outside of where the gantry should ever be, so that if something goes wrong the printer will stop before stuff crashes (the bed is flexible so it can go below z=0 some). Thus, I will have ALWAYS_CHECK_ENDSTOPS enabled. The Z max pin will only be used as a sort of e-stop and will not be used for homing. 

I have a inductive sensor wired to Z min that activates 0.33mm before the nozzle touches the bed. I plan to use the sensor for both homing and probing. Is this possible?
1) Does the homing sequence known to take the value from Z_PROBE_HEIGHT or does it just set z=0 to wherever the probe activates? 
2) Is it possible to have ALWAYS_CHECK_ENDSTOPS enabled with a probe that activates before the nozzle touches the bed? Right now it will not go below the probe activation point (except for the below case...)

I am running into a problem that seems like a bug. If FEATURE_Z_PROBE is disable (value 0), then the Z homing sequence works normally. It goes down until the probe is activated, up a bit, then down slower until activated. This is what I want. 
If, and only if, FEATURE_Z_PROBE is enabled (value 1), the Z homing sequence adds an extra command that causes the extruder to lower after the normal homing sequence, thus causing the nozzle to immediately crash into the bed. 
I experimented with this some and activated the probe about 60mm above the bed during homing. I found that it lowered approximately 40mm after the normal homing sequence and then stopped on its own. I also found that it ignores any activations of the probe while lowering. It shows z=0 on repetier host.
It almost seems like it knows to drop some due to the probe offset. However, I have Z_PROBE_HEIGHT set to .33.
I have tried turning Z_PROBE_PULLUP and Z_PROBE_ON_HIGH on and off. 

I am using the .92.9 firmware config tool. 

Here is my config file:  https://drive.google.com/open?id=0B0BN9n42VSBLVURNWnljaFI2RW8

Thanks for the help.

Comments

  • First use 1.0dev with z probing.

    To home to z min you MUST have z-min endstop and z-probe designed the same pin. This tells printer to use this special case and add z probe height to z when triggering. Also you must make sure z probe can be enabled at the homing position, so use homing order with preheat and preheat temperature 0. That way you can set probing position.

    Since your second z min endstop is not tested in this case you can also remove it. I'm currently unsure if ALWAYS_CHECK_ENDSTOPS 1 is a problem with z probe since it triggers before z=0. Willcheck that later and disable it for non homing moves.


  • edited October 2017
    Repetier said:
    First use 1.0dev with z probing.

    To home to z min you MUST have z-min endstop and z-probe designed the same pin. This tells printer to use this special case and add z probe height to z when triggering. Also you must make sure z probe can be enabled at the homing position, so use homing order with preheat and preheat temperature 0. That way you can set probing position.

    Since your second z min endstop is not tested in this case you can also remove it. I'm currently unsure if ALWAYS_CHECK_ENDSTOPS 1 is a problem with z probe since it triggers before z=0. Willcheck that later and disable it for non homing moves.


    I'll give 1.0 a shot. 

    It would be nice if you could program what the home button on host specifically does like the 1 - 5 scripts. Right now I have script 1 act as my home button. It zeros x and y, move the probe to the center (the probe will not touch the plate at the home position), zeroes Z with the probe (but that is off because the probe activates above true Z=0.), uses G92 to tell it where Z really is, and then goes back to X0 Y0 Z0 so that I can use @isathome, and then finally parks in the rear left. 
    It would also be nice if you could add @script1 or other scripts to gcode like how you can add @pause

    For now, I will wire the Z "emergency stop" limit switches to the reset button. I am not really worried about X and Y crashing as they are just belts compared to a ball screw. 

    Also, I see a new feature in 1.0, DOOR_PIN/PULLUP/INVERTING, if activated does this only prevent new commands or will it also kill existing movement, AKA if I use this on the Z "emergency stop" switch will it prevent the movement from continuing?

  • DOOR_PIN currently is only respected if laser is supported (have change dit for next update). It will disable laser and stop processing new commands.

    If you configure homing as I said you can simply use G28 to home all axis, no need for scripts and tricks with G92.


Sign In or Register to comment.