Commit Graph

26680 Commits

Author SHA1 Message Date
Andrew Tridgell
d59caa95ad AP_Logger: avoid all opens of log files in main thread
this fixes a problem with sdcards where file open is very slow. It can
trigger a watchdog if it is slow enough. Peter and I hit this issue on
a pixracer today with a new sd card
2022-01-31 19:41:01 +09:00
Andrew Tridgell
f21e00a3ef AP_RCProtocol: raise SBUS frame gap
cope with UART input for newer SBUS receivers
2022-01-31 19:41:01 +09:00
Andrew Tridgell
da52e6fb74 AP_GPS: drop default GPS lag to 0.1s
this impacts UAVCAN GPS modules, which these days usually have at
least u-blox M8
2022-01-31 19:41:01 +09:00
Andrew Tridgell
4f6fe3389e AP_Filesystem: fixed a param ftp bug
if param count changes we need to zero the file size
2022-01-31 19:41:01 +09:00
Andrew Tridgell
288f4bfbb4 AP_NavEKF3: fixed gaps in EKF logging
timestamps should not be static as otherwise some lanes will not be
logged
2022-01-31 19:41:01 +09:00
Andrew Tridgell
b1da3467c4 AP_BattMonitor: fixed a segv with BATT_MONITOR=14
this causes a hang on boot on some boards
2022-01-31 19:41:01 +09:00
Mingchen Zhang
a17bbe2dfd AP_SmartAudio: fix a bug that would starve the lower priority thread, such as scripting. 2021-12-22 10:03:29 +09:00
Andrew Tridgell
96793c43c7 AC_AutoTune: limit autotune target rates to parameter limits
this makes it safer to autotune a large vehicle which may become
unstable at very high target rates
2021-12-22 10:03:29 +09:00
Andrew Tridgell
ad7caa39c3 AC_AttitudeControl: added get_ang_vel_yaw_max_rads() 2021-12-22 10:03:29 +09:00
Andrew Tridgell
4555b4dd81 AP_NavEKF3: Add missing covariance row reset 2021-12-22 10:03:29 +09:00
Andrew Tridgell
4a180f1f32 AP_InertialSensor: added support for IIM-42652 and ICM-40605 sensors
handle new Invensense v3 sensor types
2021-12-22 10:03:29 +09:00
Andrew Tridgell
7e543d7643 AP_InertialSensor: added support for ICM-20608-D sensor 2021-12-22 10:03:29 +09:00
Andrew Tridgell
02f671f33a AP_RCTelemetry: use have_serial when detecting
avoid find_serial() as it changes port options
2021-12-22 10:03:29 +09:00
Andrew Tridgell
f32bdbf6d6 AP_RangeFinder: use have_serial when detecting
avoid find_serial() as it changes port options
2021-12-22 10:03:29 +09:00
Andrew Tridgell
0e24b4ad44 AP_Proximity: use have_serial when detecting
avoid find_serial() as it changes port options
2021-12-22 10:03:29 +09:00
Andrew Tridgell
6728a7f681 AP_ADSB: use have_serial when detecting
avoid find_serial() as it changes port options
2021-12-22 10:03:29 +09:00
Andrew Tridgell
63ff047c16 AP_RCProtocol: fixed multi-protocol search with added uart 2021-12-22 10:03:29 +09:00
Andrew Tridgell
9984e56e53 AP_SerialManager: added have_serial() method
this checks if we have the protocol without setting the options on the
uart
2021-12-22 10:03:29 +09:00
Andrew Tridgell
4ee292ec5e AP_BoardConfig: disable STLink debug pins by default
this avoids leaving the debug pins in a state where they may be
vulnerable to ESD issues
2021-12-22 10:03:29 +09:00
Bill Geyer
814c52fbb7 AP_Motors: add spool down complete flag 2021-12-18 12:17:38 +09:00
Andrew Tridgell
3b25bc3edb AP_UAVCAN: use soft armed state for DroneCAN ARMING_STATUS
this fixes motortest on quadplanes, so that ESCs see an armed state
during the test
2021-12-18 12:17:38 +09:00
Andrew Tridgell
07cff1ce1b HAL_ChibiOS: use a 16 bit sysinterval_t on 16 bit timers
prevent mixed size subtraction errors
2021-12-18 12:17:38 +09:00
Peter Barker
0a1191ea1f AC_Fence: void index when overwriting fence count on fencepoint-close 2021-12-18 12:17:38 +09:00
Andrew Tridgell
50c14e62cf AC_Fence: fixed fence count for old upload
when uploading a fence that is smaller than an old fence we were not
correctly setting the inclusion fence size.
2021-12-18 12:17:38 +09:00
Andrew Tridgell
0a8bd53f5e APM_Control: make 2nd reduction of P smaller
this prevents severe P reductions when we get a small oscillation
glitch after we've already got the primary P gain
2021-12-18 12:17:38 +09:00
李孟晓
9814580149 CUAV-X7: Add servo voltage detection pin 2021-12-18 12:17:38 +09:00
Andrew Tridgell
7f84e296a6 AP_AHRS: fixed switching airspeed sensor based on EKF3 affinity (for 4.1)
we need to use the EKF selected airspeed sensor when the EKF is setup
to run a different sensor on each lane
2021-12-18 12:17:38 +09:00
Andrew Tridgell
2924ae76da AC_AttitudeControl: fixed limiting of throttle mix values
use constrain instead of reset to keep as much of user requested value
as possible

also raise limit for MIX_MIN to 0.5 after discussion with Leonard
2021-12-18 12:17:38 +09:00
Andrew Tridgell
f25918e170 RC_Channel: added QRTL mode on a switch 2021-12-18 12:17:38 +09:00
Andy Piper
de27e2ce25 AP_Vehicle: correct update_dynamic_notch_at_specified_rate() 2021-11-29 19:02:57 +09:00
Andy Piper
187a12103c AP_Vehicle: make sure notch update rate is configurable 2021-11-29 19:02:57 +09:00
Andy Piper
476713f9e3 Filter: set output slew rate to zero when max is zero. 2021-11-29 19:02:57 +09:00
Andy Piper
facd9614b8 AC_AutoTune: set slew rate to 0 while twitching 2021-11-29 19:02:57 +09:00
Andy Piper
273ed18d34 AC_PID: add slew_rate modifier 2021-11-29 19:02:57 +09:00
Hwurzburg
e3d7dd0776 AP_Motors: change H_COLL_HOVER to H_COL_HOVER for consistency 2021-11-29 19:02:57 +09:00
torsten
7f4e3aebe3 AP_FETtecOneWire: reset buf_used
if byte is missing due to electrical noise it can now resync
2021-11-29 19:02:57 +09:00
Dr.-Ing. Amilcar do Carmo Lucas
b9b988fff4 AP_FETtecOneWire: Do not write to the UART buffer if the previous transfer did not complete yet
Required for stable operation on F4 processors
2021-11-29 19:02:57 +09:00
Andy Piper
98c03b498d AP_HAL_ChibiOS: return correct value for tx_pending(). 2021-11-29 19:02:57 +09:00
Dr.-Ing. Amilcar do Carmo Lucas
c88d91bdc1 AP_HAL_ChibiOS: disable FETtec OneWire device driver 2021-11-29 19:02:57 +09:00
Dr.-Ing. Amilcar do Carmo Lucas
dda50fffed AP_Arming: call fettec prearm checks 2021-11-29 19:02:57 +09:00
Peter Barker
bc6b412083 SITL: add simulated FETtec ESC 2021-11-29 19:02:57 +09:00
Peter Barker
a62cd781be AP_HAL_SITL: add simulated FETtec ESC
do not overwrite FETTecESC telemetry data w/SITL ESC data
2021-11-29 19:02:57 +09:00
Peter Barker
da34e63374 AP_Math: move crc8_dvb_update into crc library 2021-11-29 19:02:57 +09:00
Pierre Kancir
f1ac606f98 SRV_Channel: add FETtec support 2021-11-29 19:02:57 +09:00
Pierre Kancir
551a1a800a AP_SerialManager: add FETtecOneWire protocol 2021-11-29 19:02:57 +09:00
Torsten Z
db197c0068 AP_FETtecOneWire: A serial-based ESC protocol with telemetry
Co-authored-by: Torsten Z <t.zunker@fettec.net>
Co-authored-by: Dr.-Ing. Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>

- uses ArduPilot's coding guidelines and naming conventions
- control motor speed
- Use the AP_ESC_Telem base class to:
  - copy ESC telemetry data into MAVLink telemetry
  - save ESC telemetry data in dataflash logs
  - use RPM telemetry for dynamic notch filter frequencies
  - sum the current telemetry info from all ESCs and use it as virtual battery current monitor sensor
  - average the voltage telemetry info and use it as virtual battery voltage monitor sensor
  - average the temperature telemetry info and use it as virtual battery temperature monitor sensor
- Obey the safety switch. Keeps motors from turning
- Use `SERVO_FWT_MASK` to define which servo output should be routed to FETtec ESCs
- Use `SERVO_FWT_RVMASK` to define the rotation direction of the motors
  - `SERVO_FWT_RVMASK` changes only take effect when disarmed
- Can be compiled when `HAL_WITH_ESC_TELEM` is disabled. No telemetry data will be available but it saves a lot of memory
- pre-arm checks:
  - Check that UART is available
  - check that the desired motor channels parameter (`SERVO_FWT_MASK`) is valid
  - check that the desired motor poles parameter (`SERVO_FWT_POLES`) is valid
  - check that the all desired ESCs are found and configured
  - check that the ESCs are periodically sending telemetry data
- re-init and configure an ESC(s) if not armed (motors not spinning) when
  - telemetry communication with the ESC(s) is lost
- adds a serial simulator (--uartF=sim:fetteconewireesc) of FETtec OneWire ESCs
- adds autotest (using the simulator) to:
  - simulate telemetry voltage, current, temperature, RPM data using SITL internal variables
  - test the safety switch functionality
  - test ESC power outages
  - test `SERVO_FWT_MASK` parameter validation
  - fly a copter over a simulated serial link connection
2021-11-29 19:02:57 +09:00
Andrew Tridgell
3a65df9bca hwdef: added alternative Durandal 20602 IMU 2021-11-29 19:02:57 +09:00
Andrew Tridgell
58a97a844e RC_Channel: added fixed wing autotune rc option 2021-11-29 19:02:57 +09:00
Andrew Tridgell
0fc47d793a AP_ADSB: bugfix vertical velocity sign was backwards 2021-11-29 19:02:57 +09:00
Andrew Tridgell
bd441ef816 AP_NavEKF3: fixed switch to non-zero primary on disarm
if EK3_PRIMARY is not zero then we were not switching to it when
disarmed
2021-11-29 19:02:57 +09:00