Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
bdfdcfa
Tools: autotest: deduplicate ExternalAHRS mission into Generic_Missions
peterbarker Mar 9, 2026
0a9de83
AP_Filesystem_FlashMemory_LittleFS:Add support for ZB25VQ128Q
LoyalLinjy Mar 10, 2026
6a5d0d1
AP_Logger: Add support for ZB25VQ128Q
LoyalLinjy Mar 10, 2026
24f6e9b
AP_ExternalAHRS: Add support for Kebni SensAItion as External AHRS
magnus-lindhe-kebni Mar 19, 2026
bd1e754
AP_GPS: Make conversion from BCD to GPS time externally available
magnus-lindhe-kebni Jan 16, 2026
cbf272f
AP_Math: Add checksum function used by AP_ExternalAHRS_SensAItion
magnus-lindhe-kebni Feb 16, 2026
9ccc00e
AP_HAL_SITL: Add support for Kebni SensAItion as External AHRS
magnus-lindhe-kebni Dec 23, 2025
3867d52
SITL: Add support for Kebni SensAItion as External AHRS
magnus-lindhe-kebni Dec 23, 2025
506d037
Tools: Add ArduPlane tests for Kebni SensAItion
magnus-lindhe-kebni Dec 23, 2025
13df895
AP_HAL_ChibiOS: add HWH7 board
Arwayday Mar 15, 2026
6b07a9d
Tools: add HWH7 bootloader
Arwayday Mar 15, 2026
2c93d89
AC_Fence: added FENCE_ALT_TYPE
tridge Apr 11, 2025
0e7ea04
Copter: use fence max alt frame for RTL
andyp1per Nov 29, 2025
c0124c6
Plane: use get_relative_safe_alt_min_m and get_relative_safe_alt_max_m
andyp1per Dec 6, 2025
4c89af5
AP_Arming: check fence terrain requirements in pre-arm
andyp1per Dec 9, 2025
00e77a0
AC_Fence: specify alt frame for min and max fences separately
andyp1per Nov 29, 2025
c0f95db
AC_Avoidance: take alt frame into account when avoiding min or max al…
andyp1per Nov 29, 2025
3b06836
autotest: add alt frame fence tests
andyp1per Dec 3, 2025
372ae7b
AC_Fence: clear manual recovery started on fence disable
peterbarker Mar 3, 2026
40f6090
AC_Fence: add safe alt methods that also return the frame
andyp1per Mar 7, 2026
2ae04dd
AP_Scripting: return alt frame from safe alt fence bindings
andyp1per Mar 7, 2026
9ce69c1
autotest: fix fence alt-frame test isolation issues
andyp1per Mar 7, 2026
d280abd
autotest: make fence alt-frame tests clean up after themselves
andyp1per Mar 8, 2026
48a6223
AC_Fence: add _m suffix to altitude getters and fix comments
andyp1per Mar 8, 2026
d12c7e0
AC_Avoidance: use renamed fence alt getters with _m suffix
andyp1per Mar 8, 2026
38178f4
AC_Fence: remove deprecated altitude getter aliases
andyp1per Mar 8, 2026
abffcda
autotest: use home_position_as_mav_location for fence test home capture
andyp1per Mar 9, 2026
c4f9307
AP_NavEKF3: loop over states in FuseMagnetometer Kalman gain computation
tpwrules Jan 31, 2026
638fe84
AP_NavEKF3: loop over states in FuseDeclination Kalman gain computation
tpwrules Jan 31, 2026
4b04192
AP_NavEKF3: loop over states in FuseAirspeed Kalman gain computation
tpwrules Jan 31, 2026
518ae2d
AP_NavEKF3: loop over states in FuseSideslip Kalman gain computation
tpwrules Jan 31, 2026
bd84700
AP_NavEKF3: loop over states in FuseOptFlow Kalman gain computation
tpwrules Jan 31, 2026
059dbe6
AP_NavEKF3: loop over states in FuseRngBcn Kalman gain computation
tpwrules Jan 31, 2026
3bdd066
AP_NavEKF3: Reset to extnav only when configured
snktshrma Mar 20, 2026
812ffec
AP_NavEKF3: add configuredToUseGPSForPos()
andyp1per Mar 17, 2026
9d4abe6
AP_AHRS: add using_gps_for_posxy and fix recorded origin check
andyp1per Mar 5, 2026
05f832c
AP_NavEKF3: delay external origin setting until filter is initialised
andyp1per Mar 24, 2026
f519de1
Plane: Logged rangefinder state
Georacer Oct 31, 2025
69c8eac
AP_Camera_Servo.cpp: Fix broken CAMERA_INFORMATION flags
Davidsastresas Mar 26, 2026
9e501a3
AP_Logger: Added SPOL message
Georacer Dec 5, 2025
1a1c90d
AP_Motors: Logged SPOL message
Georacer Dec 5, 2025
2445dd1
Copter: Logged SPOL message
Georacer Dec 5, 2025
ee7ce71
AP_Scripting: plane_follow.lua fix sendtext error if no target vehicle
timtuxworth Mar 25, 2026
9f0d703
AP_Mount_Backend: set RC rate yaw_is_ef flag
KSimeonAVTA Mar 25, 2026
4802d10
AP_Scripting: plane_follow.lua fix crosstrack oscillation
timtuxworth Mar 27, 2026
8b9e6cc
AP_DAL: correctly comment all fields of replay beacon data message
tpwrules Mar 29, 2026
653b6ed
hwdef: re-instate probing for external IST8310 compasses on fmuv3 boards
peterbarker Mar 17, 2026
bf897ca
AP_Camera: fix RunCam param metadata names to match code
tpwrules Mar 29, 2026
4291a7f
AP_DAL: fill missing fields in replay body odometry message
tpwrules Mar 29, 2026
4261793
autotest: add copter EKF FuseBodyVel Replay subtest
tpwrules Feb 17, 2026
ac9067d
autotest: add test for Copter yaw speed when no RC input
peterbarker Mar 19, 2026
e3ea5ad
autotest: zero throttle in RTL
peterbarker Mar 26, 2026
ba30bb9
RC_Channel: understand ignore-receiver when reading rc inputs
peterbarker Mar 25, 2026
613e484
autotest: reduce circling time in Arc waypoint test
peterbarker Mar 30, 2026
3cccd8b
AP_NavEKF3: loop over states in FuseBodyVel Kalman gain computation
tpwrules Jan 31, 2026
1f6b055
Plane: drop AHRS out of full rate attitude logging
IamPete1 Mar 30, 2026
0b05b74
AP_Scripting: add mount-driver example
robertlong13 Mar 17, 2026
1b0b50b
autotest: add ScriptMountDriver test
robertlong13 Mar 17, 2026
e9e6068
AP_Mount: fix get_angle_target for converted cmds
robertlong13 Mar 17, 2026
9d7fd20
AP_Mount: fix scripting backend for non-angle target modes
peterbarker Mar 24, 2026
afb9b09
AP_Mount: gate get_angle/rate_target behind AP_SCRIPTING_ENABLED; scr…
peterbarker Mar 24, 2026
6f08e6e
AP_Scripting: fix language check issues
IamPete1 Apr 3, 2026
943da73
mavlink: Update subprepo
Georacer Apr 13, 2026
4c7ed90
GCS_MAVLink: adjust for new SYS_STATUS fields
peterbarker Apr 2, 2026
4fdf95e
Sub: refactor jsbutton_function_is_assigned() out of has_disarm_funct…
Williangalvani Sep 5, 2025
c5ccd08
Sub: add parameters migration for lights and actuators
Williangalvani Sep 16, 2025
2f530dd
Sub: create and use param for controlling parameters migration
Williangalvani Mar 6, 2026
af3acf0
AP_Camera: support per-instance CAMERA_INFORMATION via REQUEST_MESSAG…
peterbarker Mar 23, 2026
57c348a
GCS_MAVLink: support per-instance CAMERA_INFORMATION via REQUEST_MESS…
peterbarker Mar 23, 2026
cdafa12
AP_HAL_SITL: add simulation for ZT30, Topotek and ViewPro gimbals
peterbarker Mar 22, 2026
963423e
SITL: add simulation for ZT30, Topotek and ViewPro gimbals
peterbarker Mar 22, 2026
61feb8d
autotests: add tests for ZT30, Topotek and ViewPro gimbals
peterbarker Mar 22, 2026
fad17f8
AP_Mount: use 'static constexpr' in place of 'static const'
peterbarker Mar 20, 2026
4c12d4f
AP_Mount: Viewpro: replace strncpy with memcpy to fix -Wstringop-trun…
peterbarker Mar 20, 2026
a636a05
AP_Mount: use char[] rather than uint8_t[] for gimbal model name
peterbarker Mar 20, 2026
da7172d
AP_Mount: avoid buffer-overread sending Viewpro camera_information
peterbarker Mar 22, 2026
9245250
AP_Mount: use MAVLink field len defines and strncpy_noterm for camera…
peterbarker Mar 22, 2026
9932c9b
AP_Mount: remove static from model_name buffer in send_camera_informa…
peterbarker Mar 22, 2026
20ac18d
AP_Mount: validate wire-data lengths before using as buffer/loop bounds
peterbarker Mar 28, 2026
c868e84
SITL: correct response to Viewpro model query
peterbarker Apr 4, 2026
e56b6dd
AP_HAL_ChibiOS: update hwdef.dat for Atlas-Control
oleksandrivashyna-pixel Feb 22, 2026
36c5fee
AC_AttitudeControl: reduce INPUT_TC default
rmackay9 Apr 1, 2026
10a7932
AP_NavEKF3: add missing constraints to FuseDragForces
tpwrules Feb 7, 2026
1699f7d
Tools: extract features fix for batt watt max
rmackay9 Apr 6, 2026
18c7069
Tools: test-build-option fix for battery watt limiting
rmackay9 Apr 6, 2026
367ebc6
hwdef: MPU6000 version of TBS_LUCID_H7
andyp1per Mar 21, 2026
344ff8c
mavlink: Update mavlink repo
Georacer Apr 15, 2026
1aa34b3
Tracker: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
c26ddb6
Tracker: version to 4.7.0-beta3
Georacer Apr 10, 2026
2f267ef
AP_Periph: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
0b3df9a
AP_Periph: version to 4.7.0-beta3
Georacer Apr 10, 2026
6ecec50
Sub: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
aaa21a0
Sub: version to 4.7.0-beta3
Georacer Apr 10, 2026
221f787
Rover: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
3f23ded
Rover: version to 4.7.0-beta3
Georacer Apr 10, 2026
a8a95de
Copter: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
cc438b9
Copter: version to 4.7.0-beta3
Georacer Apr 10, 2026
1ee50da
Plane: 4.7.0-beta3 release notes
Georacer Apr 10, 2026
8660eca
Plane: version to 4.7.0-beta3
Georacer Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions AntennaTracker/ReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,66 @@
ArduPilot Antenna Tracker Release Notes:
------------------------------------------------------------------
Release 4.7.0-beta3 10-Apr-2026

