Commit Graph

16773 Commits

Author SHA1 Message Date
Michael Keller 2480b37b22
Merge pull request #10487 from mikeller/fix_unused_settings 2021-02-08 16:12:53 +13:00
Michael Keller dee434ad66
Merge pull request #10484 from etracer65/cms_page_indicator
Add up/down page indicator to CMS menu display
2021-02-08 16:12:02 +13:00
Michael Keller aec33c4779
Merge pull request #10482 from mikeller/add_4_2_maintenance_azure_trigger 2021-02-08 16:11:25 +13:00
Michael Keller f77b6a59c3
Merge pull request #10481 from mikeller/fix_baro_sample_count_setting
Fixed incorrect parameter value for barometer sample count.
2021-02-08 16:09:08 +13:00
Michael Keller f079234925
Merge pull request #10480 from mikeller/add_stale_action
Changed stale request handling to use a GitHub action.
2021-02-08 16:08:52 +13:00
Robert Cisneros 9e5cdbf2be Enable Up/Down reference for artificial horizon in OSD
This mod adds an arrow symbol showing the location of the up/down on the OSD.  The arrow direction points in the direction of up or down.

Update osd_elements.c

Making the Up/Down OSD reference its own element

Removing the Up/Down reference from the artificial horizon and making a specific element for this feature.  Activation via CLI (for now)

Updates to Up/Down refernce OSD element

Changed the up/down reference so that it is its own separarte element.  The position is absolute on the screen and immutable by the user for consistent operation. Updated settings to include CLI option for turning the feature on and off.

Update cms_menu_osd.c

Updated file to add Up/Down reference selection from OSD menu

Updates to simplify/correct Up/Down OSD element

Simplified/corrected logic and removed arcsine function.  OSD up/down reference is now positionable by the user in the configurator.

Tweaks and codestyle updates

Feedback from Michael Keller

Updates to Up/Down OSD indicator

Created a bounding box of +/- 25 degrees for indicator

Coding style correction

minor correction to match BF coding style

Enable Up/Down reference in OSD

This mod adds an arrow symbol showing the location of the up/down on the OSD.  The arrow direction points in the direction of up or down.

Update osd_elements.c

Making the Up/Down OSD reference its own element

Removing the Up/Down reference from the artificial horizon and making a specific element for this feature.  Activation via CLI (for now)

Updates to Up/Down refernce OSD element

Changed the up/down reference so that it is its own separarte element.  The position is absolute on the screen and immutable by the user for consistent operation. Updated settings to include CLI option for turning the feature on and off.

Updates to simplify/correct Up/Down OSD element

Simplified/corrected logic and removed arcsine function.  OSD up/down reference is now positionable by the user in the configurator.

Tweaks and codestyle updates

Feedback from Michael Keller

Enable Up/Down reference for artificial horizon in OSD

This mod adds an arrow symbol showing the location of the up/down on the OSD.  The arrow direction points in the direction of up or down.

Update osd_elements.c

Making the Up/Down OSD reference its own element

Removing the Up/Down reference from the artificial horizon and making a specific element for this feature.  Activation via CLI (for now)

Updates to Up/Down refernce OSD element

Changed the up/down reference so that it is its own separarte element.  The position is absolute on the screen and immutable by the user for consistent operation. Updated settings to include CLI option for turning the feature on and off.

Updates to simplify/correct Up/Down OSD element

Simplified/corrected logic and removed arcsine function.  OSD up/down reference is now positionable by the user in the configurator.

Tweaks and codestyle updates

Feedback from Michael Keller

Coding style correction

minor correction to match BF coding style

Enable Up/Down reference for artificial horizon in OSD

This mod adds an arrow symbol showing the location of the up/down on the OSD.  The arrow direction points in the direction of up or down.

Update osd_elements.c

Making the Up/Down OSD reference its own element

Removing the Up/Down reference from the artificial horizon and making a specific element for this feature.  Activation via CLI (for now)

Updates to Up/Down refernce OSD element

Changed the up/down reference so that it is its own separarte element.  The position is absolute on the screen and immutable by the user for consistent operation. Updated settings to include CLI option for turning the feature on and off.

Updates to simplify/correct Up/Down OSD element

Simplified/corrected logic and removed arcsine function.  OSD up/down reference is now positionable by the user in the configurator.

Tweaks and codestyle updates

Feedback from Michael Keller

Corrections to unit tests

