Copter-4.7.0 released!

ArduPilot-4.7.0 has been released as the stable/official version for all vehicles including multicopters and traditional helicopters and may be downloaded and installed using Mission Planner, QGC or alternatively it can be manually downloaded from firmware.ardupilot.org.

As with previous versions there should be no need to backup and restore parameters because this is handled automatically as part of the upgrade. Even so, due to the large number of parameter renames (see below) you may wish to take a backup of your parameters as a reference.

If you face problems with the 4.7.x release please report them in this category and if you wish to downgrade back to 4.6.3 this can be done using Mission Planner’s Install Firmware screen’s “All Options” link or alternatively the .apj file can be downloaded manually from firmware.ardupilot.org.

.

The list of changes vs 4.6.3 can be found in the ReleaseNotes.txt and they are also copied below.

Warnings

  • TradHeli’s arming behaviour changes to require collective stick full down regardless of using stick or switch arming. In RC_OPTIONS parameter, uncheck option for “Arming check throttle for 0 input” to allow switch arming with a collective raised from bottom. This option is not recommended for stick arming as it allows arming at non zero collective setting.
  • Copter’s Loiter mode supports co-ordinated turns by default. This may be disabled by setting LOIT_OPTIONS = 0.
  • ATC_INPUT_TC and Q_A_INPUT_TC parameter scaling and defaults reduced, which affects roll/pitch responsiveness in manual modes in Copter, TradHeli and QuadPlane. If you have ever modified this parameter value yourself you will need to reduce the parameter by 33% (e.g. multiply by 0.66) to achieve the same feel in 4.7 compared to 4.6. E.g. if the AP-4.6 value was 1.5, when using 4.7 please reduce to 1.0.
  • Boards which store logs to flash (aka “LittleFS”) instead of SD cards will have their logs erased as part of the upgrade. Please download logs before upgrading.
  • Copter’s Lean based object avoidance in AltHold and FlowHold modes has been removed from the regular firmware. This was also referred to as “ping pong” avoidance and never worked well. If necessary it can be re-enabled using the custom build server.
  • If you see a “terrain data expired, possible errors” arming check message, please delete the terrain data from the autopilot. See this blog post for details.
  • QGC may complain about the parameter name changes but this can be resolved by updating to the latest QGC.

Parameter Changes

Many parameters have been renamed and re-scaled to be in “SI” units (e.g. centi-degrees replaced with degrees, centi-meters replaced with meters).

Old Parameter New Parameter
ARMING_CHECK ARMING_SKIPCHK (select which checks to disable)
ANGLE_MAX (cd) ATC_ANGLE_MAX (deg)
ATC_ACCEL_R_MAX (cm/s/s) ATC_ACC_R_MAX (m/s/s)
ATC_ACCEL_P_MAX (cm/s/s) ATC_ACC_P_MAX (m/s/s)
ATC_ACCEL_Y_MAX (cm/s/s) ATC_ACC_Y_MAX (m/s/s)
ATC_INPUT_TC should be reduced by 33% (e.g. multiplied by 0.66) to match 4.6
ATC_SLEW_YAW (cdeg/s) ATC_RATE_WPY_MAX (deg/s)
CIRCLE_RADIUS (cm) CIRCLE_RADIUS_M (m)
EK3_MAX_FLOW EK3_FLOW_MAX (simply renamed)
LAND_SPEED (cm/s) LAND_SPD_MS (m/s)
LAND_SPEED_HIGH (cm/s) LAND_SPD_HIGH_MS (m/s)
LAND_ALT_LOW (cm) LAND_ALT_LOW_M (m)
LOIT_SPEED (cm/s) LOIT_SPEED_MS (m/s)
LOIT_ACC_MAX (cm/s/s) LOIT_ACC_MAX_M (m/s/s)
LOIT_BRK_ACCEL (cm/s/s) LOIT_BRK_ACC_M (m/s/s)
LOIT_BRK_JERK (cm/s/s/s) LOIT_BRK_JRK_M (m/s/s/s)
PILOT_ACCEL_Z (cm/s/s) PILOT_ACC_Z (m/s/s)
PILOT_SPEED_UP (cm/s) PILOT_SPD_UP (m/s)
PILOT_SPEED_DN (cm/s) PILOT_SPD_DN (m/s)
PILOT_TKOFF_ALT (cm) PILOT_TKO_ALT_M (m)
PHLD_BRAKE_ANGLE (cd) PHLD_BRK_ANGLE (deg)
PHLD_BRAKE_RATE (deg/s) PHLD_BRK_RATE (deg/s)
PSC_POSXY_P PSC_NE_POS_P (no scaling change)
PSC_VELXY_IMAX PSC_NE_VEL_IMAX (100x smaller)
PSC_VELXY_* PSC_NE_VEL_* (no scaling change)
PSC_JERK_XY PSC_JERK_NE (no scaling change)
PSC_POSZ_P PSC_D_POS_P (no scaling change)
PSC_VELZ_IMAX PSC_D_VEL_IMAX (100x smaller)
PSC_VELZ_* PSC_D_VEL_* (no scaling change)
PSC_ACCZ_P/I/D PSC_D_ACC_P/I/D (10x smaller)
PSC_ACCZ_IMAX PSC_D_ACC_IMAX (1000x smaller)
PSC_ACCZ_* PSC_D_ACC_* (no scaling change)
PSC_JERK_Z PSC_JERK_D (no scaling change)
RTL_ALT (cm) RTL_ALT_M (m)
RTL_SPEED (cm/s) RTL_SPEED_MS (m/s)
RTL_ALT_FINAL (cm) RTL_ALT_FINAL_M (m)
RTL_CLIMB_MIN (cm) RTL_CLIMB_MIN_M (m)
WPNAV_ACCEL (cm/s/s) WP_ACC (m/s/s)
WPNAV_ACCEL_C (cm/s/s) WP_ACC_CNR (m/s/s/)
WPNAV_ACCEL_Z (cm/s/s) WP_ACC_Z
WPNAV_RADIUS (cm) WP_RADIUS_M (m)
WPNAV_SPEED (cm/s) WP_SPD (m/s)
WPNAV_SPEED_DN (cm/s) WP_SPD_DN (m/s)
WPNAV_SPEED_UP (cm/s) WP_SPD_UP (m/s)