Changes from 4.7.0-beta2

1) Board specific changes

- Atlas-Control has updated hwdef.dat file (@AltasFlight, PR:32268)
- HWH7 flight controller added to supported boards (@Arwayday, PR:32248)
- TBS_LUCID_H7 now has an MPU6000 version (@andyp1per, PR:32512)

2) Driver changes

- ZB25VQ128D flash chip now supported for onboard logging (@LoyalLinjy, PR:32408)
- Kebni SensAItion as External AHRS now supported in IMU and INS modes (@magnus-lindhe-kebni, PR:31775)
- IST8310 compass probing corrected on fmuv3-based boards (@peterbarker, PR:32462)

3) AHRS specific changes

- EKF3 flash space requirements reduced (@tpwrules, PRs:32213, 32618)
- EKF3 is fixed to no longer reset to external altitude when it is configured to another source (@snktshrma, PR:32508)
- AHRS recorded origin check will correctly use the GPS (@andyp1per, PR: 32469)
- AHRS external origin setting will be delayed until filter is initialised (@andyp1per, PR: 32505)
- EKF3 missing constraints to FuseDragForces added (@tpwrules, PR:32128)
- Fix replay involving body odometry data (@twprules, PR:32598)

4) Camera and mount specific changes

- Camera servo driver's CAMERA_INFORMATION flags fixed (@Davidsastresas, PR:32564)
- RunCam param metadata names are fixed to match code (@tpwrules, PR:32601)
- Mount fix to angular rates when using FPV mode (@KSimeonAVTA, PR:32540)
- Mount scripting driver accepts rate targets (@peterbarker, PR:32626)
- Fix wire data issues with various Mount backends (@peterbarker, PR:32630)

