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

174 commits

Author SHA1 Message Date
Larry (TBS)
cad401da25 - Fix and add BST task into scheduler. 2016-01-05 11:55:17 +01:00
henn1001
d6c812f4fe Fix Selectable Buzzer Pin for CC3D -Cleanup 2015-12-30 23:48:56 +01:00
borisbstyle
dfcc3eb028 Fix Selectable Buzzer Pin for CC3D 2015-12-30 23:19:30 +01:00
borisbstyle
6d679b72e1 Further 2khz Stability Enhancements 2015-12-24 02:35:01 +01:00
Konstantin Sharlaimov (DigitalEntity)
fa49931b43 Improved scheduling. Betaflight Port digitalentity/cf-scheduler
Disallow arming if system load > 100 (waiting task count > 1)

Dont show inactive tasks in CLI

Realtime priority task and guard interval implementation

Dynamic guard interval. Bugfix for realtime scheduling hickups

Optimisations

Compile out CLI command help and CLI tasks command for CJMCU

Naming fixes // re-Add Gyro Sync // Fix port issues
2015-12-23 00:05:34 +01:00
borisbstyle
8ecd05b911 Configurable Beeper PIN6 CC3D // Less CC3D targets 2015-12-23 00:05:33 +01:00
borisbstyle
0a2444fe39 Afromini Target Beeper override for rev5 2015-12-09 13:33:39 +01:00
borisbstyle
b39beceb62 8khz Sampling option / preparation 2015-11-24 16:09:16 +01:00
borisbstyle
6da7ced9be BST Port 2015-11-20 17:39:24 +01:00
Konstantin Sharlaimov (DigitalEntity)
5df8ca926c Quaternion-based DCM IMU (original code my S.Madgwick)
Restore binaries from merge
2015-10-22 10:45:36 +02:00
borisbstyle
cb7028b7f1 Merge remote-tracking branch 'prodrone/improved_rx_failsafe_detection' into betaflight
Conflicts:
	src/main/drivers/accgyro_mpu6500.c
	src/main/drivers/accgyro_spi_mpu6000.c
	src/main/drivers/system.c
	src/main/mw.c
	src/main/rx/rx.c
	src/main/sensors/initialisation.c
2015-10-21 09:21:33 +02:00
ProDrone
a64e2c4f1a Improved RX failsafe detection & handling
modified debug output (currently disabled)

To solve problem as indicated here:
https://github.com/cleanflight/cleanflight/issues/1266#issuecomment-135640133

and here:
https://github.com/cleanflight/cleanflight/pull/1340

and here:
https://github.com/cleanflight/cleanflight/pull/1342

Tested on FrSKY X4RSB with latest CPPM firmware (non-EU version).
Firmware filename: X4R-X4RSB_cppm_non-EU_150630

In both SBUS and CPPM mode.

---
Added delay to rxfail detection

All channels are monitored for bad (out of valid range) pulses.
On bad pulses channel data will HOLD the last value for a period of
MAX_INVALID_PULS_TIME (300ms) before starting rxfail substitution.
This should prevent a too aggressive reaction to small dropouts.

---
Init ARM switch rc channel to OFF for safety

Initialize ARM switch to OFF position when arming via switch is defined.
To prevent arming during init when RX is disconnected and/or when RX is
connected but TX is still off.

---
Modified rx_rx_unittest.cc

Adapted because rxInit() parameters changed.
Added tests for ARM switch initialization.
No further tests added.

---
Move smoothing of rcData to rcCommand

Commit from @borisbstyle pr #1418
rc_smoothing function has changed to leave rcData unchanged in #1418
2015-10-21 01:50:59 +02:00
borisbstyle
4b3ba927e9 Merge branch 'master' into betaflight
Conflicts:
	src/main/blackbox/blackbox_io.c
	src/main/drivers/serial_usb_vcp.c
	src/main/flight/imu.c
	src/main/mw.c
	src/main/target/CC3D/target.h
2015-10-12 23:53:43 +02:00
borisbstyle
fa9cd0440b FastPWM as part of Oneshot125 (dynamic oneshot)
bool correction

IdlePulse
2015-10-01 17:07:53 +02:00
borisbstyle
77534ed6f6 Merge remote-tracking branch 'henn1001/FastPWM' into betaflight
Conflicts:
	src/main/drivers/pwm_mapping.c