Changes from 4.6.3

  1. Board specific changes
  • 3DR and mRo boards support DPS310 baro (@TOTON95, PR:31560)
  • 3DR ASAUAV periph support (@TOTON95, PR:31744)
  • AcctonGodwit GA1 has corrected pinout and bootloader (@erickao-hy, PR:33276)
  • AeroCogito-H7Digital support (@michael-cerasulo, PR:31076)
  • AeroFox-H7 defaults to no safety switch (@AEROFOXtech, PR:30614)
  • AeroFox-PMU param defaults updated (@AEROFOXtech, PR:30514)
  • Aeromind6X support (@ArkinLabs1Support, PR:31187)
  • AIRBRAIN H743 support (@andyp1per, PR:31262)
  • ARK_FPV autopilot support (@dakejahl, PR:28603)
  • ARKV6X gets default serial port for RCIN (@dakejahl, PR:29851)
  • ARKV6X-bdshot support (@dakejahl, PR:30409)
  • Atlas-Control has updated hwdef.dat file (@AltasFlight, PR:32268)
  • Atlas-Control support (@AltasFlight, PR:31608)
  • AtomRCf405 navi deluxe board support (@Hwurzburg, PR:25511)
  • AUAV UAV-DEV GmbH M10S GNSS support (@mirkix, PR:29488)
  • AUAV UAV-DEV GmbH powermodule support (@mirkix, PR:29781)
  • AUAV UAV-DEV GmbH uav-dev-fc-um982 autopilot support (@mirkix, PR:29780)
  • AUAV uav-dev-auav-g4 baro and airspeed sensor support (@mirkix, PR:30214)
  • BCubeF745v2 board added (@petrosaccone, PR:32753)
  • BlitzF745 gets filesystem support (@andyp1per, PR:31227)
  • BlitzF745AIO and BlitzF745 support SPL06 baro (@andyp1per, PR:31466)
  • BrahmaF4 gets OSD_TYPE2 param default (@Hwurzburg, PR:29902)
  • BrotherHobbyH743 v2 support (@andyp1per, PR:31691)
  • CBU-H7-Stamp updates including baro changed (@CBUnmanned, PR:28364)
  • CBUnmanned CBU-H7-LC-Stamp support (@andyp1per, PR:28710)
  • CORVON405V2.1 support (@holydust, PR:29665)
  • CORVON743V1 support (@holydust, PR:29797)
  • CORVON743V2 board added (@holydust, PR:33307)
  • CrazyF405 support (@Srivenkateshwar, PR:28829)
  • CSKY DroneCAN PMU periph support (@Hwurzburg, PR:31762)
  • CUAV-V6X-v2 support (@cuav-chen2, PR:30900)
  • CubeNode-ETH SERIAL1 protocol defaulted to PPP (@bugobliterator, PR:32187)
  • CubeNode-ETH Serial8 CTS/RTS pin and LED fix (@haydendonald, PR:28665)
  • CubeNode-ETH supports CAN-over-MAVLink (@peterbarker, PR:31055)
  • CubeNode/CubeNode-ETH supports publishing raw IMU data (@bugobliterator, PR:28394)
  • CubeOrangePlus-ODID remote id support (@BryonOI, PR:27561)
  • CubePilot bootloaders updated to avoid flash erase due to single ECC error (@bugobliterator, PR:32318)
  • CubeRed supports CAN Multicast (@bugobliterator, PR:29866)
  • CubeRedPrimary icm45686 SPI speed increased (@bugobliterator, PR:28617)
  • CubeRedSecondary supports running IOMCU FW (@bugobliterator, PR:29094)
  • CubeRedSecondary uses MAVSysId 2 (@bugobliterator, PR:29446)
  • DAKEFPVF405 support (@engineer-dakefpv, PR:30100)
  • DAKEFPVH743_SLIM support (@engineer-dakefpv, PR:31733)
  • DroneerF405 support (@DroneerUAV, PR:28846)
  • ESP32 imu module v1.1 support (@nkruzan, PR:20449)
  • F4BY F427 variant support (@peterbarker, PR:28700)
  • F4BY_F427 supports QMC compass (@kozinalexey, PR:30903)
  • F4BY_H743 support (@kozinalexey, PR:30905)
  • FlyingMoonF407, F427 and H743 updates (@kenking2536, PR:31352)
  • FlysparkF4 support (@magicrub, PR:28365)
  • Foxeer H743v2 support (@andyp1per, PR:26501)
  • GreenSight UltraBlue support (@sionv, PR:28995)
  • H7 CPUs support 32MHz HSE (@jwoloch, PR:27861)
  • Here4-FC WS2812 LEDs fixed (@haydendonald, PR:28919)
  • HolybroG4_GPS supports ICP201XX barometer (@tridge, PR:28781)
  • HWH7 flight controller added to supported boards (@Arwayday, PR:32248)
  • iFlight Blitz H743 Pro gets camera switch (@andyp1per, PR:28185)
  • JAE JFB200 board added (@n-ito2222, PR:32786)
  • JHEMCUF405PRO (aka GHF405AIO-HD) support (@HishamGhosheh, PR:29697)
  • JHEMCUF405WING autopilot support (@jhemcu, PR:26685)
  • KakuteF4Mini, SkystarsH7HD minor default params fixes (@robertlong13, PR:30470)
  • KakuteH7Mini-Nand supports scripting (@tpwrules, PR:29120)
  • KT-FMU-F1 support (@redstonee, PR:32180)
  • Lumenier LUX F765-NDAA support (@djmorvay, PR:29377)
  • MambaF405v2 SBUS pin polarity fixed (@andyp1per, PR:33203)
  • MatekG474-GPS periph support (@MATEKSYS, PR:28959)
  • MatekH743 supports flash-from-SDCard (@ntamas, PR:29810)
  • MatekH743-periph supports GPS-for-yaw (@rishabsingh3003, PR:28980)
  • MatekH7A3-Wing support (@peterbarker, PR:31790)
  • MatekL431-AUAV support (@MATEKSYS, PR:30829)
  • MatekL431-Periph NeoPixel support fixed (@villivateur, PR:30469)
  • MFE AirSpeed-CAN periph support (@mikefenghao, PR:28989)
  • MFE_PDB_CAN periph support (@mikefenghao, PR:28694)
  • MFE_POS3_CAN GPS periph support (@mikefenghao, PR:28515)
  • MicoAir743-Lite support (@Minderring, PR:31304)
  • Morakot autopilot support (@Rex-Taiphoon, PR:31316)
  • NarinFC-H5, NarinFC-X3 autopilot support (@vololand, PR:29753)
  • Navigator board supports lsm6dsv IMU (@Williangalvani, PR:33219)
  • NTF_LED_TYPES param defaults include NeoPixels for many boards (@Hwurzburg, PR:30889)
  • Nucleo H753 zi support (@wdunn001, PR:30639)
  • ORBITH743 support (@Hwurzburg, PR:30237)
  • PilotGaeaSV7V1 board added (@PilotGaea2001, PR:32416)
  • PilotPi Linux autopilot support (@heeplr, PR:28247)
  • PixSurveyA2-IND autopilot support (@mikefenghao, PR:29662)
  • PocketBeagle 2 with DIY cape support (@juvinski, PR:30536)
  • PocketBeagle supports DShot motor output (@juvinski, PR:32012)
  • Resolute H7 support (@Hwurzburg, PR:32239)
  • SkyDroid-S3 board added (@UAVcihang, PR:32920)
  • SkyDroid-S3 fixed internal compass probing bug (@Hwurzburg, PR:33374)
  • SkyRukh Surge H7 autopilot support (@DronmarketAS, PR:31230)
  • SkystarsH7HDv3 onboard baro changed to SPL06 (@andyp1per, PR:33333)
  • SpeedyBeeF405V5 support (@Bloody-Badboy, PR:31884)
  • Stellar F4, F4v2 support (@cvetaevvitaliy, PR:29088)
  • Stellar H7V2 support (@cvetaevvitaliy, PR:28926)
  • STM32F413xx MCU support (@joshanne, PR:28845)
  • STM32H755xx supports Ethernet (@n-ito2222, PR:31655)
  • SULILGH7 support (@SULILG, PR:29209)
  • T3 Gemstone O1 Linux autopilot support (@ghost, PR:31232)
  • TBS L431 airspeed peripheral (@tridge, PR:29185)
  • TBS L431 Peripherals (@andyp1per, PR:29367)
  • TBS LUCID H7 OEM board added (@andyp1per, PR:33337)
  • TBS LUCID H7 V3 board added (@andyp1per, PR:33337)
  • TBS-L431-BattMon DAC settings corrected (@andyp1per, PR:31583)
  • TBS_LUCID_H7 now has an MPU6000 version (@andyp1per, PR:32512)
  • TBS_LUCID_H7_WING_AIO pwm outputs corrected (@andyp1per, PR:31493)
  • UAV-DEV GmbH Powermodule changes for production (@mirkix, PR:32417)
  • USB flow control enabled to speed up MAVFTP over USB (@tridge, PR:31549)
  • VimDrones L431 param saving fixed (@Huibean, PR:30821)
  • VimDrones pico and CAN servo hub periph support (@Huibean, PR:29818)
  • VUAV-TinyV7 board added (@viewpro-caijie, PR:32058)
  • X-MAV AP-H743r1 autopilot support (@TompsonTan, PR:31571)
  • X-MAV_AP-H743r1 switch to SPL06 baro only (@TompsonTan, PR:32480)
  • YARIV6X support (@KarthiAru, PR:30917)
  • ZeroOne X6_Pro, ZeroOneAir autopilot support (@ZeroOne-Aero, PR:30171)
  • ZeroOneX6v2 supports SPA06 and MBP581 barometers (@ZeroOne-Aero, PR:33237)
  1. System / Driver changes
  • AC_PID: NTF and NEF parameters metadata includes 0 as a valid value (@IamPete1, PR:32898)
  • AC_WPNav: BendyRuler altitude bug fixed (@hunt0r, PR:32892)
  • ADIS16507 IMU gyro and accel data processing fixed (@ZeroOne-Aero, PR:32017)
  • Ainstein LR-D1 driver updated to handle new packet format (@peterbarker, PR:30286)
  • Airspeed driver supports up to 6 sensors (@IamPete1, PR:31162)
  • Airspeed sensor changed if not set to use (@IamPete1, PR:31889)
  • Airspeed sensor switching reduced while armed (@IamPete1, PR:31947)
  • Airspeed startup cal can be skipped but may require manual cal (@IamPete1, PR:29467)
  • Airspeed’s EKF based health check fixed to only affect sensor being used (@IamPete1, PR:31893)
  • AIS fix for multi part message decoding (@IamPete1, PR:29195)
  • Analog battery monitor safely handles allocating too many analog channels (@WickedShell, PR:28910)
  • AP_Arming: E-stop value is taken into account (@IamPete1, PR:32705)
  • AP_CANManager: Removed unused logging interface (@tpwrules, PR:33031)
  • AP_Compass: LIS2MDL recent duplicate driver is removed (@dakejahl, PR:33140)
  • AP_DroneCAN message subscription performance optimised (@tpwrules, PR:28400)
  • AP_GPS: SBF driver improvement in Do Not Use values (@UAVcihang, PR:32642)
  • AP_Math: S-Curve bugs fixed (@lthall, PR:32730)
  • AP_OpenDroneID: UAS ID available length is fixed (@cuav-chen2, PR:33224)
  • ASM330LHH IMU axes order fixed (@n-ito2222, PR:32921)
  • AUAV airspeed sensor absolute channel maybe used as barometer (@IamPete1, PR:29535)
  • AUAV Airspeed sensor support (@Tdogb, PR:27802)
  • Baro Field Elevation set to 0m endlessly fixed (@rishabsingh3003, PR:25114)
  • Baro thrust scaling compensates for prop wash effect on baro (see BARO1_THST_SCALE) (@andyp1per, PR:28982)
  • Benewake TFS20L rangefinder support (@Shubham07-bit, PR:31161)
  • BMM350 compass low temperature calibration fixed (@cuav-chen2, PR:31302)
  • Bootloader and Firmware signing process improvements (@joshanne, PR:31623)
  • CAN range finders correctly report type (Laser, Radar) via mavlink (@Charlie-Burge, PR:31033)
  • ChibiOS updates to fix SD card watchdogs/stuck threads (@tpwrules, PR:31620)
  • Compass: COMPASS_DISBLMSK bug on internal compasses fixed (@Georacer, PR:33553)
  • CPU load accurately recorded in @SYS/threads.txt (@andyp1per, PR:30913)
  • Crash dump pre-arm message made less spammy (@IamPete1, PR:31414)
  • CRSF bind fix (@andyp1per, PR:31396)
  • Currawong Cortex generator support (@SchrodingersGat, PR:31022)
  • Cypress S25FL064L flash chip support (@rishabsingh3003, PR:31242)
  • Direct DMA transfer on Invensense v3 IMUs (@andyp1per, PR:28201)
  • DO_JUMP counter reset when loop completed (see MIS_OPTIONS) (@tridge, PR:29763)
  • DroneCAN battery monitor supports hot-swapping using new option bit (@tatsuy, PR:29690)
  • DroneCAN GPS GPS-for-yaw warning messages made less spammy (@peterbarker, PR:30674)
  • DroneCAN GPS shows num sats from receiver regardless of fix type (was always zero with no fix) (@fsaulo, PR:30251)
  • DroneCAN message playback using script and CAN_Pn_OPTIONS param (@tridge, PR:30796)
  • DroneCAN rangefinder resolution improved to sub-centimeter (@IamPete1, PR:32088)
  • DroneCAN rangefinders correctly report too-low and too-high (@andyp1per, PR:31155)
  • DroneCAN rangefinders with slow startup enabled correctly (@rishabsingh3003, PR:30364)
  • DroneCAN RC supports link statistics (@olliw42, PR:28390)
  • DroneCAN, Networking log virtual UART data rates (@IamPete1, PR:29486)
  • DShot DMA buffer flushed and invalidated correctly (@andyp1per, PR:31398)
  • DTS6012M rangefinder support (@FractalEngineer, PR:32188)
  • Ensure that boards with small flash-based sdcard logging do not erase all logs on boot (@andyp1per, PR:31517)
  • ESC Telemetry handles negative RPMs from DroneCAN ESCs (@rishabsingh3003, PR:30538)
  • ESC Telemetry RPM timeout race conditions fixed (@robertlong13, PR:29028)
  • FATFS (SDCard) filesystem reliability and error handling improvements (@tpwrules, PR:29332)
  • Fence for Plane and Copter supports alt above terrain (@andyp1per, PR:31619)
  • Fence horizontal margin made configurable (see FENCE_MARGIN_XY) (@andyp1per, PR:31018)
  • Fence warns at the margins (see FENCE_OPTIONS) (@andyp1per, PR:28840)
  • Filter: Harmonic Notch Filters fixed to prevent runtime error (@peterbarker, PR:33230)
  • Fix handling of more than 3 compasses connected to autopilot (@bugobliterator, PR:31496)
  • GPS blending unhealthy if all blend weights are zero (@peterbarker, PR:31476)
  • Gripper starts in the neutral position instead of always opening (@lthall, PR:31249)
  • H7 File Log Buffer performance improvements (@andyp1per, PR:30842)
  • Harmonic notch filter handles negative ESC RPMs (@andyp1per, PR:28309)
  • Holybro CAN products support software CAN termination (@vincentpoont2, PR:29557)
  • ICEngine slews smoothly between start percent and minimum throttle (@LachlanConn, PR:31727)
  • ICM42688-V IMU support (uses ICM42688-P driver) (@peterbarker, PR:31199)
  • Ignore-receiver in RC_OPTIONS is now respected during RC loss (@peterbarker, PR:32488)
  • IIM42652 IMU supports external clock input (aka CLKIN) (@cuav-chen2, PR:30541)
  • IMUs support 3 harmonic notch filters (@tridge, PR:30246)
  • INA260 battery monitor support (@IamPete1, PR:31324)
  • IST8310 compass probing corrected on fmuv3-based boards (@peterbarker, PR:32462)
  • JRE serial range finder provides signal quality (@n-ito2222, PR:31255)
  • KellerLD barometer has better corruption rejection (@vshie, PR:32889)
  • LEDs show GCS failsafe for Plane, Rover, Sub (@magicrub, PR:31257)
  • Lightware GRF250 I2C driver added (@rishabsingh3003, PR:32923)
  • LightWare GRF250/GRF500 lidar support (@rishabsingh3003, PR:30043)
  • LIS2MDL compass support (@andyp1per, PR:31405)
  • LittleFS (Flash) filesystem reliability and speed improvements (@tpwrules, PR:29472)
  • Loweheiser generator support added (@Georacer, PR:29587)
  • LSM6DSV16X IMU from ST is now supported (@zebulon-86, PR:32574)
  • MAX31865 temperature sensor fixed for sub-zero temps (@andyp1per, PR:32019)
  • MAX31865 temperature sensor gets params for nominal and reference resistance (see TEMPx_RTD_NOM, TEMPx_RTF_REF) (@IamPete1, PR:30406)
  • Mission get_item ensures returned items are clean (previously unused fields could be random numbers) (@IamPete1, PR:29038)
  • Mission handling better deals with home being in index 0 (@IamPete1, PR:29071)
  • MMC5XX3 (MMC5983MA) external I2C compass support (@Jagadeeshdinesh, PR:29722)
  • MMP581 driver handles data corruption better (@peterbarker, PR:32171)
  • MS5837-02BA baro support (@Shaikimram, PR:29122)
  • MS5837-30BA baro temperature compensation improved (@ES-Alexander, PR:29132)
  • Networking port type change requires reboot to take effect (@magicrub, PR:30828)
  • Networking supports capturing all packets to a pcap file (@tridge, PR:30637)
  • Networking supports non-blocking sockets (@tridge, PR:30983)
  • Networking supports up to 3 PPP interfaces (@tridge, PR:30587)
  • OpticalFlow MAVLink backend accepts rad/s and supports roll/pitch stabilised sensor (@rmackay9, PR:30663)
  • OSD INAV font fix for arrow at 11:00 position (@Caped-Crussader, PR:31448)
  • OSD parameter screens indexed correctly from CRSF (@andyp1per, PR:31518)
  • Periph battery monitors expose BATTx_options if battery summing is used (@AlfieLockrey, PR:28678)
  • Periph firmware updates over very high latency links fixed (@tridge, PR:28948)
  • PID filtering enabled on low flash boards (@tridge, PR:28787)
  • Precision Landing mavlink backend supports LOCAL_FRD frame (@rmackay9, PR:30446)
  • Precision landing ORIENT parameter only visible on Rover (@rmackay9, PR:32403)
  • ProfiLEDs may be controlled via bit banging on IOMCU safety switch pins (@bugobliterator, PR:27732)
  • Quintuple harmonic notch support (@andyp1per, PR:30994)
  • Rangefinders with more than 327m range supported (@peterbarker, PR:27886)
  • RC failsafe cleared if enable param set to zero (FS_THR_ENABLE=0 or THR_FAILSAFE=0) (@Hwurzburg, PR:29846)
  • RC input uses full resolution to reduce jitter (@andyp1per, PR:29465)
  • RC input valid only if we have ever seen RC input (@peterbarker, PR:31351)
  • RC_Channel: Channel overrides fixed to not apply on restricted channels (@peterbarker, PR:33275)
  • RC_Channel: RCx_PROTOCOLS metadata updated with SITLUDP option (@peterbarker, PR:32778)
  • Rockblock 9704 satellite modem support (@stephendade, PR:31296)
  • RPLidar A2M12 proximity sensor support (@amilcarlucas, PR:30737)
  • RPM sensors run at 50hz on all vehicles (@IamPete1, PR:30632)
  • SBF GPS undulation usage fixed (@peterbarker, PR:31997)
  • Scheduler loop period during startup improved (@andyp1per, PR:30224)
  • Serial passthrough timeout can be disabled by setting SERIAL_PASSTIMO to -1 (@tridge, PR:30212)
  • Servo telemetry support for DroneCAN servos, Himark, Volz (@IamPete1, PR:28651)
  • SPI full duplex optimisation for baros, IMUs, MAX7456 OSD (@andyp1per, PR:29614)
  • Stats include total dist flown (STAT_DISTFLWN) and number of flights (STAT_FLTCNT) (@TroyNeubauer, PR:31002)
  • STM ASM330LHH IMU support (@n-ito2222, PR:31656)
  • Temperature sensor library supports up to 15 sensors (@rob-clarke, PR:31871)
  • Temperature sensor support for motor and PCB temps (@rob-clarke, PR:31616)
  • Terrain DisableDisk option allows using terrain on boards with no SD card (see TERRAIN_OPTION) (@TroyNeubauer, PR:30993)
  • Terrain pre-arm check for old DAT files (@tridge, PR:32275)
  • Terrain sanity check of spacing less than 1m (@tiagoc-santos, PR:29653)
  • TMP119 temperature sensor driver added (@Williangalvani, PR:33322)
  • Tremble GPS obeys GPS_AUTO_CONFIG param for ethernet connection (@Ryanf55, PR:29641)
  • Tremble Gsof GPS driver robustness improvements (@Ryanf55, PR:28802)
  • Triple-channel INA3221 i2c voltage-and-current sensor support (@peterbarker, PR:15091)
  • Ublox driver supports CFG_VALGET/VALSET/VALDEL msgs (required for X20/F20) (@bugobliterator, PR:31217)
  • Ublox F9 GPS potential memory leak fixed (@peterbarker, PR:29374)
  • Ublox GPS epoch time around u-blox week rollover fixed (@rishabsingh3003, PR:31914)
  • Ublox GPS supports NAVIC constellation (@MonarchOfShadows69, PR:31202)
  • VisualOdometry MAVLink backend supports aligning position with GPS (@rishabsingh3003, PR:30650)
  • Volz telemetry support including motor and PCB temp (@IamPete1, PR:28188)
  • ZB25VQ128D flash chip now supported for onboard logging (@LoyalLinjy, PR:32408)
  1. AHRS/EKF changes
  • AHRS external origin setting will be delayed until filter is initialised (@andyp1per, PR:32505)
  • AHRS recorded origin check will correctly use the GPS (@andyp1per, PR:32469)
  • AHRS without GPS may set origin to last known location (see AHRS_ORIGIN_LAT, LON, ALT) (@andyp1per, PR:31177)
  • AP_NavEKF3: barometer offset logging added (@rmackay, PR:32931)
  • AP_NavEKF3: bugfix to prevent covariance state corruption (@tpwrules, PR:32177)
  • DCM drift correct fix for use of TAS/EAS (@peterbarker, PR:28728)
  • DCM uses only horizontal component of wind speed for heading consistency check (@muramura, PR:32339)
  • EKF source option defaults to not FuseAllVelocities (@rishabsingh3003, PR:30584)
  • EKF3 allow extnav to work without vertical velocity (@rishabsingh3003, PR:29213)
  • EKF3 CPU, RAM, flash usage and code generation improvements (@tpwrules, PR:32003)
  • EKF3 delta velocity bias covariance fixed (may resolve occasional onground covariance instability) (@tpwrules, PR:32069)
  • EKF3 flash space requirements reduced (@tpwrules, PRs:32213, 32618)
  • EKF3 GPS sat count based noise scaling only applied when actually using GPS (@rishabsingh3003, PR:29847)
  • EKF3 is fixed to no longer reset to external altitude when it is configured to another source (@snktshrma, PR:32508)
  • EKF3 missing constraints to FuseDragForces added (@tpwrules, PR:32128)
  • EKF3 prevented from fusing probably-bad airspeed estimate, for Copter (@peterbarker, PR:33607)
  • EKF3 reverts to primary compass on ground (@rishabsingh3003, PR:29300)
  • EKF3 support for cores to run different sensor sources (@rishabsingh3003, PR:29750)
  • EKF3 supports manual lane switching (see EK3_OPTIONS and EK3_PRIMARY parameters) (@rishabsingh3003, PR:29623)
  • EKF3 uses the correct extnav variances for posvel fusion (@rishabsingh3003, PR:29420)
  • EKF3 wind estimate based drag force fusion rho calculation fixed (@jschall, PR:28495)
  • EKF3 with optical flow but no compass fixed (was cycling between aiding/stopped-aiding) (@rishabsingh3003, PR:32136)
  • EKF3: Fix rejected GPS yaw when the measurement is older than the fusion horizon (@lthall, PR:33643)
  • External AHRS IMU timestamp handling fixed (was causing accel cal to fail) (@andyp1per, PR:31927)
  • External AHRS logs only when EAHRS_TYPE non-zero to avoid unnecessary logging (@muramura, PR:31472)
  • External AHRS pre-arm check of origin skipped unless primary AHRS (@rishabsingh3003, PR:31377)
  • External AHRS supports variances per backend (@tridge, PR:28405)
  • External AHRS variances used in arming checks and EKF failsafe (@oursland, PR:32364)
  • Fix replay involving body odometry data (@twprules, PR:32598)
  • GSF accel usage during dynamic maneuvers fixed (@rmackay9, PR:32212)
  • Kebni SensAItion as External AHRS now supported in IMU and INS modes (@magnus-lindhe-kebni, PR:31775)
  • Non-GPS using optical flow may use SRTM data when beyond the rangefinder range (@rmackay9, PR:30718)
  • Protect against uninitialized location and origin (@Ryanf55, PR:29636)
  • SBG External AHRS support (@magicrub, PR:31048)
  • Trimble PX-1 GNSS-RTX-INS External AHRS support (@Ryanf55, PR:30232)
  1. Camera and gimbal enhancements
  • AVT camera gimbal support (@rmackay9, PR:30643)
  • CADDX mount support roll pitch EF mount lock via aux sw option (RCx_OPTION = 185) (@Hwurzburg, PR:31461)
  • Camera mavlink commands use target sysid and compid (@rmackay9, PR:30517)
  • Camera servo driver’s CAMERA_INFORMATION flags fixed (@Davidsastresas, PR:32564)
  • Fix wire data issues with various Mount backends (@peterbarker, PR:32630)
  • FPV Lock support on some gimbal (aka roll/pitch body frame lock) (@Hwurzburg, PR:31832)
  • MAVLink gimbal retract mode fix (@KSimeonAVTA, PR:31635)
  • MAVLink gimbals may implement ROI directly (@KSimeonAVTA, PR:32162)
  • Mount fix to angular rates when using FPV mode (@KSimeonAVTA, PR:32540)
  • Mount Lock RC aux function inits heading reference instead of using North (@Hwurzburg, PR:31713)
  • Mount scripting driver accepts rate targets (@peterbarker, PR:32626)
  • Mount: POI_LOCK does not need terrain to build (@peterbarker, PR:33396)
  • Mount: POI_LOCK function enabled by default in all >2MB boards (@rmackay9, PR:33372)
  • POI lock aux function switch added (@Hwurzburg, PR:31860)
  • RC failsafe handling including stop moving if RC lost while in rate control (@peterbarker, PR:16251)
  • Runcam integration improved including use during missions (@andyp1per, PR:26887)
  • RunCam param metadata names are fixed to match code (@tpwrules, PR:32601)
  • RunCam parameter conversion fix (@IamPete1, PR:32428)
  • Scripting backend ROI handling fixed (@neo-0007, PR:31552)
  • Servo camera support focus and zoom control (@Williangalvani, PR:29247)
  • Servo retract support extended to all gimbals (@landswellsong, PR:30810)
  • Solo and SToRM32 gimbal RC rate targetting fixed (@peterbarker, PR:31706)
  • SToRM32 initialisation improved by searching for gimbal while vehicle disarmed (@rmackay9, PR:30501)
  • Topotek tracking error handling improved (@laozhou-fujian, PR:31768)
  • Viewpro supports zoom for IR sensors (@eppravitra, PR:29140)
  • Warning added if ROI active but AHRS/EKF has no position estimate (@Hwurzburg, PR:31499)
  • XFRobot gimbal support (@rmackay9, PR:29599)
  1. Parameter scaling and/or renaming related changes
  • ANGLE_MAX (centi-degrees) replaced by ATC_ANGLE_MAX or Q_A_ANGLE_MAX (in degs) (@rmackay9, PR:31978)
  • ARMING_CHECK replaced with ARMING_SKIPCHK (@tpwrules, PR:31568)
  • ATC_ACC_R/P/Y_MAX renamed and scaled to deg/s/s (@rmackay9, PR:32192)
  • ATC_INPUT_TC and Q_A_INPUT_TC param defaults reduced (@rmackay9, PR:32643)
  • AVOID_ANGLE_MAX renamed to AVOID_ANG_MAX and converted to degrees (@rmackay9, PR:32186)
  • Copter CTUN climb rate logging converted to m/s (@piVerified, PR:32474)
  • Copter Land, PosHold and RTL parameters renamed and converted to meters (@rmackay9, PR:32169)
  • Copter position controller converted to meters including logging (@lthall, PR:30516)
  • Copter/Sub’s CIRCLE_RADIUS replaced by CIRCLE_RADIUS_M (@rmackay9, PR:31990)
  • Copter/TradHeli PILOT parameters renamed and converted to meters (@rmackay9, PR:32184)
  • EK3_MAX_FLOW renamed to EK3_FLOW_MAX (@rmackay9, PR:30729)
  • QuadPlane attitude control, position control converted to SI units (@lthall, PR:30683)
  • SERIALn_OPTIONS bits moved to MAVn_OPTIONS (@peterbarker, PR:30094)
  • Waypoint navigation params converted to deg and meters and renamed from WPNAV to WP (@rmackay9, PR:32147)
  1. Copter specific changes
  • Acro balance parameters pre-arm check (@lthall, PR:31435)
  • Acro mode trainer minor fix when ACRO_TRAINER = 1 (Leveling) (@lthall, PR:30392)
  • Acro mode uses Rate control only with scaled I-term when ACRO_OPTIONS = 1 (Rate Loop Only) (@andyp1per, PR:31171)
  • Alt-above-ground calculation corrected for non-GPS modes including non-GPS Land and landing gear (@ahmedmsalah99, PR:30698)
  • AP_Follow: bugfixes related to the motion of the target (@lthall, PR:33038)
  • AP_Follow: Vertical target estimate has minor fixes (@lthall, PR:33109)
  • Attitude command model replaced with improved Real Time S-Curve algorithm (@lthall, PR:31849)
  • Attitude control, Loiter, position control and navigation converted to SI units (@lthall, PR:30120)
  • Auto mode supports circular arcs (use ARC_WAYPOINT command) (@lthall, PR:31139)
  • Auto mode uses LAND command’s alt field to slow descent (@IamPete1, PR:30195)
  • Auto trim can be started from RC aux function (set RCx_OPTION = 182) (@peterbarker, PR:28881)
  • Auto trim works in position hold modes (@Hwurzburg, PR:29341)
  • Autotune gain backoff added to improve stability margin (see AUTOTUNE_GMBK) (@lthall, PR:31127)
  • Brake mode may trigger GCSs failsafe action (@IamPete1, PR:30670)
  • CIRCLE_OPTIONS descriptions improved (@rmackay9, PR:33669)
  • Co-rotating X8 frame support (@tridge, PR:30585)
  • Compass pre-arm health check text includes compass number (@muramura, PR:31563)
  • Custom modes available using scripting (@IamPete1, PR:28110)
  • Dijkstras object avoidance corner detection fix (@lthall, PR:30457)
  • EKF failsafe gets “Report Only” action and notifies pilot in all cases (@IamPete1, PR:30189)
  • Fast rate loop runs at full IMU filter rate (see FSTRATE_ENABLE, FSTRATE_DIV) (@andyp1per, PR:27029)
  • Follow mode improvements for target estimation and control (@lthall, PR:30101)
  • Follow: Small fixes to maths and logic (@lthall, PR:33652)
  • Guided mode resumes horizontal control when takeoff completes even if lower than WP_NAVALT_MIN (@lthall, PR:31958)
  • Guided mode set-target-angle-and-climbrate scaling used by scripting fixed (@rmackay9, PR:33692)
  • Increment data added for several parameters (@ES-Alexander, PR:32949)
  • Land and Payload place waypoints fixed to use correct altitude and spline waypoints (@lthall, PR:32634)
  • Lean-angle based object avoidance disabled by default (re-enable with custom build server) (@rmackay9, PR:32360)
  • Loiter speed may be changed using CH6 tuning (@rishabsingh3003, PR:14188)
  • Loiter supports co-ordinated turns by default (see LOIT_OPTIONS) (@lthall, PR:31061)
  • LOITER_TURNS with zero radius bug fixed (was using previous iteration’s radius) (@henrywarhurst, PR:30874)
  • LoiterTurns command announces number of circles completed (@peterbarker, PR:30231)
  • LoiterTurns command moves to circle edge in a straight line (@peterbarker, PR:31379)
  • Motors support ESC startup delay (see MOT_IDLE_SEC) (@lthall, PR:31963)
  • Payload place parameters hidden when payload place is disabled (@tatsuy, PR:31998)
  • Pilot yaw is correctly ignored during RTL (@rmackay9, PR:33169)
  • PosHold “jerky” response fixed (@zebulon-86, PR:33590)
  • PosHold timing fix when main loop rate is not 400hz (@lthall, PR:30358)
  • Position control EKF reset handling improved (@lthall, PR:31357)
  • Real time S-Curves use improved jerk limited algorithm (@lthall, PR:31848)
  • RTL final alt fixed when RTL_ALT_FINAL non-zero (@IamPete1, PR:29244)
  • Save trim scaling problem fixed (was assuming lean angle max of 45 deg) (@lthall, PR:32233)
  • Second transmitter-tuning control channel added (see TUNE2 parameters) (@peterbarker, PR:30042)
  • Simple mode fix to never consume invalid RC input (@peterbarker, PR:30071)
  • Spool state is logged (@Georacer, PR:31668)
  • Spoolup events are better reported with less false-positive errors (@lthall, PR:32955)
  • Stabilize, Acro, Drift and Turtle modes may not be entered during RC failsafe (@peterbarker, PR:30543)
  • Support for up to 32 motors, including dodecahexa-octa (two-layers of 8 motors each) (@peterbarker, PR:29020)
  • Terrain failsafe message improved (@timtuxworth, PR:30544)
  • Terrain failsafe will be triggered when a mission terrain altitude cannot be retrieved (@rmackay9, PR:32943)
  • Throw mode gets target ascent and descent params (see THROW_ALT_DCSND, THROW_ALT_ACSND) (@peterbarker, PR:29869)
  • Toy mode wifi reset check fixed (@peterbarker, PR:31445)
  • Weathervaning bugfix to properly stop weathervaning (@IamPete1, PR:33019)
  • WeatherVaning emits active message for change of direction (@IamPete1, PR:31104)
  • WP_NAVALT_MIN is only applied to takeoff (not landing) (@IamPete1, PR:30662)
  • WPNav: Fixed LOITER breaking, broken by the turn coordinator (@IamPete1, PR:33631)
  1. TradHeli specific changes
  • Autorotation restructured and improved speed controller added (@MattKear, PR:28209)
  • Collective transition ramp (@Ferruccio1984, PR:31561)
  • Do not allow users to set throttle-based notch (@MattKear, PR:28843)
  • Fixed run up complete flag not posting in manual throttle modes when governor doesn’t engage (@bgnsgeyer, PR:33693)
  • PID scaling support fixed (@lthall, PR:32725)
  • Rotor runup complete checks governor is engaged (@Ferruccio1984, PR:30952)
  • Stick arming behaviour bugfix (@bnsgeyer, PR:33402)
  • TradHeli attitude controller leaky-I term during power-off fixed (@Ferruccio1984, PR:32273)
  1. Plane/QuadPlane specific changes
  • Added optional full roll limiting near stall using airspeed sensor (@rubenp02, PR:29843)
  • Advanced Failsafe option to not go back to the loss comm mission item if we are already in the return path (@eppravitra, PR:29961)
  • AHRS fly-forward re-evaluated on mode mode change (avoids clearing wind estimates on mode change) (@peterbarker, PR:28346)
  • Airspeed nudge supported when using synthetic airspeed (@IamPete1, PR:31679)
  • Allow lower speeds in landing final (@rubenp02, PR:29265)
  • AP_IOMCU: Throttle will not output on failsafe while disarmed (@IamPete1, PR:32912)
  • AP_TECS fix off-by-one error in TECS_HDEM_TCONST docs (@Ryanf55, PR:30160)
  • Attitude stall prevention adjustments (see AIRSPEED_STALL) (@rubenp02, PR:29092)
  • Autoland mode added (@Hwurzburg, PR:28771)
  • Blackbox logging using BBX onboard log messages (@tridge, PR:30926)
  • Climb slope minimum height parameter added (see CLIMB_SLOPE_HGT) (@rubenp02, PR:29077)
  • Crash detection false positive fixed on “shake to launch” (@rubenp02, PR:29390)
  • CTUN.Pitch log field corrected to remove PITCH_TRIM (@Hwurzburg, PR:29152)
  • D Feedforward scaling for PID controllers fixed (but rarely used) (@grep265, PR:30753)
  • Do not apply minimum throttle during SLT VTOL airbrake (@Georacer, PR:28329)
  • EXTENDED_SYS_STATE during AIRBRAKE fixed (@robertlong13, PR:32422)
  • Flight options bit added to enable flaps by actual speed (@tridge, PR:30476)
  • Forward throttle cutoff voltage parameter added (see FWD_BAT_THR_CUT) (@rubenp02, PR:29080)
  • Forward transition throttle glitch fixed for tilting rotor quadplanes (@priseborough, PR:29696)
  • get_fwd_pitch_is_limited check fixed (@lthall, PR:29826)
  • Guided mode command timeout made configurable (see GUIDED_TIMEOUT) (@eppravitra, PR:31032)
  • Heading lock upon gnd speed made consistent (@Hwurzburg, PR:29104)
  • ICE governor while disarmed in non-manual (@robertlong13, PR:30201)
  • ICE input control fully move to aux function (@IamPete1, PR:28655)
  • Idle throttle setting for hand/bungee/catapult launches (see TKOFF_THR_IDLE, TKOFF_OPTIONS) (@Georacer, PR:28351)
  • Inflight Tuning text displayed on OSD and GCS (@Yury-MonZon, PR:28831)
  • is_landing correctly reported to GCS during AUTOLAND (@Hwurzburg, PR:29553)
  • Load factor and roll formulas fixed along with TECS’s TASmin (@IamPete1, PR:29101)
  • log throttle-is-suppressed to STAT message “Sup” field (@peterbarker, PR:28906)
  • Motor test obeys E-Stop during motor test and allow changing values (@IamPete1, PR:29491)
  • Pitch stick mixing full override fixed (@rubenp02, PR:29841)
  • Precision landing accuracy fixed (@tridge, PR:31677)
  • Prevent excessive aero surface deflections in VTOL operation (@priseborough, PR:31010)
  • Quadplane autotune heading fixed while holding position (@lthall, PR:32214)
  • Quadplane coordinates turns during transition (@robertlong13, PR:30434)
  • Quadplane POSITION1 velocity control improved (@robertlong13, PR:30309)
  • Quadplane pre-arm check for RTL_AUTOLAND vs Q_RTL_MODE (@peterbarker, PR:31457)
  • Quadplane stopping speed equation fixed (@eppravitra, PR:29712)
  • Quadplane supports thrust loss detection (@IamPete1, PR:31764)
  • QuadPlane yaws more smoothly during back transition (@robertlong13, PR:31401)
  • RC_FS_TIMEOUT parameter support (@Maarrk, PR:31441)
  • Reverse thrust available in manual modes with USE_REV_THRUST 0 (@IamPete1, PR:30532)
  • Roll-only stick mixing added (see STICK_MIXING) (@rubenp02, PR:29842)
  • RPM check added to takeoff (@robertlong13, PR:29052)
  • Short failsafe simplified by removing FS_SHORT_TIMEOUT (@Jazhi, PR:30350)
  • Soaring adds named value float publisher of soaring thermal EKF state (@Ryanf55, PR:29030)
  • Soaring rate limit the NVF publishers to 4Hz (@Ryanf55, PR:29064)
  • System ID on RC aux Switch (set RCn_OPTION=184) (@bnsgeyer, PR:29608)
  • Takeoff roll error fixed when flying inverted (@Maarrk, PR:32110)
  • TEC3 log message field formatting rearranged (@peterbarker, PR:30486)
  • TECS altitude reset along with the rest of the controllers (good for balloon drops) (@Georacer, PR:27827)
  • TECS initializes flare sink demand with current demand (@Georacer, PR:31610)
  • Throttle slew fixed during first takeoff (@IamPete1, PR:32381)
  1. Rover specific changes
  • AHRS does not fall back to DCM when AHRS_OPTIONS=3 (@deepak31296, PR:33392)
  • AIS information populated in object avoidance database (used by BendyRuler) (@IamPete1, PR:30185)
  • Arm automatically after arming checks complete (set ARMING_REQUIRE=3) (@peterbarker, PR:29066)
  • Arming check added to optionally require position (see ARMING_NEED_LOC) (@peterbarker, PR:29073)
  • Arming check if terrain data required but not available (@rmackay9, PR:31365)
  • DCM fallback disabled by default (see AHRS_OPTIONS) (@rmackay9, PR:31632)
  • DO_CHANGE_SPEED command’s speed type (param1) must be 0 or 1 (@IamPete1, PR:30509)
  • Follow mode better handles a stopped leader (@stephendade, PR:30012)
  • Guided mode position targets rejected if acceleration supplied (@peterbarker, PR:28076)
  • Log when armed fixed (regardless of safety switch state) (@IamPete1, PR:32082)
  • Loiter or Hold added as a failsafe action (@Williangalvani, PR:30079)
  • MAVLink stream rate requests do not save to params (e.g. stream rates revert on next reboot) (@rmackay9, PR:28894)
  • Mode changes when safety switch pressed bug fixed (@peterbarker, PR:33070)
  • MOT_REV_DELAY allows delaying before reversing motors (@tridge, PR:30188)
  • MOT_THR_MAX minimum reduced to 5% to support very powerful vehicles (@IamPete1, PR:31576)
  • Omni vehicle brushed motor support fixed (@mattp256, PR:29187)
  • Pivot turn control improved with steering deceleration max parameter (see ATC_STR_DEC_MAX) (@stephendade, PR:30539)
  • Pivot turns disabled by default (see WP_PIVOT_ANGLE) (@rmackay9, PR:31376)
  • Power limiting UX improved (@stephendade, PR:32788)
  • RC_FS_TIMEOUT parameter support (@Maarrk, PR:31441)
  • Rover AMP limiter added (see BATTn_WATT_MAX, MOT_BAT_WATT_TC) (@SpiciestMayo, PR:31285)
  • Speed max increased to 100m/s for pilot controlled modes (@IamPete1, PR:32080)
  1. Sub specific changes
  • Acro mode pilot throttle input bug fix (@xianglunkai, PR:31469)
  • Allow limiting upwards throttle at surface (@Williangalvani, PR:29995)
  • Automatically deal with misconfigured lights/actuators (@Williangalvani, PR:31109)
  • Baro data timeout extended to 20sec (@peterbarker, PR:30887)
  • Correct operation of pilot input and rc failsafes (@Hwurzburg, PR:30365)
  • Depth sensor message made less spammy (@Hwurzburg, PR:29891)
  • Do not interpret zero altitude waypoints as ‘current altitude’ (@Williangalvani, PR:30823)
  • DO_CHANGE_SPEED command’s speed type (param1) must be 0 or 1 (@IamPete1, PR:30509)
  • Lights and video switches moved to aux functions (@Williangalvani, PR:29863)
  • Lights servo channels defaults fixed (@ES-Alexander, PR:32764)
  • Loop rate logging added (see LOG_BITMASK’s IMU_FAST bit) (@clydemcqueen, PR:28747)
  • MOT_FV_CPLNG_K has better documentation (@ES-Alexander, PR:33076)
  • OSD support added to FPV builds (@Hwurzburg, PR:30271)
  • PosHold horizontal velocity limited to PILOT_SPEED to avoid bounceback (@clydemcqueen, PR:28205)
  • Pre-arm check for aux func disarm/estop (@Hwurzburg, PR:29979)
  • RCMAP supports remapping RC input channels (@Hwurzburg, PR:30018)
  • Remote leak detector MAVLink interface support added (@ES-Alexander, PR:32614)
  • RSSI support (@Hwurzburg, PR:30166)
  • SCALED_PRESSURE3 fixed for standard users (@ES-Alexander, PR:31133)
  • Servos refactored (see ACTUATOR params) (@Williangalvani, PR:28801)
  • Simplify home logic (@Williangalvani, PR:30891)
  • Surface mode number reporting to GCS fixed (@Hwurzburg, PR:29906)
  • Surface mode works with no altitude data (@Williangalvani, PR:29996)
  • Surface tracking reset if disarmed (fixes dive when disarmed) (@clydemcqueen, PR:30103)
  • Sysid filtering added for remote leak detection (@ES-Alexander, PR:32255)
  • Tether turn counting improved (@ES-Alexander, PR:30011)
  • Traditional RC tx/rx supported (@Hwurzburg, PR:29742)
  • Very early prearm check will not cause initializatin bug (@CSmith1539, PR:33217)
  • Warn or automatically fix misconfigured relay/leak detector (@Williangalvani, PR:31702)
  • WATER_DEPTH MAVLink reporting added (@SpiciestMayo, PR:31622)
  • When disarmed and in manual mode, set throttle out to neutral value (@amarburg, PR:32057)
  1. Tracker specific changes
  • ATTITUDE_TARGET mavlink message sent to GCS (@python36, PR:30548)
  • GCS_PID_TUNING fixed (@landswellsong, PR:31284)
  • PWM outputs “corked” to ensure consistent outputs (@landswellsong, PR:32368)
  1. AP_Periph specific changes
  • Actuator telemetry support added (@Huibean, PR:31557)
  • Basic BMS support (@rmackay9, PR:31791)
  • BatteryMonitor reports state of health (@IamPete1, PR:29700)
  • BatteryTag support (@tridge, PR:29983)
  • CAN-over-MAVLink added (@peterbarker, PR:30782)
  • ESC telemetry fills in ESC error count if available (@IamPete1, PR:31528)
  • Periph DroneCAN msg order fix (@tpwrules, PR:31673)
  • PWM servo command timeout (see SRV_CMD_TIME_OUT) (@IamPete1, PR:30363)
  • Simultaneous serial passthrough connections (@peterbarker, PR:30133)
  • Support for sending servo telemetry (@IamPete1, PR:31577)
  1. Scripting changes
  • AHRS’s get_accel() binding returns primary accel rather than first usable (@andyp1per, PR:28588)
  • AHRS_switch.lua gets minor improvement to RC aux switch handling (@tridge, PR:28386)
  • Aux auths reset when scripts restarted (avoids “PreArm: Too many auxiliary authorisers” error) (@robertlong13, PR:29337)
  • BattEstimate.lua applet’s SoC model generalised for more battery chemistries (@rubenp02, PR:29391)
  • Binding for fence margin direction (@andyp1per, PR:31009)
  • Binding for mcu_voltage (@haydendonald, PR:28338)
  • Binding for scripted battery monitors to set state of health (@IamPete1, PR:29701)
  • Bindings for ESC telem power percentage and support “depends” keyword on fields (@IamPete1, PR:31502)
  • Bindings for more fence methods (@andyp1per, PR:31603)
  • Bindings for serial port parity and stop bits (@ajboainain, PR:30226)
  • Bindings for servo telemetry (@IamPete1, PR:28857)
  • config_profiles.lua examples allows selection of different configuration sets (@peterbarker, PR:31052)
  • copter_terrain_brake.lua applet reads aloud activation message (@peterbarker, PR:30760)
  • CRSF memory leaks and nullptr dereferences fixed (@tpwrules, PR:31718)
  • Duplicate names checked when adding scripting params (@IamPete1, PR:30523)
  • EFI_DLA64.lua driver supports new protocol for updated EFI engine from DLA (@tridge, PR:29953)
  • EFI_Halo6000.lua driver enable fix (@Georacer, PR:29758)
  • Enhanced copter attitude control bindings (see set_target_angle_and_rate_and_throttle) (@andyp1per, PR:25814)
  • ESC_slew_rate.lua example for testing ESC slew limits (@tridge, PR:28415)
  • fake camera tracking example added (@robertlong13, PR:28418)
  • follow-target-send.lua applet sends leader position to followers (@rmackay9, PR:28886)
  • gcs:set_message_interval port range expanded to include serial-over-ethernet ports (@tpwrules, PR:31279)
  • gps_switch.lua example supports switching GPS used by EKF (@Ryanf55, PR:30239)
  • HFE EFI driver script supports logging all CAN frames (@tridge, PR:28772)
  • INF_Inject.lua EFI temperature ranges corrected (was C, now Kelvin) (@WickedShell, PR:30608)
  • Initial memory usage message only printed if SCR_DEBUG_OPTS’s Runtime messages bit set (@tpwrules, PR:31180)
  • Logging memory leak reporting fixed (was not actually leaking) (@tpwrules, PR:31688)
  • LTE_modem.lua driver supports Air780, BG95, CMUX, EC200U, EG800Q, SIM7070G including via PPP (@tridge, PR:30213)
  • Lua example to convert pwm output to sbus (see sbus_send.lua) (@robot-to-society, PR:31781)
  • Lua upgraded to ver 5.3.6 (@tpwrules, PR:29116)
  • Mavlink handling fixed to avoid crash on reinit with bigger buffer size (@tpwrules, PR:31682)
  • MAVLink messages with incorrect CRC are rejected (@IamPete1, PR:31268)
  • mavlink:init docs corrected and scripts fixed including plane_aerobatics, copter-slung-payload (@IamPete1, PR:29246)
  • Memory leak in socket recv() fixed (@tridge, PR:31039)
  • message_interval applet sends more messages (@rmackay9, PR:31320)
  • Minor script changes to resolve luacheck issues (@IamPete1, PR:28931)
  • MissionSelector applet handles file access failures (@IamPete1, PR:28520)
  • mount-djirs2 driver updated including support for connecting using a DroneCAN bus (@tpwrules, PR:28512)
  • net-ntrip.lua applet supports RTK GPS via direct connection to an unsecure NTRIP caster (@yuri-rage, PR:29821)
  • param-set script renamed to param-lockdown (@rmackay9, PR:32489)
  • param-set.lua applet allows rejecting attempts to set parameters (@peterbarker, PR:29989)
  • Param_Controller.lua time out fixed and support added for comma delimited lists (@JosephStew-art, PR:30475)
  • Plane autoland applet added (@Hwurzburg, PR:28591)
  • Plane follow lua applet (@timtuxworth, PR:30654)
  • plane-callout-alt.lua example provides alt callouts in feet (@timtuxworth, PR:28426)
  • plane_follow.lua has a fix for crosstrack oscillation (@timtuxworth, PR:32575)
  • plane_follow.lua messages will no longer crash the script if there is no target vehicle (@timtuxworth, PR:32567)
  • plane_precland.lua fix when PLND_XY_DIST_MAX is 0 (@AlexisMGL, PR:30685)
  • plane_ship_landing.lua gets pos/vel sanity check (@peterbarker, PR:29886)
  • PlaneFollow scripting parameter case fixed (@timtuxworth, PR:32456)
  • qnh_alt.lua example sends QNH altitude to GCS (useful for BVLOS) (@tridge, PR:29705)
  • RAM and flash cost reduced by removing utf8 assistance code (unlikely anyone was using it) (@tpwrules, PR:30625)
  • RAM usage reduced by loading metatables on first use (@tpwrules, PR:31717)
  • Repl applet minor bug fix (@tpwrules, PR:31944)
  • revert_params.lua applet supports motor slew rates, notch params (@tridge, PR:30815)
  • RockBlock.lua applet and MAVLinkHL.lua example get better mavlink parsing (@stephendade, PR:29314)
  • Scripted CRSF Menus (@andyp1per, PR:29368)
  • Scripting e-stop RC aux function (set RCn_OPTION = 316) (@andyp1per, PR:30508)
  • Scripting engine run in protected mode to fix panic hardfault (@tpwrules, PR:31793)
  • Scripting RC aux functions increased to 16 (@IamPete1, PR:28858)
  • Scripting: New vehicle:is_crashed() Lua binding (@yuri-rage, PR:33258)
  • Scripts may be stored in flash on boards using littlefs (@andyp1per, PR:28724)
  • Scripts may use default serial baudrate (@landswellsong, PR:31269)
  • Segfault fixed from trying to send a mavlink message on an invalid channel (@IamPete1, PR:31031)
  • set_ahrs_origin promoted to an applet (@rmackay9, PR:28770)
  • Support for sending/receiving DroneCAN messages (@tridge, PR:29310)
  • throttle_kill.lua applets supports turning off turbine engines that rely on low PWM (@tridge, PR:28714)
  • Torqeedo TorqLink lua driver (see drivers/torqeedo-torqlink.lua) (@rmackay9, PR:29145)
  • Traxxas Velineon ESC example script (@IamPete1, PR:30976)
  • trisonica-mini.lua example decode wind speed from Trisonica LI-550 (@Ryanf55, PR:30054)
  • UltraMotion servo driver fixes (@robertlong13, PR:30651)
  • Unify handling of legacy dot vs. colon calls (@tpwrules, PR:31681)
  • Viewpro lua driver removed (use C++ driver instead) (@deepak61296, PR:31774)
  • VSPeak Modell flow meter driver added (@Georacer, PR:28627)
  1. ROS2/DDS changes
  • Airspeed control added for planes in GUIDED mode (@Ryanf55, PR:29829)
  • Airspeed message includes eas_2_tas factor (@tizianofiorenzani, PR:29522)
  • Arm commands handled through external control for additional safety (@Ryanf55, PR:28609)
  • Battery topic reports all available batteries (@tizianofiorenzani, PR:28291)
  • Compile-time configurable rates for each publisher supported (@Ryanf55, PR:28434)
  • Configuration fixes so enable options work as expected (@srmainwaring, PR:29009)
  • Goal topic publisher added (@tizianofiorenzani, PR:28372)
  • Initialisation fixed on UDP transport (@stephendade, PR:30899)
  • Namespace representation for global constants added (@snktshrma, PR:29850)
  • Publish all available GPS instances (@tizianofiorenzani, PR:29419)
  • Quadplane takeoff support (@Ryanf55, PR:30098)
  • RC channels message support (@tizianofiorenzani, PR:28907)
  • Status Message provides vehicle type, mode, RC Failsafe (@tizianofiorenzani, PR:28337)
  • Topic retries added (@stephendade, PR:31599)
  1. Linux/ESP32/QURT (ModalAI) changes
  • AP_HAL_ESP32 fix to GPIO relays (@DanyloZhubryd, PR:32055)
  • ESP32 CPU and memory usage optimisations (@srmainwaring, PR:28803)
  • ESP32 I2C and SPI driver fixes (@tpwrules, PR:29269)
  • ESP32 RC over UART support (@srmainwaring, PR:28650)
  • ESP32 scheduler and UART thread ownership fixes (@srmainwaring, PR:29010)
  • ESP32 wifi connection reliability improved (@sblaksono, PR:28460)
  • Increase max notch filters for Linux boards (@andyp1per, PR:31920)
  • Linux boards gets SPI-based serial LED driver for NeoPixel/WS2812 (@andyp1per, PR:31951)
  • M5Stack M5Stamp Fly 55mm quadcopter support (@tpwrules, PR:29448)
  • ModalAI Sentinel with IO board and Starling 2 Max parameter files added (@katzfey, PR:28844)
  • QURT support for the ModalAI IO board to support PWM ESCs (@katzfey, PR:28834)
  1. Logging related changes
  • AHRS log message rate not affected by full rate attitude logging (@IamPete1, PR:32623)
  • AP_Logger: LOG_MAV_RATEMAX default changed to 10 (@tridge, PR:33030)
  • AP_Logger: logging over MAVLink speed significantly improved (@tridge, PR:33020)
  • AP_Logger: Named Value Float dataflash logging drops fixed (@tridge, PR:32975)
  • CAN servo messages (CSRV) logging fixed to avoid missed messages (@tridge, PR:28404)
  • ControlMonitor removed including logging (use PID Review WebTool instead) (@rmackay9, PR:29610)
  • DCM logging of airspeed to DCM log message (@peterbarker, PR:31510)
  • Filter: Harmonic notch logging fix to avoid over reading array (@peterbarker, PR:33232)
  • Fsync code enhancements (@tpwrules, PR:29308)
  • Generator GEN log message renamed to RICH (@peterbarker, PR:30033)
  • Log last time we saw our GCS on each link in MAV message (@peterbarker, PR:30495)
  • Log rate of dropped incoming serial data (@IamPete1, PR:29473)
  • Log transfer expects longer CPU delays avoiding possible watchdogs (@peterbarker, PR:31955)
  • Log Unix epoch time (@peterbarker, PR:29948)
  • POWR message ACC flag’s Changed field fixed (@peterbarker, PR:28618)
  • Pre-arm failure if no logging backends are available (@tpwrules, PR:31534)
  • Protect against memory corruption if scripts log very large messages (@tpwrules, PR:31680)
  • Rally altitude logging multiplier corrected (@peterbarker, PR:32298)
  • Rangefinder state is logged (@Georacer, PR:31579)
  1. GCS / MAVLink related changes
  • Accel calibration ack only accepted from initial source sysid/compid (resolves conflict with Gremsy gimbals) (@meee1, PR:18989)
  • AP_Filesystem: FTP-related hardfault is fixed (@peterbarker, PR:33156)
  • AVAILABLE_MODES message sends list of available modes to GCS (for QGC) (@IamPete1, PR:28566)
  • DO_SET_GLOBAL_ORIGIN command support added (@peterbarker, PR:29699)
  • FLIGHT_INFORMATION message added (@nexton-winjeel, PR:25489)
  • GCS_MAVLink: Serial port blocking write bug fixed (@tridge, PR:33437)
  • High latency connections do not initialise streamrates (@stephendade, PR:31331)
  • HIL_GPS message support removed (@peterbarker, PR:28593)
  • HWSTATUS mavlink message removed by default (re-enable with custom build server) (@peterbarker, PR:31174)
  • MAV_GCS_SYSID_HI param allows GCS failsafe handling to work with multiple ground stations (@tridge, PR:30627)
  • MAVFTP burst complete indicator fixed (@ZachFleck42, PR:30399)
  • MAVFTP fix to create file if opened as “write only” (@deepak61296, PR:31872)
  • MAVFTP fix to file name length comparison to support MAVSDK (@alploskov, PR:26462)
  • MAVFTP fix to returned error code from close calls (@ntamas, PR:31045)
  • MAVFTP speedup (@tridge, PR:31551)
  • MAVLinkCAN: CAN_FORWARD rejects negative CAN bus indices (@CSmith1539, PR:33376)
  • MAVn_OPTIONS bit added to forward mavlink messages with bad CRCs (@peterbarker, PR:25419)
  • MAVn_OPTIONS bit to enable channel-specific signing (@ben-sembira-1, PR:29546)
  • MOUNT_CONFIGURE, MOUNT_CONTROL message support removed (use equivalent commands instead) (@peterbarker, PR:28990)
  • Nicer mode names for QGC (@tpwrules, PR:31897)
  • ODOMETRY, VISION_POSITION_ESTIMATE, ATT_POS_MOCAP consume covariance, pos and ang err calcs fixed (@chobitsfan, PR:32084)
  • PARAM_ERROR error message support (reports error to GCS if param cannot be set) (@peterbarker, PR:31062)
  • Plane supports DO_REPOSITION command with HEADING_TYPE_DEFAULT (@timtuxworth, PR:28527)
  • Preflight calibration of airspeed return code fixed no airspeed (@rishabsingh3003, PR:30111)
  • PREFLIGHT_REBOOT command accepted only if sent to autopilot compID (@nexton-winjeel, PR:31537)
  • Raise number of MAVLink ports to 8 (or 32 with code definition change) (@tridge, PR:28343)
  • RANGEFINDER messages not sent by default (use DISTANCE_SENSOR instead) (@peterbarker, PR:31095)
  • Rover’s POSITION_TARGET_GLOBAL_INT alt units fixed (@peterbarker, PR:32315)
  • Rover’s WHEEL_DISTANCE timestamp overflow fixed (@peterbarker, PR:32302)
  • Sanity check SET_GPS_GLOBAL_ORIGIN altitude (@Maarrk, PR:31261)
  • Streamrates, sysid, mygcs-sysid, etc moved to MAV_ parameters (@peterbarker, PR:29617)
  • Support requesting MESSAGE_INTERVAL via REQUEST_MESSAGE cmd (@nexton-winjeel, PR:28353)
  • SYS_STATUS errors_comm field holds number of received packets dropped (@amilcarlucas, PR:20949)
  • SYS_STATUS errors_count3 fields holds dropped message count (@peterbarker, PR:30187)
  • Tracker’s GLOBAL_POSITION_INT alt units fixed (@peterbarker, PR:32312)
  • WIND mavlink message speed field fixed (was using 3D length) (@peterbarker, PR:32311)
  1. Features removed due to flash constraints
  • Beacon, Generator, KDECAN, Robotis and Volz servos, Winch support removed on most boards (re-enable with custom build server) (@peterbarker, PR:30297)
  • External AHRS removed from <2MB boards (@tridge, PR:30062) remove ExtAHRS from <2MB boards
  • ICE, EFI, GHST telemetry and Video TX disabled on Pixhawk1-1M (@andyp1per, PR:32062)
  • SBP GPS raw logging removed (@peterbarker, PR:29469)
  1. Developer and support related changes
  • ardupilotwaf: gcc-14+ compiler warnings are suppressed (@yuri-rage, PR:33138)
  • Battery watt limiter feature added to custom build server (@mackay9, PR:32687)
  • Bootloader reads Git SHA (@joshanne, PR:28492)
  • Copter internals converted to SI units and NED frame (@lthall, PR:31513)
  • Copter loses InertialNav library wrapper for EKF (code simplification) (@lthall, PR:30153)
  • Crashdump memory regions increased to diagnostic data (@bugobliterator, PR:28395)
  • Custom Build Server dependency fix for DroneCAN and Generator (@peterbarker, PR:33429)
  • Ensure stable IMU timing on RealFlight (@andyp1per, PR:29921)
  • FlightAxis support for automatically resetting the aircraft position (@robertlong13, PR:28282)
  • RealFlight performance under cygwin improved (@peterbarker, PR:31539)
  • Simulink arducopter.slx updated from 4.3.3 to 4.6.2 (@amilcarlucas, PR:31047)
  • Various QURT compiler support improvements (@katzfey, PR:28624)