5) Other libraries changes

- Fence for Plane and Copter supports alt above terrain (@andyp1per, PR:31619)
- Ignore-receiver in RC_OPTIONS is now respected during RC loss (@peterbarker, PR:32488)
- ATC_INPUT_TC and Q_A_INPUT_TC param defaults reduced (@rmackay9, PR:32643)

6) Copter/Tradheli specific changes

- Spool state is logged (@Georacer, PR:31668)

7) Plane specific changes

- Rangefinder state is logged (@Georacer, PR:31579)
- AHRS log message rate not affected by full rate attitude logging (@IamPete1, PR:32623)

8) Sub specific changes

- Automatically deal with misconfigured lights/actuators (@Williangalvani, PR:31109)

9) Rover specific changes

- Battery watt limiter feature added to custom build server (@mackay9, PR:32687)

10) Scripting changes

- plane_follow.lua messages will no longer crash the script if there is no target vehicle (@timtuxworth, PR:32567)
- plane_follow.lua has a fix for crosstrack oscillation (@timtuxworth, PR:32575)

------------------------------------------------------------------
Release 4.7.0-beta2 21-Mar-2026

Expand Down
4 changes: 2 additions & 2 deletions AntennaTracker/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

#include "ap_version.h"

#define THISFIRMWARE "AntennaTracker V4.7.0-beta2"
#define THISFIRMWARE "AntennaTracker V4.7.0-beta3"