2015-10-01 16:01:15 +02:00
Nicholas Sherlock
6e504ca52a Ability to see how many Tx bytes are free in serial port buffer 2015-10-01 16:48:56 +13:00
borisbstyle
babab7aa4e Merge remote-tracking branch 'Pierre-A/CLI_beeper_off' into betaflight 2015-09-29 12:21:18 +02:00
borisbstyle
9ed1c46065 Static i2c Clockspeed set to 1200khz (Stability test needed)
Luxfloat can now run with acc stable
2015-09-23 01:25:45 +02:00
ProDrone
eca7d9fd21 Add CLI variable i2c_overclock
Add i2c_overclock to master config and bump version
Start using the i2c_overclock CLI setting to initialize i2c clock speed
selector for F1 targets.
2015-09-22 23:21:29 +02:00
borisbstyle
0539abc649 Dterm scaling correction // Code cleanup 2015-09-21 00:19:06 +02:00
borisbstyle
0ea5a99e2b Merge remote-tracking branch 'prodrone/betaflight' into alphaflight 2015-09-19 16:44:11 +02:00
ProDrone
47afa51bd7 Merge branch 'quat_fsm_vfm_clean_yaw_hack_squash' into betaflight
Conflicts:
	src/main/mw.c
	src/main/target/CC3D/target.h
2015-09-19 14:59:47 +02:00
Konstantin Sharlaimov (DigitalEntity)
45a4f11f92 Added #define for imu debug output (+16 squashed commit)
Squashed local commits:

from       : e4265d4a13f63f82d5cf55eea2c091622f96660b
up to (inc): 72416dc74745fa8bae1aded79aa4b9ed0e389076
2015-09-19 14:50:53 +02:00
borisbstyle
0501e5ff91 Code Cleanup
More code cleanup and BUMP EEPROM

Code Cleanup

Fix loop trigger
2015-09-19 01:37:48 +02:00
borisbstyle
dae052632c Merge branch 'master' into betaflight
Conflicts:
	src/main/drivers/accgyro_mpu3050.c
	src/main/drivers/accgyro_mpu6050.c
	src/main/drivers/accgyro_spi_mpu6000.c
	src/main/drivers/accgyro_spi_mpu6500.c
	src/main/drivers/sensor.h
2015-09-15 23:36:40 +02:00
Pierre-A
09e7a01b2c Selectively turning on/off the beeper through CLI 2015-09-15 15:41:30 +02:00
Dominic Clifton
c6f5b98a79 Improve failure LED status flashing. Now users can identify and report
hardware failures by counting the number of long flashes.

Fix up sensor read API so that code that uses sensors can detect
malfunctions.

If a failure mode occurs in a debug mode the code reboots the system
rather than rebooting to the bootloader.
2015-09-12 01:33:19 +01:00
borisbstyle
26f89b74bd Configurable Baro Type
We can disable/configure mag, acc, but why not baro?

ident
2015-09-10 02:22:50 +01: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
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
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
henn1001
7bd79e159c quick implementation of fastpwm 2015-08-11 01:56:32 +02:00
Dominic Clifton
676b2dd6c0 Use the define USE_FLASH_M25P16. Only USE_FLASHTOOLS for some
development targets.
2015-07-13 03:28:34 +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
8b727ecbf9 Fix pwm servo initialisation when using custom airplane. 2015-07-08 15:38:39 +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
d26a2ceef2 SPRacingF3 - Allow SoftSerial1 (CH5/6) to be used when Sonar is used
(CH7/8).
2015-06-26 15:18:08 +01:00
Michael Hope
920cac5253 various: re-work designated initialisers to work with G++
G++ supports a more limited version of designated initialisers.
Reorder fields to be in the right order.  Make nested initialisers
explicit.

Signed-off-by: Michael Hope <mlhx@google.com>
2015-06-04 22:34:27 +02:00
Michael Hope
5c6760fd82 various: tidy up various things found when building with a C++ compiler.
Remove duplicate consts.
Pull in the include files where functions and variables are declared.
Mark file local but duplicated variables as static.
Mark some variable declarations as extern.
Remove duplicated variable definition.

Signed-off-by: Michael Hope <mlhx@google.com>
2015-06-04 22:32:31 +02: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
4ed6fdfea5 CC3D - Add sonar.
This also ensures that the PWM mapping does not use the sonar pins when
sonar is enabled in a board agnostic way.
Conflicts:
	src/main/config/config.c
	src/main/drivers/pwm_mapping.h
	src/main/main.c
	src/main/target/CC3D/target.h
2015-05-22 22:35:41 +01:00
Dominic Clifton
a370d60595 Support UART3 and I2C on Paris Air Hero 32 Flex port (aka Naze32_SP).
This change also allows serial ports to be removed at runtime.  e.g.
UART3 on Naze32 and SoftSerial 1 & 2 when softserial is not enabled.
2015-05-22 20:49:33 +01:00
ProDrone
bbb86b30fa Delayed motor PWM enable when using Oneshot 2015-05-22 00:30:29 +02:00
ProDrone
a153302b48 Minor comment update. 2015-05-21 02:03:09 +02: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
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
atomiclama
713e138c42 Changed idle pulse width from fixed 1ms to that configured.
Stops motors, that have none standard pulse ranges, from running up
after a save or exit from cli.
2015-05-19 16:02:27 +01:00
Dominic Clifton
e0af5f41ef Merge pull request #697 from Supersopp/sonar_and_ADC_current_sensor
Updates sonar so that it can be used together with ADC current meter
2015-05-06 22:14:52 +01:00