Journal / 4 November 2026

Seventeen logs and a metre and a half

Turns worked on some flights and were ignored on others, with no pattern I could see from the ground. The pattern was in the flight controller's logs, and it was seven centimetres wide.

Written from the flight logs of 26 October to 3 November.

Three sessions in a week at the same site, with the camera on the aircraft and the session recorder running. The voice side is now boring in the good way: orders leave the laptop a tenth of a second after I stop speaking, the read-back is instant, the nose holds within a few degrees across a sideways move. The camera questions feel live, because a background process keeps a two-sentence answer ready whenever the view changes, so “what do you see” is answered before I finish the sentence.

One thing stayed broken, and it was the thing I most wanted for the video. “Turn right ninety.” Acknowledged every time, read back every time, and then the aircraft either turned beautifully or sat there facing the same way with no complaint from anyone.

Guessing

I had three theories in three days, and each one fit the flight I was looking at.

The first was that PX4 drops a reposition that only changes heading, which is a known behaviour, so I made every turn carry a small forward nudge. Some turns worked after that. Some did not. The second was stale telemetry: the executor was computing the new heading from a compass reading that lagged mid-manoeuvre, so a “turn around” ordered during a turn produced a wrong target. True, and fixed by tracking the heading the software last commanded instead of the one the aircraft reported, and still some turns did not happen. The third was that I was ordering turns too soon after take-off.

That one was closest, and still wrong in the way that matters.

Reading

I stopped guessing and pulled every log since 26 October. Seventeen flights, sixteen turn orders. For each, I wrote down the maximum height the aircraft had reached before the turn and whether the heading moved.

Every turn that worked was in a flight that had climbed a metre and a half above where it lifted off. Every turn that failed was in a flight that peaked between 1.36 and 1.49 m. No exceptions.

The flight controller’s estimator does not trust its compass heading at the start of a flight. It waits for an in-flight alignment, and that alignment only runs once the aircraft is a metre and a half above the ground it took off from. Until then, the flight task that handles my repositions keeps the position and discards the heading. My default take-off was 1.5 m, and PX4 levels off a little short. The aircraft was hovering at 1.43 m, seven centimetres under the line, every time.

The flights that turned were the ones where I had said “go up” first, or where a take-off happened to overshoot. The flights that did not were the clean ones. The better I flew, the worse it got.

There was a second trap underneath. The height the executor had been reading carries an offset from the ground before lift-off, because the barometer drifts while the aircraft sits waiting, and across the week that offset ranged from minus 1.2 m to plus 1.6 m. The executor now measures climb from the moment the aircraft leaves the ground, not from a number that was wrong before it did.

The fix I did not make

The obvious fix was to have the software climb to the line before turning. I wrote it, and then deleted it. An order to turn must never move the aircraft on an axis I did not name. If I say “turn right” a metre from the ground, the aircraft is not allowed to decide it needs to be higher first.

So the default take-off is now 2 m, which climbs through the line during the take-off itself, and a turn ordered on a flight that has never crossed it is refused out loud, with the reason, and the suggestion to say “go up”. The pilot makes the climb. The software never does.

Next flight

“Take off.” “Turn right ninety.” The heading should move within about three seconds. The log will show the exact moment the estimator decided it could trust its compass, and whether my turn arrived after it. If it does, the flagship video gets its turns. If it does not, the logs will say why, which is more than I could say a week ago.