Commit Graph

21133 Commits

Author SHA1 Message Date
Andrew Tridgell 3584f1b779 AP_Declination: update generate script
added ability to display max error
2020-01-10 19:12:10 +11:00
Andrew Tridgell 9261b32430 AP_GPS: fixed build 2020-01-10 19:12:10 +11:00
Andrew Tridgell 0ed02b1d88 AP_Compass: added mag_cal_fixed_yaw()
this is a fast compass calibration that uses a yaw value provided by
the user.
2020-01-10 18:48:52 +11:00
Andrew Tridgell aea2238936 GCS_MAVLink: support MAV_CMD_FIXED_MAG_CAL_YAW 2020-01-10 18:48:49 +11:00
Andrew Tridgell b95a31ccfc AP_RCProtocol: fixed support for 22ms multi-frame DSM 2020-01-10 18:48:42 +11:00
Andrew Tridgell 0dc22331d0 AP_Frsky_Telem: fixed a race condition with statustext handling
this fixes an issue that can cause a hardfault. See this bug report:

https://discuss.ardupilot.org/t/hexa-crash-after-watchdog-reset/50917

ObjectArray is not thread safe
2020-01-10 18:48:17 +11:00
Andrew Tridgell b834796f3b HAL_ChibiOS: fixed clock src for I2C4 on H7 2020-01-08 06:02:46 +11:00
Andrew Tridgell 17118977dc HAL_ChibiOS: automatically set AP_FEATURE_RTSCTS 2020-01-02 07:50:35 +11:00
Andrew Tridgell 5c4802ce25 AP_Compass: limit rotations we try to ROTATION_MAX_AUTO_ROTATION 2020-01-01 09:08:31 +11:00
Andrew Tridgell 686b9322cd AP_Math: define ROTATION_MAX_AUTO_ROTATION
we don't want to use ROTATION_PITCH_7 in our auto rotation mix, as it
is too close to level
2020-01-01 09:08:19 +11:00
Andrew Tridgell 8311a5be63 HAL_ChibiOS: fixed H7 I2C timing
we were running the clock at too low speed. This affected the SSD1306 display

# Conflicts:
#	libraries/AP_HAL_ChibiOS/I2CDevice.cpp
2019-12-30 14:35:57 +11:00
Peter Barker abe1a09c7a AP_HAL: stop emitting extra CR before a LF as part of our printf 2019-12-25 12:00:37 +11:00
Pierre Kancir ecdd07e793 AP_Compass: add register to checked ones and remove single-use goto
Also fix comment on TMRC register setting
2019-12-23 20:20:12 +11:00
Pierre Kancir d9edd3c8b5 AP_Compass: probe for RM3100 2019-12-23 20:20:01 +11:00
Andrew Tridgell 318c0a958d HAL_ChibiOS: removed PB1 and PB0 TIM1 complementary channels for F76x
these do not work, possibly a datasheet bug
2019-12-23 19:42:04 +11:00
Andrew Tridgell 24e48b5e81 HAL_ChibiOS: switch MatekF765 to timer 12
fixes PWM 5 and 6
2019-12-23 19:42:02 +11:00
Andrew Tridgell af04f1eb93 HAL_ChibiOS: ensure bootloader flash is multiple of 32 bytes 2019-12-23 17:36:28 +11:00
Andrew Tridgell 9c2caf5b12 AP_InertialSensor: default fast sampling on
if we have a first IMU capable of fast sampling then we want it
enabled by default
2019-12-23 09:56:26 +11:00
Andrew Tridgell f733e963df HAL_ChibiOS: scale uart rx buffer size with baudrate
this ensures we have enough buffer space for a RTK GPS, as well as for
high speed comms with a companion computer
2019-12-23 09:56:26 +11:00
Peter Barker 48a04d21ce AP_NMEA_Output: NavEKF constructors no longer take rangefinder 2019-12-23 09:56:26 +11:00
Randy Mackay e206134fa6 AP_NMEA_Output: 10hz rate limiting uses uint32_t 2019-12-23 09:56:26 +11:00
Peter Barker 46c384b412 AP_NMEA_Output: correct 10Hz rate limiting
integer promotion issue
2019-12-23 09:56:26 +11:00
Peter Barker 9fd53b0dbc AP_NMEA_Output: add example 2019-12-23 09:56:26 +11:00
Peter Barker e90b6bafca AP_NMEA_Output: skip sending sentences if no space on UART
AP_NMEA_Output: clean scope by removing unneeded temps

AP_NMEA_Output: redo last_sent to last_run

