Journal / 24 October 2026
The twelve-second takeoff
Two sessions on a second laptop. Orders went out in a tenth of a second, moves still waited twelve. The cause was in my executor, not the voice. Plus a camera stream that died by phone design and a GPS that stayed red.
Written from the logs of 23 and 24 October.
The dead-screen laptop went back in the drawer and the project moved to a second Mac with a working display. One script pulled the project and rebuilt the environment; the first “Hawk, status” took two minutes because it was downloading the speech model, and every one after that took a second.
Where twelve seconds went
The orders themselves were instant: eighteen of them in one session, median 0.15 s from my last word to the command on the radio. But “move right” spoken after a takeoff waited ten to thirteen seconds, three times in a row, and that was the slowness I had felt all along.
The executor queues orders. Takeoff ends when PX4 levels off, and PX4 levels off thirty to forty centimetres short of the target every time. So the executor topped it up with a reposition, and that reposition never closed the last thirty centimetres against GPS altitude noise, and ran its full twelve-second timeout. The move waited behind it. Every single takeoff.
Now the top-up only runs for a shortfall over half a metre, gives up after six seconds, and the moment a new order arrives it yields. On the next session the pre-emption fired four times and every move went out within a quarter of a second of being spoken.
Refusals that cost minutes
Eight refusals for “preflight health not OK” and four for stale telemetry, with one three-minute stretch of saying “take off” at a flight controller that would not arm. The health one is the GPS at this site, flickering after each landing. The refusal now names the failing check, so I know to wait rather than repeat. The stale window grew from two seconds to three, because the radio sends position twice a second and two lost packets tripped it.
The camera
The livestream from the action camera died ten minutes into the first session and never came back, and the recorder wrote the last frame for fifty minutes. The second part was my bug and is fixed: stalled frames are refused, the recording shows a no-signal frame, and Hawk now says “camera stream lost” within two seconds.
The first part took a day to understand. A phone hosting a hotspot cannot join any other Wi-Fi, and the camera app talks to the camera over the camera’s own Wi-Fi. With one phone, the app could not reach the camera while the hotspot was up. And on one session I had a USB cable from the phone to the laptop as well: the phone hands out the same subnet on cable and on Wi-Fi, so the laptop had two interfaces on one network and the camera’s connection stalled after a few seconds. Two phones, no cable, and the stream held through walls at home for three minutes.
The GPS
Red most of the time, at the pitch. The aircraft flew well between the refusals: a full battery of takeoffs, moves and landings, override latch clean. But the site is the site. The next flight is on open ground.