ArduPilot EU Dev Call 2025-10-29

Attendees (unique) 12

UTC 0702

Peter The only use was in relation to handling a 2nd IMU.

  • It’s a no-code change.

Andrew Probably a left-over from the CubeBlack days.

MergeOnCIPass


UTC0704

Andy The DMA transaction size is not in bytes, rather in number of transactions/reads.
A This could be up to 88bytes, risking flushing onto neighbouring memory.
Andy As long as it’s in our own buffer, that’s ok, no?
A How big is our DMA buffer? Is it guaranteed to be at least 88 bytes?

  • Ah, yes, GCR_TELEMETRY_BUFFER_LEN is actually probably unnecessarily big.
  • We need better comments around these size constsants.
  • Also Thomas has dived into DMA a lot more than me.

UTC0723

Andy When we’re unbound the protocols and baud rates are cycling, so there’s a low chance for the bind request to go through.

MergeOnCIPass


UTC0726

Andy If you use the rate thread, you can’t read BLHeli telemetry.
A You could instead take ownership of the UART with an unconditional begin(0). It would be a slightly simpler fix.

  • We could even start dropping the condition, this is legacy code before semaphores were introduced.

Merged!


Randy Leonard would like to put the 4.7 release at least a month away, to get time to finish some features. Pete is also looking to get some new features in and needs time.
Andy I’d also like some more time for features.


UTC0735

George
A Let’s rip out the autostart code if the manufacturer doesn’t recommend it.

  • Also we can put this branch on the custom build server.

Peter Let’s ask them if the starter doesn’t work, let’s do away with the starter AUX function completely.


UTC0751

R A new EKF reset method SlewTarget is introduced, to allow for smooth resets of EKF. The errors are dumped on the position target offsets, which are then gradually diminshed.
A This will change the behaviour in Plane quadplanes, right?
R Yes, but you woulnd’t notice the difference. But if you want, you can choose a different behaviour (reset) during takeoff and landing.
Matt Why do we need two behaviours? When is the reset preferrable to slew?
Peter I think there are cases where you want to reset to where you are now, so this would prevent any further movement.
Randy And this is why mode LAND would want a reset because you want to come down where you are, but in AUTO you would NOT want to do that.
P For the case of AUTO landing, we’d probably want to switch to Reset, if the user does a reposition.
A Aren’t there two types of APIs for the pos. controller? input_vel_* vs input_pos_* could guide the distinction and decision.

  • In any case, if the distinction of the two modes is important, we need it in Plane as well.

R I’ll talk to Leonard then, ask him if the decision can be done based on a rule.
Leonard In AUTO, the position controller doesn’t know what sort of control you are doing. E.g. LOITER and AUTO are both defining an entire kinematic path. But the controller doesn’t know if this refers to a GPS-driven reference or a relative/manual motion.

  • These APIs are helpers to generate the kinematic paths, they’re not mandatorily used everywhere.

A So we have to manually define the reset behaviour for Plane.
L We can bring back the previous default, that’s doable. But for best results, you’d want to decide per-case on the reset behaviour.
A Why is it a good idea to keep using the plain reset in some occasions?
L I’ll have to go and check. But probably because in those cases we also reset the vehicle target to the new position. But LOITER is a good example for using the reset.

  • In other words, if you want to hold the real position, then use reset. If you wan tto hold the estimate, then use slew.

UTC0809

Randy Even if you don’t have an RC, AUTO mode (and others) will still consume (zero) RC input.

  • On RTL it’s even worse, because of repositioning.
    A Weren’t we limiting the acceptable input range to something reasonable? Why weren’t those limits respected?
    P We only use the limits for the switches.
    A Why not use them in general?
  • I think in Plane we handle out-of-range values before they are consumed.

P In Plane that’s part of the failsafe logic, so it wouldn’t have helped in this case.
A I also think we’d have to do these checks per-channel basis, in which case we’d want to invalidate individual channels.
R: So, next steps Do zero-testing. Address per-channel stuff on a separate PR.


UTC0830


UTC0835

Andy
P


UTC0853

Andy High error rates is telling of a failing motor.

  • Shorted windings induce noise back through the telemetry feed.
  • If the noise is proportional to RPM, then this is all the more likely.

P What do we have to do to get this in QuadPlane?
Andy We are waiting on Bob Long’s work on MP.


UTC0900

Matt What if we rejected the mode change if Home isn’t available?
P What about RTL failsafes? We can’t not do it.
A We can also do that, sure.


0907

A I got this bug with my little boat. I ended up outside of the fence and veered off, unable to get back in.

A Also, the return value isn’t made available to scripting or elsewhere.
Andy It’s at get_breach_direction().