Commit Graph

29522 Commits

Author SHA1 Message Date
Randy Mackay 23ad8b23ac AP_Common: clarify Location::get_distance is horizontal only 2022-04-26 18:37:54 +09:00
Randy Mackay da961948db AP_RPM: pre-arm displays gpio vs servo_ch conflict 2022-04-26 15:19:28 +09:00
Randy Mackay d8219c2200 AP_Relay: pre-arm displays gpio vs servo_ch conflict 2022-04-26 15:19:28 +09:00
Randy Mackay 846637e3e9 AP_Button: pre-arm displays gpio vs servo_ch conflict 2022-04-26 15:19:28 +09:00
Randy Mackay 1ee01577f6 AP_HAL: add GPIO::pin_to_servo_channel method 2022-04-26 15:19:28 +09:00
Randy Mackay 588a75a883 AP_HAL_ChibiOS: GPIO comment removes mention of BRD_PWM_COUNT 2022-04-26 15:19:28 +09:00
Randy Mackay b6e86eee49 AP_IOMCU: valid_GPIO_pin checks if pin configured for GPIO 2022-04-26 15:19:28 +09:00
Randy Mackay caa2ed3294 AP_IOMCU: convert_pin_number leaves input untouched on failure 2022-04-26 15:19:28 +09:00
Iampete1 d621910a59 AP_AHRS: remove unneeded get_position wrapper 2022-04-26 10:28:28 +10:00
Iampete1 6e3cb7efdc AP_Scripting: support true aliases 2022-04-26 10:28:28 +10:00
Iampete1 352c48233e AP_Scripting: generator: rename alias keyword to rename 2022-04-26 10:28:28 +10:00
Iampete1 4fe335c2d0 SITL: tests: only build on sitl 2022-04-26 10:26:29 +10:00
Iampete1 d1aa7aa062 SITL: add battery model evaluation example 2022-04-26 10:26:29 +10:00
Iampete1 1111ca4867 SITL: SIM_Frame: load_frame_params and model to protected, allow USE_PICOJSON override 2022-04-26 10:26:29 +10:00
Iampete1 f0c17f0e49 SITL: use AP_SIM_ENABLED define more 2022-04-26 10:26:29 +10:00
Iampete1 c58404beac AP_HAL_Linux: allow stop_clock in examples 2022-04-26 10:26:29 +10:00
Iampete1 2d2165936a AP_InertialSensor: use pitch to guess which axis the user is trying to calibrate, warn about Q_TRIM_PITCH on plane 2022-04-26 10:03:30 +10:00
Iampete1 6c24a5ff37 AP_AHRS: add method to get view 2022-04-26 10:03:30 +10:00
Iampete1 04fdfea74a AP_AHRS_View: add method to get pitch trim and note on rotation 2022-04-26 10:03:30 +10:00
Randy Mackay 902b895aef AP_Arming: add pre-arm check of disabled servo channels 2022-04-25 15:55:54 +09:00
Andy Piper cc6b907a2f SRV_Channel: observe disabled_channels when enabling channels
setup disabled_channels observing channels that are implied to be digital
allow none to be a valid channel function once again
2022-04-25 15:55:54 +09:00
Andy Piper 119cde79a7 AP_HAL_ChibiOS: determine presence of disabled channels based on digital channels in a group 2022-04-25 15:55:54 +09:00
Andy Piper 8ccc84beab AP_HAL: add accessor for disabled channels to RCOutput 2022-04-25 15:55:54 +09:00
Andy Piper 03aeca22ec AP_BLHeli: keep a record of disabled motors 2022-04-25 15:55:54 +09:00
Peter Barker 7d10192550 SITL: do not write post locations files unless on HAL_BOARD_SITL
Nobody's going to be retrieving these from SD card so they can visualise
things...
2022-04-25 11:20:26 +10:00
Peter Barker 1d96dfe7c1 SITL: exclude method declarations based on USE_PICOJSON
Fixes SimOnHardware build
2022-04-25 11:20:26 +10:00
Randy Mackay bfd168dd4f AP_RPM: avoid attach interrupt retry and spam to GCS if PIN = -1 2022-04-25 08:59:03 +09:00
Henry Wurzburg 8556edc5ad AP_RPM: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 93bdae50ab AP_Relay: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 4a2aeb03f3 AP_RangeFinder: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg a8ff5ca2b9 AP_Notify: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg cc51e9f995 AP_LandingGear: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 1e7fc17af3 AP_Camera: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 958e36f80b AP_Button: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 9d6f9bf907 AP_AdvancedFailsafe: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Randy Mackay 291d709409 AP_NavEKF: GSF comment typo fix 2022-04-22 15:24:11 +09:00
xianglunkai c853694f7a AP_Proximity_Boundary_3D:correction of miswriting 2022-04-21 08:41:07 +09:00
Iampete1 c31e54b5bb AP_CustomRotations: fix param refrencing 2022-04-20 18:25:57 +10:00
Andy Piper 6355934a36 AP_HAL: add bitwidth hal definitions.
revert to original bitwidths for neopixel and profiled
add proper neopixel test that observes spec'ed timings
2022-04-20 17:39:29 +10:00
Andy Piper df35cb6243 AP_HAL_ChibiOS: move bitwidths to AP_HAL 2022-04-20 17:39:29 +10:00
Andy Piper 89ea5dc12c AP_RCProtocol: flush CRSF telemety writes 2022-04-20 17:38:08 +10:00
Andy Piper eaa414bb0c AP_HAL_ChibiOS: implement pseudo-flushing for buffered UARTS 2022-04-20 17:38:08 +10:00
yuri-rage eaa62fb490 AP_HAL: remove BRD_PWM_COUNT reference 2022-04-20 07:57:57 +09:00
Andrew Tridgell e73f868fc0 HAL_ChibiOS: disable fatal exceptions for DMA errors
this zeros-watchdog was caused by a SPI DMA error on STM32F405:

  https://discuss.ardupilot.org/t/crash-with-4-2-0-beta-and-4-3-0-daily-bdshot/83297