AP_NMA_Output: early-exit if no data
2019-12-23 09:56:26 +11:00
Andrew Tridgell 12e51965c9 HAL_ChibiOS: change CUAVv5Nano volt scale to 18.000 2019-12-23 09:56:26 +11:00
Andrew Tridgell 96bccba638 HAL_ChibiOS: fixed build of SPI clock test 2019-12-12 20:43:40 +11:00
Andrew Tridgell 87f2839f3e GCS_MAVLink: fixed critical error on prefight cal ops 2019-12-12 20:43:35 +11:00
Andrew Tridgell 595a49eec4 GCS_MAVLink: send temperature for IMUs 2019-12-09 13:25:18 +11:00
Andrew Tridgell 04827d229c AP_NavEKF2: don't use WMM tables unless we have a compass scale factor set 2019-12-09 13:18:01 +11:00
Andrew Tridgell c36687a79f SITL: added SIM_MAG_SCALING for testing scale factor errors
# Conflicts:
#	libraries/SITL/SITL.cpp
2019-12-09 13:18:01 +11:00
Andrew Tridgell bc7f811ff0 AP_GPS: cope with UAVCAN GPS that don't provide Aux message
thanks to @VadimZ for the suggestion
2019-12-09 13:18:01 +11:00
Randy Mackay 0cd737856d AP_RangeFinder: remove param conversion for 3rd and 4th
3rd and 4th instances were not available to users unless they used their own builds which is rare
this reduces the firmware's flash size a small amount
2019-12-09 13:18:01 +11:00
Randy Mackay 4cb470e4df AP_RangeFinder: param conversion fix
This resolves an issue with the parameter conversion when moving from Copter-3.6.x to 4.0 (and similar moves for other vehicle types)
2019-12-09 13:18:01 +11:00
Peter Barker 8fac70149d AP_Compass: tidy constructor 2019-12-09 13:18:01 +11:00
Peter Barker 03064f8eea AP_Compass: make compass_cal_status_t enum class Status within CompassCalibrator 2019-12-09 13:18:01 +11:00
Andrew Tridgell 342dd67dc0 AP_Compass: narrow range of allowed scale factor 2019-12-09 13:18:01 +11:00
Andrew Tridgell 536222859d AP_Compass: added COMPASS_OPTIONS
this allows user to set that calibration requires GPS lock
2019-12-09 13:18:01 +11:00
Andrew Tridgell 920007f3c4 AP_Compass: added estimation of compass scale factor
this adds new COMPASS_SCALE, COMPASS_SCALE2 and COMPASS_SCALE3
parameters, which give the sensor scaling factor. It is used to
compensate for an incorrect scaling in a compass.

The 3D compass calibration process will set the correct value
automatically, otherwise users can set the value to a known value for
an existing compass
2019-12-09 13:18:01 +11:00
Randy Mackay ae234635e8 AP_Compass: minor comment fix
Co-Authored-By: Peter Barker <pb-gh@barker.dropbear.id.au>
2019-12-09 13:18:01 +11:00
lukezhqin f59d22aa41 AP_Compass: fix thin_samples to avoid comparing sample to itself 2019-12-09 13:18:01 +11:00
Randy Mackay b87f42bc07 AP_Compass: fix calibrator update when step one fails 2019-12-09 13:18:01 +11:00
Randy Mackay d9fde84ccb AP_Compass: rename CompassCalibrator::clear to stop 2019-12-09 13:18:01 +11:00
Randy Mackay 6c8ee8fa67 AP_Compass: remove unused calc_mean_squared_residuals 2019-12-09 13:18:01 +11:00
Randy Mackay a5e0af6868 AP_Compass: add comments to calibrator 2019-12-09 13:18:01 +11:00
Randy Mackay 243cf3b22d AP_Compass: formatting fixes
this should be a non-functional change
2019-12-09 13:18:01 +11:00
Randy Mackay 69a7a52e5f AP_Compass: constify get_completion_mask and remove use of auto 2019-12-09 13:18:01 +11:00
Randy Mackay cf34abba87 AP_Compass: constify get_orientation 2019-12-09 13:18:01 +11:00
Andrew Tridgell 47fe57bd8d AP_Compass: remove expected error
this happens with AK09916 probing on invensense sensor
2019-12-09 13:18:01 +11:00
Andrew Tridgell 3b244bbc7f AP_Compass: disable HIL for AP_Periph
this saves several k of flash
2019-12-09 13:18:01 +11:00
Randy Mackay 88761e59f0 AP_Compass: LEARN param default to 0 for all vehicles 2019-12-09 13:18:01 +11:00
Andrew Tridgell 1afd603fa8 AP_Compass: don't show too many params when max compasses 1 2019-12-09 13:18:01 +11:00
Andrew Tridgell 2d25adca33 HAL_ChibiOS: fixed build of sparky2
running out of flash
2019-12-09 13:18:01 +11:00
Andrew Tridgell 9f76d2cf50 AP_BLHeli: fixed critical errors caused by BLHeli code 2019-12-09 13:18:01 +11:00
Andrew Tridgell 1fa764c915 HAL_ChibiOS: update mRoX21-777 I2C mask
all external
2019-12-09 12:58:55 +11:00
Phillip Kocmoud 0fffc77dae HAL_ChibiOS: update mRoControlZeroF7 I2C mask 2019-12-09 12:58:52 +11:00
Andrew Tridgell 59b576ebf3 AP_BattMonitor: added Durandal selection for batt mon pins 2019-12-09 12:57:44 +11:00
Andrew Tridgell 5fe0cd16ab HAL_ChibiOS: enable MatekF765 LED pin
- use tonealarm for buzzer
 - add more baro options
