1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 16:55:36 +03:00
Commit graph

272 commits

Author SHA1 Message Date
ctzsnooze
c26428232a msp and other small fixes 2021-05-25 08:29:32 +10:00
Michael Keller
b414be320f
Merge pull request #10727 from ctzsnooze/PT2-PT3-options-for-filters 2021-05-25 01:53:53 +12:00
ctzsnooze
3b62b2e5d4 add PT2 and PT3 lowpass filter options 2021-05-18 09:59:27 +10:00
Hans Christian Olaussen
5c7ff1ff94 I2C configurable clockspeed 2021-05-17 13:57:44 +02:00
ctzsnooze
636d563abe major rc changes ctzsnooze 2021 2021-05-07 14:40:43 +10:00
ctzsnooze
d4f0ec2d0a feed forward jitter improvements 2021-04-27 12:47:06 +10:00
Michael Keller
9e115b466b
Merge pull request #10650 from ctzsnooze/PT2-and-PT3-for-rc_smoothing 2021-04-26 14:58:32 +12:00
ctzsnooze
a096c99664 PT2 and PT3 filter maths PT3 for RC smoothing 2021-04-26 14:12:54 +12:00
Michael Keller
db571a78eb
Merge pull request #10603 from etracer65/fix_cms_rssi_dbm_alarm
Fix CMS RSSI dBm alarm data type and range
2021-04-26 13:13:42 +12:00
Michael Keller
122f8f29af
Merge pull request #10582 from dkustec/osd_tx_uplink_power 2021-04-26 12:53:39 +12:00
KarateBrot
d02af7334c Added tracking of multiple dynamic notches per axis and replaced FFT with SDFT 2021-03-24 17:09:28 +01:00
Bruce Luckcuck
e74f47a26e Fix CMS RSSI dBm alarm data type and range
Data type was `uint8` and needed to be `int16` to accomodate the range change to negative numbers.
2021-03-07 09:55:15 -05:00
Davor Kustec
dd184dd67f Named everything well 2021-02-25 18:07:18 +01:00
Davor Kustec
78e4e930a4 Code optimization by request
Moved setting to the end of the struct

osd.c optmization

Changed bool into uint8t to mainatin fixed PG size
2021-02-17 12:06:45 +01:00
Michael Keller
aeb2a4f381
Merge pull request #10516 from etracer65/level_mode_expo
Self-level modes expo
2021-02-14 17:25:16 +13:00
Michael Keller
29f6dd0c8d
Merge pull request #10417 from bobbycisneros/master 2021-02-08 16:40:54 +13:00
Michael Keller
08be1039ff
Merge pull request #10508 from IllusionFpv/fix/dyn-lpf-gyro-curve-expo-wrong-variable-size
dyn_lpf_curve_expo is uint8, not uint16
2021-02-08 16:40:34 +13:00
Michael Keller
1aa3d943e3
Merge pull request #10485 from etracer65/msp_displayport_video_system
Make MSP displayPort respect the NTSC/PAL setting
2021-02-08 16:14:39 +13:00
Michael Keller
2480b37b22
Merge pull request #10487 from mikeller/fix_unused_settings 2021-02-08 16:12:53 +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
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
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
Michael Keller
8be1b4bdb4 Fixed incorrect parameter value for barometer sample count. 2021-01-17 00:38:05 +13: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
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
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
Michael Keller
55fe3bb8f2 Fixed CLI parameter for simplified gyro filters. 2021-01-09 13:47:29 +13: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
d05d422bc0 Made fuel reporting for FrSky telemetry consistent. 2021-01-02 01:58:00 +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
97a647f36a Added missing CLI parameter for RSSI dBm. 2020-12-14 20:28:54 +01:00
borisbstyle
4a916af6a9 Added DYNAMIC mixer 2020-12-08 12:04:18 +01:00
borisbstyle
75da17a00e New linear mixer (credits to @tylercorleone) 2020-12-08 12:04:07 +01:00
ctzsnooze
8050ecd1e7 Mixer update: dynamic idle and throttle logging improvements
- all CLI parameters related to dynamic idle alone re-named with the `dyn_idle_` prefix
- when linear throttle scaling is active, the user's set idle value is now correct whether dynamic idle is on or off. Previously, the idle value fell when dynamic idle was activated at the same time as linear throttle scaling.
- enabling dynamic idle no longer causes a deadband at full throttle
- the setpoint throttle value sent to Blackbox does not include the dynamic idle offset
- the throttle value sent to the antigravity and dynamic lowpass code includes throttle scaling, but no other modifiers, to avoid false elevation of the apparent throttle position from dynamic idle and unnecessary transient changes in their filter cutoffs
- Dynamic Idle now uses a modified PI controller during active rpm control phase
- the D factor provides early detection of rapid falls in rpm, e.g. in hard chops. It is filtered heavily. Inadequate `dyn_idle_d_gain` may lead to a transient drop in rpm immediately after cutting throttle. Default is 50.
- the P factor provides fast control over rpm during the active control phase. Too much `dyn_idle_p_gain` may cause oscillation in that phase. Note enough and a slow drop in rpm will be inadequately corrected. Default is 50. Needs to be higher with heavier larger props.
- An integral element does most of the work.  It prevents enduring offsets from the set rpm. The I gain is high when increasing responding to low rpm, and slow to release.  The slow release makes a huge difference and avoids I oscillation. Not enough `dyn_idle_i_gain` and there may be wobble in rpm during the control phase, or the idle value may rise too slowly; too much may cause wobble. Default is 50. Needs to be higher with heavier larger props.
- The DYN_IDLE debug shows idle P, I and D in debugs 0, 1 and 2. minRps stays in debug 3.
- Interactions between throttle and thrust linear, dynamic idle, throttle scaling and throttle boost have been checked and work as they should.
2020-11-09 09:09:17 +11:00
Nicola De Pasquale
979dabf637 added option for expo on rc command 2020-10-29 18:07:32 +01:00
limonspb
806595a7d4 Total flights stats for OSD 2020-10-25 01:32:51 -05:00
Unknown
5bf4f71a6d Initial install of GHST driver
First pass at GHST driver including low-latency control, and basic telemetry.

