The current design continuously runs timer loops for all overlays regardless of whether or not any LEDs are actually using the overlay. Then each overlay function iterates through all configured LED's to apply if needed.
This optimization "looks ahead" and turns off any overlays that are not assigned to any LEDs. The most optimization is achieved when no overlays are used, and regresses to match the current performance level if every overlay is assigned.
clean_all or all_clean were trying to clean SKIP_TARGETS too, resulting
in:
make/targets.mk:15: *** The target specified, ALIENWHOOP, cannot be
built. Use one of the ALT targets: ALIENWHOOPF4 ALIENWHOOPF7. Stop.
Remove SKIP_TARGETS from the clean lists.
Previously the OSD crash-flip warning would only track the state of the activation switch. So if the switch was disabled but still armed the message would go away, but the quad was still in active crash-flip mode until it was disarmed. This change makes the OSD message follow the actual internal state for crash-flip.
clean_all or all_clean were trying to clean SKIP_TARGETS too, resulting
in:
make/targets.mk:15: *** The target specified, ALIENWHOOP, cannot be
built. Use one of the ALT targets: ALIENWHOOPF4 ALIENWHOOPF7. Stop.
Remove SKIP_TARGETS from the clean lists.
Additional validation in msp.c was resetting the gyro and pid denoms incorrectly under the assumption that any non-zero gyro_lpf value means the gyro is in 1KHz refresh rate. The correct validation is already been performed by fc/config.c so the extra legacy validtions are not needed.
Previously the ARMING_DISABLED_RUNAWAY_TAKEOFF reason would be overridden by ARMING_DISABLED_THROTTLE which prevented the indication that the disarming was casued by a runaway event.
Also fixed a problem where the disarm beep pattern would override the arming disabled beep codes when runaway takeoff triggered an auto-disarm.
Changed the triggering phase so that in addition to the pidSum needing to exceed runaway_takeoff_threshold, the gyro rate on any axis must exceed a threshold value to indicate the quad is actually moving. The threshold for the yaw axis is much higher since the torque of the motors can still yaw the craft without props.
* Previously we allowed the user to override from the Biquad RC+FIR2 to the FKF
impl. at compile time via `make OPTIONS=USE_GYRO_FAST_KALMAN`.
* This was regressed in PR #5144 / commit: 4dd65a2. Restores previous behavior.
Reset Runaway Takeoff Prevention so that on the next arming after crash-flip is used it will once again be active. The use-case is that the pilot may have broken props or other damage that could cause a runaway event. After successful takeoff the feature will deactivate for the remainder of the battery as before.
Noise and momentary spikes in gyro data (particularly in 32K mode) were causing false triggering of the gyro overflow detection.
Also adjusted the trigger and reset rates slightly (approx. 1950dps and 1850dps respectively).
Optimized the gyro loop slightly by eliminating 3 floating point multiplies.
Fixed bug for gyros that may not be +-2000dps full scale.
Temporarily disables Runaway Takeoff Prevention when the `ARMING_DISABLED_MSP` flag is cleared in the configurator by switching the safety switch on the motors tab. Allows bench testing the motors and flight controller response without triggering a runaway takeoff auto-disarm.
Requires coordination with the configurator to pass an extra runaway takeoff temporary disable flag with the MSP_ARMING_DISABLE msp command.