Consistently getting "internal error 0x100000 I:57 flow_of_ctrl"

Hi,

I have quite a few logs, that show this error, and it is very easy to replicate.

To replicate:
arm the drone with no props, on PosHold (or switch to PosHold).
Hold it and make a sudden drop. Error shows immediatly.

This replicates on 4.3.0, 4.3.3. but not 4.2.3.

MCU: mro ControlZeroOEMH7(New).

https://drive.google.com/drive/folders/1PJfFAabtsueFGAhwmbZPib53W50KzlYK?usp=share_link

Reading more into the code - can this be the effect of the following code from land_detector.cpp, since we acutally had a vehicle with no props.

// if throttle output is high then clear landing flag
if (!flightmode->is_taking_off() && motors->get_throttle_out() > get_non_takeoff_throttle() && motors->get_spool_state() == AP_Motors::SpoolState::THROTTLE_UNLIMITED) {
// this should never happen because take-off should be detected at the flight mode level
// this here to highlight there is a bug or missing take-off detection
INTERNAL_ERROR(AP_InternalError::error_t::flow_of_control);
#endif
set_land_complete(false);
}

1 Like

@matan,

Great, thanks very much for the report. I’ve added this to our Copter-4.3 issue list so it won’t be forgotten.

FYI @Leonardthall

I believe this is expected behaviour.

  1. Aircraft is armed and in the AltHold_Landed_Pre_Takeoff.
  2. Aircraft experiences a negative acceleration that is larger than PILOT_ACCEL_Z.
  3. This produces a positive throttle output
  4. The throttle then triggers the backup take-off detection because it looks like the aircraft is falling.