One open, vendor-neutral firmware stack for Artosyn "ArtLynk"-based FPV devices - so hardware from any brand can interoperate.
MissingLynk is an effort to open up FPV devices built on the Artosyn "ArtLynk" platform - the Proxima-9311 application SoC paired with the AR8030 digital-RF link chip (the SoC does the video/compute, the external SDIO-attached AR8030 does the radio). The platform spans both ends of the link and many brands: receivers (goggles with built-in displays, receiver boxes with HDMI out) and transmitters (air units / VTXs with their various cameras).
DISCLAIMER: This is not ready for prime time yet. There will be a configurator at some point and an easy way to get things going. For now getting things flashed is a manual process and you will need a Linux machine to get everything built and running.
The core idea: because so many brands ship the same Proxima-9311 + AR8030 silicon under different closed firmware, one open stack can make them all speak to each other - a goggle from one vendor flying an air unit from another, without the artificial per-brand incompatibilities the closed firmware imposes. The path is to progressively replace the closed vendor stack with an open, reproducible one - open kernel, open rootfs, open video pipeline, open on-screen menu, and an open RF link daemon - all validated on real hardware and fully revertible. A practical payoff of that openness: pull the live flight feed over the network while the pilot still sees it.
The work started on a BetaFPV VR04 HD goggle (firmware 1.0.44.rel, product P1_GND_VR04), which is the reference device most things are proven on, but the Proxima-9311 + AR8030 combo and its BSP are shared across the ArtLynk-based device family, so much of what's here should carry over. It grew from a single ssh probe into a full reverse-engineering and enablement project.
The headline result: a completely open goggle stack, running on real hardware. An open mainline kernel, an open Alpine rootfs, and open userspace boot the goggle end-to-end: the AR8030 RF link is brought up and associated by an open link daemon, the air unit streams H.265 into an open GStreamer pipeline that decodes both video tiles to the panel at 1080p60 zero-copy, with an on-screen OSD, DVR recording to the SD card, session logging, and a status LED. The only closed pieces left are two device-loaded firmware blobs: the codec firmware and the AR8030 baseband image. Everything runs from slot B and is fully revertible - stock stays untouched on slot A.
For a zero-reflash quick path there is also the stock-firmware overlay: rtsp://<goggle>:554/venc8/stream delivers live H.265 / 1080p / ~60 fps with the goggle display unaffected, from two one-instruction binary patches shipped behind a safe boot hook that never touches the read-only rootfs. The remaining frontier is an Android app that livestreams a flying session.
The project is split into focused component repos plus a wrapper repo that ties them together as git submodules. A tag on the wrapper pins exact versions of every component, so a single release is fully reproducible.
| Repo | What it is |
|---|---|
| MissingLynk | The wrapper. Cross-platform Python tooling, host setup, patch tooling, cross-cutting docs, and the other repos pinned as submodules for reproducible releases. Start here - clone with --recurse-submodules. |
| ml-kernel | Reproducible mainline kernel build for the goggle, out-of-tree Artosyn modules, and the BSP docs. |
| ml-userspace | The open on-device programs in one repo: the GStreamer video pipeline (decode-to-display hardware-validated at 1080p60 zero-copy, with SD-card DVR recording), the RF link daemon that drives the AR8030 air link, the on-screen menu / OSD, the LED and session-logging daemons, and the shared wire contract that ties them together. |
| ml-rootfs | The open slot-B Alpine rootfs: build pipeline, system skeleton, and the boot services that bring up the display, RF link, and video pipeline. The swappable distro layer - the userspace programs don't depend on it. |
| ml-android | The Android app that tethers to the goggle over USB and restreams the flight feed. |
| ml-datasheets | Hardware reference for the platform - unofficial datasheets for the Proxima-9311 SoC, the AR8030 RF link, and the carrier board, compiled from on-device introspection. |
- Interested in the open firmware stack? Start at MissingLynk - the wrapper README documents the build order (native -> userspace binaries -> rootfs, kernel on its own), and each component repo carries its own reference docs.
- Curious how it was reverse-engineered? The findings, exact addresses, patches, and hardware notes live in the docs across these repos.
This is an independent, unofficial project, not affiliated with, authorized, sponsored, or endorsed by BetaFPV, Artosyn, KAP, or any related company. Product and company names are trademarks of their respective owners, used nominatively only to identify the hardware this project interoperates with.
The work is reverse engineering for interoperability and repair on hardware the author owns, and is fully reversible. No proprietary firmware or vendor binaries are distributed - the repos carry only original documentation, tooling, and patch definitions that you apply to a dump made from your own device. Everything is provided as-is, with no warranty; rooting or patching your goggle is at your own risk.
Each repo carries its own license; original work is open and commercial use is welcome.
MissingLynk is the result of countless late nights of reverse engineering, bricked-and-recovered hardware, and serial-console archaeology. It's all free and open - if it saved you time or got video flowing off your goggles, you can buy me a coffee. It genuinely helps keep work like this going.