Skip to content

Flights 007–031 — Twenty-Five Flight Batch

Setup

Twenty-five flights recorded between the post-rebuild shakedown and the rates revision. Extracted as a batch of 31 logs, of which 001–006 belong to the earlier session.

Total armed time across all 31 is about 7 minutes. Most entries are very short — eight are under two seconds, which are arm checks rather than flights. Eight logs are long enough to analyse.

Which tune each flight actually flew

The blackbox header records the rates in force at the moment logging started, so there is no need to guess which configuration a flight used:

head -c 4000 btfl_013.bbl | strings | grep -oP 'rc_expo:\K[0-9,]+'
Logsrc_exporatesConfiguration
001–00634,34,2764,64,64Original, before any changes
007–03153,40,3055,55,40First revision — the aggressive one
35,35,2555,55,40Current tune — no flights yet

So this entire batch is the evidence behind “too aggressive”. Roll expo at 0.53 against pitch at 0.40 meant the two axes did not respond alike to the same stick movement, which is the complaint that led to matching them at 0.35.

It also means the current tune has no flight data at all. This batch is the before-half of a clean comparison.

The flash filled mid-batch

flash_info reported usedSize equal to totalSize — 16,777,216 of 16,777,216 bytes. The last log written was 031.

Betaflight’s blackbox does not wrap. Once full it stops recording, silently, and every subsequent arm logs nothing. Any flights after 031 produced no data and are unrecoverable.

This is precisely the failure the live log-status element was added to catch — it shows > when the flash is full, turning an invisible failure into a visible one.

Battery — the finding that matters

Five of the eight substantial flights went below 3.00 V, bottoming at 2.83 V.

FlightDurationMinEndGapReading
btfl_03135.9 s3.17 V3.23 V0.06Flat, but at a safer voltage
btfl_01736.4 s2.91 V2.99 V0.08Genuinely flat
btfl_01536.0 s3.01 V3.12 V0.11Nearly flat
btfl_01339.6 s2.96 V3.18 V0.22Mixed
btfl_02931.8 s2.99 V3.34 V0.35Mostly sag
btfl_00759.1 s3.15 V3.50 V0.35Healthy
btfl_03058.8 s2.83 V3.21 V0.38Mostly sag, recovered
btfl_02820.2 s2.86 V3.29 V0.43Mostly sag, landed with charge left

The gap between minimum and end voltage is what separates two very different situations, and it is why both are now on the post-flight stats screen:

  • A large gap means the pack sagged hard under throttle and recovered once unloaded. Unpleasant for the cell but not depletion.
  • A small gap means the low reading was the pack’s actual state. 017, 015 and 031 are the genuinely damaging ones.

Note that the lowest single reading (2.83 V on btfl_030) is not the worst flight — it recovered to 3.21 V. Flight 017, which never dipped as low, ended 0.08 V above its minimum and is the one that actually ran the pack down. Judging by minimum voltage alone gets this backwards.

This is a consistent pattern across a whole session rather than a one-off, which is what prompted fixing the warning durations — the alert was firing on every throttle punch and had become background noise.

Airframe — healthy

Motor eRPM-per-command spread ranged 5.3 % to 10.0 %.

FlightMotor spreadGyro SD (roll/pitch/yaw)
btfl_0075.3 %21 / 13 / 31
btfl_0285.8 %101 / 75 / 42
btfl_0156.3 %39 / 24 / 47
btfl_0296.9 %12 / 10 / 31
btfl_0177.5 %69 / 71 / 66
btfl_0308.1 %28 / 50 / 60
btfl_0319.1 %13 / 9 / 36
btfl_01310.0 %101 / 59 / 57

The higher spreads track flying intensity rather than damage — btfl_013 has both the widest spread and the highest roll gyro SD at 101 °/s. Hard manoeuvring loads the motors unevenly by definition, so spread is only meaningful compared against flights of similar aggression. A failing motor would show as a persistent outlier on one motor across all flights, gentle ones included, which is not what appears here.

No motor saturation anywhere. Peak throttle across the batch was 1585 of 2000 — about 66 % of stick — so there was headroom throughout.

Open

  • No data yet on the current tune. The next flights are the after-half of the comparison.
  • f_yaw was briefly driven to 663 by a misconfigured adjustment during the OSD profile work and restored to its default of 120. Worth confirming yaw feels normal in the air; see the adjrange trap.

Method

Decoded with blackbox_decode. Voltage figures are the minimum sample and the mean of the final 0.5 s; motor spread is the range of per-motor mean eRPM ÷ mean motor command, taken over samples above idle throttle only. At blackbox_sample_rate = 1/4 the effective rate is ~1 kHz, so nothing here rests on frequency content above ~500 Hz.