Clean up the logic to use a bitmask indicating which overlays are disabled rather than an array to indicate which are enabled.
Performance remains unchanged from the previous optimization but a few bytes of RAM are saved and the code is cleaner.
* Append the target name to the response of MSP_BOARD_INFO
This allows MSP clients to retrieve the actual target name, which
is useful for e.g. automatically upgrading the firmware on a board
without asking the user to select the target manually or to present
a warning dialog if we detect the user has chosen the wrong target.
* Output wether a board uses VCP in MSP_BOARD_INFO
This allows the configurator to detect if the board uses VCP
without using an external list of boards.
* Use a single bit to output wether the board uses VCP
This lets us use the remaining 7 bits for other flags.
Also, output if the board has softserial support using the next
bit.
Previously diff would only compare the first element of an array type. Changed valuePtrEqualsDefault() to make it array-aware and compare all elements to the defaults.
* CF/BF - Set STM32F7 SPI FAST clock to 13.5Mhz - Gyros not stable at
27mhz.
* CF/BF - Initial SPRacingF7DUAL commit.
Support two simultaneous gyro support (code by Dominic Clifton and Martin Budden)
There are new debug modes so you can see the difference between each gyro.
Notes:
* spi bus instance caching broke spi mpu detection because the detection
tries I2C first which overwrites the selected bus instance when using
dual gyro.
* ALL other dual-gyro boards have one sensor per bus. SPRacingF7DUAL is has two per bus and thus commit has a lot of changes to fix SPI/BUS/GYRO initialisation issues.
* CF/BF - Add SPRacingF4EVODG target.
This target adds a second gyro to the board using the SPI pads on the back of the board.
* CF/BF - Temporarily disable Gyro EXTI pin to allow NEO target to build.
* optimize math
Results in considerable flash saving
* log_approx, exp_approx, pow_approx
Taken from https://github.com/jhjourdan/SIMD-math-prims/blob/master/simd_math_prims.h
* Fix pow in rangefinder
* Use approximate function in baro calculation
Maximum error is < 20cm
* fixup! Fix pow in rangefinder
Removed parameters runaway_takeoff_threshold (hardcode to 60) and runaway_takeoff_activate_delay (hardcode to 75). The previous default values worked well and required no tuning.
Enhance the deactivate logic to remove the R/P/Y stick activity condition once throttle reaches 2X runaway_takeoff_deactivate_throttle_percent. Additionally reduce the runaway_takeoff_deactivate_delay by 50% when throttle exceeds 75%.
There was an issue in that if no data from PPM or PWM rx inputs would result in processRx() exiting prematurely and updateArmingStatus() not being called. This affected processing of boot grace timeouts, cpu load arming disabled checking, etc. This change forces updates to occur no less frequently than 50Hz even if no data is available.