After many months of development and beta testing, ArduPilot-4.6.0 has been released as the stable/official version for planes, copters, traditional helicopters, rovers, boats and antenna trackers!
Thanks and congratulations to all who contributed to this momentous release including the developers, beta testers, wiki updaters, users and Partners!
Warnings
- The LD06/LD19 360deg lidar driver (aka “proximity driver”) changes cause the readings to be more sensitive to noise caused by sunlight. If you are using this lidar we recommend waiting for 4.6.1 which we expect will include better filtering (see potential fix here)
Upgrade procedure
The firmware can be installed using Mission Planner or QGC or it can be directly downloaded from firmware.ardupilot.org. As with previous releases there should be no need to backup and restore parameters as part of the firmware upgrade. Upgrading the firmware does not directly affect parameter storage and any required parameter changes will be done automatically. Of course feel free to take a backup of all parameters prior to upgrading but re-applying the parameters should not be necessary.
Downgrade procedure
If you see any issues post-upgrade remember that you can always downgrade again using Mission Planner’s “All Options” button or you can manually download 4.5.7 from firmware.ardupilot.org (use the .apj file)
Release Notes
The changes vs 4.5.7 are in the ReleaseNotes and copied below
- Board Support and Hardware Enhancements
- AEROFOX-H7 support
- AET-H743-Basic support
- AnyLeaf H7 supports compass and onboard logging
- ARK FPV, LumenierLuxF765, MicroAir743, StellarF4v2, X-MAV-AP-H743v2 OSD Type defaults fixed
- BETAFPV F405 board variants added and supports DPS310 baro
- BETAFPV-F405-I2C UART6 fix
- Blitz743Pro supports CAN
- BlueRobotics Navigator supports BMP390 baro
- Bootloader ECC failure check fixed on boards with >128k bootloader space (e.g CubeRed)
- BrotherHobby F405v3 and H743 support
- CB Unmanned Stamp H743 support
- ClearSky CSKY405 support
- CUAV-7-Nano default batt monitor fixed
- CubeRed bootloader fixes including disabling 2nd core by default
- CubeRed supports PPP networking between primary and secondary MCU
- CubeRedPrimary supports external compasses
- ESP32 main loop rate improvements
- ESP32 memory initialisation fix
- ESP32 RC input fixes and wifi connection reliability improved
- ESP32 safety switch and GPIO pin support
- FlyingMoon no longer support MAX7456
- Flywoo F405HD-AIOv2 ELRS RX pin pulled high during boot
- FlywooF405HD VTX power pin fixed
- Flywoo H743 Pro support
- Flywoo/Goku F405 HD 1-2S ELRS AIO v2
- FlywooF745 supports DPS310 baro
- FoxeerF405v2 supports BMP280 baro
- FPV boards lose SMBus battery support (to save flash)
- GEPRC F745BTHD support
- GEPRCF745BTHD loses parachute support, non-BMP280 baros (to save flash)
- Here4FC bootloader fix for mismatch between RAM0 and periph that could prevent firmware updates
- Holybro Kakute F4 Wing support
- iFlight 2RAW H743 supports onboard logging
- JFB110 supports measuring servo rail voltage
- JFB110 supports safety switch LED
- JHEM-JHEF405 bootloader supports firmware updates via serial
- JHEMCU GF30H743 HD support
- JHEMCU-GF16-F405 autopilot support
- JHEMCU-GSF405A becomes FPV board (to save flash)
- KakuteF7 only supports BMP280 baro (to save flash)
- KakuteH7, H7-Mini, H7-Wing, F4 support SPA06 baro
- KakuteH7Mini supports ICM42688 IMU
- Linux auto detection of GPS baud rate fixed
- Linux board scheduler jitter reduced
- Linux board shutdown fixes
- MakeFlyEasy PixPilot-V6Pro support
- MatekF405, Pixhawk1-1M-bdshot, revo-mini loses blended GPS (to save flash)
- MatekH7A3 support Bi-directional DShot
- MFT-SEMA100 compass orientation fix
- MicoAir405v2 and MicoAir405Mini support optical flow and OSD
- MicoAir743 internal compass orientation fixed
- MicoAir743AIO and MicoAir743v2 support
- MicroAir405Mini, MicroAir743, NxtPX4v2 support
- MicroAir405v2 Bi-directional DShot and LED DMA fixes
- MicroAir405v2 defined as FPV board with reduced features (to save flash)
- ModalAI VOXL2 support including Starling 2 and Starling 2 max
- mRo Control Zero Classic supports servo rail analog input
- mRo KitCAN revC fixed
- Mugin MUPilot support
- NarinFC-H7 support
- OmnibusF7v2 loses quadplane support (to save flash)
- OrqaF405Pro supports ICM42688 IMU
- Pixhack-v3 board added (same as fmuv3)
- Pixhawk6C bootloader supports flashing firmware from SD card
- RadiolinkPIX6 imu orientation fixed
- RadiolinkPIX6 supports SPA06 baro
- ReaperF745 V4 FC supports MPU6000 IMU
- RPI5 support
- SDModelH7v2 SERIAL3/7/9_PROTOCOL param defaults changed
- SkySakura H743 support
- Solo serial ports default to MAVLink1
- SpeedyBee F405 AIO support
- SpeedyBeeF405Wing gets Bi-directional DShot
- SpeedyBeeF405WING loses landing gear support, some camera gimbals (to save flash)
- Spektreworks boom board support
- TBS bootloaders updated to avoid firmware erase on ECC error
- TBS Lucid H7 support
- TBS Lucid H7 Wing support
- TBS Lucid H7 support for both I2C ports
- TBS Lucid Pro support
- TrueNavPro-G4 SPI does not share DMA
- VUAV-V7pro README documentation fixed
- X-MAV AP-H743v2 CAN pin definition fixed
- X-MAV AP-H743v2 support
- AHRS/EKF Enhancements
- AHRS initial orientation fixed when autopilot mounted in non-default orientation
- AHRS_OPTION to disable fallback to DCM (affects Plane and Rover, Copter never falls back)
- AHRS_OPTION to disable innovation check for airspeed sensor
- Airspeed sensor health check fixed when using multiple sensors and AHRS affinity
- Arming check for EKF3 velocity innovations
- DCM support for MAV_CMD_EXTERNAL_WIND_ESTIMATE (Plane only)
- EK2 supports disabling external nav (see EK2_OPTIONS)
- EK3 External Nav position jump after switch from Optical flow removed (see EK3_SRC_OPTION=1)
- EK3 uses filtered velocity corrections for IMU position
- EKF2, EKF3, ExternalAHRS all use common origin
- EKF3 accepts set origin even when using GPS
- EKF3 allows earth-frame fields to be estimated with an origin but no GPS
- EKF3 copes better with GPS jamming
- EKF3 logs mag fusion selection to XKFS
- EKF3 position and velocity resets default to user defined source
- EKF3 wind estimation when using GPS-for-yaw fixed
- External AHRS improvements including handling variances, pre-arm origin check
- Far from EKF origin pre-arm check removed (Copter only)
- Inertial Labs External AHRS fixes
- VectorNav driver fix for handling of error from sensor
- VectorNav External AHRS enhancements including validation of config commands and logging improvements
- VectorNav support for sensors outside VN-100 and VN-300
- Sensor and Driver Enhancements
- ADSB fix to display last character in status text sent to GCS
- Ainstein LR-D1 radar support
- AIRSPEED message sent to GCS
- AIRSPEED_AUTOCAL mavlink message only sent when required and fixed for 2nd sensor
- Airspeed ASP5033 whoami check fixed when autopilot rebooted independently of the sensor
- AM32 ESC passthrough fixed
- Analog temperature sensor extended to 5th order polynomial (see TEMP_A5)
- ARSPD_OPTIONS to report calibration offset to GCS
- BARO_ALT_OFFSET slew slowed to keep EKF happy
- BATTx_ESC_MASK param supports flexible mapping of ESCs to batteries
- BATTx_OPTIONS param desc fixed
- BATTx_OPTION to not send battery voltage, current, etc to GCS
- Bdshot locking issue fix for slow boards that could cause the flight controller to crash
- Benewake RDS02U radar support
- Bi-directional DShot on IOMCU supports reversible mask
- Bi-directional DShot telemetry support on F103 8Mhz IOMCUs
- BLHeli telemetry ESC index fixed on boards with IOMCU
- BMM350 compass support
- BMP280 barometer error handling during init improved
- BMP581 baro initialisation fix
- CAN frame logging added to ease support
- CAN manager logging critical race condition fixed (only occurred if CAN_LOGLEVEL was 1 or higher)
- CAN rangefinders and proximity sensors may share a CAN bus (allows NRA24 and MR72 on a single CAN bus)
- Compass calibration world magnetic model checks can use any position source (e.g. not just GPS)
- CRSF baro and vertical speeed fixed
- CRSF reconnection after failsafe fixed
- CRSF RX bind command support
- DroneCAN battery monitor check to avoid memory corruption when type changed
- DroneCAN DNA server fixes including removing use of invalid node IDs, faster ID allocation, elimination of rare inability to save info
- DroneCAN EFI health check fix
- DroneCAN ESC battery monitors calculate consumed mah
- DroneCAN ESCs forced to zero when disarmed
- DroneCAN RPM message support
- DroneCAN semaphore bug fixed which affected MPPT battery and Serial-over-CAN
- DroneCAN timeout fix for auxiliary frames
- DroneCAN to serial tunneling params accepts short-hand baud rates (e.g. ‘57’ for ‘57600’)
- DShot EDTv2 logging fixed
- DShot rates are not limited by NeoPixel rates
- F9P, F10-N and Zed-F9P support for GPSx_GNSS_MODE to turn on/off SBAS, Galileo, Beidou and Glonass
- FuelLevel battery monitor fix to report capacity
- GPS logs altitude above ellipsoid instead of undulation
- GPS_xxx params renamed to GPS1_xxx, GPS_xxx2 renamed to GPS2_xxx
- GSOF GPS protects against port misconfiguration
- Hexsoon 77G and 24G radar support
- Hirth EFI logging includes modified throttle
- Hirth ICEngine supports reversed crank direction (see ICE_OPTIONS parameter)
- Hott and LTM telemetry deprecated (still available through custom build server)
- i-BUS telemetry support
- ICE_PWM_IGN_ON, ICE_PWM_IGN_OFF, ICE_PWM_STRT_ON, ICE_PWM_STRT_OFF replaced with SERVOx_MIN/MAX/REVERSED (Plane only)
- ICE_START_CHAN replaced with RC aux function (Plane only)
- ICEngine retry max added (see ICE_STRT_MX_RTRY)
- ICM45686 IMU FIFO read rate fixed (could read unnecessarily quickly)
- IE 2400 generator error message severity to GCS improved
- IE FuelCell generator data rate increased
- IIS2MDC compass support
- INA2xx battery monitor support (reads temp, gets MAX_AMPS and SHUNT params)
- Inertial sensors check for changes to notch filters fixed
- Inertial sensors stop sensor converging if motors arm
- LD19/LD06 proximity sensor data length sanity check fix
- LDRobot LD06 proximity driver averages over 2deg slices (was 12 deg)
- LDRobot LD06 proximity driver prevents possible read buffer overrun
- Lightware I2C and HC SR04 fixed timestamp for last reading (should only affect AP_Periph devices)
- MCP9600 temperature sensor I2C address fixed
- MLX90614 temperature sensor support
- MSP GPS ground course scaling fixed
- MSP RC uses scaled RC inputs (fixes issue with RCx_REVERSED having no effect)
- Nova GPS undulation fix
- OSD params for adjusting horizontal spacing and vertical extension (see OSD_SB_H_OFS, OSD_SB_V_EXT)
- Power brick2 valid flag fixed on some boards
- Pre-arm check that gyro read rate is at least the main loop rate
- Proximity backends increased to 5
- RC output cork/push fix to avoid potential motor knocking
- Relay inverted output support (see RELAYx_INVERTED parameter)
- RS-485 driver enable RTS flow control
- RunCam/OSD menu movements obey RC channel reversal
- Sagetech MXS ADSP altitude fix (now uses abs alt instead of terrain alt)
- SBF MosaicX5 packets with invalid length ignored
- SCHA63T IMU temperature reporting bug fixed
- Septentrio GPS sat count correctly drops to zero when 255 received
- Septentrio supports selecting constellations (see GPS_GNSS_MODE)
- Serial flow control support on UARTS 6 to 8
- Serial passthrough fix to restore parity upon completion
- Serial protocol parameter fix to include I-Bus Telemetry
- Single LED for user notification supported
- SPA06 baro supported
- SPL06 barometer accuracy improvements
- Sum battery monitor optionally reports minimum voltage instead of average
- Sum battery monitor reports average temp
- Torqeedo dual motor support (see TRQ1, TRQ2 params)
- Tramp VTX OSD power indicator fixed
- uAvionix ping200X driver fixes
- Ublox GPS driver uses 64 bit time for PPS interrupt (avoids possible dropout at 1hour and 12 minutes)
- UBlox GPS configuration sped up
- UBlox GPS time ignored until at least 2D fix
- Ublox M10 configuration fix
- UltraMotion CAN servo support
- VideoTX supports additional freq bands (RushFPV 3.3Ghz)
- Volz logs desired and actual position, voltage, current, motor and PCB temp
- Volz server feedback and logging fixed
- Volz servo output in its own thread resulting in smoother movements
- W25N02KV flash support
- Networking Enhancements
- Allow multiple UDP clients to connect/disconnect/reconnect
- Ethernet IP address default 192.168.144.x
- Ethernet and CAN bootloader fix to prevent getting stuck in bootloader mode
- Ethernet supports faster log downloading (raised SDMMC clock limit on H7)
- Mcast and HW CAN bridging disabled by default
- Networking supports reconnection to TCP server or client
- Camera and Gimbal Enhancements
- Alexmos precision improved slightly
- CADDX gimbal RC update rate fixed
- CADDX camera gimbal support
- CAMERA_CAPTURE_STATUS mavlink msg sent to GCS (reports when images taken or video recorded, used by QGC)
- CAMERA_FOV_STATUS message always sent (once requested), attitude is earth-frame and FOV can be decimal numbers
- DO_MOUNT_CONTROL yaw angle interpreted as body-frame (was incorrectly being interpreted as earth-frame)
- DO_SET_ROI_LOCATION mission command support
- Dual serial camera gimbal mounts fixed
- Lua script bindings to send CAMERA_INFORMATION and VIDEO_STREAM_INFORMATION messages to GCS
- Retract Mount2 aux function added (see RCx_OPTION = 113)
- Servo gimbal reported angles respect roll, pitch and yaw limits
- Siyi driver sends autopilot location and speed (recorded in images via EXIF)
- Siyi picture and video download scripts
- Siyi ZT6 and ZT30 support sending min, max temperature (see CAMERA_THERMAL_RANGE msg)
- Siyi ZT6 and ZT30 thermal palette can be changed using camera-change-setting.lua script
- Siyi ZT6 hardware id and set-lens fixed
- Topotek camera gimbal pitch rate control direction fixed
- Topotek gimbal driver uses GIA message to retrieve current angle
- Topotek gimbal support
- Trigger distance ignores GPS status and only uses EKF reported location
- Video stream information lua script param index fixed (avoids param conflict with other scripts)
- ViewPro object tracking fixed
- Flight Control and Harmonic Notch Enhancements
- Attitude control fix to dt update order (reduces rate controller noise)
- FFT protection against divide-by-zero in Jain estimator
- Harmonic notch filter freq clamping and disabling reworked
- Harmonic notch handles negative ESC RPMs
- Harmonic notch is active in forward flight on quadplanes
- Harmonic notch supports per-motor throttle-based harmonic notch
- Copter Specific Enhancements
- Advanced Failsafe customer build server option
- ARMING_OPTIONS gets “Require position for arming” (was in FLIGHT_OPTIONS)
- Auto mode fix to avoid prematurely advancing to next waypoint if given enough time
- Auto mode small target position jump when takeoff completes removed
- Auto mode yaw drift when passing WP removed if CONDITION_YAW command used and WP_YAW_BEHAVIOR = 0/None
- Auto, Guided flight mode pause RC aux switch (see RCx_OPTION = 178)
- AutoRTL (e.g. DO_LAND_START) uses copter stopping point to decide nearest mission command
- AutoRTL mode supports DO_RETURN_PATH_START (Copter, Heli only)
- AutoTune fix for calc of maximum angular acceleration
- AutoTune fix to prevent spool up after landing
- AutoTune performance and safety enhancements (less chance of ESC desync, fails when vehicle likely can’t be tuned well)
- Autotune test gains RC aux switch function allows testing gains in any mode (see RCx_OPTION = 180)
- Config error avoided if auto mode is paused very soon after poweron
- Copter SCurve navigation fix to avoid excessive vertical speed when passing through waypoints
- Copter’s LOG_BITMASK includes PIDs by default
- Copter’s battery failsafe action gets “Brake or Land”
- FLIGHT_OPTIONS bit added to require position estimate before arming
- Follow mode slowdown calcs fixed when target is moving
- Ground oscillation suppressed by reducing gains (see ATC_LAND_R/P/Y_MULT)
- Guided mode internal error fix when taking off using SET_ATTITUDE_CONTROL message
- Guided mode internal error resolved when switching between thrust or climb rate based altitude control
- Guided mode yaw fixed when WP_YAW_BEHAVIOR = 0/None and CONDITION_YAW command received containing relative angle
- Landing detector fixed when in stabilize mode at full throttle but aircraft is upside down
- Landing detector logging added to ease support (see LDET message)
- Loiter mode zeros desired accel when re-entering from Auto during RC failsafe
- Loiter unlimited command accepts NaNs (QGC sends these)
- Mavlink SYSTEM_STATUS set to BOOT during initialisation
- MOT_PWM_TYPE of 9 (PWMAngle) respects SERVOx_MIN/MAX/TRIM/REVERSED param values
- Payload place bug fix when aborted because gripper is already released
- RC based tuning (aka CH6 tuning) can use any RC aux function channel (see RCx_OPTION = 219)
- RTL_ALT minimum reduced to 30cm
- SysId mode uninitialised variables fixed
- SystemID position controller support (Copter and Heli)
- TriCopter motor test and slew-up fixed
- WPNAV_SPEED min reduced to 10 cm/s (Copter only)
- TradHeli Specific Enhancements
- Autorotation yaw behaviour fix
- Autotune improvements including using low frequency dwell for feedforward gain tuning and conducting sweep in attitude instead of rate
- Blade pitch angle logging added (see SWSH log message)
- Constrain cyclic roll for intermeshing
- ICE / turbine cool down fix
- Inverted flight extended to non manual throttle modes
- Inverted flight transitions smoothed and restricted to only Stabilize mode
- SWSH logging fix for reversed collectives
- TradHeli AutoTune rate and accel limiting fixed
- Plane Specific Enhancements
- AIRSPEED mavlink message health flags fixed
- AIRSPEED_STALL holds vehicle stall speed and is used for minimum speed scaling
- Allow for different orientations of landing rangefinder
- Assistance requirements evaluted on mode change
- Auto-deploy landing gear on all fixed wing landings when enabled
- Circle mode terrain alt handling fixed
- Clear inverted control flag on Q-mode entry
- FBWB/CRUISE climb/sink rate limited by TECS limits
- Fence re-enable after fence breach fixed
- Fixed rudder output in VTOL modes
- FLIGHT_OPTION to immediately climb in AUTO mode (not doing glide slope)
- Glider pullup support (available only through custom build server)
- Improved QAssist and VTOL mode recovery from bad attitudes
- Loiter breakout improved to better handle destinations inside loiter circle
- Manual mode throttle made consistent with other modes (e.g battery comp and watt limit is done if enabled)
- Mavlink GUIDED_CHANGE_ALTITUDE supports terrain altitudes
- Minimum throttle not applied during SLT VTOL airbrake (reduces increase in airspeed and alt during back transition)
- Plane landing fix to handle AGL or AMSL locations
- Plane’s TILT log message only logged on tilt-rotors
- Prevent learning bad ARSP_RATIO values when not flying
- Prevent rotation pitch calculations from running post-rotation
- Q_APPROACH_DIST set minimum distance to use the fixed wing approach logic
- QuadPlane assistance check enhancements
- QuadPlane Deca frame support
- QuadPlane fix for QLand getting stuck in pilot repositioning
- QuadPlane gets smoother takeoff by input shaping target accel and velocity
- QuikTune C++ conversion (allow running quiktun on F4 and f7 boards)
- RC aux channel option for C++ QuikTune
- Servo wiggles in altitude wait staged to be one after another
- Set_position_target_global_int accepts MAV_FRAME_GLOBAL_RELATIVE_ALT and MAV_FRAME_GLOBAL_TERRAIN_ALT frames
- Takeoff airspeed control improved (see TKOFF_MODE, TKOFF_THR_MIN)
- Takeoff direction fixed when no yaw source
- Takeoff fixes for fence autoenable
- Takeoff improvements including less overshoot of TKOFF_ALT
- Takeoff leveloff timeout check added
- TECs uses external HAGL (if available) for landing
- TECS correctly handles home altitude changes
- TECS reset along with other controllers (important if plane dropped from balloon)
- Terrain guided target intermediate alt handling fixed
- Tilt quadplane ramp of motors on back transition fixed
- Tiltrotor motor check fixed used in throttle control handover from VTOL to forward flight
- Tiltrotor tilt angles logged
- Tiltrotors use consistent fixed wing and VTOL rates
- TKOFF_THR_MIN applied to SLT transitions
- Twin motor planes with DroneCAN ESCs fix to avoid max throttle at arming due to misconfiguration
- VTOLs switch to QLAND if a LONG_FAILSAFE is triggered during takeoff
- Rover Specific Enhancements
- Auto mode reversed state maintained if momentarily switched to Hold mode
- Circle mode tracks better and avoids getting stuck at circle edge
- Flight time stats fixed
- Lua bindings for Follow mode
- MAV_CMD_NAV_SET_YAW_SPEED deprecated
- Omni3Mecanum frame support
- Rover circle mode and QuickTune support smaller vehicles
- Stopping point uses max deceleration (was incorrectly using acceleration)
- WATER_DEPTH mavlink message rate fix
- Wheel rate controller slew rate fix
- Antenna Tracker Specific Enhancements
- Never track lat,lon of 0,0
- Scripting Enhancements
- advance-wp.lua applet supports advancing Auto mode WP via RC switch
- AHRS_switch.lua supports switching between EKF2 and EKF3 via RC switch
- battery_internal_resistance_check.lua monitors battery resistance
- CAN:get_device returns nil for unconfigured CAN device
- copter_terrain_brake.lua script added to prevent impact with terrain in Loiter mode (Copter only)
- Copter:get_target_location, update_target_location support
- crosstrack_restore.lua example allows returning to previous track in Auto (Plane only)
- Display text on OLED display supported
- Docs improved for many bindings
- EFI get_last_update_ms binding
- EFI_SkyPower.lua driver accepts 2nd supply voltage
- ESC_slew_rate.lua example script supports testing ESCs
- Filesystem CRC32 check to allow scripts to check module versions
- forced arming support
- GPIO get/set mode bindings (see gpio:set_mode, get_mode)
- GPS-for-yaw angle binding (see gps:gps_yaw_deg)
- Halo6000 EFI driver can log all CAN packets for easier debugging
- handle_external_position_estimate binding allows sending position estimate from lua to EKF
- I2C:transfer support
- IMU gyros_consistent and accels_consistent bindings added
- INF_Inject.lua driver more robust to serial errors, improved logging, throttle and ignition control
- INS bindings for is calibrating, gyro and accel sensor values
- IPV4 address bindings (see SocketAPM_ipv4_addr_to_string) to allow UDP server that responds to individual clients
- Logging of booleans supported
- Lua language checks improved (finds more errors)
- Lua script battery monitor failures that could cause hardfaults fixed
- Lua script potential deadlock fix when initialising mavlink in script
- MAVLink commands can be called from scripting
- MCU voltage binding (see analog:mcu_voltage)
- NMEA 2000 EFI driver (see EFI_NMEA2k.lua)
- “open directory failed” false warning when scripts in ROMFS fixed
- Param_Controller.lua supports quickly switching between 3 parameter sets via RC switch
- Pass by reference values are always initialized
- pelco_d_antennatracker.lua applet supports sending Pelco-D via RS-485 to PTZ cameras
- plane_aerobatics.lua minor enhancements
- REPL applet (read-evaluate-print-loop, see repl.lua) for interactive testing and experimentation
- “require” function failures in rare circumstances fixed
- “require” function works for modules in ROMFS (e.g. not on SD card)
- revert_param.lua supports more params (e.g ATC_RATE_R/P/Y, PTCH2SRV_TCONST, RLL2SRV_TCONST, TECS_)
- ROMFS race condition when opening files that caused apparent script corruption fixed
- Scripts may receive mavlink messages which fail CRC (e.g messages which FC does not understand)
- Scripting gets memory handling improvements
- Scripting promote video-stream-information to applet
- SD card formatting supported
- Serial device simulation support (allows Lua to feed data to any supported serial protocol for e.g. sensor simulation)
- set_target_throttle_rate_rpy allows rate control from scripts (new for Copter)
- sitl_standby_sim.lua example shows how to switch between redundant flight controllers using an RC switch
- Slung payload oscillation suppression applet added (see copter-slung-payload.lua)
- Temperature sensor bindings added
- uint64 support
- Various performance and memory usage optimizations
- VTOL-quicktune.lua minor enhancements including increasing YAW_FLTE_MAX to 8
- VTOL-quiktune script gets QUIK_ANGLE_MAX to prevent bad oscillation if tuning algorithm fails
- x-quad-cg-allocation.lua applet corrects for the CoM discrepancy in a quad-X frame
- GCS and MAVLink Enhancements
- ADSB_LIST_ALT param desc improved
- Alphabetised type params for CAN, Mount, OptFlow, Proximity, Rangefinder, Serial Manager
- BATTERY2 message deprecated (replaced by BATTERY_STATUS)
- CMD_MISSION_START/STOP rejected if first-item/last-item args provided
- Deny attempts to upload two missions simultaneously
- Fence and Rally points may be uploaded using FTP
- GPS_INPUT and HIL_GPS handles multiple GPSs
- HIGHRES_IMU mavlink message support (used by companion computers to receive IMU data from FC)
- LOG_FILE_BUFSIZE units fixed
- MAV_CMD_COMPONENT_ARM_DISARM accepts force arm magic value of 21196
- MAV_CMD_DO_SET_SAFETY_SWITCH_STATE support
- MAV_CMD_SET_HAGL support (Plane only)
- MAVFTP respects TX buffer flow control to improve FTP on low bandwidth links
- MAVLink receiver support (RADIO_RC_CHANNELS mavlink message)
- MAVLink via DroneCAN baud rate fix
- Message interval supports TERRAIN_REPORT msg
- MIS_OPTION parameter handling fixed
- Mission upload may be cancelled using MISSION_CLEAR_ALL
- MOT_THST_HOVER range fixed
- MOUNT_CONFIGURE, MOUNT_CONTROL messages deprecated
- “No ap_message for mavlink id” warning removed
- RC_CHANNELS_RAW deprecated
- SERIALx_BAUD value added for PPP networking
- Serial passthrough supports parity allowing STM32CubeProgrammer to be used to program FrSky R9 receivers
- SET_ATTITUDE_TARGET angular rate input frame fixed (Copter only)
- TIMESYNC and NAMED_VALUE_FLOAT messages not sent on high latency MAVLink ports
- Logging Enhancements
- AC_PID resets and I-term sets logged
- ANG provides attitude at high rate (equivalent to ATT)
- ATT logs angles as floats (better resolution than ints)
- CAND message gets driver index
- DCM log message includes roll/pitch and yaw error
- EDT2 log msg includes stress and status received via extended DShot Telemetry v2
- EFI ECYL cylinder head and exhaust temp logs in degC (was Kelvin)
- ESCX log msg includes DroneCAN ESCs status, temp, duty cycle and power pct
- FMT messages written as required instead of all at beginning
- Logging restarted after download completes when LOG_DISARMED = 1
- MCU min/max voltage logging fix
- MISE msg logs active mission command (CMD logged when commands are uploaded)
- ORGN message logging fixed when set using SET_GPS_GLOBAL_ORIGIN
- RPM sensor logging gets instance field, quality and health fields
- Short filename support removed (e.g log1.BIN instead of 00000001.BIN)
- Temperature sensor logging option for only sensors with no source (see TEMP_LOG)
- UART data rates logged at 1hz (see UART message)
- ROS2 / DDS Support
- Airspeed published
- Battery topic reports all available batteries
- Compile-time configurable rates for each publisher
- DDS/ROS2 driver waits indefinitely until companion computer running ROS2 starts
- DDS/ROS2 fix to provide clock_gettime only on ChibiOS boards
- DDS/ROS2 pre-arm check and copter takeoff service
- DDS_TIMEOUT_MS and DDS_MAX_RETRY set timeout and num retries when client pings XRCE agent
- GPS global origin published at 1 Hz
- High frequency raw imu data transmission
- Joystick support
- ROS2/DDS get/set parameter service added
- Support sending waypoints to Copter and Rover
- Remove the XML refs file in favor of binary entity creation
- Safety Enhancements
- Accel/Gyro inconsistent message fixed for using with only single IMU
- Battery monitor failure reported to GCS, triggers battery failsafe but does not take action
- Fence autoenable fix when both RCn_OPTION=11/Fence and FENCE_AUTOENABLE = 3 (AutoEnableOnlyWhenArmed)
- Fence breach warning message slightly improved
- Fence enhancements incluiding alt min fence (Copter only, see FENCE_AUTOENABLE, FENCE_OPTIONS)
- Fence handling of more than 256 items fixed
- Fence pre-arm check that vehicle is within polygon fence
- Fences can be stored to SD Card (see BRD_SD_FENCE param)
- ICEngine stopped when in E-Stop or safety engaged (Plane only)
- LEDs flash green lights based on EKF location not GPS
- Parachute option to skip disarm before parachute release (see CHUTE_OPTIONS)
- Plane FENCE_AUTOENABLE of 1 or 2 deprecation warning added
- Pre-arm check if OpenDroneID is compiled in but disabled
- Pre-arm check of duplicate RC aux functions fixed (was skipping recently added aux functions)
- Pre-arm checks alert user more quickly on failure
- Prearm check for misconfigured EAHRS_SENSORS and GPS_TYPE
- Proximity sensor based avoidance keeps working even if one proximity sensor fails (Copter, Rover)
- RC aux functions for Arm, Disarm, E-Stop and Parachute ignored when RC is first turned on
- Warning of duplicate SERIALx_PROTOCOL = RCIN
- Other Enhancements and Bug Fixes
- Accel cal fixed for auxiliary IMUs (e.g. IMU4 and higher)
- Baro EAS2TAS conversions continuously calculated reducing shocks to TECS (Plane only)
- Baro provides improved atmospheric model for high altitude flight
- Bootloader fix to reduce unnecessary mass erasing of flash when using STLink or Jlink tools
- Bootloader rejects allocation of broadcast node ID
- CAN forward registering/de-registering fix (affected Mission Planner DroneCAN UI)
- Dijkstras fix to correct use of uninitialised variable
- DroneCAN and scripting support FlexDebug messages (see CAN_Dn_UC_OPTION, FlexDebug.lua)
- Filesystem does not show entries for empty @ files
- Filesystem efficiency improvements when reading files
- Flight statistics only reset if user sets STAT_RESET to zero (avoids accidental reset)
- Flight time statistics updated on disarm (avoids issue if vehicle powered-down soon after disarm)
- Frsky telemetry apparent wind speed fixed
- Internal error thrown if we lose parameters due to saving queue being too small
- Real Time Clock allowed to shift forward when disarmed
- ROMFS efficiency improvements
- SPI pins may also be used as GPIOs
- Terrain cache size configurable (see TERRAIN_CACHE_SZ)
- Developer Focused Enhancements
- AP_Camera gets example python code showing how to use GStreamer with UDP and RTSP video streams
- Cygwin build fix for non-SITL builds
- Cygwin build fixed with malloc wrap
- EKF3 code generator documentation and cleanup
- GPS jamming simulator added
- MacOS compiler warnings reduced
- SFML joystick support
- SITL support for OpenBSD
- Text warning if older Fence or Rally point protocols are used
Thanks and enjoy!