// the following line is parsed by the autotest scripts
#define FIRMWARE_VERSION 4,7,0,FIRMWARE_VERSION_TYPE_BETA+1
#define FIRMWARE_VERSION 4,7,0,FIRMWARE_VERSION_TYPE_BETA+2

#define FW_MAJOR 4
#define FW_MINOR 7
Expand Down
2 changes: 2 additions & 0 deletions ArduCopter/Copter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,8 @@ void Copter::loop_rate_logging()
if (should_log(MASK_LOG_IMU_FAST)) {
AP::ins().Write_IMU();
}

motors->Log_Write_SPOL();
}

// ten_hz_logging_loop
Expand Down
62 changes: 62 additions & 0 deletions ArduCopter/ReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,66 @@
ArduPilot Copter Release Notes:
------------------------------------------------------------------
Release 4.7.0-beta3 10-Apr-2026

Changes from 4.7.0-beta2

1) Board specific changes

- Atlas-Control has updated hwdef.dat file (@AltasFlight, PR:32268)
- HWH7 flight controller added to supported boards (@Arwayday, PR:32248)
- TBS_LUCID_H7 now has an MPU6000 version (@andyp1per, PR:32512)

2) Driver changes

- ZB25VQ128D flash chip now supported for onboard logging (@LoyalLinjy, PR:32408)
- Kebni SensAItion as External AHRS now supported in IMU and INS modes (@magnus-lindhe-kebni, PR:31775)
- IST8310 compass probing corrected on fmuv3-based boards (@peterbarker, PR:32462)

3) AHRS specific changes

- EKF3 flash space requirements reduced (@tpwrules, PRs:32213, 32618)
- EKF3 is fixed to no longer reset to external altitude when it is configured to another source (@snktshrma, PR:32508)
- AHRS recorded origin check will correctly use the GPS (@andyp1per, PR: 32469)
- AHRS external origin setting will be delayed until filter is initialised (@andyp1per, PR: 32505)
- EKF3 missing constraints to FuseDragForces added (@tpwrules, PR:32128)
- Fix replay involving body odometry data (@twprules, PR:32598)

4) Camera and mount specific changes

- Camera servo driver's CAMERA_INFORMATION flags fixed (@Davidsastresas, PR:32564)
- RunCam param metadata names are fixed to match code (@tpwrules, PR:32601)
- Mount fix to angular rates when using FPV mode (@KSimeonAVTA, PR:32540)
- Mount scripting driver accepts rate targets (@peterbarker, PR:32626)
- Fix wire data issues with various Mount backends (@peterbarker, PR:32630)