2019-12-09 12:56:40 +11:00
yaapu 4bf6f4c297 Ap_Frsky_Telem: replaced the passthrough scheduler with a WFQ one.
This replaces the default scheduler with a WFQ one
2019-12-09 12:56:13 +11:00
vierfuffzig 91c77e6df4 AP_BLHeli: fix eRPM conversion 2019-12-09 12:55:37 +11:00
Andy Piper 00406180c4 AP_HAL_ChibiOS: specify Durdanal IMUs so that ordering is correct 2019-12-09 12:54:14 +11:00
Henry Wurzburg 4d4b4d46a2 HWDEF: Speedybeef4 change I2C internal mask to 0 to allow probing ext baros 2019-12-09 12:54:06 +11:00
Andrew Tridgell 3a1b24c9bb HAL_ChibiOS: fixed handling of 16bit timer wrap
this fixes #12948
2019-12-09 12:45:20 +11:00
Andrew Tridgell 6f9abb8a4b HAL_ChibiOS: added assert for systime_t size 2019-12-09 12:45:09 +11:00
Andrew Tridgell 9a978c1eef AP_Airspeed: switched to recursive semaphore
this is needed by the SDP3X driver. It is the simplest fix for the
issue
2019-11-20 07:35:07 +11:00
Andrew Tridgell 99932a3319 AP_GPS: fixed cast for comparison with txspace 2019-11-19 07:49:55 +11:00
Andrew Tridgell c8f6697859 AP_TECS: removed TECS_LAND_PMIN
thanks to TunaLobster for pointing out that it is redundent
2019-11-19 07:47:33 +11:00
Andrew Tridgell 9035195fca AP_UAVCAN: support RTCMStream for RTCM injection 2019-11-17 11:58:52 +11:00
Andrew Tridgell 0080f3c011 AP_GPS: fixed sizes of config items 2019-11-17 11:57:51 +11:00
Michael du Breuil ea337209e6 AP_GPS: UBlox: Fix the assumption that all keys are 1 byte keys 2019-11-17 11:57:48 +11:00
Michael du Breuil 62f69cf92f AP_GPS: UBlox fix not listing the time mode as a configuration reason 2019-11-17 11:57:45 +11:00
Andrew Tridgell 3b75b4e5ad AP_GPS: fixed TMODE config issue on non-F9 GPS
thanks to Michel Pastor for reporting this
2019-11-17 11:57:39 +11:00
Andrew Tridgell 58b0f4acf6 AP_GPS: added automatic config of TMODE on F9
the Drotek F9 GPS ships with TMODE enabled, which means we don't get a
3D fix.

This also adds the VALGET/VALSET msgs we will need for automatic
moving baseline config
2019-11-17 11:56:53 +11:00
Andrew Tridgell 76f4420710 AP_GPS: support Fix2 message for UAVCAN
this allows for RTK fix levels
2019-11-17 11:56:11 +11:00
Andrew Tridgell 022dbb2e30 AP_GPS: support RTCMStream for RTCM injection on UAVCAN 2019-11-17 11:55:44 +11:00
Andrew Tridgell 6eb4ccd428 HAL_ChibiOS: retain OPENDRAIN if set on a pin
this allows OPENDRAIN when set on a pin to be retained when set with a
pinMode(). This fixes a partially lit B/E LED on the Pixhawk4
2019-11-17 11:45:55 +11:00
vierfuffzig 1821fc9594 AP_RTC: add local time support 2019-11-17 11:40:29 +11:00
Andrew Tridgell d3d4dff9ba AP_OSD: add clock panel 2019-11-17 11:36:07 +11:00
Andrew Tridgell c3bc1e3dd4 AP_Baro: added register checking and reset to DPS280 driver
this is to fix an issue found on a mRoControlZeroF7
2019-11-17 11:29:53 +11:00
Michael du Breuil a9fabdb278 AP_Logger: Fix logging of current on non primary instances 2019-11-17 11:29:38 +11:00
Andrew Tridgell 752c2872f9 RC_Channel: added RC option for new takeoff mode 2019-11-17 11:29:13 +11:00
Andrew Tridgell df5e154144 AP_RangeFinder: fixed failover between rangefinders
this fixes the case where we have one rangefinder that can handle
short range and another that is good for long range but no good for
short range (quite common, eg radar and lidar)