Thank you very much to the developers and beta testers and users who contributed so much to this release. Also thanks to our Partners for their ongoing support!

Thanks all Ardupilot team for a great work.

Thanks so much for all the detail @rmackay9. One question, for the ATC parameter changes, do you know if the equivalent Q_ parameters (Q_A I guess) have been changed also?

This is what Claude tells me:

Confirmed — the Copter thread’s table is genuinely incomplete for QuadPlane. Checked both AC_AttitudeControl.cpp and AC_PosControl.cpp conversion tables directly (shared libraries, just instantiated under different param prefixes: ATC_/Q_A_for attitude, PSC_/Q_P_ for position/accel).

Q_A (attitude) — missing from the table:

  • Q_A_ACC_R_MAX (was Q_A_ACCEL_R_MAX, cm/s/s → m/s/s) — mirrors ATC_ACCEL_R_MAXATC_ACC_R_MAX
  • Q_A_ACC_P_MAX (was Q_A_ACCEL_P_MAX) — same pattern
  • Q_A_ACC_Y_MAX (was Q_A_ACCEL_Y_MAX) — same pattern
  • Q_A_RATE_WPY_MAX (was Q_A_SLEW_YAW, cdeg/s → deg/s) — mirrors ATC_SLEW_YAWATC_RATE_WPY_MAX