we had incorrectly left these internal errors enabled when asserts
were not enabled. That led to a osalSysHalt()

without these we get an spi_fail internal error, caught by the
SPIDevice code
2022-04-19 21:52:53 +10:00
Andrew Tridgell ed1a5c086b AP_Logger: removed annoying message on missing logs 2022-04-19 11:45:26 +10:00
Andrew Tridgell 93b55e367e AP_Logger: fixed log listing with gap, and EKF error on log list
this fixes two issues:

The first issue that if we are missing a log file in the middle of the
list then it was not possible to download recent logs, as we get the
incorrect value for total number of logs. This happened for me with
107 logs, with log62 missing from the microSD. It would only show 45
available logs, so the most recent logs could not be downloaded.

The second issue is that get_num_logs() was very slow if there were a
lot of log files in a directory. This would cause EKF errors and ESC
resets. Using a opendir/readdir loop is much faster (approx 10x faster
in my testing with 107 logs on a MatekH743).
2022-04-19 11:45:26 +10:00
Peter Barker 348f0ad590 SITL: add SIM_SONAR_ROT, use it for measuring horizontal distances 2022-04-19 10:26:10 +10:00
xianglunkai f7f053191a AP_Logger: must set default fd = -1 2022-04-19 10:00:32 +10:00
Iampete1 a7abfeeb4a SITL: allow cutom motor postions and thrust vectors to be specified 2022-04-19 09:43:51 +10:00
Iampete1 c4518e5cb7 SITL: motor: use postion and thrust vector 2022-04-19 09:43:51 +10:00
Iampete1 47f327b500 SITL: allow Vector3f inertia to be set via JSON 2022-04-19 09:43:51 +10:00
Iampete1 6272dc33dd SITL: move moments inertia to frame property 2022-04-19 09:43:51 +10:00
Iampete1 7936f3bb0a SITL: move motor related constants to motor object 2022-04-19 09:43:51 +10:00
Andrew Tridgell db14ba46dc AP_InertialSensor: call notch param update with semaphore held 2022-04-19 09:39:03 +10:00
Andrew Tridgell bccca9ed2e AP_GyroFFT: added defaults for FFT with no notch
allow for testing with FFT enabled, and defaulting number of
frequencies to look for
2022-04-19 09:39:03 +10:00
Andrew Tridgell dff0e5ecc1 AP_InertialSensor: fixed the last notch values to be per-instance
thanks to Andy for noticing this
2022-04-19 09:39:03 +10:00
Andrew Tridgell e0bb717231 AP_GyroFFT: skip disabled notches 2022-04-19 09:39:03 +10:00
Andrew Tridgell 184f84f4ee AP_InertialSensor: don't update disabled notches 2022-04-19 09:39:03 +10:00
Andrew Tridgell 492e203fd2 AP_GyroFFT: allow for 2 FFT based notches 2022-04-19 09:39:03 +10:00
Andrew Tridgell 301c56d30a AP_Vehicle: implement common harmonic notch update code 2022-04-19 09:39:03 +10:00
Andrew Tridgell e6b56ce9ba AP_RPM: use HarmonicNotch class 2022-04-19 09:39:03 +10:00
Andrew Tridgell 86db91e3b4 AP_GyroFFT: use HarmonicNotch class 2022-04-19 09:39:03 +10:00
Andrew Tridgell ddab3f02ca AP_Arming: use HarmonicNotch class 2022-04-19 09:39:03 +10:00
Andrew Tridgell e2e1e74da5 AP_InertialSensor: switch to HarmonicNotch class
this makes the logic much easier to follow, without indexes into
arrays
2022-04-19 09:39:03 +10:00
Andrew Tridgell d7d04bc7cf Filter: removed parameters from the old notch filter
saves some flash space
2022-04-19 09:39:03 +10:00
Andrew Tridgell 782e4887bc AP_GyroFFT: only allow one harmonic notch filter to be linked to FFT 2022-04-19 09:39:03 +10:00
Andrew Tridgell ae1e9e06c1 AP_Arming: added arming check for conflicting notch modes 2022-04-19 09:39:03 +10:00
Andrew Tridgell 1cd1519a4f Filter: clarify meaning of 1st harmonic 2022-04-19 09:39:03 +10:00
Andrew Tridgell 7272a29b7b Filter: added RPM2 harmonic notch type 2022-04-19 09:39:03 +10:00
Andrew Tridgell a2fc4d909d AP_Vehicle: support two full harmonic notch filters 2022-04-19 09:39:03 +10:00
Andrew Tridgell ac50d3cc9f AP_RPM: support two full harmonic notch filters 2022-04-19 09:39:03 +10:00
Andrew Tridgell e67d9b4179 AP_InertialSensor: support two full harmonic notch filters 2022-04-19 09:39:03 +10:00
Andrew Tridgell 622ad2a088 AP_GyroFFT: support two full harmonic notch filters 2022-04-19 09:39:03 +10:00
Joshua Henderson 7cc2382a78 AP_AHRS_DCM: NFC comment on check_matrix() normalization reset 2022-04-19 09:27:00 +10:00
Randy Mackay 9d73cfb28f AP_NavEKF: GSF logging in deg from 0 to 360 2022-04-19 08:56:40 +10:00
Peter Barker 55517450bc AP_Scripting: correct script restart send_text message 2022-04-18 12:50:18 +01:00
Bill Geyer b8690ba109 AC_AutoTune: fix gain determination fail logic 2022-04-18 18:00:20 +09:00
Bill Geyer 8e35fd2658 AC_AutoTune: use failed state to exit 2022-04-18 18:00:20 +09:00
Bill Geyer b4059d3745 AC_AutoTune: use generic load gain method to save flash 2022-04-18 18:00:20 +09:00
Walter Dunckel b0c3fae662 AP_HAL_ChibiOS: add support for NucleoH755 board
This addition allows for cheap testing of a STM32H755 (dual core). This borrows the setup file STM32H757xx.py, as there are almost no changes between the chips. CRSF in and out, gps, ICM20948, BMP388, settings saving to on board flash all working.

