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

537 commits

Author SHA1 Message Date
borisbstyle
62b11ec1eb Change some defaults 2015-09-07 10:13:16 +02:00
borisbstyle
febee3fb90 Merge branch 'master' into betaflight
Conflicts:
	src/main/drivers/system.c
	src/main/rx/rx.h
2015-09-07 10:08:34 +02:00
Dominic Clifton
9208b8701a Merge pull request #1255 from ProDrone/pr1233_rxfail_mode_changes_1
Changed behavior of PR #1233 - solves issue #1254
2015-09-05 23:01:11 +01:00
Dominic Clifton
0caf8a65ba Merge pull request #852 from ProDrone/Failsafe_features_1
Failsafe - New failsafe functionality (Phase 1)
2015-09-05 22:50:34 +01:00
borisbstyle
a0ac565ff5 Merge remote-tracking branch 'motolab/motolab-integration' into betaflight 2015-09-05 15:11:38 +02:00
ProDrone
f0681de53d Updates and feature additions to failsafe system.
- Added failsafe flightmode and rc control box.

To make failsafe procedure a separate flight mode and make it possible
to trigger failsafe with an AUX switch.

- Failsafe mode is activated when failsafe is active.

RC link lost is simulated with the failsafe AUX switch.
When NOT armed: failsafe switch to failsafe mode is shown in GUI (mode
tab).

- Activate failsafe mode with AUX switch.

- Prevent arming when failsafe via AUX switch is active (safety issue).

- Make failsafe disarm if motors armed and throttle was LOW (2D & 3D)
for `failsafe_throttle_low_delay` time (__JustDisarmEvent__).

Applied code changes to effectively add pull request: Make failsafe
disarm if motors armed and throttle low #717.

- Use failsafeIsMonitoring() to actually start monitoring.

- Added `failsafe_kill_switch` to code.

When set to 1 (0 is default), the failsafe switch will instantly disarm
(__KillswitchEvent__) instead of executing the landings procedure.
Arming is NOT locked after
this, so the craft could be re-armed if needed.
This is intended for racing quads where damage and danger must be
minimized in case of a pilot error.

- Added `failsafe_throttle_low_delay`, adapted documentation.

Used to adjust the time throttle level must have been LOW
to _only disarm_ instead of _full failsafe procedure_
(__JustDisarmEvent__).

- Updated the failsafe documentation.

- Re-enable arming at end of failsafe procedure.

At the end of a handled failsafe event, that means: auto-landing,
__JustDisarmEvent__ or __KillswitchEvent__, the RX link is monitored for
valid data.
Monitoring is a part of the failsafe handling, which means the craft is
still in failsafe mode while this is done.
Arming is re-enabled (allowed) when there is a valid RX link for more
then XX seconds, where XX depends on the handled event like this:
1. XX = 30 seconds after auto landing.
2. XX = 3 seconds after __JustDisarmEvent__.
3. XX = 0 seconds after __KillswitchEvent__.

NOTE: When armed via an AUX switch, you will have to switch to the
disarmed position at the very end to be able to re-arm.
The failsafe mode will not end until you do.

- __KillswitchEvent__ has now priority over __JustDisarmEvent__

- Apply rxfail values instantly when failsafe switch is ON

- Added missing cases to display.c

Show M when failsafe is monitoring for RX recovery (AND disarming when
armed with a switch).

===

Reworked the code from counter-based to time-based.

- AUX failsafe switch now has identical behavior to RX loss.

- Added RX failure and RX recovery timing.

- __KillswitchEvent__ skips RX failure detection delay (direct disarm).

===

[UNIT TESTS]

Adapted failsafe related unittests from counter-based to time-based

- Added failsafeOnValidDataFailed() to some tests

- Removed duplicate test setup from rc_controls_unittest.cc

- Removed magic numbers from rx_ranges_unittest.cc and rx_rx_unittest.cc

- Reworked all test-cases for flight_failsafe_unittest.cc
2015-09-04 16:55:40 +02:00
ProDrone
3a13edfdad Fix false RX loss detection on EEPROM read/write
The problem is caused by hardware counters (timekeeping and PPM/PWM
measurement) that keep running while the firmware is frozen. The result
is misinterpretation of received data.

EEPROM read & write now call a suspend and resume function to make RX
ignore incoming wrong data during reads/writes (and flush the wrong data
on resume).

Fixes issue #1257

(+1 squashed commit)
- Moved the check for skipSamples to the right place.

As commented by hydra
2015-09-04 16:54:25 +02:00
ProDrone
a46832fd85 Changed behavior of PR #1233 and doc update
Stick channels only have AUTO and HOLD mode.
AUX channels only have SET and HOLD mode.
Added check to parameter in CLI.
Modified rx.md to reflect changes (and more).

+1 squashed commit:

- A cleaner approach for the same functionality