If possible we want to use the first rangefinder that is in range for
the right orientation. If none are in range then use the first for the
orientation
2019-11-17 11:27:13 +11:00
Andrew Tridgell b19ad689a6 AP_GPS: fixed GPS to UART mapping
this allows for first GPS as UAVCAN and 2nd as UART. That is not
possible currently unless you waste a uart
2019-11-17 11:26:44 +11:00
Andrew Tridgell a5e79f4231 AP_TECS: added TECS_LAND_PMIN for min pitch in flare
this is useful to narrow the range of available pitch after flare
2019-11-17 11:26:07 +11:00
Peter Barker fffed10692 GCS_MAVLink: check reply channel for space rather than current channel 2019-11-02 14:08:47 +11:00
Andrew Tridgell 65c3d4ff20 HAL_ChibiOS: enable advanced timers if we have any N PWM channels 2019-11-02 13:46:43 +11:00
Andrew Tridgell 88e78afb19 HAL_ChibiOS: fixed SPI timeout bug
thanks to CUAV for noticing
2019-11-01 21:54:43 +11:00
Andrew Tridgell 3c1a362d90 GCS_MAVLink: fixed uninitialised bytes in send_named_float()
this fixes an issue with mavproxy with python3
2019-10-17 11:52:53 +11:00
liang 194ea66912 AP_Airspeed: protect sample timestamp while get data 2019-10-15 21:12:15 +11:00
Andrew Tridgell 6ebb9ad84a AP_HAL: enabled SLCAN on fmuv2 and Pixhawk1-1M
this fits for now, and is needed for CAN GPS for now
2019-10-07 21:14:24 +11:00
Andrew Tridgell 42c4b41bf6 AP_UAVCAN: cleanup ifdefs for SLCAN enable 2019-10-07 21:14:24 +11:00
Andrew Tridgell 83bacfa89c AP_HAL: cleanup ifdefs for SLCAN enable 2019-10-07 21:14:24 +11:00
Andrew Tridgell 0eb9a58f17 AP_HAL_ChibiOS: cleanup ifdefs for SLCAN enable 2019-10-07 21:14:24 +11:00
Andrew Tridgell 53e03816c0 AP_BoardConfig: cleanup ifdefs for SLCAN enable 2019-10-07 21:14:24 +11:00
Andrew Tridgell a452f8e4ed switch optimisation to O2
on average makes for faster and smaller code than O3
2019-10-06 10:58:07 +11:00
Andrew Tridgell ee25d05f3c AP_Math: make fill_nanf() use a signalling NaN
we want use of these values to trigger a FPE
2019-10-06 10:58:07 +11:00
Andrew Tridgell 43df0022e1 use common variables for EKF 2019-10-06 10:58:07 +11:00
Andrew Tridgell 9ad9fe42bc AP_NavEKF2: use parent class for intermediate static variables
this makes the code faster as well as using less memory when both EK2
and EK3 are enabled
2019-10-06 10:58:07 +11:00
Andrew Tridgell 46628b4401 AP_NavEKF2: make it easy to do EK2 timing tests
for future benchmarking
2019-10-06 10:58:07 +11:00
Andrew Tridgell cd9c9e0809 AP_NavEKF: fixed build with vector index checking 2019-10-06 10:58:07 +11:00
Andrew Tridgell 156a64aca0 AP_NavEKF: added a common parent class for EKF2 and EKF3 core classes
this provides a common location for static intermediate variables in
EK2 and EK3. This has a few benefits:

 - the compiler can determine the address of the frequently accessed
   variables at compile time, making them faster

 - by sharing between EK2 and EK3 we save a lot of memory if both EK2
   and EK3 are enabled

 - we can fill all these with NaN in SITL on every loop, which allows
   us to catch cases where the variables are ever re-used between
   loops, which guarantees we aren't mixing data between EKF lanes or
   between EK2 and EK3
2019-10-06 10:58:07 +11:00