PWM(3) pin change

Changed PWM(3) pin to one exposed on connector
2022-04-18 14:53:14 +10:00
QioTek 9909499a81 AP_HAL_ChibiOS: ICM4 series sensors as an alternative with IMU3.
AP_HAL_ChibiOS:  ICM4 series sensors as an alternative with IMU3.
2022-04-18 11:01:14 +10:00
Andrew Tridgell 9f58c73780 hwdef: Added MatekL431-Rangefinder 2022-04-17 17:40:04 +10:00
Peter Barker bca4fc9608 hwdef: disable serially-attached actuators on SkyViper 2022-04-17 09:10:10 +10:00
Andrew Tridgell 95ae150a21 AP_InertialSensor: catch FIFO overruns on BMI088
we have seen errors where the BMI088 gets out of sync, so that the 3
axes are rotated. The data is shifted by 4 bytes, so that X=Z, Y=X
and Z=Y

this changes the BMI088 to "stop on full" mode, which is what Bosch
use in their example drivers, and also catches FIFO overrun events and
triggers a full FIFO reset. This should fix the problem with the FIFO
sync
2022-04-16 19:24:16 +10:00
Andrew Tridgell 973befa5d8 GCS_MAVLink: prevent devop larger than buffer 2022-04-16 19:24:16 +10:00
Andrew Tridgell 4c9a851fc6 SITL: update for changed INS_NOTCH parameter name 2022-04-16 08:14:06 +10:00
Andrew Tridgell f5c3b56426 AP_HAL_ChibiOS: update for changed INS_NOTCH parameter name 2022-04-16 08:14:06 +10:00
Andrew Tridgell ab5e8419d8 AP_InertialSensor: move INS_HNTC2 to a new parameter table ID 2022-04-16 08:14:06 +10:00
Willian Galvani 6e326ee912 AC_PosControl_Sub.h: do not use our own input_vel_accel_z 2022-04-13 16:23:55 -03:00
mateksys 16a8400f85 AP_HAL_ChibiOS:add icm42688p as substitution 2022-04-13 20:59:07 +10:00
Peter Barker e788941f70 hwdef: turn off various GPS backends on on AP_Periph 2022-04-13 18:23:51 +10:00
Peter Barker ccca0e8e0f AP_GPS: stop using HAL_BUILD_AP_PERIPH to gate GPS backends 2022-04-13 18:23:51 +10:00
Andrew Tridgell cdfa682be0 AC_AttitudeControl: use deadzone for pitch
when pitch for nose-in and tail-in is enabled we should use the
deadzone
2022-04-13 18:19:02 +10:00
Andrew Tridgell f4548daa5a AC_AttitudeControl: added an option for pitch weathervaning
when nose-in or tail-in, if the aircraft has significant pitch
asymmetry in hover then we would spin around in no wind if we use
pitch as an input

