1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00
Commit graph

13464 commits

Author SHA1 Message Date
Michael Keller
261637838e
Merge pull request #10471 from etracer65/current_meter_div0_fix
Fix possible div-by-zero in current meter
2021-01-12 20:08:53 +08:00
Michael Keller
b762ac9994
Merge pull request #10472 from etracer65/baro_sample_range_fix
Fix baro sample size minimum range
2021-01-12 19:55:17 +08:00
Bruce Luckcuck
fbf1ef7bbc Validate that the battery min cell voltage is less than the max cell voltage
Resets to defaults if not.

If the min/max were set to the same value then this will lead to div-by-zero errors.

If the min was set to a greater value then this would lead to negative values and underflow in the battery remaining calculations. This would affect the OSD, dashboard, various telemetries, LED strip, and the Configurator.
2021-01-11 11:34:46 -05:00
Bruce Luckcuck
e7b9828c3b Add option to display OSD menus over a solid gray background
Improves menu readability by changing the background from a transparent display of the camera image to a static opaque gray background.

The behavior is controlled with the `osd_menu_background` parameter which defaults to `TRANSPARENT` to preserve the previous behavior. Other opaque options are available:
```
osd_menu_background = TRANSPARENT
Allowed values: TRANSPARENT, BLACK, GRAY, LIGHT_GRAY
```

The background setting is available in the CMS OSD menu and the user can cycle through the various options with the display updating in real-time.

Currently only the onboard MAX7456-based OSD is supported, but the implementation adds `displayPort` support so it can easily be extended to other OSD devices if those manufacturers want to add support. Also can be extended to other background types (like colors, varying transparency, etc.) for future device support.

Makes use of the built-in MAX7456 feature to display all transparent pixels as "gray". The MAX7456 display area seems to be a few scan lines smaller than the actual camera video image so it's normal for some of the camera image to "leak" at the top/bottom of the display. The OSD display area can be adjusted up/down using the `vcd_v_offset` setting if desired.
2021-01-10 18:19:59 -05:00
Michael Keller
8a95ad314b
Merge pull request #10469 from mikeller/fix_tests
Fixed unit tests.
2021-01-11 06:23:04 +08:00
Michael Keller
789f4b9989 Added AK8975 magnetometer driver to Unified Targets. 2021-01-11 08:06:19 +13:00
Michael Keller
00b62185a5
Merge pull request #10467 from etracer65/alt_hold_cleanup
Altitude hold removal cleanup
2021-01-11 02:46:36 +08:00
Michael Keller
e74a892645
Merge pull request #10464 from etracer65/fix_ak8975_compile_errors
Fix compile errors for ak8975 magnetometer driver
2021-01-11 02:43:12 +08:00
Bruce Luckcuck
c008d9c406 Fix baro sample size minimum range
The logic that uses the sample table size is:
```
```
So a setting of 1 would result in div-by-zero later in the code. A setting of 0 would result in division by -1 causing altitude measurements to be inverted. This could lead to a safety issue with GPS Rescue and a flyaway as it attemts to climb to altitude.

The default value is 21 and fortunately this was a setting that users were unlikely to have changed.
2021-01-10 11:09:18 -05:00
Bruce Luckcuck
175e6200b4 Fix possible div-by-zero in current meter
Prevents div-by-zero if current meter scale is set to 0. Can't prevent with parameter ranges because scale ranges from -16000 to 16000.
2021-01-10 10:43:35 -05:00
Michael Keller
12e3b6e242
Merge pull request #10462 from ctzsnooze/exclude-yaw-P-from-AG-boost
Exclude yaw from AntiGravity generated P boost
2021-01-10 18:34:49 +08:00
Michael Keller
1f1ee1b820
Merge pull request #10461 from mikeller/fix_simplified_gyro_filters
Fixed CLI parameter for simplified gyro filters.
2021-01-10 18:17:46 +08:00
Michael Keller
18eca90c51
Merge pull request #10458 from jflyper/bfdev-h7-update-power-supply-confi
[H7] Update power supply configuration
2021-01-10 18:17:24 +08:00
Michael Keller
fe3f0aee3e Fixed unit tests. 2021-01-10 22:29:23 +13:00
Michael Keller
b189f8f1f7
Merge pull request #10410 from ligenxxxx/master 2021-01-10 08:25:54 +08:00
Michael Keller
cad720abda
Merge pull request #10413 from limonspb/smartaudio_version
Added vtx device status to MSP
2021-01-10 08:23:30 +08:00
Michael Keller
ebc162ba9d
Merge pull request #10459 from tstibor/sd_init_return 2021-01-10 06:21:04 +08:00
Thomas Stibor
0bb44c4cb0 Refactor SD_Init() to return proper SD_Error_t code.
Function SD_Init() is called as follows:

