Attendees (max) : 8
opened 12:01AM - 14 Nov 24 UTC
DevCallTopic
ReleaseAdmin
This is a list of issues discovered during ArduPilot 4.6 testing. Issues for [C… opter/Rover-4.5 issues are here](https://github.com/ArduPilot/ardupilot/issues/26103)
**Reports requiring investigation**
- [ ] BLHeli SERVO_BLH_RVMASK mapping is achieved through trial and error (xfacta, andyp)
- [ ] ESC Telemetry logging issue ([issue](https://github.com/ArduPilot/ardupilot/issues/28807))
- [ ] Takeoff throttle behavior for planes without airspeed sensor changed ([issue](https://github.com/ArduPilot/ardupilot/issues/28775), [PR](https://github.com/ArduPilot/ardupilot/pull/28776))
- [ ] when the user has configured ESC, FFT or RPM notch and has INS_HNTCx_REF=0 then they end up with a fixed notch. We should have an arming check to tell them they need to set the REF to 1.0 (any non-zero value will do actually) https://github.com/ArduPilot/ardupilot/issues/28786
**Confirmed issues**
- [ ] on ICM45686 IMUs the SPI transfer overheads can be overwhelming on some boards, especially those with 3 of that sensor. Some PRs to address: https://github.com/ArduPilot/ardupilot/pull/28672 and https://github.com/ArduPilot/ardupilot/pull/27573
***Plane Specific Issues***
- [ ] Plane takeoff not completing under TKOFF_OPTIONS[0]=0 #28685 ([PR](https://github.com/ArduPilot/ardupilot/pull/28707))
***Heli Specific Issue***
- [ ] Autotune acceleration limiting is not effective
**Enhancements or Issues that may not be resolved before the stable release**
- [ ] add a warning if the GCS system clock and UTC clock on the flight controller differs by over 20s and signing is active, as signing will fail with a 30s difference
- [ ] Custom Build Server for CubeOrangePlus with OpenDroneID shows linker error when out of flash ([discussion1](https://discuss.ardupilot.org/t/copter-4-6-0-beta1-is-available-for-beta-testing/126295/4), [discussion2](https://discuss.ardupilot.org/t/copter-custom-firmware-build-issue-with-remote-id-support-latest-not-4-5-7/125177), Issue)
- [ ] Add LDRobot LD19 support ([discussion](https://discuss.ardupilot.org/t/copter-4-6-0-beta1-is-available-for-beta-testing/126295/8), [issue](https://github.com/ArduPilot/ardupilot/issues/28662))
- [ ] need to provide a clearer message to users when the power status flags change, indicating loss of a power source in flight. A statustext at message level CRITICAL I think is warranted, maybe "POWER STATUS CHANGE" ? (Tridge has details)
**Wiki issues/enhancement requests ([Wiki To-Do list](https://github.com/ArduPilot/ardupilot_wiki/issues/4274))**
- None
**Resolved issues**
- [x] plane takeoff regression since 4.5.x: https://github.com/ArduPilot/ardupilot/issues/28681 -- ready for beta2
- [x] on plane when FENCE_AUTOENABLE=3 and FENCE_ENABLE=0 the fence does not enable when arming if there is a RCn_OPTION set to FENCE. This is a regression from 4.5.x. (Tridge has details) Fix: https://github.com/ArduPilot/ardupilot/pull/28729 -- ready for beta2
- [x] on plane the pre-arm check for being inside polygon fence was lost since 4.5.x. Fix: https://github.com/ArduPilot/ardupilot/pull/28729 -- ready for beta2
- [x] Navio2 GPS not working ([discussion](https://discuss.ardupilot.org/t/rover-4-6-0-beta1-is-available-for-beta-testing/126296/4), [conflicting report that it does work](https://discuss.ardupilot.org/t/copter-4-6-0-beta1-is-available-for-beta-testing/126295/9)) -- fixed by refreshing/resetting firmware
- [x] arming at mid-stick question ([discuss](https://discuss.ardupilot.org/t/arming-with-throttle-at-mid-stick/127203)) -- no issue
- [x] Crossfire receiver does not reconnect after failsafe ([issue](https://github.com/ArduPilot/ardupilot/issues/28797), [PR](https://github.com/ArduPilot/ardupilot/pull/28805)) -- resolved for -beta2
- [x] Copter AutoTune can produce very low maximum acceleration values ([issue](https://github.com/ArduPilot/ardupilot/issues/28799), [PR](https://github.com/ArduPilot/ardupilot/pull/28800)) -- resolved for -beta2
- [x] memory fragmentation and multiple memory regions mean lua scripting can fail with out of memory error even if you have plenty of free memory. Addressed in https://github.com/ArduPilot/ardupilot/pull/26517
- [x] system time may be unstable when using only first GPS timestamp, consider https://github.com/ArduPilot/ardupilot/pull/24022 or similar fix (Tridge has details)
- [x] Plane fences ignored ([issue](https://github.com/ArduPilot/ardupilot/issues/28666)) -- cannot reproduce
UTC0709
Andrew : 4.6.beta2 PR has some release failures.
Ubuntu Jammy fails install.
RTC needs logging fixup commit to be brought along.
Some more open regressions can be found on the related Github ticket.
Lots of improvements over beta1
ArduPilot:master
← peterbarker:pr/short-rtl-failsafe
opened 04:09AM - 26 Oct 24 UTC
This PR adds the ability to enter RTL as a short-failsafe action. From the requ… est:
```
We still want both a short and a long failsafe action. To clarify, this is what we want to do:
When connection is lost continue for X seconds
After X seconds: RTL
If connection still not recovered after Y seconds: Glide
If FS_Short could do RTL, it could take care of #1&2, and FS_Long could take care of #3
```
UTC0717
A : Traditionally we didn’t do that because it didn’t seem reasonable.
Alexander @bengterik : I’m not particular about restoring state if the short FS clears. Perhaps leans toward staying in RTL.
The main use-case is to get back to LTE-available areas.
We can’t use long failsafe for that, as we need it to be Glide.
A : Sounds like Advanced FS is a better fit for this use-case.
Al : I’ll read up on it.
ArduPilot:master
← andyp1per:pr-littlefs-flash-v3
opened 08:23PM - 24 Nov 24 UTC
This completely replaces the flash based support, including logging with a littl… efs backend. This results in much more reliable FS access as well as support for things like scripting.
With thanks to @ntamas for the original code
UTC0726
Andy : Testing is going well.
What other testing do we need on this?
There’s a cost on this issue, probably we want this for H7 with the big NAND flash chips.
Costs more flash.
A : Can it replace logging in F4 chips?
An : Chips are usually small and things don’t go well when space gets full.
But the flash cost might be a blocker.
A : We should make sure we test a build configuration for F4, mainly for size comparison.
Andy : It is possible, but we’d need to emulate the filesystem.
A : Not a showstopper, but would be a nice to have.
Andy : You need to be careful with when you sync a block to storage.
There’s instructions in the LittleFS project.
A : It’s a little ugly that the logger has to calculate the block size itself.
Would be nice if it was encapsulated.
We could partition the NAND, for logging and scripting.
Andy : That would be bad, both for performance and memory management.
If the NAND cache (2KB) is full, the write will block.
A : We can’t enable it by default in bigger chips, without knowing the build size cost.
Michelle : Apparently it saves flash compared to block logging. Suspiciously much.
ArduPilot:master
← tridge:pr-fence-autoenable3-fix
opened 02:58AM - 25 Nov 24 UTC
This fixes 2 regressions in fence behaviour since 4.5.x.
- we had lost the pre-… arm check on being inside the polygon fence for FENCE_AUTOENABLE=3
- if the user has both a RCn_OPTION=11 (FENCE) and FENCE_AUTOENABLE=3 then the autoenable did not happen
UTC0756
Andy : Do we need to worry about Copter?
A : Haven’t done any flight tests.
Andy : SITL testing is also fine.
ArduPilot:master
← andyp1per:pr-primary-gyrp
opened 09:36AM - 15 Aug 24 UTC
Split out from https://github.com/ArduPilot/ardupilot/pull/27029
This normali… zes the usage of the "primary" gyro in the IMU drivers and gives an opportunity to take action when it changes. We were doing this before with random calls into the AHRS, but really the IMU needs to know this information. This makes it possible to take specific required action in future PRs.
I've turned this into a demo of what this can be used for, most notably to slow down FIFO read rates on non-primary gyros.
On a CubeOrange+ with ```INS_GYRO_RATE=2``` (4KHz):
Before:
```
idle PRI= 1 sp=0x30021CF8 STACK= 296/ 504 LOAD=22.0%
SPI4 PRI=181 sp=0x3002AF58 STACK= 896/1464 LOAD=23.2%
SPI1 PRI=181 sp=0x3002B668 STACK= 824/1464 LOAD=25.2%
```
After:
```
idle PRI= 1 sp=0x30021D00 STACK= 296/ 504 LOAD=34.7%
SPI4 PRI=181 sp=0x3002AF58 STACK= 816/1464 LOAD=22.0%
SPI1 PRI=181 sp=0x3002B668 STACK= 816/1464 LOAD=14.1%
```
The saving is not as great as you might expect, probably down to SPI overhead which can't be avoided but still substantial.
On my fast rate copter with 2x ICM42688 running at 16Mhz or so I get:
Before:
```
idle PRI= 1 sp=0x3001F668 STACK= 296/ 504 LOAD= 4.7%
SPI1 PRI=181 sp=0x20003538 STACK= 848/1464 LOAD=17.7%
SPI4 PRI=181 sp=0x20003B50 STACK= 848/1464 LOAD=16.3%
```
After:
```
idle PRI= 1 sp=0x3001F670 STACK= 296/ 504 LOAD=12.8%
SPI1 PRI=181 sp=0x30021838 STACK= 816/1464 LOAD=19.1%
SPI4 PRI=181 sp=0x20002720 STACK= 824/1464 LOAD= 8.3%*
```
Which is the difference between on the edge and comfortable
With @bugobliterator 's SPI PR https://github.com/ArduPilot/ardupilot/pull/28093 I get further benefit:
```
idle PRI= 1 sp=0x3001F670 STACK= 296/ 504 LOAD=15.4%
SPI1 PRI=181 sp=0x30022188 STACK= 816/1464 LOAD=15.9%
SPI4 PRI=181 sp=0x30021B70 STACK= 824/1464 LOAD= 7.6%*
```
UTC0759
Andy : Now only applies during fast rates
I guessed that the buffer length needed to increase, because there now would be more data.
How could I test if this is necessary? How full a buffer is?
Sid : We had issues with IMU buffer before.
Unfortunately you need to run for a very long time to give a chance for bugs to arise.
A : If we needed to buffer more data, we might actually get a lot more corrupted data.
And in the current implementation we indirectly reset the IMU when a buffer grows close to full.
Your primary lane will be fine, but upon switching to another, those IMUs might be in a bad state.
Let’s make this change an Invensense v3 only change. We’re probably safe there.
Andy : How do I test?
A : You need to look at all IMUs/lanes. Make sure all EKFs are happy.
Sid : I also have concerns over the CPU usage.
A : This is only brought online when fast rate is enabled.
Sid : I generally am not in favour of features that can dynamically increase the CPU usage (and can happen mid-flight).
A : Would be nice to have the Monitoring thread warn that the idle thread hasn’t run in a few cycles.
ArduPilot:master
← andyp1per:pr-esc-logging
opened 05:36PM - 09 Dec 24 UTC
UTC0824
Andy : Logging logic would be outside of the LOGGER_ENABLED fences.
MergeOnCIPass
ArduPilot:master
← Georacer:par/tecs_ext_hagl
opened 11:00AM - 05 Dec 24 UTC
# Summary
This addresses #28704 by passing the external Height Above Ground L… evel (HAGL) to `Plane::tecs_hgt_afe()`.
# Testing
None so far. There is one candidate partner who's willing to try it.
# Alternatives
I've spent a couple of hours thinking how `Plane::tecs_hgt_afe()` and `Plane::get_landing_height()` are different from each other. They seemed like a good candidate for refactoring/consolidation, and that would save the introduction of these extra lines of code.
But in the end I failed to do so, hence the duplicate code.
UTC0927
A : Looks good, let’s wait for testing.
ArduPilot:master
← bugobliterator:pr-icm45686-loop-rate
opened 04:07AM - 17 Jul 24 UTC
TLDR; this PR allows users to be able to better control how fast we read ICM4568… 6, previously we were only limited to 3.2KHz and 6.4KHz. With this PR 0.8, 1.6, 3.2 and 6.4 KHz will be achievable. And for all boards except CubeRedPrimary, the default Sensor read (FIFO read) rate will be 1.6KHz, which was previously 3.2KHz.
Additional Notes:
* We seem to be always setting ICM45686 backend loop rates atleast at 3.2KHz when fast_sampling was requested. And at 1.6KHz when it isn't.
* This PR modifies the rate at which we read from FIFO depending on requested gyro rates. We still sample at 3.2KHz or 6.4 KHz depending on requested backend loop rates, we just read from FIFO based on what read rate is requested.
When fast sampling is not requested we read FIFO at 0.8KHz
Currently there are 6 flight boards that are using ICM45686, CubeOrangePlus, CubeRed, Here4FC, Pixhawk6X and ZeroOneX6. As it stands in master all 6 boards are polling the sensor 3.2KHz.
There is a hard limitation in current master which doesn't even allow users to set the backend rate to value lower than 3.2KHz. Basically even if you had fast sampling turned off the backend rate will be stuck at 3.2KHz.
With this PR following configurations are achievable:
On CubeOrangePlus, Here4FC, Pixhawk 6X and ZeroOneX6, this PR will change the polling rate from 3.2KHz to more reasonable value of 1.6KHz as the default (As all of these boards have FAST_SAMPLING turned on for all IMUs by default). The sample rate on the IMU still remains as 3.2KHz though
If user needs to have faster polling, they can set INS_GYRO_RATE parameters to get polling rate of 3.2 and 6.4.
On CubeRedPrimary, this will put the primary IMU at polling rate of 1.6KHz and other two at 800Hz. This is because default INS_FAST_SAMPLE mask is set to 1.
As a means of safety this PR will ensure that current users setup don't break in case they are using higher SCHED_LOOP_RATE values https://github.com/ArduPilot/ardupilot/pull/28672
The PR also adds support for showing both the Loop Rate and Sample Rate of the IMU for InvensenseV3. This signifies the difference between the two values. We have been displaying these values for Invensensv2 and v1 as well. We did it by the means of two values separated by / like so :
```
snprintf(banner, banner_len, "IMU%u: fast sampling enabled %.1fkHz/%.1fkHz",
gyro_instance, _gyro_backend_rate_hz * _gyro_fifo_downsample_rate * 0.001, _gyro_backend_rate_hz * 0.001);
```
Flight Logs:
CubeOrangePlus LR 0.8 / SR 3.2 : https://droneshare.cubepilot.com/#/s/log?b=1721188076568&c=5a75a9ee-43ef-11ef-a740-b360934a095f&d=CubeOrangePlus+LR+0.8+%2F+SR+3.2&e=2&a=cbfcd2fc-3fa9-11ed-b631-b97a8244eade
CubeOrangePlus LR 1.6 / SR 3.2 : https://droneshare.cubepilot.com/#/s/log?b=1721188057353&c=4f01d6a9-43ef-11ef-a740-7fca103c5c87&d=CubeOrangePlus+LR+1.6+%2F+SR+3.2&e=2&a=cbfcd2fc-3fa9-11ed-b631-b97a8244eade
CubeOrangePlus LR 3.2/ SR 3.2 : https://droneshare.cubepilot.com/#/s/log?b=1721187986195&c=2497d6a7-43ef-11ef-a740-11b81cb1ae46&d=CubeOrangePlus+LR+3.2%2F+SR+3.2&e=2&a=cbfcd2fc-3fa9-11ed-b631-b97a8244eade
UTC0828
Andy : Sid persuaded me on this in another discussion.