Fix Ghost channel scaling

Use ghstChannelData instead of rxRuntimeState->channelData

Integrate PR feedback

Primarily de-tab and a few cosmetic changes.

Keep Travis CI happy

Removed unused function

Rework ghost driver to reduce time in ISR, move processing

As requested in PR review.
Fixed issue in telemetry driver, mAh consumed is transmitted as units of 10mAh, not 1mAh.

Resolve Packet Collision Issue with GHST

Send telemetry packets only within a well defined time slot after an incoming Rx packet.

Remove unnecessary comment

rxRefreshRate doesn't need to be dynamic.

Ghost - Remove special case from scheduler

No need to reschedule telemetry for the Ghost protocol.
2020-10-14 21:52:33 +13:00
Alexey Stankevich
11e06fc94a Fix "task_frequency" variable type 2020-10-05 22:07:42 +03:00
Alexey Stankevich
c40174d2eb Change 'osd_high_framerate' parameter to 'osd_task_frequency' 2020-10-05 13:22:24 +03:00
Alexey Stankevich
03e878306b Add optional high framerate OSD 2020-10-04 14:09:16 +03:00
jflyper
08f1f91c50 [G4] CLI and config changes for overclocking 2020-10-01 20:40:44 +09:00
Michael Keller
b234463c7e
Merge pull request #10159 from krygacz/support-mpu925x-internal-mag-over-i2c 2020-09-20 15:23:21 +12:00
krygacz
58ae3fdfd5 Support MPU925x internal magnetometer over I2C 2020-09-14 23:41:45 +02:00
ctzsnooze
73663f7fae FF update including second order fitlering of boost, tidying up etc
Include default to no averaging
2020-09-12 17:08:14 +10:00
Michael Keller
87adab2fac
Merge pull request #10080 from haslinghuis/british_osd_units 2020-08-25 00:27:59 +12:00
haslinghuis
9ae3adaa51 Measurement units for OSD elements and FRSKY hub telemetry. 2020-08-23 16:23:57 +02:00
Michael Keller
32e389466c
Merge pull request #10086 from IllusionFpv/updated-dyn-throttle-curve 2020-08-16 21:56:43 +12:00