Attendees (unique) : 10
UTC0705
opened 06:58AM - 22 Apr 26 UTC
# Bug Report
## Bug report
The surface tracking code is using the rangefinder … to get a sense of the ground distance.
There are cases where a glitch is misdetected, leading to undesirable altitude change.
## Issue details
[AP_SurfaceDistance.cpp](https://github.com/ardupilot/ardupilot/blob/ArduPilot-4.7/libraries/AP_SurfaceDistance/AP_SurfaceDistance.cpp#L74-L74) relies on `RANGEFINDER_GLITCH_ALT_M` to decide if two consecutive measurements are too far apart, hence classified as a glitch.
Later, in `surface_tracking.cpp` ([link](https://github.com/ardupilot/ardupilot/blob/ArduPilot-4.7/ArduCopter/surface_tracking.cpp#L25-L25)), the altitude target is reset.
But if the distance step is legitimate (e.g. fly over a vertical wall), there will be no change in altitude initially (undesired). Then, if you happen to go back over the step (without an glitch detected), you might actually descend too low or ascend too high.
It would be nice to have a parameter disabling the glitch detection at least. I don't think it's an easy problem to improve reliably.
**Version**
master
**Platform**
[ ] All
[ ] AntennaTracker
[X] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
**Airframe type**
N/A.
**Hardware type**
N/A
**Logs**
Not publicly available, but upon request.
George : I’ve seen it happen twice, where a glitch is falsely detected and leads to undesirable altitude change during surface tracking.
Randy : Adding more filtering is prone to lead to lag and oscillations
G : I can add a parameter with the same default value. And at 0 glitch detection can be disabled.
UTC0716
opened 10:32PM - 21 Apr 26 UTC
Maintaining legacy parameter documentation has an increasing cost, while its pra… ctical value continues to decrease.
Currently, we aim to keep as many parameters as possible available via versioned parameter pages on the wiki. However, this approach is becoming inconsistent:
Some older firmware versions are no longer available for download
Corresponding parameter sets are still partially documented
This leads to broken, incomplete, or misleading references
Because of this discrepancy between available firmware and documented parameters, the current state of the wiki can create confusion rather than help.
Proposal
Deprecate (or remove from primary documentation) parameters older than the v3.9 series.
Benefits
Improves overall consistency between firmware and documentation
Reduces maintenance burden on contributors
Avoids misleading users with incomplete or unverifiable parameter data
Clarifies the supported baseline for current development and support
Additional impact
Effectively ends legacy parameter support for older APM boards
Encourages users to migrate to more recent, supported firmware
(https://github.com/ArduPilot/ardupilot_wiki/pull/7685)
Pierre : These old files impede maintenance on the wiki.
R : As long as we don’t delete the parameter lists that get served to the GCSs, when people connect old but popular firmware versions.
Pierre : I don’t even know if it’s the wiki that generates this file.
We are building all of the versions parameters, every time we build the wiki.
Peter : This PR suggests we just don’t parse the old versions, not delete firmware binaries.
R : We could go as recent as 4.2.
P : We have some partners who still use 4.0.
Pierre : I’ll ask around, make a survey.
UTC0727
master ← robertlong13:pr/delete-icengine-tca9554
opened 11:16AM - 21 Apr 26 UTC
This was a Carbonix-specific implementation and no aircraft that relied on this … driver exist anymore (we shifted to using a periph node relay). It's not worth the maintenance burden for any one.
This wasn't implemented in a generic way (as the comments mention, it was hard-coded to the pinout as installed on our internal "PMB Rev E"), wasn't compiled in by default, and wasn't a registered build option for the build server, so it's vanishingly unlikely that anyone outside Carbonix ever used this.
P : No vehicle uses this driver anymore.
Andrew : Sure, let’s kill it.
UTC0729
master ← peterbarker:pr/compiler-warnings
opened 08:09AM - 21 Apr 26 UTC
### Summary
Removes this compiler option as clang doesn't know about it. Als… o make unknown compiler options fatal as they may actually be important...
### Classification & Testing (check all that apply and add your own)
- [x] Checked by a human programmer
- [ ] Non-functional change
- [x] No-binary change
- [x] 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
```
Board AP_Periph antennatracker blimp bootloader copter heli iofirmware plane rover sub
CubeOrange-periph-heavy * *
Durandal * * * * * * * *
Hitec-Airspeed * *
KakuteH7-bdshot * * * * * * * *
MatekF405 * * * * * * * *
MatekH7A3 * * * * * * * *
Pixhawk1-1M-bdshot * * * * * * *
SITL_x86_64_linux_gnu * * * * * * *
YJUAV_A6SE * * * * * * * *
f103-QiotekPeriph * *
f303-MatekGPS * *
f303-Universal * *
iomcu *
mindpx-v2 * * * * * * * *
revo-mini * * * * * * * *
skyviper-v2450 *
speedybeef4 * * * * * * * *
```
... no vast amounts of warnings now for clang
### Description
This warning was coming out a lot on clang. Compiles but warns.
Make the warning non-clang only and make future "don't know about this warning" fatal on clang.
P : clang doesn’t like the no-digraphs option. I’m changing this to something it likes a bit more.
UTC0731
master ← peterbarker:pr-claude/rename-char_to_hex
opened 07:12AM - 07 Apr 26 UTC
### Summary
Consolidates mechanisms used to turn e.g. "fe" into 254 and add a… few convenience methods.
Be rigorous about checking return values for this conversion.
### 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) (most of them)
- [ ] Tested manually, description below (e.g. SITL)
- [ ] Tested on hardware
- [ ] Logs attached
- [ ] Logs available on request
simulator changes come after main code changes - tests pass before and after simulator changes.
### Description
This removes the "255 means failure" code - it's just dangerous. Make everything bool-with-a-return-parameter.
Merged!
UTC0734
master ← Huibean:pr-lte-modem-improve-re-registration-handling
opened 11:17AM - 03 Apr 26 UTC
### Summary
improve LTE Modem connection
### Classification & Testing (che… ck 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
- [x] Logs available on request
### Description
Allow re-registration, when registration failed instead of stuck in loop
Before:
To Reproduce below issue, keep connection for hours(over night)
```
[11:04:01.017 ] Info: LTE_modem: step CREG
[11:04:00.017 ] Info: CREG: 3: registration denied
[11:04:00.017 ] Info: LTE_modem: step CREG
[11:03:59.017 ] Info: CREG: 3: registration denied
```
To Reproduce below issue, unplug antenna and plug back
```
AP: CREG: 0: not registered, not searching
AP: LTE_modem: step CREG
AP: CREG: 0: not registered, not searching
AP: LTE_modem: step CREG
AP: CREG: 0: not registered, not searching
```
After fixed:
```
AP: LTE_modem: step CREG
AP: CREG: 3: registration denied
AP: LTE_modem: re-registering
AP: LTE_modem: step CREG
AP: CREG: 0: not registered, not searching
AP: LTE_modem: re-registering
AP: LTE_modem: step CREG
AP: CREG: 2: not registered, searching
AP: LTE_modem: step CREG
AP: LTE_modem: CREG OK
AP: LTE_modem: step CIPMODE
AP: LTE_modem: transparent mode set
AP: LTE_modem: step NETOPEN
AP: LTE_modem: network opened
```
A : Looks good, thanks!
Huibean : Should we also change the LTE operator change from -1 to 0 (autoconfig)?
A : I prefer -1, because that way we can control the configuration of the modem.
H : I think at -1 the modem will not search for another carrier when something goes wrong. I remember a “no searching” error?
A : I’ve seen this message change from “no search” to “searching” here in Australia. You need to set the APN for the behaviour to be reliable.
UTC0743
master ← Huibean:pr-sitl-update-rtscts-control
opened 03:22AM - 22 Apr 26 UTC
### Summary
SITL replace --rtscts arg with BRD_SERn_RTSCTS and add flow AUT… O detect feature same as ChibiOS
### 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)
- [ ] Automated test(s) verify changes (e.g. unit test, autotest)
- [ ] Tested manually, description below (e.g. SITL)
- [x] Tested on hardware
- [ ] Logs attached
- [x] Logs available on request
### Description
1. remove ```--rtscts``` from sitl which will force all instance enable flow
2. add ```BRD_SERn_RTSCTS``` param to control uart serial hardware flow control
3. add flow control auto detect feature
H : ChibiOS has an RTSCTS auto-detect feature, so I enabled it.
P : We don’t simulate RTSCTS in SITL yet. So I don’t see much point here.
A : We can change the default value to 0 instead. Running auto-detection to all simulated UARTS is a bit odd, we don’t want to be doing that.
UTC0750
master ← andyp1per:pr-ekf-reset
opened 04:39PM - 14 Feb 26 UTC
## Summary
In certain circumstances - particularly moving platforms or in the… case of a crash - the EKF can wedge itself in an unrecoverable state. For instance in a small copter, crash, turtle and try and re-arm - the EKF can be permanently failed. In these circumstances doing a soft reset of the EKF is far preferable to a hard reset of the flight controller which can easily involve hardware resets of peripherals that take a while to come up. An EKF reset can complete in <1s.
- Add `NavEKF3::InitialiseFilterBootstrap()` public method that clears `statesInitialised` and re-runs bootstrap alignment on all cores
- Add `AP_AHRS::reset_ekf_bootstrap()` to expose the reset through the AHRS interface
- Add `RCx_OPTION=187` (EKF_RESET) aux function that triggers a full EKF bootstrap reset on HIGH, gated to fire only on state transition (not continuously)
- Add SITL autotest `EKFBootstrapReset` that verifies the reset triggers in flight and the vehicle remains stable
## Test plan
- [x] `test.Copter.EKFBootstrapReset` passes on SITL
- [X] Review that EKF recovers to full navigation after reset in flight
- [X] Test on hardware with magnetic disturbance scenario
R : Why not reset all estimators?
A : I would only reset the one that is actively blocking me from arming. The others might take a long time to settle and by that point you might want to be already in the air.
UTC0811
master ← peterbarker:pr/set-home-up
opened 10:00PM - 11 Jan 26 UTC
This is not NFC; both Plane and Rover will be unable to set their home unless th… eir origin has also been set. I don't think this will break people's workflows. Rover won't emit a text message now.
I don't think we *should* require home to be set before you set origin.... but at least this way we are consistent, and this is the more conservative approach to getting our vehicles having the same behaviour.
```
Board AP_Periph antennatracker blimp bootloader copter heli iofirmware plane rover sub
CubeOrange-periph-heavy * *
Durandal 40 -8 * -8 -8 40 -104 0
Hitec-Airspeed * *
KakuteH7-bdshot 40 0 * -8 -8 40 -104 0
MatekF405 40 -8 * 0 -8 40 -128 0
Pixhawk1-1M-bdshot 40 -8 0 -8 32 -128 0
SITL_x86_64_linux_gnu 0 -128 -56 -56 0 -56 -128
f103-QiotekPeriph * *
f303-MatekGPS * *
f303-Universal * *
iomcu *
revo-mini 40 0 * 0 -8 40 -128 0
skyviper-v2450 -8
speedybeef4 40 0 * 0 0 40 -128 0
```
A : I prefer it in AHRS, because this library is hosted in AP_Periph. AP_Vehicle isn’t.
It’s nice that we’re trying to unify the set_home behaviour among vehicles.
R : I don’t feel particularly attached to the Copter implementation.
We shouldn’t be doing things like changing Home right upon arming, as a rule.
A : I don’t like that it requires an origin to set home.
R : Me neither. As long as we are careful not to check if home is set, when we actually mean for the origin to be set.
P : Also be careful with functions that return altitude from Home.