1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 00:05:33 +03:00
Commit graph

199 commits

Author SHA1 Message Date
blckmn
a9f74cd6df Removed excess trailing spaces before new lines on licenses. 2018-04-25 20:58:00 +10:00
Michael Keller
5c8f330c33
Merge pull request #5706 from ctzsnooze/yaw_spin_fix2
Yaw Spin Recovery
2018-04-25 00:23:08 +12:00
Michael Keller
ec583cf9e9
Merge pull request #5755 from mikeller/make_frsky_spi_telemetry_configurable
Made FrSky SPI telemetry and external telemetry values configurable.
2018-04-25 00:16:37 +12:00
Michael Keller
3ef12389da
Merge pull request #5743 from codecae/crsf_displayport
CMS Telemetry over CRSF w/ Lua Script (X9D, so far)
2018-04-25 00:09:58 +12:00
Curtis Bangert
9d4d3ad45c CMS Telemetry over CRSF w/ Lua Script (X9D, so far) 2018-04-23 22:34:30 -04:00
Bruce Luckcuck
0a0add8c56 Yaw spin recovery optimize (#3)
* PID controller unittest

* Clean code for yaw spin recovery

* Yaw spin recovery optimizations

* Flash size optimizations, use 50% throttle when airmode is off, and override pidsum_limit_yaw

Also rebasing from betaflight/master
2018-04-24 14:02:36 +12:00
ctzsnooze
41fb37a264 Clean code for yaw spin recovery 2018-04-24 13:51:06 +12:00
mikeller
d88bec63a8 Made FrSky SPI telemetry and external telemetry values configurable. 2018-04-24 00:14:50 +12:00
blckmn
d6f2cb9b41 Manual updates 2018-04-22 10:10:57 +10:00
blckmn
46fe22b4bd Direct license replacement 2018-04-22 09:22:46 +10:00
pulquero
a51bea1ebc Fixes to ranges of esc warning thresholds. (#5726)
Signed-off-by: Mark Hale <mark.hale@physics.org>
2018-04-21 18:12:11 +12:00
jflyper
f9f05ecad5 FLASH Full (re)configurability (#5720) 2018-04-20 07:55:17 +12:00
Alberto García Hierro
e192f82fcc Don't make the report_cell_voltage setting depend on IBUS (#5711)
report_cell_voltage was only compiled in when IBUS was enabled, but
it's used for several telemetry protocols. Now it only depends on
USE_TELEMETRY.
2018-04-19 21:06:39 +12:00
pulquero
a86aaeebd1 Improve ESC warning message and include current threshold check. (#5685)
Signed-off-by: Mark Hale <mark.hale@physics.org>
2018-04-18 00:25:36 +12:00
SteveCEvans
6f088d0fd2 Add PID adjustment from AUX transmitter channel (#5584)
* Scale PIDs using aux channels

* Add control via variables and documentation

* Use USE_TXPID

* Removed OWNER_TXPID

* Use PWM_RANGE_MIDDLE

* Fix typos

* Move Tx PID arrays into pidProfile_t

* Move macro to pidUpdateRate function

* Enable TXPID on REVONANO

* Add support for direct setting of adjustments from aux channel

* Change variable name from adjustmentScale to adjustmentScale to avoid confusion

* Update documentation

* Change variable name from adjustmentScale to adjustmentScale to avoid confusion

* Only adjust settings if adjustment channel has changed value

* Fix formatting

* Use pidAudioModes_e type in ADJUSTMENT_PID_AUDIO setting. Only allow absolute override of settings of ADJUSTMENT_MODE_STEP.

* Add example 6

* Fix checking of adjustment mode

* Fix USE_PID_AUDIO code. Broke SPRACINGF7DUAL.
2018-04-18 00:23:44 +12:00
jflyper
0cb6205f05 Don't call flashfsGetOffset if device is not found or unsupported. (#5684) 2018-04-16 22:32:58 +12:00
Míguel Ángel Mulero Martínez
4e024f5467 Fix MSP Flash FS supported (#5670) 2018-04-15 12:29:49 +12:00
Michael Keller
fbd8f07440
Fixed help text for 'diff defaults'. (#5668) 2018-04-11 23:32:32 +12:00
jflyper
d749879cf6 FAT emulation of onboard flash for MSC (#5650) 2018-04-11 11:29:56 +12:00
Míguel Ángel Mulero Martínez
802edf236b Fix Blackbox P interval (#5645) 2018-04-10 00:35:54 +12:00
Bruce Luckcuck
9a7533f57d Expose vbat ADC divider and multiplier parameters in CLI (#5641)
Previously only vbat_scale was exposed. Adds vbat_divider and vbat_multiplier parameters.

Note that all of these parameters only apply to the first voltage sensor (VOLTAGE_SENSOR_ADC_VBAT).  There is the capability to have multiple sensors and those will not have their parameters exposed.  Currently there are no target definitions that use multiple sensors.
2018-04-07 12:26:16 +12:00
Bryce Johnson
588addd6dd added crashflip_motor_percent. This will use the other motors while doing a turtle. (#5600) 2018-04-06 20:24:48 +12:00
Chris
9d5fa7311e Add MSC for F7 (#5629)
* Add MSC for F7

* Fix compilation error.
2018-04-06 12:53:26 +12:00
Bruce Luckcuck
7bc600d651 Throttle limit feature (#5608)
Adds new throttle_limit_type and throttle_limit_percent parameters that allow the pilot to limit the maximum commanded throttle seen by the flight controller by either scaling or clipping the maximum throttle.  The default is 100 representing no limiting.  So as an example, if a pilot was to set throttle_limit_type = SCALE and throttle_limit_percent = 80 the throttle input would scale from 0 to 80% based on full stick deflection from the radio.

This capability replaces the method of limiting throttle in the radio which some pilots are using to manage throttle on tight courses or reduce overall battery consumption when the extra power isn't needed.

There is no effect on the maximum throttle seen by the motors so the mixer still has full authority.
2018-04-05 16:01:28 +12:00
Chris
c71cfe1b8c Cache up SDIO Writing, add option to enable clock bypass. (#5612)
* Speed up SDIO Writing, add option to enable clock bypass.

* Fix identation

* Requested changes

* Move PG SDIO into correct place.
2018-04-05 12:52:30 +12:00
Michael Keller
07cce64572
Added ESC temperature warning, fixed ESC warning issue with motor count > 8. (#5583) 2018-04-04 01:04:18 +12:00
codecae
bc824e42c2 Corrected CLI to include vtx_band=0 to enable freq selection mode. (#5465) 2018-04-03 19:59:02 +12:00
Michael Keller
b5c0076bc8
Added USE_ESC_SENSOR_INFO define, cleaned up USE_ESC_SENSOR define. (#5580) 2018-04-01 11:33:07 +12:00
Michael Keller
92d19e7be6
Merge pull request #3036 from cleanflight/spracingf7dual-pidaudio (#5586)
PID-Audio feature
2018-04-01 11:08:41 +12:00
Michael Keller
c3cb2e1605
Fixed CLI array assignment. (#5589) 2018-04-01 10:57:19 +12:00
codecae
8131e4f840 Created generic SmartAudio interface (#5561) 2018-03-31 13:01:30 +13:00
codecae
22004cfd56 Created generic Tramp protocol interface (#5527) 2018-03-30 17:50:19 +13:00
Míguel Ángel Mulero Martínez
7ad4bbfa0f Simplify the precompiler condition for MSP_VOLTAGE_METERS (#5554)
... and MSP_CURRENT_METERS
2018-03-28 08:11:08 +13:00
Míguel Ángel Mulero Martínez
8095d3442c Fix MSP_VOLTAGE_METERS and MSP_CURRENT_METERS (#5547)
Only sustract the unused voltage/current meters from ESC when
USE_ESC_SENSOR is defined
2018-03-28 03:34:53 +13:00
Michael Keller
83e614c139
Made MSC initialisation pin configurable. (#5535) 2018-03-27 01:04:59 +13:00
Michael Keller
4b20ab5d7b
Fixed naming inconsistency for OSD elements. (#5534) 2018-03-26 11:30:19 +13:00
joelucid
ee8daac41d ITerm rotation (#5469)
* ITerm rotation

* address requested changes

* now counting up

* scale errors according to Ki while rotating

* iterm_rotation profile setting

* revert to non scaled version, style related fixes

* Triggering a CI build.
2018-03-26 10:50:21 +13:00
etracer65
9edce2359a Add current battery voltage as an option for the OSD stats page (#5531)
Allows the user to configure a new OSD stat item called "BATTERY" that will display a live and updating battery voltage. This would allow the user to see how their battery was recovering after disarming by comparing to the stat "END BATTERY".
2018-03-25 13:56:25 +13:00
conkerkh
b9ab42d6a7 Enable Composite USB HID for all F4, add PG for USB device. (#5525) 2018-03-25 12:44:57 +13:00
joelucid
efda704ee5 Throttle boost (#5508)
* throttle boost which temporarily boosts throttle in both directions to improve response

* fix comment and use pt1FilterGain

* incorporate review suggestions

* incorporate review suggestions

* use float constant to avoid double promotion

* formatting changes

* formatting change

* hopefully last style changes
2018-03-25 11:33:22 +13:00
etracer65
c8a646ebc3 Cleanup 32K capable gyro includes (#5523)
Added a `USE_32K_CAPABLE_GYRO` define set in `common_fc_post.h` that replaces the repeated testing for each gyro define wherever 32KHz compatibility is checked.
2018-03-24 18:02:27 +13:00
Michael Keller
a8e86880f5
Generalised USB MSC use for all F4 targets with SD card. (#5519) 2018-03-24 16:00:53 +13:00
Michael Keller
79debdc993
Increased MSP API version for 3.4.0 to 1.39. (#5518) 2018-03-24 01:54:52 +13:00
joelucid
98a77dcd96 Discontinuity fix (#5509)
* use continuous feed-forward

* use continuous feed-forward

* formatting
2018-03-23 14:13:32 +13:00
Michael Keller
5dc23e662f Fixed display of CLI lookup options. (#5493) 2018-03-22 09:40:49 +03:00
etracer65
062ef77276 Rework gyro sample rate and DLPF configuration and expose additional filter cutoffs (#5483)
The old gyro_lpf setting was based on the DLPF_CFG values for the MPU6050 gyro and the enumeration was inaccurate and misleading.  For example, the default "OFF" setting did not disable the DLPF, but actually set it to around 250hz.  The actual cutoff frequency for each setting varies by gyro hardware so the literal frequencies in the enumeration were also incorrect.

Removed gyro_lpf and replaced it with gyro_hardware_lpf (8KHz) and gyro_32khz_hardware_lpf (32KHz).  The parameters were renamed to indicate that they are hardware filtering options to differentiate from the many software lowpass filtering options.

gyro_hardware_lpf - This parameter sets the filtering and sample rate options for 8KHz gyros (or 32KHz capable gyros running in 8KHz mode).

- NORMAL - default setting that is equivalent to the previous "OFF" setting.  Configures 8KHz sampling with ~250Hz filter cutoff.
- EXPERIMENTAL - 8KHz sampling with a higher frequency filter cutoff (around 3000hz).  Considerably more noisy and requires additional software filtering.  Note that for the MPU6000 Invensense doesn't officially document the filter cutoff frequency for this selection and simply lists it as "reserved".  In testing it's clear that a higher frequency filter cutoff is being selected due to the increased noise, but the actual cutoff frequency is unknown.
- 1KHZ_SAMPLING - 1KHz sample rate with and approximate 188Hz filter cutoff.

Note that the following additional 1KHz sample rate options with lower filter cutoffs have been eliminated - "98HZ", "42HZ", "20HZ", "10HZ", "5HZ".  It seems unlikely that these are still needed are probably no longer viable and flight performance would be very poor.

gyro_32khz_hardware_lpf - This parameter sets the filtering options while running in 32KHz mode on capable gyros.  It also exposes a new high frequency filter cutoff mode.

- NORMAL - The default and matches the current settings used for 32KHz mode.  Provides a filter cutoff around 3000Hz.
- EXPERIMENTAL - Selects a filter cutoff around 8000Hz.  This is a very noisy setting and will require substantial software filtering.

The default values for both 8KHz and 32KHz sample rates were chosen to match the previous defaults and users should not experience any performance differences.

Normalized the gyro initialization.  Previously there was little consistency on how the initialization was performed and the settings interpreted.  For example, MPU9250 used a completely different logic tree when configuring the registers.

Disconnected the literal parameter value from the gyro initialization.  The gyro_lpf parameter contained a number from 0-7 that was literally applied to the configuration register during the gyro initialization.  This caused some older gyro initializations to be incorrect as they used a different register layout (MPU3050 and L3G4200D).  By transitioning to a logical selection the actual value applied to the hardware register is abstracted.  This will better future-proof the design as new gyros may have a different register structure that may be incompatible with the old method.

Added a gyroregisters command to the CLI that is used to read the current register settings from the gyro and dump them to the CLI.  This is used to verify the configuration in comparison to the datasheets for the various gyros.  Testing empirically by looking at the relative noise from the gyros can give a rough estimate whether the different options are selecting correctly, but it's not very precise.  The code for the gyroregisters CLI command is wrapped inside #ifdef USE_GYRO_REGISTER_DUMP blocks to allow easy disabling.  It's currently enabled for all targets but we may decide to disable before release or only limit to targets with more available space (>=F4).
2018-03-22 14:02:30 +13:00
Andrey Mironov
a453063dd7 Restricted Dterm lowpass filter options (#5492)
* Restricted allowed filter types for Dterm lowpass 1

* Fixed output of CLI lookup entires with skips

* Reverted trailing NULLs

* Revert whitespace changes
2018-03-22 10:28:10 +13:00
Michael Keller
09f52d420d Allow the use of NULL values in CLI lookup tables. (#5489) 2018-03-21 20:13:02 +03:00
conkerkh
3a917a3755 Add USB Mass Storage Class support (#5443)
* Add MSC support

* Add support for MSC to WORMFC and SDIO_DMA

* Cleanup in fc_init

* Fix headers
2018-03-22 00:11:34 +13:00
SteveCEvans
5558174d33 Support programming of Arduino devices in serial passthrough mode (#5129)
* Support DTR in serial passthrough mode to enable programming of Arduino
based devices such as MinimOSD.

Use 'serialpassthrough 5 57600 rxtx 56' and then use Ardino to program MinimOSD
Use 'serialpassthrough 5 115200' and then use MWOSD configurator to setup

* Fix comment for CDC_SetCtrlLineStateCb routine

* Handle F7 CDC interface

* Use strToPin() to allow easy port/pin specification

* Fix use of CDC_SetCtrlLineStateCb for all processor types

* Only set baud when specified

* Fix unit tests for cli

* Only register callback if needed

* Fix white space

* Provide implementation of IOConfigGPIO in SITL

* Update serialpassthrough help text

* DTR handling through serial drivers

* Fix F3, F7 and SITL builds

* If serialpassthrough command specifies baud rate of 0, set baud rate over USB. MWOSD configurator can now access config and reflash MinimOSD without rebooting and changing baud rate.

* Fix F3 build

* Fix failing unit tests

* Use resources to declare DTR pin assignment

* Don't assert DTR during normal operation as MW_OSD doesn't like it

* MW_OSD must be built with MAX_SOFTRESET defined in order to support DTR resets

* Minimise changes after dropping DTR pin param from serialpassthrough cmd

* Remove DTR pin param from serialpassthrough cmd

* Treat ioDtrTag as boolean in conditional statements

* Tidy buffer check

* Check buffer size in CDC_Itf_Control

* Fix unit test

* Add documentation for DTR

* Add note on MAX_SOFTRESET to documentation

* Remove superfluous function definitions

* Fix tabs

* Fix tabs

* Removed superfluous entried from vtable

* Backout whitespace changes unrelated to this PR

* Pass true/false to IOWrite()

* Fix line coding packing

* Add LINE_CODING structure defintion

* Revise serial documentation

* Prevent tx buffer overflow in serialPassthrough()

* Revert change unrelated to PR

* Review feedback from ledvinap

* Fix unit test

* Use PINIO to drive DTR

* Fix unit test

* Remove change unrelated to PR

* Fix SITL build

* Use shifted bits for mask definition

* Fix serialpassthrough documentation

* Only compile PINIO functionality if USE_PINIO defined

* IOConfigGPIO not needed

* Move cbCtrlLine callback to cli.c

* serialPassthrough params changed

* Check packed structure size

* Fix unit test

* Tidy up baud rate handling
2018-03-21 23:17:31 +13:00