Sapog critical events

Hello, I have questions regarding motor stall events.

Suppose we have a rotor stall for some reason. It raised several questions for me:

  1. Does autopilot (in this topic let’s consider ardupilot or px4) have function of detecting error_count messages, and log them?
  2. Since Sapog, in case of stall, needs a setpoint to be reset, can autopilot, reset setpoint based on received error_count messages, thus possibly saving an aircraft?
  3. Is there a way to log rotor stall occurances in sapog? Or error_count messages in autopilot?

It seems to me, that it would be pretty good, to have some kind of decision making mechanism based on rotor stall event. At least, to check it before fligth, and report to autopilot, that all ESC’s are runnung in order. Or, at least that all of them are present for that matter.

As you possibly have guessed, I am raising those questions, I am investigating a crash, in which one of the motors merely stopped working. The ESC seems to be working properly, and autopilot was sending the necessary setpoints. Suffice to mention, that the ESC were working on PWM input, and not CAN.

Hey skandinaff,

  1. PX4 logs the error counter, not sure about other autopilots: https://github.com/PX4/Firmware/blob/master/src/modules/uavcan/actuators/esc.cpp#L217

  2. This is a misconception. Sapog will restart automatically after a stall, no special steps are needed. Sapog will only lock-up if it was unable to start the motor after several attempts, which usually means that the propulsion hardware (motor, propeller, the ESC itself, or whatever) is no longer able to function.

  3. Sapog-compatible hardware designs have a non-volatile EEPROM which can be used to log events like that. At the moment that memory is not used by the firmware though. This may change in the future.

I am investigating a crash

What hardware were you using in the crashed vehicle? Was it your own design?

Hi Pavel,

  1. Okay, but what if (theoretecally) there will occur several stalls (and aircraft is still in the air), which will be considered as a lock up, so then Sapog gives up, and the aircraft falls? Shouldn’t the ESC do whatever in it’s powers to save the flight?

  2. Yeah, I already thought about that. However, if there is a subscriber to messages in autopilot, we can just log everything in autopilot, I guess.

Yes, I am using my own implementation of Orel hardware, which is essentially the same as in hardware reference, with some minor changes.

  1. By default, the number of restart attempts is 7, IIRC, which should be enough in most cases. You can easily increase this number though, it is just a configuration parameter.