Commit Graph

30745 Commits

Author SHA1 Message Date
Andrew Tridgell 022edec340 AP_Scripting: fixed float register save/restore in setjmp/longjmp
the register save must happen before the setjmp() call, which means
outside of the LUAI_TRY() macro. We also should be saving all 32
floating point registers
2024-05-29 10:14:20 +10:00
Peter Barker 99cac83d1e AP_GPS: correct uBlox M10 configuration on minimised boards 2023-11-14 10:34:21 +11:00
Andrew Tridgell ac69667206 GCS_MAVLink: fixed corruption of FTP reply component ID
this led to not being able to do FTP transfers with
support.ardupilot.org unless MissionPlanner used the same component ID
as the support engineer GCS
2023-09-04 16:27:01 +10:00
Andrew Tridgell c7fd1540df AP_BattMonitor: fixed reset_remaining() for INAxxx and LTC2946
these can use the generic reset_remaining() call in the backend
2023-08-17 08:44:37 +10:00
Andrew Tridgell 76483a51f8 AP_GPS: fixed RTK injection when first module is a BASE
this is a partial backport of #24132 which fixes RTK injection when
the 1st GPS module is a DroneCAN RTK rover. Without this change RTCM
injection for RTK fix on the base will only work if it happens to come
up as the first module
2023-08-17 08:44:37 +10:00
Andrew Tridgell 5bf4e3b8a3 AP_Arming: fixed auto-enable of fence with forced arm
when a user forced armed and had FENCE_AUTOENABLE=3 for enable on
arming then the fence did not enable
2023-08-17 08:44:37 +10:00
bugobliterator b6d1a74b24 AP_Scripting: stash and restore FPU register context in LUAI_TRY
this fixes an issue where a lua library function triggers an exception
after it does a math operation which changes the floating point
registers on M7 MCUs (such as STM32H7). An example is math.random()
which calls math_random(), which pre-calculates a double value before
checking if the arguments to the call are valid. When it then checks
and finds invalid values the exception longjmp does not restore the
floating point registers.
2023-08-17 08:44:37 +10:00
Andrew Tridgell 5df9968fee AP_NavEKF3: fixed race condition in updateFilterStatus()
filter status was initially set to zero then updated. This interacts
with the IMU filtering code which checks filter status from a
different thread to determine active_EKF_type(). When the race
condition is hit then the IMU we are running notch filters on changes
for a single sample, causing a notch filter glitch
2023-08-17 08:44:37 +10:00
Andrew Tridgell bbc97c8bc6 AP_BoardConfig: fixed documentation of safety options
on and off were reversed
2023-05-26 17:45:55 +10:00
Paul Riseborough 7f0fd004e8 AP_NavEKF3: Increase delta velocity bias state process noise
Required due to state variance collapse on ground with some systems using RTK GPS.
2023-05-24 19:58:33 +10:00
Paul Riseborough 8cd7a035e2 AP_NavEKF3: Strengthen recovery from bad delta velocity bias learning 2023-05-24 19:58:33 +10:00
Paul Riseborough 24a7a2ab46 AP_NavEKF3: Increase default value of EK3_ABIAS_P_NSE
This is required because some hardware setups with RTK GPS have experienced a collapse of the delta velocity state variances.
2023-05-24 19:58:33 +10:00
Paul Riseborough df737449e0 AP_NavEKF3: Retune and fix delta velocity bias state variance protection 2023-05-24 19:58:33 +10:00
Andy Piper 06029854f1 AP_NavEKF: ensure gyro biases are numbers
avoid errors during compass mot
2023-05-24 19:58:33 +10:00
Peter Barker 29b4bbb58f AP_EFI: use uint16_t to store offset
prevents infinite loop if there are exactly 255 bytes ready to read
2023-05-24 19:58:33 +10:00
bugobliterator bd351f452a AP_HAL_ChibiOS: add CubeOrangePlus-bdshot hwdef 2023-05-24 19:58:33 +10:00
Peter Barker bd3163a235 AP_Mount: rename local _chan to chan in Gremsy methods
based on PR feedback
2023-05-24 19:58:33 +10:00
Peter Barker 0df159d231 GCS_MAVLink: add method to get link (not just channel number) for mavtype and compid 2023-05-24 19:58:33 +10:00
Peter Barker e84aa3b13a AP_Mount: correct double-mapping of port to channel number
set_message_interval takes a port number, not a channel number (it was originally written as an internal function, after all).  Before this patch we were double-mapping from one to the other.  That works so long as the port you are mapping also corresponds to the chanel number - which it will, for example, if you are using serial2 with both serial0 and serial1 also set to mavlink.  If you set serial5_protocol to 2 an attempt to use it for controlling a gremsy it will *not* work because we map into backwards twice.
2023-05-24 19:58:33 +10:00
Reilly Callaway 74c99c155d AP_PiccoloCAN: Fix ESC voltage and current telem scaling 2023-05-24 19:58:33 +10:00
bugobliterator 22ddbfd138 AP_HAL_ChibiOS: add HAL_WITH_MCU_MONITORING define for H757 2023-05-24 19:58:33 +10:00
Randy Mackay 211beb6d8c AP_Mount: servo mount yaw handling fix 2023-05-24 19:58:33 +10:00
Andrew Tridgell bdedda1446 AP_ICEngine: fixed a bug engine control when running
if you have a mission item for engine control with delayed start at
height and the engine is already running them it would put the ICE
subsystem into a state where it would no longer start the engine

