Double motor axis homing question
-
OK. Maybe I should post a request on firmware github. In my opinion, it's a real issue with 2 motors axis.
-
@JuL You could probably do this with conditional Gcode, for example:
- check before homing if either endstop switch is triggered, but not both or neither
- if so try homing the axis but only 20mm.
- If that doesn't succeed, notify the operator.
- Otherwise, home normally.
Would that work?
Ian
- check before homing if either endstop switch is triggered, but not both or neither
-
I should give it à try. Thx
-
So I manage to check with conditionnal and it works. But, there is a major issue in firmware I discovered during my test. Its a critical safety bug in my opinion. Firmware check during homing move if sensor is hit, but doesn't care if not. If you don't hit sensor, the move continue to distance you specify, stop and do the second pass as well without controlling after complete distance. Ok, I can test it with conditionnal, but I really don't understand this kind of homing procedure inside a so good board.
-
@JuL Your homing move should be longer than your axis, that way it should always hit and endstop. If it doesn't hit, it just goes as far as you tell it. If it hasn't hit an endstop, I don't think the axis is marked as homed. How is this a critical safety bug?
Ian
-
@droftarts said in Double motor axis homing question:
I don't think the axis is marked as homed.
Here is the problem, it's homed. I'tried again with my Z axis (1 motor, short stroke), the same
-
@JuL I'm not sure that I understand what you say is happening. At the start of any homing move, the first thing that happens is that the axis is flagged as not homed. Then when the homing move proceeds, the axis will remain flagged as not homed until the end stop triggers. As soon as the end stop triggers, the axis will be marked as homed but if the homing switch never triggers, then the axis will never be flagged as homed. That's what normally happens so can you explain in detail what you observe is happening in your case. Is it possible that you have a wiring issue such that you get false triggers from the end stop switch?
-
I notice that you have G92 Y0 in your homey.g file, I think that this will set the axis as being homed (someone please confirm), which may be contributing to the problems you are seeing.
-
@gloomyandy said in Double motor axis homing question:
G92 Y0 in your homey.g file,
This will indeed force the position of the axis and mark it as homed.
-
@JuL said in Double motor axis homing question:
So I manage to check with conditionnal and it works. But, there is a major issue in firmware I discovered during my test. Its a critical safety bug in my opinion. Firmware check during homing move if sensor is hit, but doesn't care if not. If you don't hit sensor, the move continue to distance you specify, stop and do the second pass as well without controlling after complete distance. Ok, I can test it with conditionnal, but I really don't understand this kind of homing procedure inside a so good board.
To avoid this:
-
Always use normally closed endstop switches. That way, if an endstop switch becomes disconnected, it will appear to be triggered to RRF.
-
Never use a G92 command to set the homed position in the homing files, because that will flag the axis as homed even if the endstop switch has not been triggered. Set the M208 limits correctly instead.
-
If you want to handle the case of the endstop switch becoming disconnected, read the state of the switch near the start of the corresponding homing file(s). If you find the switch is already triggered, use a suitable G1 H2 move to back off a few mm from the switch. If that fails to change the homing switch state to not triggered, report an error using M591 and abort the homing file.
-
-
My bad, I didn't expect g92 set position AND flag as homed. Thx for pointing me my mistake
-