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

404 commits

Author SHA1 Message Date
Dominic Clifton
4a3970c9ab Fix range argument processing. 2015-07-09 22:13:21 +01:00
Dominic Clifton
62d638b2d9 Update smix reverse to use 'r' or 'n' for reverse or normal to a) match
the table, b) be more user friendly.
2015-07-09 21:15:11 +01:00
Dominic Clifton
c9f5ca3faf Deleted code specific to fixed wing that set motors to mincommand when
disarmed.

Ensure that servo mixes that use calculated throttle output (motor 0)
adhere to the armed/disarmed state, this is achieved by ensuring that
motor outputs, including the effects of MOTOR_STOP are calculated BEFORE
using motor 0 as an input source for the servo mixer.
2015-07-09 20:23:37 +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
Dominic Clifton
774a36a2d5 Avoid print smix table header multiple times. 2015-07-08 14:48:23 +01:00
Dominic Clifton
763c75873e Use 0 based index for motor and servo mix in CLI. Update
MSP_SERVO_MIX_RULES, MSP_SET_SERVO_MIX_RULE, MSP_SERVO_CONFIGURATIONS,
MSP_SET_SERVO_CONFIGURATION.  Delete MSP_CHANNEL_FORWARDING,
MSP_SET_CHANNEL_FORWARDING.
2015-07-08 12:54:09 +01: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
45cd2671a5 Use tabs instead of spaces for servo mix table header. 2015-06-29 03:51:55 +01:00
Dominic Clifton
08afcaf536 Ensure dump uses correct command names.
Use shorter command names (mmix and smix) instead of longer ones
(motormix) and (mmix).

Decrease verbosity of dump command by only outputting commands to
reverse servos for servos that are reversed.
2015-06-29 03:51:05 +01:00
Petr Ledvina
68dd60b0e7 Use loop for CLI command search instead of bsearch library function, improve matching
Command end is now tested, `savefail` wont be recognized as command now (but `save+fail` is)
2015-06-29 03:31:16 +01:00
Dominic Clifton
b5e18a90a2 Cleanup CLI
* optimize for code size.
* consolidate error message handling.
* replace similar error messages with identical ones.
* shorten all strings where possible.
* made less verbose.

This was required for the CC3D OPBL build.
2015-06-29 03:30:17 +01:00
Dominic Clifton
9389239207 Removing custom mixer sanity check, it gives bad result to good mixers.
See #864.
2015-06-29 00:05:13 +01:00
Dominic Clifton
7a1d071efb Add support for custom tricopter mixer.
See #606.
2015-06-28 23:11:47 +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
Michael Hope
3740779912 serial_cli: use the reentrant version of strtok().
Newlib's strtok() allocates memory and causes malloc() to be linked
in.  Use the reentrant version instead.

Saves 336 bytes.

Signed-off-by: Michael Hope <mlhx@google.com>
2015-06-10 11:06:33 +01:00
Dominic Clifton
98f7549aa4 Fix serial command handling of telemetry baud rates. Set min blackbox
bad rate to be 19200 to match the confiurator.
2015-05-31 12:36:10 +01:00
Dominic Clifton
ca22fb0ee3 Replace CLI serial port configuration code with a new serial command.
This is done to make it clearer in configuration dumps which ports are
enabled and configured.

There is a nice code size reduction due to less strings being needed.

Serial documentation updated.

Closes #966.
2015-05-31 11:50:58 +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
Nicholas Sherlock
3ddea2a849 Fix blackbox baudrate upper bound on CLI
Closes #960
2015-05-28 14:27:49 +12:00
ProDrone
b75de91f35 Instead of trying to latch the desired features...
...and apply them after a soft reset (which also required an additional
write to flash), it is now such that features and settings are modified
and stored in flash as before.

After initialisation completes, the active features are latched and are
not to be modified until the next startup. This guarantees that all
saved modifications are persistent even when power is switched of
(without a reset in between).