Basically addressing all comments from Hydra
2015-09-04 16:51:19 +02:00
borisbstyle
9febb8cacd New Betaflight Defaults
Still good idea to get full 1kh sampling by disabling acc on naze boards
2015-09-02 00:30:58 +02:00
borisbstyle
5390cdc804 Selectable BARO (set baro_hardware)
Disabling baro will boost performance on FULL boards
2015-09-02 00:30:51 +02:00
borisbstyle
41895bc1af New Clli params RC Smoothing and sync_gyro_to_loop 2015-09-02 00:30:46 +02:00
borisbstyle
26deeb8ff6 Loop synced to Gyro
Remove double MPU_RA_PWR_MGMT_1

Looptime to Gyro refresh rate

disable 2khz when acc used for F3

Gyro sync code improvement

doc change
2015-09-02 00:30:39 +02:00
borisbstyle
07b9aceb7c Luxfloat Optimisation and new defaults
Remove constraining of delta

Yaw D default to 10

Default change and rebase with master
2015-09-02 00:30:38 +02:00
borisbstyle
fdcfe71b73 Improve soft filtering function for reuse
Reorder serial.c *_cut_hz parameters

Remove unnecessary dT calculation in luxfloat

Restructured filter

filter.h fix

Luxfloat remove internal dT

Void function for gyro fillter
2015-09-02 00:30:35 +02:00
borisbstyle
a534868408 Luxfloat Optimisation and new defaults
Remove constraining of delta

Yaw D default to 10

Default change and rebase with master
2015-09-01 23:43:09 +02:00
borisbstyle
b69bab33b2 Configurable RC Smoothing 2015-09-01 23:41:56 +02:00
Moto Moto
2e351b0991 Add MOTOLAB build target and associated source files 2015-08-23 19:42:18 -05:00
Larry (TBS)
3b1f423c49 COLIBRI RACE support 2015-08-20 19:18:10 +01:00
Dominic Clifton
a030d4dd9e Failsafe - Add rxfail auto mode. Allow rxfail to be used for all
channels, not just aux channel.
2015-08-20 01:37:29 +01:00
henn1001
7bd79e159c quick implementation of fastpwm 2015-08-11 01:56:32 +02:00
EvilBadger
3879b6c566 Modified VBatt functionality to enable better precision. 2015-08-05 21:34:44 +01:00
Dominic Clifton
9d3276b222 Code and documentation cleanup of rc calibration.
Note: since it didn't actually calibrate anything it has been renamed to
rxrange.

Added ability to reset rxranges using `rxrange reset` - this follows the
same pattern as other cli commands.
2015-08-04 01:13:28 +01:00
Dominic Clifton
27f8223de7 Merge branch 'rc-calibration' of
https://github.com/digitalentity/cleanflight into
digitalentity-rc-calibration

Conflicts:
	docs/Rx.md
	src/main/io/serial_cli.c
	src/main/rx/rx.c
	src/main/rx/rx.h
2015-08-04 00:06:12 +01:00
Dominic Clifton
490268d2fc Failsafe - Allow AUX channels to HOLD their last value or be SET to a
specific value when RX loss is detected.

Tested with SBus, PWM & PPM.
2015-08-03 18:16:28 +01:00
Dominic Clifton
3436b08575 Failsafe - Remove magic number usage. Cleanup whitespace 2015-08-03 17:03:53 +01:00
ProDrone
08b376f2a5 RPY to mid-stick and T to lowest (or mid for 3D).
On bad (out-of-range) pulses; ROLL, PITCH, YAW will go to `mid_rc` and
THROTTLE will go to `rx_min_usec` (to `mid_rc` for 3D mode). So these
channels will no longer be set by the user directly.
Fallback values for the aux switches (0 .. max) can be set with this
version. Since these switches may trigger all kind of things, the user
needs control over them in case of a RX failsafe event.

A single flight control channel failure (first 4) when using parallel
PWM is interpreted as a failure for all flight control channels (first
4), since the craft may be uncontrollable when one channel is down. (+4
squashed commit)

Squashed commit:

[dbfea9e] Apply fallback values also when serial_rx init failed and/or
RX
disconnected and/or no signal received.

[b5a2ecd] Added get/set MSP commands for RXFAIL config

Bumped API minor version up.

[c0e31ce] minor change for coding standard

[322705f] Added programmable RX channel defaults on rx lost Update #2
2015-07-31 14:35:14 +02:00
Dominic Clifton
7af3d57606 Fix default rx_min_usec to be 885 - this default needs to be just above
the lowest setting that an SBus RX will use in failsafe mode.

The previous value of 985 was a typo.

```0.625f * sbusChannelValue) + 880;```
2015-07-17 01:05:14 -07:00
digitalentity
2614111c39 Implemented RC calibration and unit-tests
Added rc calibration docs to Rx.md
2015-07-16 08:49:18 +10:00
Dominic Clifton
cc06113c8f Rename yaw_direction to yaw_motor_direction to avoid confusion
between `yaw_control_direction` and yaw servo configuration.
2015-07-13 01:54:45 +01:00
Dominic Clifton
9d4dbb4871 Merge branch 'octomixer' of https://github.com/iforce2d/cleanflight into iforce2d-octomixer
Conflicts:
	src/main/config/config.c