this makes pitch input for nose-in and tail-in optional and off by
default to preserve existing behaviour
2022-04-13 18:19:02 +10:00
Peter Barker e5c40d0e54 AP_Logger: move logging of Beacon into Beacon library 2022-04-13 16:22:19 +10:00
Peter Barker bbcf0a0968 AP_Beacon: move logging of Beacon into Beacon library 2022-04-13 16:22:19 +10:00
Peter Barker a62e08ee40 AP_Proximity: move logging of Proximity into Proximity library 2022-04-13 16:22:19 +10:00
Peter Barker 795427e574 AP_Logger: move logging of Proximity into Proximity library 2022-04-13 16:22:19 +10:00
Peter Barker f023f0443d GCS_MAVLink: move logging of RPM into RPM library 2022-04-13 16:22:19 +10:00
Peter Barker ab86dafda7 AP_RPM: move logging of RPM into RPM library 2022-04-13 16:22:19 +10:00
Peter Barker 23f2055330 AP_Logger: move logging of RPM into RPM library 2022-04-13 16:22:19 +10:00
Peter Barker c09f56112e AP_Arming: move logging of RPM into RPM library 2022-04-13 16:22:19 +10:00
Peter Barker 04cc45de65 hwdef: remove non-ascii character from hwdef
Killing the custom build server
2022-04-13 12:14:17 +10:00
Randy Mackay 375ab84e56 SITL: correct suggestion to user re wind estimatation param value
EK3_MCOEF becomes EK3_DRAG_MCOEF
EK3_BCOEF_ becomes EK3_DRAG_BCOEF_
2022-04-13 07:57:35 +09:00
Randy Mackay 002bcca7f9 AP_Baro: correct param description refering to EK3 wind est params
AP_NavEKF3: correct wind estimate param descriptions

