This application is dedicated to connecting the Nova X ORE (Vision Drone) and the NovaCam (camera module).
It provides drone takeoff and landing functions, joystick control, and real-time video transmission from the drone.
VPN Usage Guide (VpnService)
This app uses Android's VpnService.
This is an essential component for connecting to openIPC-based drones and drones using wfb-ng (wireless frame bridge).
🔒 Security and Privacy
VpnService does not transmit any information to third parties.
All data transmitted through VPNService is encrypted.
VPN is used only as a local tunnel for drone communications, not for external network access.
Why VPNService is Needed
wfb-ng (https://github.com/svpcom/wfb-ng) transmits data using raw 802.11 frames, not regular Wi-Fi network packets.
However, since Android applications cannot directly access raw 802.11 frames,
a VPN tunnel (TUN interface) is required so that apps can communicate via IP/UDP sockets as if they were connected to a regular network.
Using a VPN tunnel, Android apps can send and receive IP/UDP packets as if they were connected to a regular network, without having to directly handle raw Wi-Fi frames.
Full data transfer flow (e.g., port 5600)
Android → Drone
Android app sends UDP packet → 10.5.0.10:5600
VpnService (TUN interface) captures IP packet
wfb-ng forwarder (Java) encapsulates local UDP → 127.0.0.1:8001
wfb-ng TX (native C++) FEC encodes packet
fragments packet
generates raw 802.11 frames
transmits wirelessly via USB Wi-Fi dongle (monitor mode)
Drone → Android
Receives raw 802.11 frames from the drone-side Wi-Fi dongle (monitor mode)
wfb-ng RX (native C++) reassembles frames
FEC decode
restores IP packet
Forwards IP packet to OpenIPC's TUN interface (wfb_tun)
Via system routing → 127.0.0.1:5600 Processing the video stream on the board consumes data.
Key Summary
Because Android apps cannot directly process raw Wi-Fi frames, a VpnService-based TUN interface is required.
The TUN interface intercepts IP/UDP packets sent by the app and passes them to the wfb-ng transport pipeline.
Wfb-ng converts these into raw 802.11 frames for wireless transmission, and then reconverts them back into IP packets on the drone side.
This allows Android apps to send and receive video and telemetry via UDP, just like on a regular network.