Note: Q_A_ANGLE_MAX and Q_A_INPUT_TC are mentioned, but only in prose (section 5 and the Warnings block), not in the table itself — so the table’s coverage of Q_A is inconsistent even for the ones it does call out.

Q_P (position/accel) — you were right to be less sure, but it’s confirmed, not missing entirely, just entirely absent from the table:

  • Q_P_NE_VEL_IMAX (was Q_P_VELXY_IMAX, 100x smaller)
  • Q_P_NE_VEL_* (was Q_P_VELXY_*, no scaling change)
  • Q_P_D_VEL_IMAX (was Q_P_VELZ_IMAX, 100x smaller)
  • Q_P_D_VEL_* (was Q_P_VELZ_*, no scaling change)
  • Q_P_D_ACC_P/I/D (was Q_P_ACCZ_P/I/D, 10x smaller)
  • Q_P_D_ACC_* (was Q_P_ACCZ_*, no scaling change)

This is the exact same AC_PosControl.cpp conversion table entry set as the PSC_* renames — literally same PR (lthall’s SI-unit conversion), just applied under both prefixes since QuadPlane instantiates its own AC_PosControl/AC_AttitudeControlobjects with Q_P_/Q_A_ param prefixes.

One loose end I couldn’t fully pin to this specific release: some doc pages reference Q_P_D_POS_P as the new name for Q_P_POSZ_P, but that pair isn’t in the Copter table either (no POSZPOS copter-side rename listed), so I can’t confirm from this diff whether that rename shipped in 4.7.0 or an earlier release. Worth checking your own 4.6.34.7.0 param diff directly on a bench unit if that one matters to you.

