SatNOGS rotor destroying endstops

Hello everyone,

around a year ago, I built my first satNOGS rotor.
It’s still going strong, but there is one thing I am quite frustrated about.
I am using the Arduino Uno + CNC shield variant with this firmware: Quartapound / satnogs-rotator-firmware · GitLab with stepper motors and without encoders.
Sometimes (for unknown reasons), the rotor goes below 0° and e.g. points the antenna to -7° elevation. When it comes back up, it always rips of the endstops arm and I have to tideously replace the whole microswitch (happened 9 times in the last year).

Why is that? would it be possible to make the firmware obey they endstops not only during homing, but also during normal operation so that it can’t possibly go below 0°?


The same thing happened to me and I changed this:
#define HOME_DELAY 100 ///< Time for homing Deceleration in millisecond

Hmmm…for me, this randomly happens during operation, not during homing.

So the gear size is miscalculated

I’m building my station, reviewing the code, and happen to see this.

Based on my read, the HOME_DELAY is not used to control homing deceleration rate. Instead, it’s been to get “delay” time after 2nd homing been triggered.

For example: if AZ homed first then EL homed. The HOME_DELAY is the delay time (milsec) after EL homed been trigger, give EL motor time to going back to home position.

I personally change my code from HOME_DELAY to AFT_HOMING_DELAY to avoid confusion.

#define AFT_HOMING_DELAY   12000 ///< Delay time (in millisecond) after homing, to complete the movements


    // Delay after homing, to complete the movements
    uint32_t time = millis();
    while (millis() - time < AFT_HOMING_DELAY) {

@crosswalkersam1 : I think what you are asking is adding additional logic to use MIN_M2_ANGLE (usually set to 0) to avoid EL going negative? I haven’t reach that point yet but I will see what I can do during my build.