Alpha axis crashes into end stop AFTER successful homing

I have an odd issue that I can’t seem to resolve. Working with a Kossel mini with an Azteeg X5 mini and Repeteir. When homing the axes, all three carriages move quickly to the limit switches until they are activated. They then move down slowly (completely disengaging the limit switches) and then move up slowly to click them again. once they get clicked again, beta and gamma carriages retract away from the limit switch successfully. However the alpha carriage continues up into the limit switch, crashing and then moves away some but not has far as the others.

Its as though the command for the alpha motor is instead of moving 10mm away from the switch after homing, it is being told to move 5mm up and then 5mm away. After this crash, beta and gamma are left about the same distance form the end stops and alpha remains much closer to its end stop.

I swapped limit switches and motors as wiring into the Azteeg and see that the problem follows the alpa motor output on the board (not an issue with the limit switch or the motor)

I will add that the only changes i made to the config file were:

Change “endstop_limit_enable true” to “alph_limit_enable true, beta_limit_enable true, gamma_limit_enable true” . This was the only was to get the end stops working
Changed the homing fast speed and slow speed to something slower so I could see what was happening
Change the retract distance after endstop from 5mm to 15mm to make sure I was completely disengaging the limit switches.

Imported from wikidot

FYI the limit enable should NEVER be enabled for a delta.

I do not know if this will help, but here is the endstop part of the config file for my Rostock, it should be similar. Please note however that rather than solder connections for the max endstops, I switched the GPIO ports and used the pre-soldered min endstop connectors.

  1. Endstops

endstops_enable true # the endstop module is enabled by default and can be disabled here
delta_homing true # forces all three axis to home a the same time regardless of
# what is specified in G28
alpha_min_endstop nc #
alpha_max_endstop 1.24^! # add ! to invert pullup if switch is NO to ground
alpha_homing_direction home_to_max # Home up
alpha_max 0 #
beta_min_endstop nc #
beta_max_endstop 1.26^! #
beta_homing_direction home_to_max #
beta_max 0 #
gamma_min_endstop nc #
gamma_max_endstop 1.28^! #
gamma_homing_direction home_to_max #
gamma_max 422.38 #

Thanks for the reply. I am having some success. I originally changed the “endstops_enable true” to “alpha_limit_enable, beta_limit_enable, gamma_limit_enable” because I could not manually cause any motor to stop by manually clicking the limit switch. I figured they were not working and I did not want to crash the machine. Last night I reloaded the original config with the “endstops_enable” in the code and hit home, and sure enough it homed exactly as it should. M119 returns the correct status of each limit switch as open or closed as I manually close them. So, the standard config file works with my switches for homing.

However, the limit switches will not prevent a crash. It will home to them but I can manually jog each carriage right into the end stop (crash) after the switches activate. These are supposed t prevent over travel in Z and not just work for homing correct???

Glad to hear that things are moving along.

As supplied, the endstops are only configured as home switches, in effect, once triggered, you can manually step, or drive the head past them. If you configure them as limit switches then you cannot step past them once triggered. A caveat, you can resume the program (play), however the carriage that triggered the limit, will continue on through the limit switch, also, all endstops will be disabled at this point, until the printer is reset. If you enable an axis with limit switches, you also need to ensure that the axis-minimum is set to NC to avoid a false trigger of the limit as the carriage is backed off the switch.

I have not used the limit option, rather, as I use hall effect end stops, I mounted some dense foam on each carriage to prevent crashes if I override the endstop, including by hand.

I hope this is of some help.

Very helpful; thanks so much. So how do I enable limit switches within the config file? I tried adding “alpha_limit enable, beta_limit_enable, gamma_limit_enable” in addition to the “endstops_enable” but it went back to doing what I explained in the first post (one carriage crashes into endstop after homing and backs off only a little). I have seen examples of other config files that are like yours having alpha_min_enstop set to nc while mine is set to 0. I will try changing this.

I would like the added safety of having them also set to limits. I am aware of the reset thats required when they are activated (or press play and risk crashing). This was the case when I tried what I explained in my first post. They successfully stopped the machine when i manually clicked it and gave the message that a limit was hit. Thats what I want.

I think you would need to use nc rather than 0, as using a value might be interprested as a GPIO pin, which would be at ground or floating, and therefore could cause unpredictable results.

gamma_limit_enable true # set to true to enable Z min and max limit switches

gamma_min_endstop nc #

gamma_max_endstop 1.28^! #
gamma_homing_direction home_to_max #
gamma_max 422.38 #

I believe it would be configured in this manner. Alpha and beta axes would be configured similarly.

I did say a while back if you scroll back that you DO NOT SET limit switches on for a delta for any reason.

I’ll give that a shot, thanks. If it doesn’t work, at least I know they were not originally meant to be limits and I have it working as intended at this point.

Did you ever solve this ?

Cheers.