Extends the possible OSD warnings elements from 16 to 32.
Adds a warnings count to MSP data to enable improved handling of warnings added to the firmware but not in the Configurator. Incremental Configurator development required.
Rearranges the OSD warnings element messages to prioritize the pre-flight warnings. Previously other warnings could override the crash flip or launch control warnings - leading to safety issues.
Previously the Throttle Position element calculation was based solely on the raw rcCommand value and didn't take into account the min_check deadzone so the resulting displayed percentage was incorrect. Also 3D trottle handling was not considered.
Corrected the calculation and added support for 3D throttle modes. Reversed thrust will be represented with negative throttle percentages.
Previously the logic to blink the warnings element was based on whether batteryState was either BATTERY_WARNING or BATTERY_CRITICAL. The problem is that the warning element might be displaying a higher priority message that shouldn't blink.
Changes the logic to have the blinking based on the actual warning message displayed.
In addition to the battery warning/critical cases, added blinking for some other critical warnings like failsafe, CPU core temp warning, ESC sensor warnings, HEADFREE mode active, and RC smoothing not initialized.
The OSD stats provide no meaningful information and are just an annoyance when exiting these special states.
For Launch Control the stats will be displayed if the launch is triggered and normal flight occurrred.
Percentage implementation
Settings fix, formatting
Add support for different number of motors
Optimize and cut superfluous code
Hard-add mixer.h
Formatting adjustment to fit BF standards, linking error in unittest fix attempt
Add stubs and variables for unittests
Character based indicators
Change output to special characters
Fix spacing
Update test code, add variable
Include changes as per peer review
Adds a race start assistance system that allows the pilot to pitch forward and then release the sticks with the quad holding position for the race start.
If the current sensor wasn't configured (or the mahDrawn was still zero) then there would be a division by zero error in the remaining time OSD element calculation. Rearranged the logic to prevent.
Remove unnecessary decidegrees conversions as all temperature providers are in degrees celcius.
Fixed rounding for imperial units.
Fixed data type error in core temp warning element. Temperature is captured as int16 and can be negative but logic was using uint8 leading to an underflow for negative temperatures and a false alarm triggering.
If osd_ah_max_pit was set to zero there would be a divide by zero error in the calculations for the OSD artificial horizon. Using zero for osd_ah_max_pit is a valid use-case to disable the vertical pitch component in the artificial horizon so we can't simply change the parameter range.
Previously the g-force element was being display using integer math and truncating the float value. This lead to the g-force displaying 0.9 much of the time. Changed to use rounding to one decimal place.
Also avoid the g-force calculation unless the element or post-flight statistic are enabled. This saves unnecessary math including a sqrt().