2015-07-10 00:47:22 +01:00
Dominic Clifton
7b91524ba2 Replace gimbal_flags with FEATURE_CHANNEL_FORWARDING and gimbal_mode.
Gimbals are only one use of channel forwarding, PWM video switchers and
PWM buzzers are others.
2015-07-08 16:41:29 +01:00
Chris Campbell
2205bdc095 Corrections for alienwii-specific custom mixer values 2015-07-08 22:45:00 +09:00
Dominic Clifton
bb0f909e83 Merge branch 'master' into custom-servo-mixers 2015-07-08 12:11:49 +01:00
Dominic Clifton
e48e50512e Merge pull request #1028 from borisbstyle/dterm_filter
Selective Software Filtering (Gyro, Dterm, Pterm)

Thanks for the code boris and thanks to everyone else for their testing and feedback
2015-06-29 16:00:49 +01:00
Dominic Clifton
66d0a0260d Custom servo mixer fixes to build ALIENWII targets. 2015-06-28 23:52:23 +01:00
Dominic Clifton
ea6a6ccb3d First cut of custom servo mixers.
Main rule logic and MSP commands ported from baseflight.

Gimbal mixer updated to use rules.  This allows us to remove more
conditional logic.  Operation of gimbal servos is now different.
2015-06-28 23:06:56 +01:00
Dominic Clifton
c142e3dfe9 Rename minLimit/maxLimit to angleAtMin and angleAtMax. Remove unneeded
MSP_SET_SERVO_LIMIT.  Bump MSP API version.  Add basic sanity checks to
MSP_SET_SERVO_CONF, reset all servos and adhere to the msp packet's data
size.
2015-06-28 12:22:14 +01:00
Mauro Mombelli
da6ee6ffb7 first extract from Tilting for Servo pull request 2015-06-28 12:06:33 +01:00
borisbstyle
10f2d35759 Soft Filtering (Gyro, Dterm, Pterm)
pterm_cut_hz added

Let's play with this as well to get more noise filtered

Code Cleanup

Make filter more flexible for reuse

rewrite correction pterm

Define static delta in filter

Fix array count

ident

return function for filter

Filter Function enhanced

Full software filtering (DTerm, PTerm, Gyro, Acc)

Normalize Variables

Revert Back gyro settings

Bugfix gyro/acc filter // (MPU60xx equalize lpf settings)

Moved filtering to mw.c

This has been done to prevent reusing old cycletime for filter function.

acc_cut_hz removed (not needed)

Harakiri zero fix
2015-06-27 14:13:10 +02:00
Dominic Clifton
d2f878ef00 Removing unused PIDWeight variable. 2015-06-26 17:49:34 +01:00
Dominic Clifton
73d7bc6187 Merge pull request #985 from MJ666/AlienWii_update
Remove failsafe_trottle setting from AlienWii32 defaults
2015-06-25 02:45:31 +01:00
Dominic Clifton
e5a50654e3 Improve code consistency by using function prefixes for telemetry
functions.

PR's to make similar changes to other non-static functions are welcomed.
2015-06-24 20:26:41 +01:00
Dominic Clifton
9a8a31676b Reduce maximum servos from 10 to 8.
1) the 2 extra servos were not used for anything, yet.
2) the MSP packet to set ALL the servo configurations in one go is
larger than the MSP input buffer size.

Likely the MSP_SET_SERVO_CONF should be updated with command that takes
an index of a servo to configure, as per mode ranges/colors/leds/etc.

Fixes #1002
2015-06-10 13:31:04 +01:00
Michael Jakob
b1c76646b0 Remove failsafe_trottle setting from AlienWii32 defaults, New
Cleanflight default is now the same.
2015-06-03 14:50:18 +02:00
Dominic Clifton
27db9ad0fe Merge pull request #945 from inkonova/v1.8.1-mixerFix
removed multiple declaration of function mixerUseConfigs
2015-05-30 07:27:33 +01:00
Dominic Clifton
6f3c16fe6c Reducing the maximum number of mode ranges from 40 to 20 to free up some
configuration storage space.
2015-05-30 00:03:56 +01:00
Dominic Clifton
e6733b4dfc Cleanup status indicator code.
This primarily is to avaoid stalling the main loop when beeping and
flashing.

This is needed because oneshot ESCs do not receive updates when the main
loop is stalled.

Additionally the beeper code for sticks held in disarm position is
changed since it also clashed with profile selection.  Now profile
selections can be seen and heard clearly.

Other subsections of the system that changed the LED0 state while the
main loop is running have been updated to use the status indicator API
instead of blindly hitting the hardware which previously caused lots of
odd LED flashing behaviour - now it is consistent.
2015-05-29 23:37:33 +01:00
Dominic Clifton
0c1a6c5c2f Merge branch 'lock_active_features' of https://github.com/ProDrone/cleanflight into ProDrone-lock_active_features
Conflicts:
	src/test/unit/rc_controls_unittest.cc
2015-05-29 20:05:25 +01:00
Dominic Clifton
b194288668 Merge pull request #937 from MJ666/ALIENWII32_update
AlienWii32 updates
2015-05-29 15:30:38 +01:00
Mauro Mombelli
51a067db6d removed mixerUseConfigs multile declaration 2015-05-23 20:24:07 +02:00