Change to use vtxTableConfig PG settings for validation rather than the current runtime values for bands, channels and power levels. Fixes command parsing when restoring a `diff` as the `vtxtable` runtime values won't be available until after the reboot.
Fix "off by one" range check for power level that was preventing use of the highest power level configured in `vtxtable`.
Reverse the order of the `vtxtable` and `vtx` outputs in a `diff`/`dump` so that `vtxtable` settings will be applied first as the `vtx` settings are dependent on them.
The `mag` variable is defined as an `extern` in compass.h but the implementation in compass.c is bounded by `#ifdef USE_MAG`. So if `USE_MAG` is not debined then the `mag` variable is an undefined reference.
In imu.c the `imuMahonyAHRSupdate()` function was being passed the elements of `mag` unconditionally like `mag.magADC[X]` so in the case that `USE_MAG` wasn't defined these were invalid null references. Luckily the logic in `imuMahonyAHRSupdate()` was properly bounded so that it never tried to access these variables. But in the case of a debug build the linker is unable to build a reference to these variables since they're never defined.
Separates the OSD elements position/visible/profile flags from the `osdConfig` PG and moves them to a new `osdElementConfig` PG. Allows new elements to be added without having to constantly update the PG version for `osdConfig`.
- Rename MSP_SET_4WAY_IF to MSP_SET_PASSTHROUGH
- Keep backwards compatibility with existing uses of the command
- Add 2 new values for the passthrough mode: one that sets up
a serial port given its ID and another one that sets it up from
a function ID.
Makes the invert, black brightness, and white brightness update the display as the settings are changed rather than only taking effect once the menu is exited.
Adds an adjustable outline element designed to represent the field of view of the pilot's HD camera for visual framing. The width, height and position of the frame are adjustable.
Helps prevent the USB VCP device from being initialized until the firmware is ready to accept connections. Previously the USB device would be initialized early in the process and the firmware still had lots of initialization following until it would be ready to accept connections. May help prevent connection failures if attempting to connect as soon as the serial port appears.
Eliminated the duplicated MSC functions in the architecture specific files and moved to a shared common.
Improved the activity indicating LED and made it consistent between onboard flash and sd card mass storage mode.
For devices using the 1Gb NAND flash the scanning phase that discovers the individual logs was taking to long resulting in the operating system thinking the mass storage device had become unresponsive. It is simply a factor of the larger flash size and the amount of time needed to scan all 2K blocks.
Restructured to scan the flash before initializing and starting the USB device. That way the mass storage device can start quickly and bee immediately ready for operating system requests.
Allows default settings for RC smoothing to work seamlessly regardless of the feedforward type selected ("classic" vs. interpolated).
Adds a new "AUTO" setting for the derivative filter type that will select based on whether interpolated feedforward is enabled (use PT1) or not (use BIQUAD). The derivative filter cutoff if set to auto (0) will also use a fixed cutoff calculated from a 100hz base if interpolated feedforward is enabled. Otherwise if classic FF is active then it will default to the previous method of calculating the cutoff based on the RX frame rate.