Bonus find — not in the Copter table either, and these do NOT auto-convert:

Old New
Q_P_POSZ_* / PSC_POSZ_* Q_P_D_POS_* / PSC_D_POS_*
Q_P_POSXY_* / PSC_POSXY_* Q_P_NE_POS_* / PSC_NE_POS_*
Q_P_JERK_XY / PSC_JERK_XY Q_P_JERK_NE / PSC_JERK_NE
Q_P_JERK_Z / PSC_JERK_Z Q_P_JERK_D / PSC_JERK_D

I grepped the full ConversionInfo migration array in the new AC_PosControl.cpp (lines ~1820–1915) and there’s no entry for POSZ/POSXY/JERK — only VELXY/VELZ/ACCZ get migrated. So on upgrade, any non-default PSC_POSZ_P/Q_P_POSZ_P, PSC_POSXY_P/Q_P_POSXY_P, or either JERK param silently resets to default rather than carrying forward. Worth flagging on the forum thread — this affects Copter too, not just QuadPlane.

The relevant parameter changes are in the Plane announcement.

Hello

I tested 4.7.0 final release on the following FC:

  • Pixhawk1-1M
  • Pixhawk1
  • Holybro Pixhawk 6C
  • CUAV Pixhack v3X

The following flight modes were tested:

  • Stabilize
  • Position Hold
  • Loiter
  • Auto (Mission)
  • Autotune
  • RTL