mention of EK3_BCOEF_X/Y becomes EK3_DRAG_BCOEF_X/Y
2022-04-13 07:57:35 +09:00
Randy Mackay 37e9ce3fb7 AP_NavEKF3: correct wind estimate param descriptions
EK3_MCOEF becomes EK3_DRAG_MCOEF
EK3_BCOEF_X/Y becomes EK3_DRAG_BCOEF_X/Y
2022-04-13 07:57:35 +09:00
Peter Barker e0a96eaa83 AP_GPS: remove more code based on GPS_MOVING_BASELINE 2022-04-12 11:20:01 +10:00
Peter Barker aa72559d00 AP_GPS: tidy initialisation of sending blobs 2022-04-12 11:20:01 +10:00
Peter Barker 4b6590734a AP_GPS: move gps blob initialisation out to method 2022-04-12 11:20:01 +10:00
Andy Piper 13464ebb20 AP_RCTelemetry: check EKF checks against failsafe defaults. 2022-04-12 11:14:44 +10:00
Peter Barker 961cf659d9 SRV_Channels: stop gating FETTECONEWIRE parameters on HAL_BUILD_BUILD_AP_PERIPH
This would break fettech on AP_Periph.  The define is off by default on
AP_Periph.
2022-04-12 10:35:01 +10:00
Peter Barker a5be9d0f18 SRV_Channel: allow RobotisServo protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker 9001058d12 AP_RobotisServo: allow RobotisServo protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker 73b86ccc04 AP_HAL_ChibiOS: allow RobotisServo protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker 3339d96573 SRV_Channel: allow Volz protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker d97c847966 AP_Volz_Protocol: allow Volz protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker 2e20e26403 AP_HAL_ChibiOS: allow Volz protocol to be compiled out 2022-04-12 10:35:01 +10:00
Peter Barker 04a64a20fa AP_NavEKF2: remove instance id from EK2 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-12 10:25:29 +10:00
Peter Barker c1c18331f9 AP_AHRS: remove instance id from EK2 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-12 10:25:29 +10:00
Henry Wurzburg c770a2bd58 hwdef: minimal GPS support for Flywoo baords 2022-04-12 10:04:57 +10:00
Andy Piper 1a843f659f AP_HAL_ChibiOS: bdshot version of MatekF765-Wing 2022-04-12 10:03:11 +10:00
Andy Piper 29e8f96275 AP_InertialSensor: move frontend update into ramfunc. 2022-04-12 09:19:45 +10:00
Andy Piper 2d62da9298 AP_FlashIface: make sure XIP flash is ready before returning 2022-04-12 09:19:45 +10:00
Andy Piper e89eb34d55 AP_HAL_ChibiOS: add I2C and compass backend to drivers in memory on H750
move more of EKF into memory on H750
move rc handling into memory on H750
disable double math on SPRacing H7
2022-04-12 09:19:45 +10:00
Michel Pastor f4a3a65797 hwdef: add revo-mini-sd 2022-04-12 09:17:03 +10:00
Andrew Tridgell 0f230eec5a AP_Scripting: increase default heap size in SITL and on F7/H7
if we have 500k or more memory then use 100k heap for Lua, making
setup easier
2022-04-11 17:02:04 +10:00
Lokesh Ramina 729466358d hwdef: added CarbonixF405 AP_Periph node
added hwdef files for CarbonixF405 board
2022-04-11 12:58:48 +10:00
Peter Barker a9b90a3b5a AP_HAL: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 0b16c4063e AP_NavEKF3: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 65b00bcc2a AP_NavEKF2: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker df91effa4e AR_Motors: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 224c32edf0 AR_WPNav: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 6a0250bc85 AP_Winch: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker c452002ae4 AC_PrecLand: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker d319370080 RC_Channel: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker a10ed0e87f PID: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker c829b109bf AP_Vehicle: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker e1dd53eb17 AP_TECS: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker ce312a3750 AP_Scripting: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker df60565769 AP_Mission: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker dd589934cc APM_Control: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 0c32eeca2e AP_Logger: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 8ec0eed749 AP_Landing: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 6a97056736 AP_Camera: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker d73cd7d0e3 AC_WPNav: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker e5e4dee708 AC_PID: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 66f0a0f42b AC_AutoTune: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker c1e776fc46 AC_AttitudeControl: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Andy Piper e0adbb978e AP_HAL_ChibiOS: fix dshot timeout bug where the elapsed pulse is longer than the send time
dshot timeouts should be no longer than the pulse interval
use correct timestamp for dmar send time
2022-04-07 07:21:21 +10:00
Peter Barker b80cc9a610 AP_Logger: remove old, unused log metadata for MON 2022-04-06 21:54:15 +10:00
Peter Barker 00de10d796 AP_HAL_ChibiOS: use structure for writing out WDOG,MON message 2022-04-06 21:54:15 +10:00
Peter Barker a546bc797c AP_Logger: source IDs and structs from HAL_ChibiOS 2022-04-06 21:54:15 +10:00
Peter Barker adf9c21d48 AP_NavEKF3: remove instance id from EK3 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-06 17:36:05 +10:00
Peter Barker b762aac6ce AP_AHRS: remove instance id from EK3 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-06 17:36:05 +10:00
Peter Barker c2112565b5 AP_GPS: remove redundant _blend_mask check
filling in of these values is already gated by checking the mask
2022-04-06 17:31:42 +10:00
Peter Barker 4332ed8f36 AP_GPS: use sq function for squaring numbers 2022-04-06 17:31:42 +10:00
Iampete1 2589fa1b3b AP_GPS: UBlox: add TIM-TM2 logging 2022-04-06 17:22:30 +10:00
Iampete1 0a0178988d AP_Logger: add 1e-9 log multiplyer 2022-04-06 17:22:30 +10:00
Peter Barker 717edae9ef hwdef: fix redefinition of Solo values in CubeSolo/CubeGreen-Solo
adding fmuv3 into the list of firmwares we might run on Solo was a late
addition to the recent PRs.  It was forgotten that the inheritance would
cause a redefition failure
2022-04-06 16:38:23 +10:00
Andrew Tridgell 37d8feb928 hwdef: disable GPS drivers on low flash boards
only leave uBlox enabled on boards that are running out of flash
2022-04-06 14:14:07 +10:00
Andrew Tridgell c9bbfd94c0 hwdef: set AUTOBUILD_TARGETS None on eval boards 2022-04-06 14:13:44 +10:00
李孟晓 2d37bc9c78 AP_HAL_ChibiOS: CUAV-Nora: add usart3 support 2022-04-06 11:04:08 +10:00
Andrew Tridgell 06b6632f30 AP_Logger: fixed @SYS file logging
the key fix is the reset of the fd to -1. Without that fix we only
ever log @SYS/uarts.txt