Corrected unit tests link failing due to not being able to find rMat[3][3]
2021-02-08 16:03:45 +13:00
Michael Keller 3978819afa
Merge pull request #10532 from ilya-epifanov/fix-spi-frsky-x
fix SPI FRSKY_X/FRSKY_X_LBT after adding ACCST 2.1 support
2021-02-08 15:54:04 +13:00
Ilya Epifanov 448b49685a fix SPI FRSKY_X/FRSKY_X_LBT after adding ACCST 2.1 support 2021-02-07 02:27:40 +01:00
Thomas Stibor d1a402d9b4 Battery capacity CLI name is bat_capacity not battery_capacity
CLI set/get parameter for battery capacity is bat_capacity.
2021-02-04 13:32:49 +01:00
Bruce Luckcuck 45aad0d379 Add support for OSD element type variants
Extends the OSD element position setting to include a 2 bit selector for alternate representations of the element. So up to 4 variants of an element can be supported. Meant to be used instead of adding new elements when the request is a mutually exclusive variant of an existing element. If there are no variants of an element then the logic falls back to "type 1" (`OSD_ELEMENT_TYPE_1`) which is the only representation of the element.

As an example, in this PR the "Battery usage" element has been extended to 4 types:
1. The original capacity remaining graphical bar (shrinks as battery is used) - this is the default.
2. Capacity used graphical bar (grows as battery is used).
3. Remaining capacity numerical percentage (goes down as battery is used).
4. Capacity used numerical percentage (goes up as battery is used).

When extending an element it is not necessary to support all 4 types and the element rendering code should default to the original type 1 version for unsupported types.

Will require Configurator support. Since the 2 high bits of the `uint16` were previously unused the setting will default to the "type 1" original variant in all cases where an incompatible Configurator is used.
2021-01-26 19:35:13 -05:00
Bruce Luckcuck 87f322927a Self-level modes expo
Adds angle setpoint roll/pitch expo for self-level modes.

Previously the angle setpoint was a simple linear calculation based on the stick deflection percentage and the angle limit. This makes control very jumpy around center stick and people would often resort to adding expo in their radios to compensate. This then adds the complication of wanting expo in the radio when in self-level but not when in acro - leading to complicated mixes, virtual switches, etc.

This PR adds separate self-level expo settings for roll/pitch so the user can customize the axis behavior. Yaw is excluded because this axis uses normal rates and expo controlling the rotational rate around the yaw axis and not an angle setpoint. The roll/pitch expo can range from 0 (off) to 100 (max) like other RC expo settings. For example:
```
set roll_level_expo = 30
set pitch_level_expo = 40
```
The default values are 0 which disables any expo and behaves as before.

