On this page

    OpenIPC camera over USB

    OpenIPC FPV cameras (SigmaStar and Goke sensors) are tiny, light, and cheap. With a custom firmware build they present themselves to the Pi as a USB Ethernet (RNDIS) gadget and serve RTSP over that single USB cable, with no Ethernet port, no switch, and no transcoding on the Pi.

    Status: Tested and supported. Requires the custom USB-gadget firmware below

    Custom firmware required. Stock OpenIPC streams over Ethernet, not USB. This setup needs a firmware build with the USB RNDIS gadget enabled. If your camera only has an Ethernet pad, use the standard RTSP-over-Ethernet flow instead.

    Why USB

    • One cable: power and video share the USB link; no separate Ethernet run on the airframe
    • Tiny and light. OpenIPC FPV cameras are a few grams
    • Native RTSP: the camera encodes H.264/H.265 itself, so the Pi never transcodes

    How it works

    The firmware's gadget service builds a USB composite device on boot via configfs and brings up a usb0 interface. The camera takes the address 192.168.7.1 and expects the host (your Pi) at 192.168.7.2. The on-camera streamer publishes RTSP on port 554 at /stream0 (primary) and /stream1 (secondary). Aircast pulls that URL and re-publishes it as WebRTC, HLS, and RTSP.

    Connect it to Aircast

    1

    Flash the USB-gadget firmware

    Flash the OpenIPC build that includes the USB Ethernet gadget. On boot it runs the gadget service (/etc/init.d/S39usbgadget), which creates the RNDIS device and assigns the camera 192.168.7.1.

    2

    Plug the camera into the Pi's USB port

    Connect the camera to the Raspberry Pi over USB. It enumerates as a USB Ethernet device and the Pi gets a new network port, usb0. Nothing to type on the Pi: the next step gives that port its address.

    3

    Add the camera in the Device tab

    In the app the drone serves, open Settings → Device → Cameras (or the Camera step of the setup wizard). Open I know my camera's address and paste the camera's RTSP URL as the Camera RTSP URL:

    rtsp://192.168.7.1:554/stream0

    Use /stream1 for the lower-resolution secondary stream. For the port, pick usb0, and under Port address & transport check that This device's IP on the camera subnet is 192.168.7.2/24, the host address the camera expects. Set up & verify then checks video is really arriving.

    Success: the camera's preview on the Cameras page shows the OpenIPC feed.

    The app the drone serves and the browser play video over WebRTC. Set the camera's primary stream to H.264, since many browsers will not decode H.265 over WebRTC.

    SettingValueWhy
    Codec (stream0)H.264Universal WebRTC support; H.265 often shows a black frame
    Resolution1080p or 720pMatch the sensor; 720p saves bandwidth on weak signal
    Bitrate2-4 MbpsFits a typical LTE uplink
    Rate controlCBRPredictable bandwidth over cellular

    What's verified

    • Camera enumerates as a USB Ethernet (RNDIS) gadget at 192.168.7.1
    • Aircast pulls the native RTSP stream from rtsp://192.168.7.1:554/stream0, no transcoding
    • H.264 plays in the browser over WebRTC
    • Single USB cable carries both camera power and video to the Pi

    Flash your card in about 5 minutes

    The Aircast Flasher downloads the image, sets Wi-Fi and hostname, and verifies the card.

    Download the Flasher