The timing change is needed to get the files out in a reasonable
time. The function is actually getting called at 100Hz or less, not
1kHz (measured on MatekH743 copter at 400Hz). So we need to run it
faster to get the files logged in a reasonable time
2022-04-06 07:46:29 +10:00
Peter Barker d2c3c578c2 hwdef: add hwdef for CubeOrange-SimOnHardware 2022-04-05 18:10:14 +10:00
Andrew Tridgell 392e80001f HAL_ChibiOS: fixed H7 flash storage
this fixes the flash re-init problem when flash storage fills on
H7. It was caused by rejecting writes where one or more of the 32 byte
chunks was not all 0xff but was equal to the current data. That
happens when writing to the sector header in AP_FlashStorage

it also moves the interrupt disable inside the loop to allow for
other interrupts to run between blocks
2022-04-05 17:46:52 +10:00
Andrew Tridgell 093acc1577 HAL_ChibiOS: use 16 byte lines for flash storage on H7
this halves the number of flash writes needed, and makes flash storage
twice as space efficient on H7

On H7 we need to write 32 bytes at a time to flash, which corresponds
to 30 bytes of data in AP_FlashStorage. By using a 16 byte storage
line we don't waste as much space
2022-04-05 17:46:52 +10:00
Andrew Tridgell 055ee6ba82 HAL_ChibiOS: increase monitor thread stack by 512
this is needed to ensure that the log writes of MON and WDOG don't
overflow monitor thread stack
2022-04-05 17:46:52 +10:00
Andrew Tridgell 1b6620b42f HAL_ChibiOS: added expected delays on flash writes
this prevents a long loop internal error on disarm after a large
amount of flash writes when armed on a board with flash storage
2022-04-05 17:46:52 +10:00
Andrew Tridgell a0c867bce7 HAL_ChibiOS: disable interrupts during flash operations
we have now shown that interrupts being enabled during flash
operations can cause the infamous "68ms" bug, or watchdog when using a
32 bit timer on boards using flash for storage