The settings are available in the CMS rate profile menu.
2021-01-25 19:08:43 -05:00
Nicola De Pasquale bf0430d049 dyn_lpf_curve_expo is uint8, not uint16 2021-01-24 17:39:43 +01:00
Nicola De Pasquale 698974a085 revert default dyn_lpf_expo_curve value for gyro 2021-01-24 15:40:56 +01:00
Michael Keller 816819d3d9
Merge pull request #10505 from dellch/feature/cleanup-coding-style-braces-section 2021-01-24 16:52:12 +13:00
Chris 7641bdcc91
adds additional headings to Curly braces section
Adds proposed sub headings to Formatting Style > Curly Braces section
2021-01-22 16:01:58 -08:00
Chris 5e5748c99a
removes unintentional heading 2021-01-22 15:58:17 -08:00
Chris 79bfa181dd
Clarifies and clean-up Formatting style > Curly braces
- adds `code` formatting to some keywords
- adds some more clarifications to existing style rules.
2021-01-22 15:51:35 -08:00
Krzysztof Kuczek fd7f1e6991 cosmetic changes 2 2021-01-19 20:05:52 +01:00
Krzysztof Kuczek 78049955dd cosmetic changes 2021-01-19 20:03:05 +01:00
Bruce Luckcuck c19fade76a Fix mspSerialPush() selected serial port logic
Logic error would cause the MSP data to be written to every port that had MSP enabled if the selected port was -1 (`SERIAL_PORT_NONE`). Since the (correct) default for `displayport_msp_serial` is -1, this was causing MSP displayPort traffic to be "spammed" to every UART with MSP enabled. Since MSP displayPort is the fallback when no other OSD device is detected (in "AUTO" mode) this could cause large amounts of unnecessary MSP traffic - for example in cases with flight controllers with no MAX7456 and using the DJI air unit connected via MSP. This "might" be related to earlier reports of the DJI OSD no longer working with softserial (even though that's not really a recommended configuration) because of the extra serial traffic.

This was not so much a "bug" but instead a shortsighted design. The only other thing using `mspSerialPush()` is the MSP-based current sensor. In that case the logic does in fact want to "spam" all the MSP ports with the current sensor request. So it was using the `SERIAL_PORT_NONE` identifier to mean "every port". But this conflicts with MSP displayPort logic which really needs a "no ports" identifier. So this PR adds a `SERIAL_PORT_ALL` identifier to explicitly differentiat "all" from "none" and this is used for the current sensor.
2021-01-17 13:31:17 -05:00
Bruce Luckcuck 109e6f721c Fix incorrect displayport_msp_serial default and add validation
Was incorrectly defaulting to 0 which is UART1. Should be -1 (`SERIAL_PORT_NONE`).

Add validation to ensure the selected UART exists, has MSP enabled, and is appropriate (not VCP).
2021-01-17 11:41:55 -05:00
Michael Keller 34614231d3
Merge pull request #10479 from mikeller/fix_validation_order
Reordered configuration validation to put custom target validation to the end.
2021-01-17 10:59:58 +08:00
Michael Keller f5b7d8bec8
Merge pull request #10478 from mikeller/update_readme_ci_status
Updated the CI build status in README.md.
2021-01-17 10:59:45 +08:00
Michael Keller 49edee135f Removed unused settings when building without MAX7456 support. 2021-01-17 11:26:08 +13:00
Bruce Luckcuck 835aadfdde Make MSP displayPort respect the NTSC/PAL setting
Previously the display rows was hardcoded to 13 (NTSC). Now it will use 16 if the user has explicitly selected PAL. This allows the display to fully use the screen - particularly when in the CMS menus. Since there is no device to "AUTO" detect, this will still default to safer value of 13 rows as NTSC.

Eventually we may want to extend MSP displayPort to add an auto-detect capability. But since the protocol is a one-way "push" from the firmware to the device that's somewhat difficult. Will probably need a MSP message that the displayPort device can use to "register" its capabilities.
2021-01-16 14:22:47 -05:00
Krzysztof Kuczek 4cd1f4efb4 new dashboard OLED page for Black Box 2021-01-16 20:06:07 +01:00
Bruce Luckcuck 07598d824c Add up/down page indicator to CMS menu display
Often the user doesn't realize that there are more menu items then displayed and the only way to tell was to try and move the selection to the bottom to see if another page appears.

This PR adds page up/down indicators if there are more menu items than those visible on the current display.

Uses the OSD arrow symbols when possible (for OSD supporting devices), otherwise the `^` (carat) and `V` are used for text-only represenatations.

To determine if the device was capable of displaying symbols the `displayPort` structure has a new `deviceType` set when it is initialized. There have been other times when knowing the type of device would have been useful so that's now supported. Then this is abstracted by a new `displaySupportsOsdSymbols()` function. Devices that support OSD are assumed to support the OSD symbols as the OSD element drawing code always uses them. For devices that don't support OSD function we have to presume the sybols aren't available.
2021-01-16 13:57:04 -05:00
Michael Keller d370256817 Adding explicit trigger for '4.2-maintenance' to the Azure configuration. 2021-01-17 00:48:00 +13:00
Michael Keller 8be1b4bdb4 Fixed incorrect parameter value for barometer sample count. 2021-01-17 00:38:05 +13:00
Michael Keller d809bc7b00 Changed stale request handling to use a GitHub action. 2021-01-16 22:47:38 +13:00
Michael Keller 6e282cf246 Reordered configuration validation to put custom target validation to the end. 2021-01-16 16:21:07 +13:00
Michael Keller de5a09198b Updated the CI build status in README.md. 2021-01-16 15:47:30 +13:00
Michael Keller 35de1c8229
Merge pull request #10473 from etracer65/battery_min_max_config_validation
Validate that the battery min cell voltage is less than the max cell voltage
2021-01-16 10:16:40 +08:00
Michael Keller 3ea8c657c0
Merge pull request #10448 from etracer65/fix_cms_displayport_register
Only register CMS displayPort for SRXL and CRSF when appropriate
2021-01-16 10:14:09 +08:00
Michael Keller 81b0e26723
Merge pull request #10468 from mikeller/add_ak8975_mag_to_unified_targets
Added AK8975 magnetometer driver to Unified Targets.
2021-01-12 20:10:02 +08:00
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
Michael Keller b222474b95
Merge pull request #10443 from etracer65/cms_background_transparency_control 2021-01-11 08:13:21 +08: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 38c792c1c5
Merge pull request #10470 from mikeller/added_unit_tests_to_azure
Added unit test / sanity check runs to the Azure script.
2021-01-11 06:51:13 +08:00
Michael Keller fb3889c88d Added unit test / sanity check runs to the Azure script. 2021-01-11 11:24:10 +13: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