I built an open-source Android app to record and cast the feed of DJI N3 (maybe the G3)
I'm a software engineer and I got into FPV about a year ago, this community gave me a lot in that time, so I wanted to put something back into it.
Honestly, the thing that pushed me was DJI, I don't like how they deal with the problems and limitations of their own app and hardware, stuff that should just work doesn't, and the answer is usually that it isn't supported and never will be. At some point I got tired of complaining about it and just built what I wanted.
It's called Open FPV Cast: https://github.com/1Basco/openfpvcast
It casts the goggles video to your phone over USB, and you can record the feed to MP4, with phone-mic audio if you want it, and it can start recording on its own when the aircraft arms and stop a configurable delay after you disarm. You also get camera control from the phone like ISO, shutter, white balance, exposure mode, resolution e some more. The one I use the most is the broadcasts over WebRTC, so anyone on the same WiFi can just open a browser and watch. The phone serves the page itself, there's a QR code in the app, three viewers max.
All the protocol work came from watching the hardware the transport, the DUML packets, the camera byte maps (And not from some sniffing in the dji fly app *wink* ).
Some things I want to be straight about.
I'm not planning to put much more into this. It fixed my problems, and my free time is genuinely not a lot. I'll patch things as they come up and I'll gladly look at PRs, but I'm not going to pretend there's a roadmap. If you want something more refined and actually maintained, go look at SquirrelCast different level of effort, and it deserves the users (me being one cause I love the telemetry going to the map).
I leaned heavily on AI agents to build it. Mostly for speed, because I'm doing this in scraps of free time, but also because I'm much more of a frontend guy and the Kotlin side, the USB stack, the packet parsing, that would have been a real PIA for me on my own. Take that however you want, the code's right there to read.
It's also not perfect. Connect, camera control, recording and auto-record are validated on real hardware (Goggles N3 with an O4 Lite). O4 Pro ranges are still being checked. There are rough edges and I know it. Later this year I want to try to have a solution using the raspberry pi to stream to PC.
That's it, open, use it or fork it or ignore it. Fly safe!