The issue is quite repeatable with a load of a very large waypoint
file (over 500 waypoints) using "wp ftpload" in MAVProxy. This puts a
huge load on flash storage.

Our current working theory is that while doing flash writes for
storage on dual-bank we block access to only one bank, so if another
thread uses a timeout function with a short timeout while the flash
write is happening and chVTDoTickI calls code which crosses the flash
bank boundary then it can cause chVTDoTickI to violate the assumption
that no more than CH_CFG_ST_DELTA ticks pass while it is calculating
the value to set in the system timer. In that case we get a delay of a
full timer wrap, which is 68ms on boards with 16 bit timer and 70
minutes on boards with 32 bit timer
2022-04-05 17:46:52 +10:00
Andrew Tridgell f6f6521b28 Revert "hwdef: changed MatekH743 to a 32 bit timer"
This reverts commit 7dc5911572.
2022-04-05 17:46:52 +10:00
Andrew Tridgell 5ef9c5aaa5 HAL_ChibiOS: constrain more timer timeouts 2022-04-05 17:46:52 +10:00
Andrew Tridgell 4c977eb7a0 HAL_ChibiOS: prevent long timeouts in DShot
this prevents bad calculated timeouts in DShot. The timeout would
sometimes come out as 0xFFFFFFFF, which led to an assert and could
block the thread

This fix is meant to be minimilistic to allow it to be merged easily
into 4.2. A better fix would fix all the uint32_t wrap handling in
DShot
2022-04-05 17:46:52 +10:00
Andrew Tridgell a95b429acc AP_Math: added unsigned versions of constrain functions
sometimes it really does matter that we use constrain_uint32() instead
of constrain_int32(). For example, if we have a value like 0xFFFFFFFF
then the result will be very different