Everything went fine. No problems found. Have the subjective impression that PositionHold flight mode works more smooth than in 4.6.3

Thanks to all developers for their great work. Also appreciated that the 2 faults I identified in beta phase (Jerk respond of PosHold flight mode & Compass detection on Pxhack V3x) were respected and solved.

BR

Harald

Thanks very much @Harald for the testing and feedback!!

It seems we forgot that PSC_ACCZ_IMAX (800) was renamed to PSC_D_ACC_IMAX (0.8), a 1000x reduction?

Hi @cuav_le,

Thanks very much for catching that. I’ve added it to the parameter at the top of this page and over on the Plane release page.

Hi @timtuxworth,

Thanks for finding those param changes that were missing from the list. I’ve updated the list at the top of this discussion and also the Plane release discussion.

TBH, I think we’ve messed up the JERK parameters. I think they should be PSC_D_JERK and PSC_NE_JERK. FYI @Leonardthall

Yes, I think you are right. Bugger!!!

Hi everyone,

I just wanted to drop a quick note to congratulate and thank the development team for the fantastic work on ArduPilot 4.7.0.

I’m running ArduCopter on a 4-inch build with limited flash/RAM resources. Moving from version 4.6.3 to 4.7.0, my Free RAM went up from 31,400 bytes to 34,500 bytes—and that’s after enabling extra compass options and AHRS!

The memory management and library reorganization in this release are top-notch. It makes a huge difference on F4 targets (Matek F405HDTE).

Thanks a lot for the continuous improvement and incredible support for the community! :clap::rocket: