* Add ez_landing_speed parameter
The parameter is the speed at which ez_landing will be effectively disabled in tenths of meters per second.
Default value 50 (5 m/s).
EZLANDING bug field 5 is the contribution from this parameter to the ezlanding throttle cap.
* Correct ez_landing_speed logic and scaling
* ez_landing_speed should now raise the limit when the speed is above ez_landing_speed (previously only raised the limit if the speed was bellow, and had no effect above the limit)
* ez_landing_speed should now be scaled so that EzLanding is effectively disabled when speed >= ez_landing_speed (previously EzLanding would be disabeld when speed was at half of ez_landing_speed)
* Add stick input upper limit as EZLANDING debug 4
* Check for gps 3D fix before using gps speed for EzLanding
* Prevent division by 0 if ez_landing_threshold is set to 0
* Scale EzLanding speed to m/s from cm/s
* Update src/main/flight/mixer.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* mag cal improvements
reduced threshold to start updating the previous cal
LED0 goes 'solid' only when the calibration start threshold is met
Don't zero previous Cal values until the update threshold is met
Mag_calib debug shows cal values at zero unltil they start being updated.
* beep ready, acc_calibration, and gyro_calibrated, for audio feedback
s
* improvements, thanks to feedback from PL
* change magCalEndTimeUs to magCalProcessEndTimeUs
* make process names more obvious
* use static boolean for initation and termination
* magCalProcessEndTimeUs to magCalEndTime
* LED ON, not toggle
* ensure that division is a float
* change logging, improve logic for recalibration
* Increase sensitivity, smooth center, higher max cogYawGain, renaming
* use non thrust vector maths, revise and add comments
* three factors to reduce ez_ef - speed, thrust vector, stick movement
re-naming and comments
* fix unittest, update comment
* normalize heading magnitude, add pitch and roll suppression factors
* ignore pitch factor on wings
because they 'normally' have forward velocity while flat
and their path while rolled usually does not change abruptly
* fix unit test
* fix dumb mistake blocking pitch suppression for non-wings
* fixes from review thanks PL
* refactor vector2normalize - thanks to karate
* Use X and Y for 0 and 1 in rMat
* Revert debugs, update comments from review
* lrintf for floats in debugs
* vector.h - implement some vector2* code as vector*
* Refactor IMU code
Move compass and Cog code into separate functions, separate gain
heuristics
- imuCalcGroundspeedGain
- imuCalcCourseErr
- imuCalcMagErr
Temporary refactor od imuDebug_GPS_RESCUE_HEADING, to be removed of optimized
* Simplify simulator build conditional compilation
* Adapt unittests to IMU after refactoring
* Maybe fix the test?
=
* Update src/main/flight/imu.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Update src/main/flight/imu.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Update src/main/flight/imu.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Update src/main/flight/imu.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Update src/main/flight/imu.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
---------
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Add support for GoerTek SPA006_003 barometer - based on DPS310
* Fix missing coefficients
* Fix tabs
* Fix per review Ledvinap
* Add missing coefs for pressure calculation
* Use chunk size of 9 bytes
* Fix MIN
* Update comment
* Be more explicit
* Update src/main/drivers/barometer/barometer_dps310.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
---------
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
Data registers are locked until last/unlock register is read. New data
are not stored when locked and DRDY is not set.
On bus error, read may finish early (not reading unlock register) and thus
cause driver lockup.
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
* Use intptr_t for casting void * to an integer
* Update src/main/cms/cms.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* ensure that return altitude is not negative with current height mode
* Update src/main/flight/gps_rescue.c
* Update src/main/flight/gps_rescue.c
* Update src/main/flight/gps_rescue.c
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Add uartWriteBuf() to improve performance
Optimised transmit buffer space check
Tidy up group duration calculations
Add uartBeginWrite, uartEndWrite and serialWriteBufNoFlush
Remove OSD grouping and check on the fly. Implement multi-pass artificial horizon rendering.
Fix rendering of camera frame
Fix stick overlay background rendering
Fix channel rendering
Fix ESC information rendering
Make Spec Prearm Display deterministic
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Override failsafe when MSP_OVERRIDE active
Fixes#13374
Set `rxSignalReceived = true` If MSP_OVERRIDE is active, so that it can be checked later. Otherwise, MSP controls are not considered in failsafe checks.
* Do override only if BOXMOODEOVERRIDE box is active as well
* Update msp.h
* Update msp.c
* Make sure that failsafe works when there is no signal from MSP
* Introduce rxMspOverrideFrameStatus to make a clear separation from rxMspFrameStatus
* Update src/main/rx/msp.c
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* add msp_override_failsafe
* Update src/main/pg/rx.h
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Update src/main/rx/rx.c
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Log the standard deviation of gyro cycle time in SCHEDULER_DETERMINISM and TIMING_ACCURACY
* Update src/main/scheduler/scheduler.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Update src/main/scheduler/scheduler.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* 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>
There was a report of glitches on the raw gyro output of an icm42688
which were resolved by reducing the the SPI clock speed. I don't think
a single report justifies changing the default speed or even adding a
CLI command to make it configurable, but it's relatively low impact to
allow the speed to be set at compile time by passing the value via
EXTRA_FLAGS and this will make it easier to see if changing the speed
solves any future cases that might turn up. Passing the original macro
name caused the cloud builds to fail, so this PR introduces a new, shorter
macro for setting the override value; ICM426XX_CLOCK
When passing a value for a macro through EXTRA_FLAGS for a manual compile
we need to use single quotes, e.g. to set 12MHz we could use
-D'ICM426XX_CLOCK=12000000'
When using the configurator to start a cloud build the value can be placed
in the "Custom Defines" text box as
ICM426XX_CLOCK=12000000
(or whatever value is desired)
change voltage detection method and is voltage stable flag to make it resilient and synced to update battery task
Co-authored-by: Eike Ahmels <ea@weslink.de>