we should use unsigned constrain when dealing with unsigned values
2022-04-05 17:46:52 +10:00
Henry Wurzburg 82235163a2 AP_Scripting: remove original aerobatics example to avoid confusion 2022-04-05 10:12:13 +10:00
Henry Wurzburg fa81f7813c AP_Airspeed: correct metadata for params for non-Plane vehicles 2022-04-05 09:58:10 +10:00
Lokesh Ramina 11b3eccf66 AP_Periph: Hwdef CarbonixL496 update
Modification of CarbonixL496 to add more features.
Features:
To use internal clock of MCU, Oscillator value is set to 0.
LED pin changed from PA13 to PA15
Enabled  JTAG
Add interface to GPS and ADSB.
2022-04-05 09:57:02 +10:00
Nicholas Kruzan d42a287db0 AP_HAL_ESP32: partitions.csv - increase app partition to 3M 2022-04-05 08:41:11 +10:00
Nicholas Kruzan c3e071579d AP_Filesystem: AP_Filesystem_ESP32 allow_absolute_paths in ::open() 2022-04-05 08:40:26 +10:00
Andrew Tridgell 1c5a954b24 HAL_ChibiOS: incorrect class of class in uart TX timeout
need to call chEvtGetAndClearEventsI() as we are in a system lock
state
2022-04-04 16:59:38 +10:00
Peter Barker fd666dc4f1 AP_AHRS: subtract accel bias from correct ins accel instance
In the case that you have INS_USE indicating IMUs should be used, but
EK3_IMU_MASK leaving some IMUs unused, we subtract the bias from the
wrong INS data
2022-04-03 11:41:09 +10:00
Andrew Tridgell a01ca35939 AP_Logger: increase stack of log_io thread by 256
This was seem on omnibusf4pro, it is a bit too close:

  log_io PRI= 59 sp=0x20015CC0 STACK=144/1656
2022-04-01 19:56:30 +11:00
Mirko Denecke c1e0e9c305 AP_HAL_ChibiOS: fix ms5611 probe for NucleoH743 2022-03-31 16:31:13 +11:00
Randy Mackay 0dd9a8028b AR_WPNav: integrate scurve snap 2022-03-30 15:34:14 +09:00
Randy Mackay c233f114bd AR_PosControl: fixup logging to record desired and target velocity and acceleration 2022-03-30 15:34:14 +09:00
Randy Mackay 74df1c0b22 AR_PosControl: reduce default I term to zero 2022-03-30 15:34:14 +09:00
Randy Mackay 995ff30cd6 AC_Avoid: enable slide behaviour for rover 2022-03-30 15:34:14 +09:00
Randy Mackay 5d96804ef3 AR_WPNav: add protection against zero accel max 2022-03-30 15:34:14 +09:00
Randy Mackay a1b9fe5097 AR_WPNav: jerk time reduced to 0.1 sec 2022-03-30 15:34:14 +09:00
Randy Mackay c6dffb990f AR_WPNav: add set_nudge_speed_max
allows pilot to override speed_max from RC input
2022-03-30 15:34:14 +09:00
Randy Mackay 394a5fd2fc AR_WPNav: get/set_desired_speed renamed to get/set_speed_max
set_speed_max updates position controller limits and triggers recalculation of scurves
local _desired_speed member is no longer required because max speed is held in position controller
2022-03-30 15:34:14 +09:00
Randy Mackay 1996085282 AR_WPNav: init accepts speed max
also remove unused set_desired_speed_to_default
also init previous leg in set_desired_location
init accepts speed but inforces minimum
2022-03-30 15:34:14 +09:00
Randy Mackay a91025fa16 AR_WPNav: remove unused speed_min 2022-03-30 15:34:14 +09:00
Randy Mackay 537874c075 AR_WPNav: jerk_max maintained in position controller 2022-03-30 15:34:14 +09:00
Randy Mackay 54eee7d311 AR_WPNav: simplify init 2022-03-30 15:34:14 +09:00
Randy Mackay d03e801b65 AR_WPNav: remove get_accel_max, get_jerk_max 2022-03-30 15:34:14 +09:00
Randy Mackay 653afbeb15 AR_WPNav: enable_overspeed added to improve sailboat support 2022-03-30 15:34:14 +09:00
Randy Mackay 2f6e098f23 AR_WPNav: always use local calculation of cross track
also calc_crosstrack_error may return negative values
2022-03-30 15:34:14 +09:00
Randy Mackay 729dfee01c AR_WPNav: pivot turns stop before turning 2022-03-30 15:34:14 +09:00
Randy Mackay e0a628bb8c AR_WPNav: add is_fast_waypoint accessor 2022-03-30 15:34:14 +09:00
Randy Mackay 0bcae12ceb AR_WPNav_OA: use wpnav's expect fast updates 2022-03-30 15:34:14 +09:00