5) Other libraries changes

- Fence for Plane and Copter supports alt above terrain (@andyp1per, PR:31619)
- Ignore-receiver in RC_OPTIONS is now respected during RC loss (@peterbarker, PR:32488)
- ATC_INPUT_TC and Q_A_INPUT_TC param defaults reduced (@rmackay9, PR:32643)

6) Copter/Tradheli specific changes

- Spool state is logged (@Georacer, PR:31668)

7) Plane specific changes

- Rangefinder state is logged (@Georacer, PR:31579)
- AHRS log message rate not affected by full rate attitude logging (@IamPete1, PR:32623)

8) Sub specific changes

- Automatically deal with misconfigured lights/actuators (@Williangalvani, PR:31109)

9) Rover specific changes

- Battery watt limiter feature added to custom build server (@mackay9, PR:32687)

10) Scripting changes

- plane_follow.lua messages will no longer crash the script if there is no target vehicle (@timtuxworth, PR:32567)
- plane_follow.lua has a fix for crosstrack oscillation (@timtuxworth, PR:32575)

------------------------------------------------------------------
Release 4.7.0-beta2 21-Mar-2026

Expand Down
4 changes: 2 additions & 2 deletions ArduCopter/mode_rtl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -567,8 +567,8 @@ void ModeRTL::compute_return_target()
// the vehicle not climbing at all as RTL begins. This can be overly conservative and it might be better
// to apply the fence alt limit independently on the origin_point and return_target
if ((copter.fence.get_enabled_fences() & AC_FENCE_TYPE_ALT_MAX) != 0) {
// get return target as alt-above-home so it can be compared to fence's alt
if (rtl_path.return_target.get_alt_m(Location::AltFrame::ABOVE_HOME, target_alt_m)) {
// get return target in max alt frame so it can be compared to fence's alt
if (rtl_path.return_target.get_alt_m(copter.fence.get_alt_max_frame(), target_alt_m)) {
float fence_alt_m = copter.fence.get_safe_alt_max_m();
if (target_alt_m > fence_alt_m) {
// reduce target alt to the fence alt
Expand Down
4 changes: 2 additions & 2 deletions ArduCopter/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

#include "ap_version.h"

#define THISFIRMWARE "ArduCopter V4.7.0-beta2"
#define THISFIRMWARE "ArduCopter V4.7.0-beta3"

// the following line is parsed by the autotest scripts
#define FIRMWARE_VERSION 4,7,0,FIRMWARE_VERSION_TYPE_BETA+1
#define FIRMWARE_VERSION 4,7,0,FIRMWARE_VERSION_TYPE_BETA+2

#define FW_MAJOR 4
#define FW_MINOR 7
Expand Down
60 changes: 58 additions & 2 deletions ArduPlane/Log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ void Plane::Log_Write_Attitude(void)
if (steerController.active()) {
logger.Write_PID(LOG_PIDS_MSG, steerController.get_pid_info());
}

AP::ahrs().Log_Write();
}

// do fast logging for plane
Expand Down Expand Up @@ -192,6 +190,45 @@ void Plane::Log_Write_Nav_Tuning()
logger.WriteBlock(&pkt, sizeof(pkt));
}

#if AP_RANGEFINDER_ENABLED
struct PACKED log_RFNS {
LOG_PACKET_HEADER;
uint64_t time_us;
bool in_use;
bool in_range;
uint8_t in_range_count;
bool have_initial_reading;
float initial_range;
float last_distance;
float correction;
float initial_correction;
float last_stable_correction;
uint32_t last_correction_time_ms;
float height_estimate;
};

// Write a Rangefinder State packet
void Plane::Log_Write_RFNS()
{
const struct log_RFNS pkt {
LOG_PACKET_HEADER_INIT(LOG_RFNS_MSG),
time_us : AP_HAL::micros64(),
in_use : rangefinder_state.in_use,
in_range : rangefinder_state.in_range,
in_range_count : rangefinder_state.in_range_count,
have_initial_reading : rangefinder_state.have_initial_reading,
initial_range : rangefinder_state.initial_range,
last_distance : rangefinder_state.last_distance,
correction : rangefinder_state.correction,
initial_correction : rangefinder_state.initial_correction,
last_stable_correction : rangefinder_state.last_stable_correction,
last_correction_time_ms : rangefinder_state.last_correction_time_ms,
height_estimate : rangefinder_state.height_estimate
};
logger.WriteBlock(&pkt, sizeof(pkt));
}
#endif // AP_RANGEFINDER_ENABLED

struct PACKED log_Status {
LOG_PACKET_HEADER;
uint64_t time_us;
Expand Down Expand Up @@ -501,6 +538,25 @@ const struct LogStructure Plane::log_structure[] = {
{ LOG_OFG_MSG, sizeof(log_OFG_Guided),
"OFG", "QffffBffB", "TimeUS,Arsp,ArspA,Alt,AltA,AltF,Hdg,HdgA,AltL", "snnmo-d--", "F--------" , true },
#endif

#if AP_RANGEFINDER_ENABLED
// @LoggerMessage: RFNS
// @Description: Rangefinder state
// @Field: TimeUS: Time since system startup
// @Field: InUse: Whether the rangefinder is in use.
// @Field: InRng: Whether the rangefinder is in range.
// @Field: IRCnt: Count of in-range measurements
// @Field: Ms0OK: Whether there has been an initial measurement.
// @Field: Ms0: The initial measured range
// @Field: Dst: The last recorded distance
// @Field: Cor: The rangefinder correction
// @Field: Cor0: The initial rangefinder correction
// @Field: CorL: The last stable correction
// @Field: TimeCL: The last correction time
// @Field: HE: Height estimate
{ LOG_RFNS_MSG, sizeof(log_RFNS),
"RFNS", "QBBBBfffffIf", "TimeUS,InUse,InRng,IRCnt,Ms0OK,Ms0,Dst,Cor,Cor0,CorL,TimeCL,HE", "s----mmmmmsm", "F----00000C0", true },
#endif // AP_RANGEFINDER_ENABLED
};

uint8_t Plane::get_num_log_structures() const
Expand Down
37 changes: 29 additions & 8 deletions ArduPlane/Plane.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,32 +268,53 @@ void Plane::update_compass(void)
*/
void Plane::update_logging10(void)
{
bool log_faster = (should_log(MASK_LOG_ATTITUDE_FULLRATE) || should_log(MASK_LOG_ATTITUDE_FAST));
if (should_log(MASK_LOG_ATTITUDE_MED) && !log_faster) {
const bool attitude_med = should_log(MASK_LOG_ATTITUDE_MED);
const bool attitude_faster = should_log(MASK_LOG_ATTITUDE_FULLRATE) || should_log(MASK_LOG_ATTITUDE_FAST);

// Log attitude only if no faster logging is selected
if (attitude_med && !attitude_faster) {
Log_Write_Attitude();
ahrs.Write_AOA_SSA();
} else if (log_faster) {
AP::ahrs().Log_Write();
}

// If any attitude logging is enabled log AOA and SSA
if (attitude_med || attitude_faster) {
ahrs.Write_AOA_SSA();
}

#if HAL_MOUNT_ENABLED
if (should_log(MASK_LOG_CAMERA)) {
camera_mount.write_log();
}
#endif
#if AP_RANGEFINDER_ENABLED
if (should_log(MASK_LOG_NTUN)) {
if (rangefinder.has_orientation(rangefinder_orientation()) &&
(g.rangefinder_landing.get() > 0)) {
Log_Write_RFNS();
}
}
#endif
}

/*
do 25Hz logging
*/
void Plane::update_logging25(void)
{
// MASK_LOG_ATTITUDE_FULLRATE logs at 400Hz, MASK_LOG_ATTITUDE_FAST at 25Hz, MASK_LOG_ATTIUDE_MED logs at 10Hz
// highest rate selected wins
bool log_faster = should_log(MASK_LOG_ATTITUDE_FULLRATE);
if (should_log(MASK_LOG_ATTITUDE_FAST) && !log_faster) {
const bool attitude_fast = should_log(MASK_LOG_ATTITUDE_FAST);
const bool attitude_full_rate = should_log(MASK_LOG_ATTITUDE_FULLRATE);

// Log at fast rate if fast logging is the fastest enabled
if (attitude_fast && !attitude_full_rate) {
Log_Write_Attitude();
}

// Log AHRS at fast rate if either fast or full rate is selected
if (attitude_fast || attitude_full_rate) {
AP::ahrs().Log_Write();
}

if (should_log(MASK_LOG_CTUN)) {
Log_Write_Control_Tuning();
#if AP_INERTIALSENSOR_HARMONICNOTCH_ENABLED
Expand Down
3 changes: 3 additions & 0 deletions ArduPlane/Plane.h
Original file line number Diff line number Diff line change
Expand Up @@ -955,6 +955,9 @@ class Plane : public AP_Vehicle {
void Log_Write_OFG_Guided();
void Log_Write_Guided(void);
void Log_Write_Nav_Tuning();
#if AP_RANGEFINDER_ENABLED
void Log_Write_RFNS();
#endif
void Log_Write_Status();
void Log_Write_RC(void);
void Log_Write_Vehicle_Startup_Messages();
Expand Down
62 changes: 62 additions & 0 deletions ArduPlane/ReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,66 @@
ArduPilot Plane Release Notes:
------------------------------------------------------------------
Release 4.7.0-beta3 10-Apr-2026

Changes from 4.7.0-beta2

1) Board specific changes

- Atlas-Control has updated hwdef.dat file (@AltasFlight, PR:32268)
- HWH7 flight controller added to supported boards (@Arwayday, PR:32248)
- TBS_LUCID_H7 now has an MPU6000 version (@andyp1per, PR:32512)

2) Driver changes

- ZB25VQ128D flash chip now supported for onboard logging (@LoyalLinjy, PR:32408)
- Kebni SensAItion as External AHRS now supported in IMU and INS modes (@magnus-lindhe-kebni, PR:31775)
- IST8310 compass probing corrected on fmuv3-based boards (@peterbarker, PR:32462)

3) AHRS specific changes

- EKF3 flash space requirements reduced (@tpwrules, PRs:32213, 32618)
- EKF3 is fixed to no longer reset to external altitude when it is configured to another source (@snktshrma, PR:32508)
- AHRS recorded origin check will correctly use the GPS (@andyp1per, PR: 32469)
- AHRS external origin setting will be delayed until filter is initialised (@andyp1per, PR: 32505)
- EKF3 missing constraints to FuseDragForces added (@tpwrules, PR:32128)
- Fix replay involving body odometry data (@twprules, PR:32598)

4) Camera and mount specific changes

- Camera servo driver's CAMERA_INFORMATION flags fixed (@Davidsastresas, PR:32564)
- RunCam param metadata names are fixed to match code (@tpwrules, PR:32601)
- Mount fix to angular rates when using FPV mode (@KSimeonAVTA, PR:32540)
- Mount scripting driver accepts rate targets (@peterbarker, PR:32626)
- Fix wire data issues with various Mount backends (@peterbarker, PR:32630)

5) Other libraries changes

- Fence for Plane and Copter supports alt above terrain (@andyp1per, PR:31619)
- Ignore-receiver in RC_OPTIONS is now respected during RC loss (@peterbarker, PR:32488)
- ATC_INPUT_TC and Q_A_INPUT_TC param defaults reduced (@rmackay9, PR:32643)

6) Copter/Tradheli specific changes

- Spool state is logged (@Georacer, PR:31668)

7) Plane specific changes

- Rangefinder state is logged (@Georacer, PR:31579)
- AHRS log message rate not affected by full rate attitude logging (@IamPete1, PR:32623)

8) Sub specific changes

- Automatically deal with misconfigured lights/actuators (@Williangalvani, PR:31109)

9) Rover specific changes

- Battery watt limiter feature added to custom build server (@mackay9, PR:32687)

10) Scripting changes

- plane_follow.lua messages will no longer crash the script if there is no target vehicle (@timtuxworth, PR:32567)
- plane_follow.lua has a fix for crosstrack oscillation (@timtuxworth, PR:32575)

------------------------------------------------------------------
Release 4.7.0-beta2 21-Mar-2026

Expand Down
Loading
Loading