Skip to content

fpvOS 2026.10.beta2

Pre-release
Pre-release

Choose a tag to compare

@gehee gehee released this 02 Oct 16:46
· 57 commits to main since this release
Immutable release. Only release title and notes can be modified.

Second beta. Recording the screen no longer makes the live picture stutter, the video gets to the screen sooner, a broken-up link no longer kills the goggle app, and every Betaflight OSD symbol is drawn correctly.

Before you update

Download fpvos-vrxpro-2026.10.beta2.img.xz, flash it to the SD card with balenaEtcher (no need to unpack it), put the card in the Ascent VRX Pro and power it on.

  • Flashing erases your recordings. Put the card in a computer first and copy them off the drive named dvr.
  • Settings go back to their defaults, the clock's time zone included.
  • An air unit you bound from the fpvOS menu has to be bound again. Units paired under the stock firmware are picked up automatically.
  • The first boot takes a little longer while it sets the recordings space up again.

DVR: recording without the stutter

  • Screen recording no longer costs the live picture. In beta1, SCREEN recording (video and HUD as you see them, and the default) captured the screen through the display controller, and on this goggle every capture held the display up. While recording, the live picture lost 8-18% of its frames at 1080p60 (and gained about 7 ms of latency), and 37% at 1080p100. Recordings are now put together from the video and the HUD by the goggle's 2D graphics engine, without touching the display. Measured on the live feed while recording: no frames lost, about 1 ms of added latency at 1080p60 and 0.7 ms at 1080p100.
  • Recordings look the same as before: 1080p H.264 with the HUD exactly as on screen, in the 720p modes and with Picture Size below 100% too. They run at 60 fps on a 60, 120 or 240 Hz screen (the goggle's own included). On other refresh rates they run at an even fraction of it - 50 fps at 100 Hz, 48 at 144 Hz - where beta1 wrote 60.
  • Starting or stopping a recording no longer freezes the video or the HUD, in FPV and SCREEN mode alike. Stopping a 60 s recording could hold the live picture for about 0.3 s while the file was finished. The gallery thumbnail made after each recording no longer competes with the video either.
  • Simpler menu: DVR Source is FPV (the air unit's stream as sent, full quality, no HUD) or SCREEN (video and HUD). The 30 fps screen option is gone: recording at 60 now costs the live picture nothing, so there is no reason to pick 30.
  • The phone gallery no longer offers a recording that is still starting or being finished, which it could serve, thumbnail or even delete half-written.

The video reaches the screen sooner

  • Each picture goes to the decoder as soon as its last part arrives, instead of waiting for the next picture to start: about 5 ms less on the goggle's own part of the delay (from a picture arriving to it being on screen, 33.0 -> 28.0 ms average with 100 fps video).
  • Pictures are sent to the screen just before its refresh instead of as soon as they are decoded. With 100 fps video on a 100 Hz screen, every picture used to wait a whole extra refresh, so the gain there should be bigger.

Good to know: the HUD's latency number now reads higher than in beta1, though the video is faster. beta1's "LATENCY (gnd)" only counted the goggle's part, from a picture arriving to it being on screen. beta2's "LATENCY (to vsync)" runs from the camera capturing the picture to the screen refresh it goes out on, so it now includes the air unit and the radio link (about 36 ms with the stock air unit on a 120 Hz screen, more with a higher video bitrate). It still leaves out your screen's own delay.

Stability

  • Fixed the goggle app crashing when the video link broke up or the air unit restarted, which lost the video until the goggle was power-cycled.
  • With intra refresh switched on, the air unit sometimes mixes pictures from seconds earlier into the live video, which made the picture break up and stall: the goggle now drops them. Damaged video headers are filtered out too, and no longer crash the goggle app.
  • A long stretch of broken video no longer makes the goggle app use more and more memory.

OSD

  • Every Betaflight OSD symbol is now drawn correctly. In beta1 about 100 of them showed as a box, a wrong letter or a made-up shape: the battery icon read full on an empty pack (and empty on a full one), the home arrow showed as a letter, and the RSSI, throttle, home, GPS satellite, compass and other icons, the units (km/h, mph, m/s, ft...) and the Betaflight logo were missing or wrong.

Other

  • Removed from the kestrel-gnd source an OSD font by SNEAKY_FPV that had been committed without its licence (gehee/kestrel-gnd#1), and a second bitmap font of unknown origin. Neither was ever used or put on the card: the OSD draws its own symbols.
  • For developers: a per-frame latency trace (echo 10 > /tmp/ltrace.req), video stream replay (kestrel-gnd --debug-replay FILE), a stream fuzzer (tools/ar8030_fuzz.py), and crash reports that name the thread and the code that faulted.

SHA-256 0b4c2c542f8c8c14a95dbb23dfcf35cf66cba43682f7f015a77d81caf00ce894 fpvos-vrxpro-2026.10.beta2.img.xz

All changes: fpvOS · kestrel-gnd