./main/msc/usbd_storage_sdio.c:         if (SD_Init() != 0) {
./main/drivers/sdcard_sdio_baremetal.c: if (SD_Init() != 0) {
./main/drivers/sdcard_sdio_baremetal.c: if (SD_Init() != 0) {

and checks whether return value is != 0, that is != SD_OK.
Previous implementation is working, however, cannot handle proper
SD_Error_t handling. In addition the code was refactored and simplified.
2021-01-09 22:09:59 +01:00
Bruce Luckcuck
1ca01692a7 Altitude hold removal cleanup
Just cleaning up some unused leftover altitude hold code
2021-01-09 12:24:15 -05:00
Bruce Luckcuck
ef76a2a042 Fix compile errors for ak8975 magnetometer driver 2021-01-09 12:07:04 -05:00
ctzsnooze
5b40fcc326 exclude yaw from AG driven P boost 2021-01-09 21:19:10 +11:00
Michael Keller
b19434c9cb
Merge pull request #10451 from Linjieqiang/iflight_H743_AIO
Add more feature for iFlight_H743_AIO support.
2021-01-09 09:54:11 +08:00
Michael Keller
55fe3bb8f2 Fixed CLI parameter for simplified gyro filters. 2021-01-09 13:47:29 +13:00
jflyper
6747a82bec [H7] Update power supply configuration 2021-01-08 14:05:21 +09:00
Michael Keller
d8d15efb98 Added missing GUI box for MSP override. 2021-01-07 14:31:26 +13:00
LinJieqiang
e9a98e11c4 Add more feature for iFlight_H743_AIO support. 2021-01-06 14:54:21 +08:00
ligenxxxx
88d593604c Update serial_uart_impl.h
The msp_displayport function does not support deprecated flight controllers.
2021-01-06 09:32:02 +08:00
Michael Keller
3df0053d2e
Merge pull request #10441 from mikeller/make_frsky_fuel_reporting_consistent
Made fuel reporting for FrSky telemetry consistent.
2021-01-06 02:31:35 +08:00
Michael Keller
cddb6cb869
Merge pull request #10440 from mikeller/simplify_osd_blinking
Simplified the OSD blink frequency calculation.
2021-01-06 02:31:11 +08:00
Michael Keller
243be1d216
Merge pull request #9119 from IvoFPV/add-tuning-sliders 2021-01-06 02:19:29 +08:00
Bruce Luckcuck
35adb5ba06 Only register CMS displayPort for SRXL and CRSF when appropriate
Previous logic was always registering CRSL and SRXL as CMS displayPort devices regardless of whether the user was actually using that type of radio and telemetry.

The problem this caused is that if the user accidentally (or intentionally) used the CMS invoke stick command while already in the CMS on the MAX7456 the logic interprets this to mean "switch to the next registered displayPort device". So in this case the CMS would appear to exit based on what the user could see. But in reality it's still active and simply switched to the next (nonexistent) device. The user is then stuck and can't arm because the `CMS` arming disabled will be active and they have no way to interact with the CMS. They can technically blindly do the CMS stick command 2 more times to get back to the MAX7456, but how would they know that?

So this change only registers the CRSF and SRXL displayPorts when the user has selected those receiver types and enabled telemetry.

This is actually only a partial solution since it prevents registering the devices when they're impossible to work, but doesn't do anything for the actual CRSF or SRXL user that may be using equipment not capable of displaying the CMS. So it's still possible for them to get stuck in this situation. But I don't see any reasonable way to prevent this.

Perhaps it's time to rethink this "Switch to next CMS device" logic? It's something that nobody really knows about and seems to be more trouble than value. Maybe there are some edge cases where it's useful like using the OLED dashboard along with a MAX7456, but that's a rare use-case. Or possibly we need some explicit control where the user has to enable the particular displayPort device to be eligible for CMS?
2021-01-04 12:20:02 -05:00
Ivan Efimov
9db5b502b9 Added VTX device status to MSP 2021-01-03 20:55:25 -06:00
phobos-
c3f90e567f disabled voltage sag compensation in crash flip mode 2021-01-02 12:55:43 +01:00
Michael Keller
d05d422bc0 Made fuel reporting for FrSky telemetry consistent. 2021-01-02 01:58:00 +01:00
Michael Keller
a702ee1a5b Simplified the OSD blink frequency calculation. 2021-01-02 01:04:13 +01:00
Bruce Luckcuck
3c15716679 Improve rate settings range checking
Improve the logic to be table-based and add validation of the rc_rates and expo values. The previous logic only validated the super-rates and the rc_rates can also be out-of-range when changing rates types. The expo values are also checked but currently all the rates types have the same constraints so there's no possibility currently of them being out of range. But this will allow for possible new rates type that have different constraints.
2020-12-31 18:52:07 -05:00
Michael Keller
2126aa17e6
Merge pull request #10429 from etracer65/fix_raceflight_rate_reset
Fix logic error for RACEFLIGHT and KISS rates range checks
2021-01-01 00:39:24 +01:00
ligenxxxx
fd15177fdb Resize ```UART_TX_BUFFER_SIZE``` 2020-12-31 12:17:32 +08:00
Michael Keller
b5477cd500
Merge pull request #10408 from mikeller/cleanup_debug_code
Cleaned up debug code in Dshot.
2020-12-30 16:14:33 +01:00
Michael Keller
74297459f0
Merge pull request #10407 from mikeller/fix_dshot_command_msp
Fixed MSP command to send Dshot commands.
2020-12-30 16:14:19 +01:00
Bruce Luckcuck
76d50f1d37 Fix logic error for RACEFLIGHT and KISS rates range checks
Fixes logic errors in #9574

For RACEFLIGHT rates the applicable `case` was missing so the logic defaulted to the BETAFLIGHT rates logic which incorrectly limited the maximum rate value to 100. RACEFLIGHT values range to 255.

For KISS rates the limit was set to 100 but the Configurator constrains to 99.
2020-12-27 18:14:16 -05:00
Michael Keller
9fe4141342
Merge pull request #10425 from etracer65/fix_cellcount_div0
Fix multiple div-by-zero related to battery cell count
2020-12-27 01:06:23 +01:00
Michael Keller
50c149821d
Merge pull request #10424 from etracer65/improve_osd_blink
Improve OSD blink timing logic
2020-12-27 01:05:53 +01:00
Michael Keller
58b4cb916c Added missing simplified gyro tuning defaults. 2020-12-26 14:27:06 +01:00
Michael Keller
7fc3c7cea6 Renamed 'tuning sliders' to 'simplified tuning'. 2020-12-26 14:26:56 +01:00
IvoFPV
cff19dc113 Implement tuning sliders, add to CMS, MSP 2020-12-26 14:26:50 +01:00
Michael Keller
4d9f2c330b
Merge pull request #10406 from mikeller/fix_bitbanged_dshot_commands
Fixed problem when sending blocking Dshot commands with bitbanged Dshot enabled.
2020-12-26 02:32:52 +01:00
Bruce Luckcuck
01fb3940e7 Fix multiple div-by-zero related to battery cell count
Battery cell count will be 0 if the battery is not detected or the voltage meter is not configured. This exposed multiple div-by-zero risks.
2020-12-25 14:17:00 -05:00
Bruce Luckcuck
f7d992b2bd Improve OSD blink logic
Changes the blink logic to be OSD task loop based instead of time based.

The previous logic used a 200ms time interval for the blinking which didn't align well with the default 12hz OSD update frequency resulting in the logic periodically missing intervals resulting in an inconsistent blinking.

As the revised logic is now tied to the OSD task iterations the blinking will be consistent. However due to the timing the blink will be slightly faster - 167ms (6hz) vs. the previous 200ms (5hz) intervals. Technically the blinking was 6hz before but stuttered every 5th blink.

Since the OSD task rate can be changed from the default 60hz, the logic will fall back to the time-based implementation for non-default task rates.
2020-12-25 12:41:44 -05:00
ligenxxxx
a5cd9ea7c3 Modified UART_TX_BUFFER_SIZE for USE_MSP_DISPLAYPORT
I did a test and added a lot of osd elements (basically all osd elements I can add, excluding GPS and ESC elements), and even some have overlapped. In this case, there is no problem at all. TxBufferSize is set to 1024. It is sufficient for normal conditions.
2020-12-24 19:15:14 +08:00