CraigElder
(Craig Elder)
April 20, 2026, 10:52pm
1
CI Workflows
Dev Call April 13, 2026
Release Update
Copter-4.7.0-beta3 has been released for beta testing and can be downloaded using Mission Planner, QGC or directly downloaded from firmware.ardupilot.org .
The list of changes vs 4.7.0-beta2 are in the ReleaseNotes and copied below.
As per previously releases there should be no need to backup and restore parameters as part of the upgrade. This should all be handled automatically.
We are actively tracking issues here and all feedback whether positive or negative is greatly appreciated!
Board …
opened 12:30AM - 07 Mar 26 UTC
DevCallTopic
ReleaseAdmin
This is a list of issues discovered during ArduPilot 4.7 testing. [Issues for 4… .6 are here](https://github.com/ArduPilot/ardupilot/issues/28612)
### Reports requiring investigation
- [ ] https://github.com/ArduPilot/ardupilot/issues/32811
- [ ] SpeedyBeeF405AIO not detecting Adafruit MMC56x3 compass ([discussion](https://discuss.ardupilot.org/t/adafruit-mmc56x3-with-speedybeef405aio/143395))
- [ ] ELRS RC related crash ([issue](https://github.com/ArduPilot/ardupilot/issues/32653))
- [ ] Terrain downloaded to SD card unnecessarily reloaded in flight? ([issue](https://github.com/ArduPilot/ardupilot/issues/32773)))
- [ ] Mount POI sometimes not working? ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/64))
- [ ] Mount POI lock not included in default firmware ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/43))
- [ ] Quadplane QLand over speed ([discussion](https://discuss.ardupilot.org/t/qland-vertical-speed/143366/2))
### Confirmed issues
- [ ] copter-circle-speed script not working correctly ([issue](https://github.com/ArduPilot/ardupilot/issues/32799))
- [ ] TradHeli PID gain multiplier reset issue (4.6 and 4.7 issue reported by Leonard)
- [ ] Spool up changes causing spurious errors (reported by AndyP, [PR](https://github.com/ArduPilot/ardupilot/pull/32485))
- [ ] https://github.com/ArduPilot/ardupilot/issues/32624 ([PR](https://github.com/ArduPilot/MissionPlanner/pull/3697))
- [ ] Altitude estimate offset when switching between baro and rangefinder source ([discussion1](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/28), [discussion2](https://discuss.ardupilot.org/t/re-baro-alt-reset/143333), [issue](https://github.com/ArduPilot/ardupilot/issues/32612), [PR](https://github.com/ArduPilot/ardupilot/pull/32400))
- [ ] https://github.com/ArduPilot/ardupilot/issues/32491
### Copter Specific Issues
- [ ] Payload place may get stuck based on alt field ([PR](https://github.com/ArduPilot/ardupilot/pull/32634))
- [ ] https://github.com/ArduPilot/ardupilot/issues/31968
### Plane Specific Issues
- [ ] https://github.com/ArduPilot/ardupilot/issues/32606
- [ ] https://github.com/ArduPilot/ardupilot/issues/32518 -- @IamPete1 or @samuelctabor to resolve
### Rover Specific Issues
- [ ] Rover watt limiter not working correctly ([relevant PR](https://github.com/ArduPilot/ardupilot/pull/31285), [discussion](https://discuss.ardupilot.org/t/rover-4-7-0-beta2-available-for-beta-testing/143065/10), [PR](https://github.com/ArduPilot/ardupilot/pull/32788))
- [ ] https://github.com/ArduPilot/ardupilot/issues/32444
### Mission Planner Issues
- [ ] Extended Tuning needs updating ([discussion](https://discuss.ardupilot.org/t/speedybee-f405-v4-parameter-not-shown-in-mission-planner/142797/3), [issue](https://github.com/ArduPilot/MissionPlanner/issues/3678), [PR](https://github.com/ArduPilot/MissionPlanner/pull/3685))
### QGC Issues
- None
### Wiki Issues
- [ ] https://github.com/ArduPilot/ardupilot/issues/32741
### Enhancements or Issues that may not be resolved before the stable release
- [ ] https://github.com/ArduPilot/ardupilot/issues/32689 (4.6.3, not 4.7 yet)
- [ ] Copter surface tracking altitude error not limited? ([discussion](https://discuss.ardupilot.org/t/surface-tracking-issues/142851/3), [issue](https://github.com/ArduPilot/ardupilot/issues/32740), [PR](https://github.com/ArduPilot/ardupilot/pull/32789), 4.6 issue as well)
- [ ] Circle point-mount-at-ROI should only apply when circle radius > 0 (e.g. do not apply during panorama) ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/71), [issue](https://github.com/ArduPilot/ardupilot/issues/32641))
- [ ] Copter's SmartRTL always rises 2m before landing ([discussion](https://discuss.ardupilot.org/t/smartrtl-rises-to-2m-after-reaching-home-before-landing/143126/2)) -- present in 4.6 so not a blocker
### Resolved issues
- [x] https://github.com/ArduPilot/ardupilot/issues/32688 -- user error
- [x] Mission Planner SITL gets 4.6.2-beta1 binary ([SITL firmware](https://firmware.ardupilot.org/Tools/MissionPlanner/sitl/Beta/), [should be fixed by this job](https://github.com/ArduPilot/ardupilot/actions/runs/24375398698/job/71187757542), reported by @tridge) -- fixed ahead of 4.7.0-beta3
- [x] SBF GPS driver issue ([issue](https://github.com/ArduPilot/ardupilot/issues/32631), [PR1](https://github.com/ArduPilot/ardupilot/pull/32633/changes), [PR2](https://github.com/ArduPilot/ardupilot/pull/32642)) -- resolved for 4.7.0-beta4
- [x] https://github.com/ArduPilot/ardupilot/issues/32724 ([PR](https://github.com/ArduPilot/ardupilot/pull/32730), 4.6 issue as well?) -- resolved ahead of 4.7.0-beta4
- [x] Rover custom build server issue ([issue](https://github.com/ArduPilot/ardupilot/issues/32666?reload=1), [relevant PR](https://github.com/ArduPilot/ardupilot/pull/31285), [discussion](https://discuss.ardupilot.org/t/rover-4-7-0-beta2-available-for-beta-testing/143065/10), [PR](https://github.com/ArduPilot/ardupilot/pull/32687)) -- resolved for 4.7.0-beta3
- [x] Loiter/QLoiter feels slower, looks like inaccurate position hold. Likely due to consider how we can make it feel closer to 4.6 automatically. Or provide instructions on parameter changes ([relevant PR](https://github.com/ArduPilot/ardupilot/pull/31848), [PR](https://github.com/ArduPilot/ardupilot/pull/32643), [discussion](https://discuss.ardupilot.org/t/how-do-althold-and-loiter-feel-in-4-7-vs-4-6/143300)) -- resolved for 4.7.0-beta3
- [x] Realflight quadplanes not working? ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/72)) -- could not reproduce the problem, RF evolution seems to work OK
- [x] ArcWaypoints listed as WIP (reported by lthall, [PR](https://github.com/ArduPilot/mavlink/pull/497)) -- resolved for 4.7.0-beta3
- [x] https://github.com/ArduPilot/ardupilot_wiki/issues/7604 -- wiki updated ahead of 4.7.0-beta3
- [x] ARMING_SKIPCHK of 10 not skipping gyro and accel checks? ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/86)) -- misunderstanding
- [x] https://github.com/ArduPilot/ardupilot/pull/32382 ([PR](https://github.com/ArduPilot/ardupilot/pull/32626)) -- resolved for 4.7.0-beta3
- [x] Circle mode points mount straight down when doing panorama ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/64)) -- user misunderstanding
- [x] https://github.com/ArduPilot/MissionPlanner/issues/3693 -- resolved in MP ahead of 4.7.0-beta3 release
- [x] RC_OPTIONS = 1 (Ignore RC Receiver) is not being respected ([discussion](https://discuss.ardupilot.org/t/rc-options-to-1-make-copter-yaw-spinning/142948), [PR](https://github.com/ArduPilot/ardupilot/pull/32488)) -- resolved for 4.7.0-beta3
- [x] BRD_SAFETY_DFLT = 0 should force BRD_SAFETYOPTION = 0? should update param desc? ([discussion](https://discuss.ardupilot.org/t/rover-4-6-3-arming-issues-when-trying-to-arm-second-time/142747/12)) -- working as expected, not new to 4.7
- [x] https://github.com/ArduPilot/ardupilot/issues/32511 -- could not reproduce, no response from user, created [security wiki page](https://ardupilot.org/dev/docs/security-landing-page.html) and improved [secure firmware instructions](https://github.com/ArduPilot/ardupilot/tree/master/Tools/scripts/signing)
- [x] CUAV Pixhawk V3C not detecting IST8310 compass ([discussion](https://discuss.ardupilot.org/t/cuav-pixhawk-v3-ist8310-not-detected-with-4-7beta1/142785), [PR](https://github.com/ArduPilot/ardupilot/pull/32462)) -- resolved for 4.7.0-beta3
- [x] https://github.com/ArduPilot/ardupilot/issues/32506 ([PR](https://github.com/ArduPilot/ardupilot/pull/32508)) -- resolved ahead of 4.7.0-beta3
- [x] https://github.com/ArduPilot/ardupilot/pull/29087 missing from release notes ([discussion](https://discuss.ardupilot.org/t/plane-4-7-0-beta1-available-for-beta-testing/142742/9)) -- @IamPete1 updated the plane 4.7.0-beta1 release notes
- [x] Plane Follow's FOLLP_SIM_TlF_FN should have upper case L ([PR](https://github.com/ArduPilot/ardupilot/pull/32456)) -- resolved for 4.7.0-beta2
- [x] UM982 GPS-for-yaw on CUAV V6X not working ([discussion](https://discuss.ardupilot.org/t/ardurover-4-7-0-new-issues-with-um982-moving-baseline/142916)) -- resolved by updating the UM982 firmware
- [x] https://github.com/ArduPilot/ardupilot/issues/31584 -- resolved for 4.7.0-beta2
- [x] QGC altitude slider not working ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/15)) -- fixed for daily build on 18Mar2026
- [x] QGC takeoff slider not working ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/15)) -- fixed in QGC 14148
- [x] QGC Parameters need updating (@rmackay9 and @DonLakeFlyer discussed if dev-team channel, [PR](https://github.com/mavlink/qgroundcontrol/pull/14148)) -- fixed in QGC daily on 17-Mar-2026
- [x] EKF's use of rangefinder and baro never switches back to rangefinder after switching to baro ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/15)) -- user error
- [x] update PSC_ACCZ_I and PSC_ACCZ_P tuning advice https://ardupilot.org/copter/docs/initial-tuning-flight.html#test-althold ([PR](https://github.com/ArduPilot/ardupilot_wiki/pull/7482)) -- wiki updated ahead of 4.7.0-beta2
- [x] https://github.com/ArduPilot/ardupilot/pull/32381 -- resolved for 4.7.0-beta2
- [x] ATC_ACC conversion didn't work ([discussion](https://discuss.ardupilot.org/t/copter-4-7-0-beta1-available-for-beta-testing/142738/8)). Should we remove the "configured" checks ([code](https://github.com/ArduPilot/ardupilot/blob/master/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp#L1161)). Caused by installing 4.7.0-dev prior to release of beta1
- [x] https://github.com/ArduPilot/ardupilot/pull/32428 -- resolved for 4.7.0-beta2
Issues & Pull Requests
master ← peterbarker:pr/MAV_CMD_DO_SET_MISSION_CURRENT-description
opened 03:32AM - 07 Apr 26 UTC
from mavlink/mavlink/master
master ← PilotGaea2001:pr/PilotGaea-support
opened 07:41AM - 11 Mar 26 UTC
## Summary
Add board support for the PilotGaeaSH7V1-bdshot flight controller.
…
## Testing (more checks increases chance of being merged)
- [X] Checked by a human programmer
- [X] Tested in SITL
- [X] Tested on hardware
- [ ] Logs attached
- [X] Logs available on request
- [ ] Autotest included
## Description
This PR adds support for the **PilotGaeaSH7V1-bdshot**, a high-performance STM32H743-based flight controller designed for advanced drone applications.
### Key Hardware Specifications:
- **MCU**: STM32H743VIT6 (2MB Flash, 480MHz)
- **IMU**: Dual ICM42688P (on SPI1 and SPI4) for redundancy.
- **Baro**: DPS310 (on I2C2).
- **OSD**: AT7456E.
- **PWM/DShot**: 11 outputs total.
- **Motors 1-8**: Assigned to dedicated DMA streams to ensure robust **Bi-directional DShot** (RPM telemetry) support.
- **Other Features**: Dual camera switching via GPIO, integrated 8V VTX BEC control, and microSD support.
### Test Environment & Results:
- **Firmware Version**: Tested on latest `master` tag (Copter-4.6.3).
- **Hardware Verification**:
- Successfully flashed and connected to Mission Planner.
- All onboard sensors (Dual IMUs, Barometer) initialized and calibrated correctly.
- Verified DShot functionality on Motors 1-4.
- Confirmed peripheral functions including Camera switching and VTX power control.
*Note: Bootloader binary files are included in `Tools/bootloaders/` to satisfy the `AP_BOOTLOADER_FLASHING_ENABLED` requirement for the initial build validation.
master ← peterbarker:pr/extract-features-fix
opened 12:14AM - 30 Mar 26 UTC
## Summary
Fix a few problems with `./Tools/autotest/test_build_options.py` -… feature extractions mostly, but one genuine issue
## Testing (more checks increases chance of being merged)
- [x] Checked by a human programmer
- [ ] Tested in SITL
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
- [ ] Autotest included
## Description
Just running the script bare will reproduce the problems. transitive include issue on the DDS library, other things are just new defines which weren't configured correctly when they were added (`test_build_options.py` needed extra bits)
master ← lthall:20260331_PayloadPlace_Land_Bug
opened 01:39PM - 31 Mar 26 UTC
## Summary
Fix Land and Payload Place altitude handling to use the mission-sp… ecified altitude instead of shifting to the vehicle's current altitude, and allow spline waypoint transitions into Land/Payload Place commands.
## Testing (more checks increases chance of being merged)
- [x] Checked by a human programmer
- [x] Tested in SITL
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
- [ ] Autotest included
## Description
Land (MAV_CMD_NAV_LAND) and Payload Place (MAV_CMD_NAV_PAYLOAD_PLACE) were calling shift_alt_to_current_alt() which replaced the mission-specified landing altitude with the vehicle's current altitude. This meant the altitude in the mission item was ignored — the vehicle would fly horizontally at its current altitude to the landing location rather than descending/ascending to the altitude specified in the mission before beginning the land.
This PR makes the following changes:
Remove shift_alt_to_current_alt() calls from do_land() and do_payload_place() — the mission-specified altitude is now used directly as the waypoint target, matching the behavior of regular waypoints. The shift_alt_to_current_alt() function is removed entirely as it has no remaining callers.
Allow spline transitions into Land and Payload Place — MAV_CMD_NAV_VTOL_LAND and MAV_CMD_NAV_LAND are moved from the "stop" case to the "set next waypoint" case in set_next_wp(), enabling smooth spline paths into landing waypoints rather than forcing the vehicle to stop at the previous waypoint.
Fix test mission files — update land command altitudes in ap1.txt (0 → 28m) and copter_AVC2013_mission.txt (0 → 5m) to specify the altitude of the last waypoint before land, since the altitude is no longer ignored.
master ← peterbarker:pr/qurt-hwdef
opened 02:19AM - 10 Apr 26 UTC
### Summary
Convert QURT HAL to use hwdef system
### Classification & Test… ing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [ ] Infrastructure change (e.g. unit tests, helper scripts)
- [ ] Automated test(s) verify changes (e.g. unit test, autotest)
- [ ] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
Will be expecting build server to be able to build QURT board. Then relying on @katzfey to test on hardware.
### Description
Uses hwdef infrastructure for the final non-converted HAL.
Will allow for easy addition of VOXL3.
There's a question as to what we should do with the existing `QURT` target which is for the VOXL2 boards. SHould we alias, leave it as QURT or remove QURT as a board name?
master ← IamPete1:FW_input_shaping
opened 04:22PM - 11 Apr 26 UTC
### Summary
This adds input shaping to the roll and pitch controllers with ne… w accel and jerk limit params for each. This should result in much smoother flight.
### Classification & Testing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [ ] Infrastructure change (e.g. unit tests, helper scripts)
- [ ] Automated test(s) verify changes (e.g. unit test, autotest)
- [x] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
### Description
This uses copters "real time s-curves" to shape the angle demands using the existing rate limits and new acceleration and jerk limits. This adds a new `ATIS` log message that shows the result of the input shaping. Currently this logs all the time (under the attitude bit), but once were happy with it we may want to turn it off by defualt.
Through testing we need to find good default values for the accel and jerk limits. The user can disable the new input shaping by setting either accel or jerk limit to zero.
Example of "raw" roll angle and shaped roll angle:
<img width="1451" height="778" alt="image" src="https://github.com/user-attachments/assets/fb829624-8f2c-4b64-be84-4e0740df2bab" />
Some existing features are still missing:
- [x] roll indecision handling for large roll errors
- [x] roll wrap for inverted flight.
- [ ] Absolute velocity constraint, currently the shaped velocity is limited by the rate limit params, but this is then added to the angle control velocity this total is not constrained. Copter uses a hard 2x limit for this (I think).
- [ ] Testing with quadplane assistance and manual mode to ensure the input shaping is reset correctly.
- [x] Shape rate commands with acceleration and jerk.
master ← christianpetri:compass-cal-early-abort
opened 03:02AM - 13 Apr 26 UTC
### Summary
Refactor `fit_acceptable()` to emit a specific GCS message for ea… ch rejection condition instead of silently returning `false`. Each condition is checked independently, so all active failures are reported in a single calibration attempt.
### Description
Previously `fit_acceptable()` returned a silent `false` — the user had no way to know why calibration was rejected. This fills the only silent failure path in the calibrator; `calculate_orientation()` and `fix_radius()` already emitted messages before this change.
| Condition | Example message |
|---|---|
| Fitness NaN | `Mag(0) bad fit: fitness NaN` |
| Radius out of range | `Mag(0) bad fit: radius 1200 [150,950]` |
| Offsets exceed limit | `Mag(0) bad fit: ofs (1900,-2100,1850)>=1800` |
| Diagonal/offdiagonal out of range | `Mag(0) bad fit: diag (0.15,1.02,6.33) offdiag (1.05,-0.03,0.00)` |
| Fitness exceeds tolerance | `Mag(0) bad fit: fitness 145.3 tolerance 100` |
The function loses `const` since `GCS_SEND_TEXT` is a side effect. This is consistent with existing messages already emitted from `calculate_orientation()` and `fix_radius()`.
No new parameters. No behavior change for normal calibrations. All messages follow the existing `Mag(%u)` style and stay within STATUSTEXT limits (messages 1–3, 5 fit one 50-char packet; message 4 is 63 chars and chunks automatically).
### Related
- GCS-side consumer: ArduPilot/MissionPlanner#3706 — captures these messages and shows them in `lbl_obmagresult` on the compass calibration page so the user doesn't have to switch to the messages tab.
- Discussion: https://discuss.ardupilot.org/t/proposal-early-abort-compass-calibration-when-magnetic-field-is-extreme/143374
### Classification & Testing
- [x] Checked by a human programmer
- [x] Tested manually (SITL via Mission Planner; clean build on MatekF405-TE)
Builds clean, no warnings:
- SITL copter: `./waf configure --board sitl && ./waf copter`
- MatekF405-TE plane: `./waf configure --board MatekF405-TE && ./waf plane`
SITL-tested via Mission Planner against this branch:
- Success baseline (defaults) — no `bad` lines
- Bad fit (`COMPASS_CAL_FIT 0.001`) — `Mag(0/1/2) bad fit: fitness X tolerance Y` per compass
- Bad offset (`SIM_MAG1_OFS_X/Y/Z 2000`) — `Mag(0) bad fit: ofs (2000,2000,2000)>=1800`; other compasses succeed
- Cancel/restart of calibration via MP — diagnostics state resets cleanly (verified with #3706)
This contribution was AI-assisted (Copilot).
opened 05:55AM - 13 Apr 26 UTC
VTOL-Plane
DevCallTopic
We have a log from a partner with a very hard landing (vertical speed about 6 m/… s) after a long flight. It is a complex log, but the key issue may be related to how the slew is handled for the throttle mix.
Quadplanes often have very poor estimates of the hover throttle. A typical flight profile never has a steady hover, so the automatic hover throttle learning often doesn't trigger at all, even over many flights. Additionally when it does do learning the lift from the wings (or downforce if nose is down a bit) can cause very poor hover throttle estimates.
During VTOL landing we control the throttle mix using QuadPlane::update_throttle_mix(). During the initial descent we force the desired throttle mix to 1.0. Then when we hit Q_LAND_FINAL we force Q_A_THT_MIX_MIN, which is usually 0.1. What we are seeing is the MOTB.ThrAvMx staying high, despite the desired value being 0.1. In the example crash log the mix stayed at 1.0.
With a high value for the mix we are prioritizing attitude over height control. The problem is that a high descent rate on a quadplane often leads to attitude instability, so we really do need to slow our descent in order to get the attitude under control. This logic in the AC_AttitudeControl library prevents the desired mix from being applied
<img width="883" height="477" alt="Image" src="https://github.com/user-attachments/assets/bc92b250-dfd5-42db-97c8-b9c8227c385a" />
at low battery voltage at the end of the long flight the actual throttle is very high while it is trying to slow the descent rate. The MIN/MAX logic thus prevents the used mix from slewing down from the current 1.0 value down to the desired 0.1 value. This means the descent rate stays high, and attitude control stays bad and the plane descends hard into the ground.
Here is an example with SITL, although the effect is not as bad in this SITL log as it was on the real aircraft.
<img width="1080" height="535" alt="Image" src="https://github.com/user-attachments/assets/f36f6cc2-61db-47d1-9e0c-1e601c6d5a0f" />
when QPOS.State went to 7 we should have started slewing the mix towards 0.1, but in fact it rose up to 0.95
SITL log here: https://uav.tridgell.net/tmp/00000004.BIN
master ← tridge:pr-mix-land-descend
opened 11:01PM - 13 Apr 26 UTC
this should help with issue #32759
probably should also update wiki quadplane… docs to recommend disabling hover throttle learning after initial setup
master ← stephendade:tclimit
opened 11:46AM - 15 Apr 26 UTC
### Summary
Based on the conversation at https://discuss.ardupilot.org/t/rove… r-4-7-0-beta2-available-for-beta-testing/143065/12, I've made a few change to the Rover power limiting feature to make it easier for users:
This includes:
-Notifying the user (once per 5 seconds) if power limiting is active
-Reducing the default MOT_BAT_WATT_TC from 5 to 2, to reduce lag in the low-pass filter.
Tested in SITL and a real rover.
### Classification & Testing (check all that apply and add your own)
- [X] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [ ] Infrastructure change (e.g. unit tests, helper scripts)
- [ ] Automated test(s) verify changes (e.g. unit test, autotest)
- [X] Tested manually, description below (e.g. SITL)
- [X] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
master ← lthall:202260415_TerrainFollowingManualClimbRate
opened 02:45PM - 15 Apr 26 UTC
### Summary
Surface tracking can currently saturate vertical rate limits, preve… nting the pilot from commanding climb or descent when terrain-following is active.
This change adjusts the pilot’s effective climb/descent limits based on the terrain-following command, ensuring the pilot always retains full vertical authority while still allowing terrain tracking to operate within the overall limits.
```
Board,antennatracker,blimp,bootloader,copter,heli,plane,rover,sub
CubeOrange,*,*,*,-104,-104,*,*,*
```
### Classification & Testing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [ ] Infrastructure change (e.g. unit tests, helper scripts)
- [x] Automated test(s) verify changes (e.g. unit test, autotest)
- [x] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
master ← gengchi-fuan:master
opened 01:15PM - 16 Apr 26 UTC
This PR adds support for Shanghai Fudan Microelectronics (FMSH) FM25Q series NOR… Flash (64M/128M/256M).
Key changes:
AP_FlashIface: Added JEDEC manufacturer ID (0xA1) for hardware detection.
AP_Logger: Defined JEDEC IDs and added capacity configurations for FM25Q64/FM25Q128A/FM25Q256.
AP_Filesystem: Configured LittleFS block counts for the FMSH series.
The implementation is based on vendor specifications and follows the existing driver structure for SPI flash devices.
opened 04:38AM - 17 Apr 26 UTC
WIP
DevCallTopic
# Feature Request
## Feature request
**Is your feature request related to a pr… oblem? Please describe.**
sim_vehicle.py is capable, but a clicky-clicky interface would be nice.
**Describe the solution you'd like**
Augmented `sim_vehicle.py` which is capable of creating simulation scenarios and launching them.
Critical points:
- should not require any more libraries than the base sim_vehicle.py *unless* it is doing GUI work
- `--no-mavproxy` must still work
- should essentially just wrap existing command-line arguments
- should be able to start up scenarios created with `--aircraft`
- should be cross-platform, based on the same libraries that MAVProxy uses (which should cover Windows, MacOSX and Linux)
- starting sim_vehicle.py outside a vehicle directory without specifying a vehicle should start the gui. Within a vehicle directory `--gui` should be required - and traditional behaviour used if `--gui` is not set
- vehicle should be filtered to just Copter being available if the user starts in the Copter directory
**Describe alternatives you've considered**
... not....
**Platform**
[ x ] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
master ← peterbarker:pr-claude/pr-claude/pr/arace-plane-wind-failsafe-testfirst
opened 10:42AM - 17 Apr 26 UTC
### Summary
Adds an autotest which thoroughly tests the Plane wind failsafe e… xample.
### Classification & Testing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [x] Infrastructure change (e.g. unit tests, helper scripts)
- [x] Automated test(s) verify changes (e.g. unit test, autotest)
- [ ] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
### Description
Exhautsively tests this script in preparation for expansion.
master ← Ryanf55:copter-autotest-reduce-callisto-duplication
opened 04:17AM - 18 Apr 26 UTC
### Summary
* Reduces code duplication of SITL setup for Callisto in the auto… test suite
### Classification & Testing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [ ] No-binary change
- [ ] Infrastructure change (e.g. unit tests, helper scripts)
- [x] Automated test(s) verify changes (e.g. unit test, autotest)
- [x] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
```
./Tools/autotest/autotest.py test.CopterTests2b.PeriphMultiUARTTunnel test.CopterTests1c.BaroWindCorrection test.CopterTests2b.LUAConfigProfile test.CopterTests1c.BaroWindCorrection
```
### Description
Pull out the args needed for callisto into a function that returns kwargs.
You can then use the `**` operator to unpack the kwargs nicely.
Could we keep track of highest terrain alt and use it as fallback for terrain failures?
Having a way of mapping ports and channels would be handy.
iampete
(Peter Hall)
April 23, 2026, 7:19am
4
It depends on ths use case, sometimes crashing into the ground is better than flying too high and breaching an airspace restriction.
But I do agree that we could handle this better.
Fair point though at that point terminating (with parachute) is IMHO the only sane option (unless you are flying over flat ground). CFIT sounds like big ground risk.