1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 14:25:20 +03:00
Commit graph

131 commits

Author SHA1 Message Date
ctzsnooze
7156dc84a3
Update turtle / crashflip mode (#13905)
* stop motors after 90 degrees of rotation and with max rate

* handle no accelerometer data

* improve check for acc, although seems to be OK without it

* disable all attenuation if rate is set to zero

* refactoring thanks Karate

* use sensors.h

* remove unnecessary arming check

* exit crashFlip immediately switch is reverted if throttle is zero

* add Crashflip Rate to OSD

* Revert unnecessary changes in crashflip core.c code

and clarify comments about crashflip switch

* update / minimise comments, thanks Karate

* ensure all names say `crashflip` consistently

* Undo quick re-arm because motrors were not reversed

* fix issue with reversed motors, we must disarm

* ignore yaw rotation and set gyro limit to 1900 deg/s

* default attenuation to off (crashflip_rate = 0)

* refactoring, increase rate limit to allow stronger inhibition

* enable in race_pro mode

* don't attenuate on attitude until a significant change occurs

* no attenuation for small changes

* Updates from review by PL

* remove whitespace

* refactor motorOutput, update comments, renaming variables

thanks PL

* changes from review PL

* only permit fast re-arm if crashflip rate set and crashflip was successful

* properly exit turtle mode

* add crashFlipSuccessful to unit test extern c

* small updates from review

* improved crashflip switch handling

* remove unnecessary motors normal check
2024-10-05 07:58:33 +10:00
ctzsnooze
776e8c7b3c
Refactor Rx code and better support 25Hz links (#13435)
* RX task update rate to 22Hz, to improve 25Hz link stability

* modified Rx code

* add LQ to debug

* use max of frameAge or FrameDelta

* Require a dropouit of 200ms, not 100ms, before RXLOSS

* remove FrameAge, use 150ms timeout 50ms checks

* fix tests and tidy up the comments

* Handle NULL input as before, log frame time

* possible solutions to review comment about names

* Remove rxFrameTimeUs

- prepare for direct use of lastRcFrameTimeUs
- refactor rx_spi callback

* remove global currentRxRateHz

* simplify updateRcRefreshRate

* re-name to recheck interval, return frame time debug

* Calculate RxRate only once

* use rxReceivingSignal for consistency

* use signalReceived not rxDataReceived for consistency

* suggestions from review PL

* move defines, thanks K

* fixes from review, thanks MH

* review changes, undo task interval change

rename bool rxIsReceivingSignal to isRxReceivingSignal
thanks Steve for resolving that tasks changes are not needed
thanks PL for your feedback also

---------

Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
2024-10-01 09:23:24 +10:00
Vladimir Demidov
654d18ced4
Fix: the wrong ability to turn on HORIZON_MODE without ACC sensors (#13892)
added check of acc sensor enabled condition by turn on horizon mode
2024-09-16 11:36:57 +02:00
ctzsnooze
254da8f460
Altitude hold for 4.6 (#13816) 2024-09-04 20:29:03 +10:00
Steve Evans
2d3c8eea33
Remove superfluous checks of useDshotTelemetry (#13633) 2024-05-13 07:58:54 +10:00
Steve Evans
565de1b68b
Use the cached value of useDshotTelemetry to ensure consistent runtime use if dshot_bidir is changed (#13589) 2024-04-28 09:31:50 +10:00
Steve Evans
e3e67b2ecb
Use cpu_late_10ths_percent_limit to set limit on % of late tasks in 10th of a % (#13330)
* Use cpu_late_10ths_percent_limit to set limit on % of late tasks in 10th of a %
Set CPU load late limit to 1% based on testing

* Update src/main/cli/settings.c

Co-authored-by: Jan Post <Rm2k-Freak@web.de>

* Update src/main/scheduler/scheduler.h

Co-authored-by: Jan Post <Rm2k-Freak@web.de>

* Update src/main/fc/core.c

* Update src/test/unit/arming_prevention_unittest.cc

* Update src/main/scheduler/scheduler.c

---------

Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
2024-02-15 12:50:32 +01:00
Mark Haslinghuis
9b078c0b1f
Fix arming when GPS included in build but no active GNSS device attached + revert msp request for SatInfo (#13244)
* Fix arming when GPS included in build but not active

* Fixes per review from Chris

* Move PG change to new PR

* Restore changing GPS PG version
2023-12-28 00:14:02 +01:00
Ivan Efimov
6ac08cdd58
Fix: RPM Limit - reset I-term at arm (#13214)
* RPM Limiter - reset I-term at arm

* Update src/main/flight/mixer.c

Co-authored-by: Jan Post <Rm2k-Freak@web.de>

---------

Co-authored-by: Jan Post <Rm2k-Freak@web.de>
2023-12-11 00:40:34 +01:00
ctzsnooze
b2ce402635
fix iterm bug introduced in PR13127 (#13201)
fix iterm bug introduced in 13127
2023-12-07 19:55:01 +01:00
Ivan Efimov
dd198b2cda
Keep I-terms at zero throttle for fixed wings (#13127)
* Keep Iterms at zero throttle for fixed wing mixer

* Ctz suggestions

* Update src/main/fc/core.c based on ladvinap suggestion

Co-authored-by: Petr Ledvina <ledvinap@gmail.com>

---------

Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
2023-12-05 11:54:10 +01:00
Mark Haslinghuis
b199e65000
Remove unused servos header file (#13182) 2023-12-04 13:21:17 +11:00
Jan Post
5769b3021e
Dshot RPM Telemetry Refactoring (#13012) 2023-12-03 15:16:35 +11:00
Mark Haslinghuis
cafe727f3a
Fix Dshot telemetry (#13140)
* Fix Dshot telemetry

* Revert check per review
2023-11-23 22:56:14 +01:00
ctzsnooze
a35a5af16c
Only allow arming when valid Rx signals are received (#13033)
* Only allow arming when failsafe criteria are cleared

* 500ms RXLOSS period with 100ms minimum
2023-09-01 15:58:26 +02:00
Ivan Efimov
dfef3bfb0e
Added throttle flight statistics (#12978)
* Added throttle flight statistics

* Changed rc_stats.c/h license header to a modern one

* rc_stats.c Style fix
2023-08-06 17:32:57 +02:00
Mark Haslinghuis
d1eb214332
Fix rcSmoothing warning (#12893) 2023-06-18 01:48:58 +02:00
ctzsnooze
d9775287a2
Keep sending DShot 0 packets between beacon commands (#12544)
* Keep sending DShot zero between beacon commands

And don't wait 100ms between inline commands, which the beacon commands are.

* use cmpTimeUs for time comparisons

* Fixed intervals between DShot beacons

* fix indentnation, thanks KarateBrot
2023-03-21 14:41:45 +01:00
ctzsnooze
4454286165
GPS Rescue Bugfix, add a failsafe debug, refactor stick deflection (#12195)
* simple failsafe debug

* simplify areSticksActive

use getRcDeflectionAbs and fix unitTest

* bugfix to require stick input to re-take control

* small refactor
2023-01-18 02:44:50 +01:00
Jan Post
931c982a3b
Refactor RPM Filter (#11765)
* Refactor RPM Filter

* Refactor RPM Filter parameter group
2022-11-12 20:39:21 +11:00
Jan Post
04a7903756
Fix ATTITUDE task rate (#11975)
Fix attitude task rate in acro mode
2022-11-12 20:38:11 +11:00
ctzsnooze
341d65becf remove gps_required and gps_minimum sats and revert to gps_rescue_min_sats 2022-10-20 21:44:01 +11:00
haslinghuis
7e441b5f4f
Merge pull request #11887 from KarateBrot/styledef
Remove old style definitions
2022-10-16 00:22:02 +02:00
KarateBrot
ddf1d46549 Remove old style definitions 2022-10-13 03:33:54 +02:00
Mathias Rasmussen
61ded491cd Use std abs() instead of ABS() macro
Changes uses of ABS() macro to <stdlib.h> abs() and <math.h> fabsf()
2022-10-12 19:49:03 +02:00
iso9660
ccdccbf8a9 Removed all motors telemetry calculations to avoid extended dshot telemetry overhead
Basic DSHOT telemetry restablished again

Implemented new mechanism to activate EDT. The old mechanism no longer works

Added dshot_edt configuration parameter to enable edt. Parameter is OFF by default

Only send DSHOT edt enable in core.c::tryArm if dshot_edt=ON

Fixed review findings
2022-10-01 09:53:02 +02:00
iso9660
7a5b60e8c1 Fix for old telemetry sent to RPM filter during a re-arming sequence 2022-09-23 06:50:47 +02:00
danmos
21b3fc15b7 Extended Bidir DShot
Extended DSHOT telemetry
Fixed broken unit testing

Rebased to master

Extended DSHOT telemetry

Added DSHOT ESC fail to OSD warnings

Initial extended DSHOT implementation

DSHOT telemetry ranges readjusted

Added shot_telemetry_data to cli

Added DSHOT telemetry warnings

Added extended DSHOT telemetry temperature data to osd elements

Fixed DSHOT telemetry osd warnings

Make cli dshot telemetry types human readable

Fixed ESC temperature OSD element

Added extended dshot telemetry enable command to dshot command queue to enable it in tryArm function.

Fixed broken automated unit testing

Fixed text output for dshot_telemetry_data cli command

Decode extended telemetry only when it has been activated in the ESC

DSHOT extended telemetry is only enabled when an extended telemetry enable frame is being processed

Fixed broken automated unit testing

Update tail's dshot command in queue when running blocking commands, so extended dshot telemetry command responses can be associated to their corresponding extended dshot telemetry enable/disable command request

Added clariffication to dshot_get_telemetry_type_to_decode to explain mechanish used for processing DSHOT_CMD_EXTENDED_TELEMETRY_ENABLE response

Tabs cleanup
Added dshot motor stop fix when writting blocking commands

Added extended DSHOT telemetry to osd warnings
Fixed extended DSHOT telemetry in osd elements

Implemented msp extended dshot telemetry
Optimized osd warnings

Fixed code style

Added max temp to osd stats

Fixed automated unit testing

Fixed broken automated unit testing

Fixed missing extended dshot telemetry voltage and wrong current
Fixed unadverted change in gitignore file

Print esc number besides max esc tempetature in osd stats

issues and some other minor issues

ESC temperature is coded as an uint8 going from 0 to 255. Updated osd config esc_temp_alarm from int8_t to uint8_t to match esc temperature coding

issues and some other minor issues

Enable extended dshot telemetry when no esc sensors avaliable and dshot telemetry is enabled

Arranged dshot.h header and removed unnecessary headers from dshot.c

Updated dshot_telemetry_data cli command output

Fixed dshot_telemetry_data command

motor_output_unittest fixed

Fixed motor number printing in dshot_telemetry_data cli command

fixed motor_output_unittest

Merged dshot_telemetry_data into dshot_telemetry_info cli command

Fixed tabs

Fixed motor_output_unittest

Support extended DSHOT telemetry on DJI FPV

Fixed Compiling fails without USE_ESC_SENSOR and USE_DSHOT_TELEMETRY defines.

Fixed whencompiling without USE_ESC_SENSOR and USE_DSHOT_TELEMETRY

Reworked so code can be compiled with USE_ESC_SENSOR and USE_DSHOT_TELEMETRY separately

Enabling EDT the correct way

Removed unecessary conversions

Changed motorIndex datatype to uint8_t in dshot functions
2022-09-14 20:11:58 +02:00
ctzsnooze
09ee27cd97 Refactor sat count checks and GPS trust code
single minimum GPS satellite setting
single required GPS satellite setting
CLI Baro vs GPS trust user interface
GPS trust refactoring
allow arming with GPS_FIX even if not enough sats
required sats must be present to arm
set required sat count to 8
add blackbox headers
2022-09-07 09:55:35 +10:00
ctzsnooze
b2241b32c3 Refactor Baro to floats, filter at position rate
convert pressure to altitude early
remove median filter
PT2 filtering upsampled to altitude function in position.c - thanks KarateBrot
baro task synced to position task - thanks Steve
PT2 implementation - thanks KarateBrot
ground altitude from filtered altitude
baro cali by average of calibration samples over cal period
adjust vario and smoothing defaults
don't say haveBaroAlt until cal is complete
reduce PIDs since Baro is faster
add baro smoothing values to blackbox header

Co-Authored-By: Jan Post <post@stud.tu-darmstadt.de>
Co-Authored-By: Steve Evans <SteveCEvans@users.noreply.github.com>
2022-09-02 14:38:40 +10:00
blckmn
bc0fc26479 - Adding nightly build at 1am UTC
- Updating cache for tool chain
- Using 10.3 as the build chain, due to bug in 11.2 -> https://bugs.linaro.org/show_bug.cgi?id=5825.
- No inlining to prevent over flow. Perhaps other calls represent better choices.
2022-07-11 17:18:43 +10:00
Štěpán Dalecký
f85ebba6a4 Refactoring of IMU and ACC 2022-06-28 18:26:10 +02:00
ctzsnooze
f7c645bfcd update GPS code 2022-06-13 09:43:52 +10:00
Ivan Efimov
bb33c65f11 Changes in crash flip OSD warnings:
1. Show "ARMED"<new line>"> CRASH FLIP <" when arming in crash flip
2. Show "CRASH FLIP SWITCH" when disarmed, but in crash flip.
3. Hide the disarmed stats screen if "CRASH FLIP SWITCH" is activated.
2022-05-27 02:06:16 -05:00
Steve Evans
1368b221b7 Remove rxFrameReady() 2022-04-17 17:58:10 +01:00
ctzsnooze
fb51f63735 fix for GPS non-return 2022-04-16 17:24:50 +10:00
ctzsnooze
ee024aff0c refactor failsafeActivate, all recovery times the same
Simpler GPS Rescue fix
100ms interval for signalReceived failure
Faster failsafe stick response
Update and confirm unit tests work correctly
Restore invalid flight channel ability to trigger failsafe with individual timers
Set default failsafe stage 1 delay to 1.5 seconds, approximately match previous delay of 1.6s when the user selected 1.0 seconds.
Update failsafe documentation for 4.3
Arming blocked soon after Rx initialisation
Unit test fix for previous commit
Editorial changes and typo fixes
2022-04-13 11:52:56 +10:00
Steve Evans
07f6bea174 Fix failsafe timings and behaviour to match Failsafe.md 2022-03-30 18:29:21 +01:00
Steve Evans
fc8640154a Interrupt/DMA driven SX1280 interaction for ELRS 2022-02-28 19:50:36 +00:00
Štěpán Dalecký
564421ce1c Debug modes cleanup 2021-12-04 18:43:05 +01:00
KarateBrot
8649f1003f Dynamic notch refactoring
+ added new parameter group for Dyn Notch
2021-09-01 12:39:21 +12:00
Steve Evans
25fcacf4c5 Split rx processing into three states to eliminate cycle time jitter
Allow tasks with state machines to control which state determines task duration

Fix unit tests
2021-03-27 23:28:41 +00:00
Alexey Stankevich
2eb787a5ad Do not disable RcAdjustments if paralyze when armed 2021-02-18 00:32:10 +03:00
Alexey Stankevich
c72e7ac568 Fix disabled disarm when Paralyze is activated in armed state 2021-02-17 00:51:28 +03:00
Bruce Luckcuck
9c575d9353 Disable HEADFREE flight mode when GPS Rescue is active
The GPS Rescue flight control model doesn't work in HEADFREE mode.
2020-10-27 23:18:40 -04:00
limonspb
806595a7d4 Total flights stats for OSD 2020-10-25 01:32:51 -05:00
Sam Lane
4c99ad743d Rename FAST_RAM to FAST_DATA 2020-08-23 08:49:26 +01:00
Michael Keller
9ae9b32aad
Merge pull request #9937 from mikeller/refactor_dshot_enabled_checks
Refactored Dshot enabled checks.
2020-07-26 15:30:40 +12:00
Michael Keller
f8f01c9fa3
Merge pull request #10006 from etracer65/crash_flip_first_arming 2020-07-12 14:12:31 +12:00
Bruce Luckcuck
bf232e57d9 Prevent crash flip from setting WAS_EVER_ARMED arming flag
Previously if the first "arming" was in crash-flip mode then the various features that rely on "first arming" logic would be defeated. While arming in crash-flip mode is technically "arming", it shouldn't disable features that rely on the first "real" arming. For example, vtx low-power disarm, GPS fix arming disabled, `BATT < FULL` warning, etc.
2020-07-10 09:20:47 -04:00