It was actually 2 bugs:

 - an engine control to do a height delayed start should be ignored if
   the engine is already running. This prevents an engine control to
   start the engine from stopping the engine

 - a start_chan high should always try to start the engine
   immediately, even if in the wait state
2023-05-23 15:23:00 +10:00
Andrew Tridgell d651395891 AP_RCProtocol: return true on initial protocol detection
we need to tell the IO firmware that a byte was consumed when we first
detect a protocol as otherwise the next bad byte on DSM will lock us
on the DSM port
2023-05-23 15:21:51 +10:00
Andrew Tridgell 816f3d1124 AP_IOMCU: fixed issue with not regaining RC input
this fixes an issue where when you lose R/C input on IOMCU that you
may not regain it when R/C comes back.

The issue stems from us still processing the DSM uart when we are
using the SD3 "SBUS" uart for RC input, and still doing the switch of
the SD3 config every 2 seconds.

When we are not searching for a new protocol we should not be changing
UART config
2023-05-23 15:21:51 +10:00
bugobliterator 3c1978b27a AP_InertialSensor: fix hardfault in BatchSampler 2023-04-12 19:10:26 +10:00
Andy Piper 9f916f084e AP_HAL_ChibiOS: ensure the rcout TIM_UP DMA request source is re-instated after cancellation
This fixes a bug in bdshot whereby dma cancellation could result in the wrong DMA channel
being used for dshot output and hence motors stopping
2023-03-26 09:11:08 +11:00
Andy Piper c34f2b04c6 AP_HAL_ChibiOS: ensure that DMA source is correct on DMA send for rcout 2023-03-26 09:10:55 +11:00
Andrew Tridgell b864c77fa6 HAL_ChibiOS: switched to 64 bit maths for DShot timings
this fixes a timer wrap bug at 71 minutes after boot that impacts
bdshot
2023-03-24 13:41:10 +11:00
Andrew Tridgell e537eb925c AP_AHRS: fixed earth frame accel for EKF3 with significant trim 2023-02-26 10:57:52 +11:00
Andrew Tridgell a61a3e19c5 AP_Scripting: disable PWMSource in scripts for 4.3.4
this avoids the interrupt handling bug. Proper fix in 4.4.x
2023-02-24 17:27:30 +11:00
Andy Piper 9db9073dc4 AP_HAL_ChibiOS: enable VTX power on MambaF405 2022 2023-02-22 20:32:10 +11:00
Iampete1 f61d482fde AP_TECS: protect against low airspeed in reset 2023-02-20 16:07:18 +11:00
Andrew Tridgell e7f79f235d AP_GPS: don't try and configure M10 options on non-M10 GPS
this fixes a pre-arm failure "GPS 1 failing configuration checks" on
non-M10 GPS modules, including AP_Periph

it also adds the ublox unconfigured msgs to the DroneCAN GNSS.Status
errors field for easier diagnosis of this type of issue in the future
2023-02-18 09:20:25 +11:00
Andy Piper 7b9b9b6536 AP_HAL_ChibiOS: probe external compasses on foxeer reaper f745 2023-02-18 08:26:02 +11:00
Andy Piper dfb0716fea AP_HAL_ChibiOS: enable VTX power on MambaH743v4 2023-02-18 08:26:02 +11:00
bugobliterator 746314785e AP_HAL_ChibiOS: add support for CubeOrangePlus BG edition 2023-02-14 16:26:04 +11:00
Andrew Tridgell d6abbd64d3 AP_IOMCU: fixed an issue with double reset of IOMCU
if the IOMCU resets twice in quick succession then the code that
restores the safety state while flying can fail, leading to the
aircraft trying to continue flying with safety on

This results from two issues:

- a race in handling the last_safety_off variable
- the fact that plane sets the soft_armed state based on safety state
2023-02-12 17:34:06 +11:00
Bob Long bc4db71867 AP_Baro: fix bug in alt error arming check
get_altitude_difference already subtracts MSL altitude
2023-02-10 06:45:20 +11:00
Andrew Tridgell 50b823142e RC_Channel: disable FFT notch tune feature
See https://github.com/ArduPilot/ardupilot/pull/22686
2023-02-10 06:45:20 +11:00
Andy Piper 93ec74350c AP_HAL: ensure the DSP tracked peaks do not overflow the buffer 2023-02-10 06:45:20 +11:00
rishabsingh3003 cca3b2f04e AC_Precland: Add option to resume precland after manual override 2023-02-10 06:45:20 +11:00
Andrew Tridgell 82552a9b34 AP_CANManager: add an output buffer for MAVCAN
this fixes firmware update of peripheral nodes using MAVCAN
2023-02-10 06:45:20 +11:00
Peter Barker 553e320915 AP_Logger: avoid logging duplicate FMT/UNIT/FMTU/MULT messages
Failing due to being out of time meant we wouldn't incremement the counter, even though we'd emitted the item.

it is important we try to send something, so move this check to be after we increment whichever counter we are using.
2023-02-10 06:45:20 +11:00
Andrew Tridgell 9be7efb706 AP_OpenDroneID: set EMERGENCY status on crash or chute deploy
RemoteID modules are required to set EMERGENCY status on uncontrolled
descent or crash. This fixes our implementation to do that, either via
existing vehicle crash checking code or via a parachute release
2023-02-10 06:45:20 +11:00
Andrew Tridgell 4d002e5895 AP_Compass: fixed zero compass diagonals
this fixes a regression from 4.2 to 4.3.

previously we automatically set the diagnoals to 1,1,1 if they were
0,0,0. We don't do that any more. I was helping a user who had copied
an old config with 0,0,0 for diagonals and did not understand two
things:

- the compass did not work in 4.3
- large vehicle mag cal didn't work
2023-02-10 06:45:20 +11:00
Randy Mackay d946fc59da GCS_MAVlink: send_autopilot_state_for_gimbal_device sends ef z-axis rate target 2023-02-10 06:45:20 +11:00
Randy Mackay 53dd638826 AP_Vehicle: replace get_rate_bf_targets with get_rate_ef_targets 2023-02-10 06:45:20 +11:00
Randy Mackay 11af0ea147 AC_AttitudeControl: add get_rate_ef_targets accessor 2023-02-10 06:45:20 +11:00
Andrew Tridgell b642ccf131 AP_RCProtocol: on IOMCU don't allow protocol to change once detected
this prevents a crash where in-flight noise causes an incorrect
protocol detection, such as DSM for a SBUS input
2023-02-10 06:45:20 +11:00