When a soft reset is required, the active features and the currently
configured features are used to detect if the oneshot feature has
changed state, in which case motor PWM outputs are stopped and soft
reset is done after a 1.5 second delay.

During normal operation the active features will not change and all
changes to features ordered via MSP commands or the CLI are applied to
the configuration that gets saved to flash.

The required effect of modifying features without changing the actions
in the running mainloop is achieved. The user needs to be aware that
changes to features are not applied immidiatly.
2015-05-21 01:27:45 +02:00
Dominic Clifton
7a01bab50f Constrain invalid values by using rx_min_usec and rc_max_usec. Provide
sensible/fix min/max settings for those settings.

This fixes erratic flight behaviour before failsafe kicks in on SBus
receivers.

An X8R SBus RX in failsafe mode outputs 880 on all channels.

See #918 and #919
2015-05-20 00:28:52 +01:00
Dominic Clifton
d0a9d14b87 Allow CLI to be compiled out.
First cut, as proof-of-concept.  This allows CJMCU target to be built
without CLI and with Blackbox.
2015-05-19 23:42:41 +01:00
Michael Jakob
42218f1ea5 The yaw_p_limit minimum is now set to 100 to prevent misconfigurations.
Maximum value of 500 is now removing the limit (same as for
yaw_jump_prevention_limit)
Moving defines for PID controllers to headerfiles.
Some general code cleanup.
Documentation update
2015-05-19 17:42:03 +02:00
Dominic Clifton
e57c814e2a CJMCU - Disable cli playsound to save flash space. 2015-05-17 22:21:01 +01:00
Dominic Clifton
19be109189 Merge pull request #890 from ProDrone/cli_processing_mod_1
Some mods to CLI command interpretation and output
2015-05-14 20:10:49 +01:00
ProDrone
6d9394d783 Optimized comment stripper code (again) 2015-05-14 19:59:36 +02:00
ProDrone
0ee67a521b Optimized comment stripper code 2015-05-14 19:59:35 +02:00
ProDrone
1df9097e32 Added # to versionstring and strip comments
Prepended the version string with a # to avoid the CLI from interpreting
the version string as a command when pasting a dump file back (restore
in CLI).

Strip comments starting with `# comment` from lines. This is to allow
adding comments to CLI dumped backup files. For this i have an automated
addition of comments and/or manual comments by the user in mind.
2015-05-14 19:59:34 +02:00
DaTwo
ade7887f7a Update serial_cli.c 2015-05-07 04:20:33 -07:00
borisbstyle
da8bb6f6fc Yaw Expo Feature 2015-05-06 22:23:40 +01:00
Dominic Clifton
d2ef645fbe Merge pull request #823 from ethomas997/addPlaySoundCommand
Add 'play_sound' CLI command
2015-05-04 09:22:04 +01:00
BorisB
c3522882f2 yaw_fix default values
Pull request #802 has by default disabled yaw jump. That is fine on the
most of the configurations, but one of my multirotors had an angled
motor due to crash and this was causing weird behaviour.
It is also possible to configure very low values, which can even cause a
craft to not be able to stop after yaw and I am talking about the values
below 100 like 1.

Anyway this fix provides only valid configurable values what can't cause
any danger. Also default parameter is not unlimited anymore and is
configured to 200, which is a safe value to anybody who does the
upgrade.
cli.md is also edited
2015-05-01 13:45:22 +02:00
E Thomas
96de824f61 Add 'play_sound' CLI command
Added 'play_sound' CLI command; improved ACC_CALIBRATION_FAIL sound (to
make it less like ACC_CALIBRATION sound).
2015-04-27 03:46:57 -04:00
Michael Jakob
ca9b307850 Adjust variable data type for new CLI parameter 2015-04-23 17:30:21 +02:00
Michael Jakob
2fd79a7aa2 This fix is for avoiding yaw overshoot and bounce back for some
configurations
The hardcoded limit in the mixer and PID controllers 3-5 would be
removed
by default and will be configurable by CLI variables:

yaw_jump_prevention_limit, global setting (original fixed value was 100)
yaw_p_limit, per profile setting (fixed value was 300)
2015-04-23 17:30:20 +02:00
Dominic Clifton
c8c0c85656 First-cut of a refactored failsafe system.
* fixes issue where indicators would flash when SBus RX entered failsafe
mode.
* fixes bug where turning off a TX for an SBus RX would instantly disarm
when using a switch to arm when the channel went outside the arming
range.
* introduces failsafe phases to make the system more understandable.
* allows the system to ask if rxSignalIsBeing received for all RX
systems: PPM/PWM/SerialRX/MSP.  Also works when a serial data signal is
still being received but the data stream indicates a failsafe condition
- e.g.  SBus failsafe flags.
* failsafe settings are no-longer per-profile.

Untested: Sumd/Sumh/XBus/MSP (!)
Tested: SBus X8R, Lemon RX Sat, X8R in PWM, Spektrum PPM.
2015-04-16 01:31:12 +01:00
Nicholas Sherlock
645f4a4d3b Fix CLI: mixer settings should be master values, not profile values 2015-04-14 11:49:20 +12:00
Dominic Clifton
7d9fc2699a Merge branch 'PA_update1' of git://github.com/Pierre-A/cleanflight into Pierre-A-PA_update1
Conflicts:
	src/main/config/config.c
	src/main/io/serial_cli.c
	src/main/telemetry/hott.c
	src/main/telemetry/telemetry.h
2015-04-07 20:33:03 +01:00
Dominic Clifton
b0b1eaf9c7 Add first unit test for some code in serial.c. Fix compiler warnings in
other tests.
2015-04-01 14:12:24 +01:00
Nicholas Sherlock
1b5571e268 Ignore trailing spaces on CLI commands 2015-03-24 01:13:26 +13:00
Nicholas Sherlock
828ec550cd Apply the same maximum control rates (1.0) in CLI and MSP
Previously it was possible to set roll/pitch rate > 1.0 using MSP, but
not using the CLI. Roll/pitch rate > 1.0 is meaningless.

TPA is also limited to 1.0.
2015-03-22 20:38:15 +13:00
Dominic Clifton
4cf6fe6571 Rename 'frsky_hiprec_vfas' to 'frsky_vfas_precision' and introduce enum
for FRSKY_VFAS_PRECISION_LOW and FRSKY_VFAS_PRECISION_HIGH.

Improves naming for humans.  'hiprec' was meaningless and
untranslatable. See
https://cleancoders.com/episode/clean-code-episode-2/show
2015-03-13 23:49:24 +01:00
Dominic Clifton
d82fc6b9be Merge pull request #477 from projectkk2glider/projectkk2glider/issue_316_frsky_voltages
Fixes #316: better arithmetics for FrSky CELL voltages, VFAS battery vol...
2015-03-13 23:40:24 +01:00
Dominic Clifton
4a12d00d1e Moving mixer config out of the profile. It doesn't really make sense. 2015-03-09 23:00:44 +00:00
Dominic Clifton
ed434fe47b Use a positive named setting and variable instead of a negative one to
simplify the logic and aid understanding.
2015-03-09 22:50:27 +00:00
Dominic Clifton
5e3734946e # This is a combination of 2 commits.
# The first commit's message is:

Previously, at minimum throttle, the quad would do absolutely no self-leveling
and simply run the motors at constant minthrottle.  This allowed the chance
for the quad to lose control during flight if the throttle was set to minimum,
say, to drop from a high altitude to a lower one.

With this edit, the quad will still self-level at minimum throttle when armed,
allowing for safe decents from altitude.  To prevent motors spinning when
arming/disarming, the yaw input is ignored if the throttle is at minimum and
we're using the sticks to arm/disarm.

Conflicts:
	src/main/flight/mixer.c

# This is the 2nd commit message:

added cli command disable_pid_at_min_throttle
2015-03-09 23:36:54 +01:00