Skip to content

Drone Compatibility & Test Procedures

Angel Ayala edited this page Sep 17, 2026 · 8 revisions

Test Procedures

This page provides step-by-step test protocols for verifying each example use case. By running these tests with different drone models and Android devices, contributors can document which hardware configurations are compatible with WenuLink.

After completing a test, please report your results using the compatibility report issue template.


Compatibility Matrix

The table below summarizes which drone models have been tested with WenuLink and the status of each use case. This matrix is updated based on community-submitted compatibility reports.

Drone Model App Version Flight Plan Video Capture Photogrammetry Reported By
Matrice Series
Matrice 350 RTK Awaiting Test
Matrice 300 RTK Awaiting Test
Matrice 200 V2, 210 V2, 210 RTK V2 Awaiting Test
Matrice 200, 210, 210 RTK Awaiting Test
Matrice 600, 600 Pro (incl. RTK) Awaiting Test
Matrice 100 (incl. X3, X5, X5R) Awaiting Test
Mavic Series
DJI Mavic 2 Pro f18a6f8 ⚠️ Partial TimonSchreiber #20
Mavic 2 Zoom Awaiting Test
Mavic 2 Enterprise (Zoom/Dual/Advanced) Awaiting Test
Mavic Pro Awaiting Test
Mavic Air 2 Awaiting Test
DJI Air 2S Awaiting Test
Mavic Air Awaiting Test
Mini Series
DJI Mini 2 Awaiting Test
DJI Mini SE Awaiting Test
Mavic Mini Awaiting Test
Phantom Series
Phantom 4 RTK / P4 Multispectral Awaiting Test
Phantom 4 Pro V2.0 Awaiting Test
Phantom 4, 4 Pro, 4 Advanced v0.1.1-alpha ⚠️ Partial ✅ Pass Angel Ayala Awaiting Report
Phantom 3 (Standard, Adv, 4K, Prof) Awaiting Test
Inspire Series
Inspire 2 Awaiting Test
Inspire 1, 1 Pro, 1 RAW Awaiting Test
Spark
Spark Awaiting Test
Legend: ✅ Pass · ⚠️ Partial · ❌ Fail · — Not tested

Models with "Awaiting Test" should be theoretically supported because DJI MSDK v4 supports these models. But to be reliable testing drone models with WenuLink is crucial.

Help us fill this matrix! Run the tests below with your hardware and submit a compatibility report.


1. Flight Plan Test

Objective

Verify that a multi-waypoint mission created in a MAVLink GCS can be uploaded to a DJI drone through WenuLink and executed autonomously.

Prerequisites

Requirement Details
DJI drone Powered on. For indoor/bench tests, remove all propellers.
Remote controller Connected to the Android device via USB
Android device WenuLink installed, MAVLink service enabled
GCS software QGroundControl or Mission Planner
Network Android device and GCS on the same local network
MAVLink endpoint Configured in WenuLink
Flight area Outdoor area with GPS lock. (Limited functionality in Bench Test)
💡 Bench Testing & Debugging Tips (Important)
  • Ignore Calibration Prompts: When connecting to QGroundControl, you may see prompts for Accelerometer or Barometer calibration. Do not attempt these. DJI's proprietary flight controller does not support MAVLink-based sensor calibration.
  • GPS Dependency: Functions like setting a "Home Position" or viewing position telemetry will not work indoors without a GPS lock.
  • Capturing Logs (Wireless ADB): To capture logcat data while the Remote Controller is plugged into the phone's USB port:
    1. Connect the phone to a PC via USB first.
    2. Enable Wireless ADB via terminal: adb tcpip 5555.
    3. Disconnect USB and find your phone's IP address.
    4. Connect wirelessly: adb connect <PHONE_IP>:5555.
    5. You can now plug the RC into the phone and still run adb logcat from your PC.
  • LogCat filter: For outdoor diagnostic sessions, set the Android Studio logcat filter to package:org.WenuLink only (no level filter), to get all the useful output.

Steps

  1. Connect the drone

    • Power on the DJI drone and remote controller.
    • Connect the remote controller to the Android device via USB.
    • Launch WenuLink and wait for SDK status: Registered.
    • Tap Start Drone Service once the button is enabled.
  2. Verify GCS connection

    • Open QGroundControl on your PC.
    • Confirm that QGroundControl detects the vehicle (heartbeat received).
    • Verify telemetry data (GPS position, altitude, battery) is displayed correctly.
  3. Create a waypoint mission

    • In QGroundControl, switch to the Plan view.
    • Create a simple mission with:
      • 1 Takeoff command
      • 3 Waypoints at different GPS coordinates (keep distances short, e.g. 10–30 m apart)
      • Optionally add a Delay (e.g. 5 s) at one waypoint
      • Optionally add a Yaw change at another waypoint
      • 1 Return to Launch (RTL) at the end
    • Upload the mission to the vehicle.
  4. Arm and start the mission

    • In QGroundControl, arm the vehicle.
    • Start the mission.
    • Observe the drone taking off and navigating to each waypoint.
  5. Monitor execution

    • Confirm that QGroundControl shows mission progress (current waypoint index updates).
    • If a delay was set, verify the drone hovers at that waypoint for the expected duration.
    • If a yaw change was set, verify the drone rotates to the specified heading.
    • After the last waypoint, confirm the drone returns to the launch point (if RTL was set).
  6. Landing

    • Confirm the drone lands safely (automatically or via manual command).

Expected Results

Check Expected Outcome
Mission upload QGroundControl shows "Mission Accepted"
Takeoff Drone takes off to the altitude defined in the first waypoint
Waypoint navigation Drone visits all 3 waypoints in order
Delay action Drone hovers for the specified number of seconds
Yaw action Drone rotates to the specified heading at the waypoint
RTL Drone returns to the home point and lands
Telemetry QGroundControl displays real-time position updates throughout

2. Video Capture Test

Objective

Verify that the live camera feed from a DJI drone can be streamed via WebRTC through WenuLink to a remote viewer in a web browser.

Prerequisites

Requirement Details
DJI drone with camera Powered on
Remote controller Connected to the Android device via USB
Android device WenuLink installed, WebRTC service enabled
Signaling server webrtc-client-server running on the local network
Web browser Chrome, Firefox, or any WebRTC-capable browser on a PC in the same network
Network All devices (Android, signaling server, browser) on the same local network
Signaling server address Configured in WenuLink (see Getting Started)

Steps

  1. Start the signaling server

    • On your PC, run the signaling server:
      cd webrtc-client-server
      npm install
      npm start
      
    • Note the server address (e.g. ws://192.168.1.100:8090).
  2. Connect the drone

    • Power on the DJI drone and remote controller.
    • Connect the remote controller to the Android device via USB.
    • Launch WenuLink and wait for SDK status: Registered.
    • Tap Start Drone Service.
  3. Verify WebRTC service

    • Confirm the WenuLink notification shows the camera name (e.g. WebRTC streaming: Mavic 2 Camera).
    • Note the Socket ID displayed in the WenuLink app.
  4. Connect the viewer

    • Open your browser at http://<SIGNALING_SERVER_IP>:3000.
    • Paste the Socket ID from the WenuLink app.
    • Click Get Streaming.
  5. Verify the video feed

    • Confirm that live video from the drone camera appears in the browser.
    • Move the drone camera (or the drone itself) and verify the video updates in real time.
    • Check for visual artifacts, latency, or frame drops.
  6. Test camera toggle

    • If supported, toggle the camera stream off and on in WenuLink.
    • Confirm the video feed stops and resumes correctly in the browser.

Expected Results

Check Expected Outcome
Signaling connection WenuLink connects to the signaling server (no errors in app log)
Video stream starts Live video appears in the browser within a few seconds
Resolution Video resolution matches the camera's configured output
Frame rate Video plays smoothly without major stuttering
Latency Delay between real-world movement and video display is acceptable (< 2 s)
Camera toggle Stream stops and resumes correctly

3. Photogrammetry Test

Objective

Verify that a survey-style mission with photo capture commands at each waypoint can be uploaded and executed through WenuLink, producing geotagged images suitable for photogrammetric processing.

Prerequisites

Requirement Details
DJI drone with camera and SD card Powered on, GPS lock acquired, SD card inserted
Remote controller Connected to the Android device via USB
Android device WenuLink installed, MAVLink service enabled
GCS software QGroundControl with Survey tool (or Mission Planner)
Network Android device and GCS on the same local network
MAVLink endpoint Configured in WenuLink (see Getting Started)
Flight area Open outdoor area with GPS coverage and identifiable ground features

Steps

  1. Prepare the drone

    • Insert a formatted SD card into the drone.
    • Note the number of existing photos on the SD card (should be 0 or known).
    • Power on the DJI drone and remote controller.
    • Connect the remote controller to the Android device via USB.
    • Launch WenuLink, wait for registration, and tap Start Drone Service.
  2. Verify GCS connection

    • Open QGroundControl and confirm vehicle detection.
  3. Create a survey mission

    • In QGroundControl, switch to the Plan view.
    • Use the Survey tool to define a rectangular area.
    • Configure the survey parameters:
      • Flight altitude (e.g. 30 m)
      • Photo interval: trigger at each waypoint (camera trigger distance or IMAGE_START_CAPTURE at each waypoint)
      • Overlap: 70–80 % frontal, 60–70 % side (typical for photogrammetry)
    • Verify that the generated mission includes IMAGE_START_CAPTURE commands.
    • Upload the mission to the vehicle.
  4. Execute the survey

    • Arm the vehicle and start the mission.
    • Monitor the drone as it flies the grid pattern.
    • In QGroundControl, observe the waypoint progress and confirm photo triggers are sent.
  5. Verify photo capture

    • After the mission completes and the drone lands, remove the SD card.
    • Count the photos on the SD card and compare with the expected number (one per waypoint with a photo trigger).
    • Verify that photos have EXIF GPS tags.
  6. Optional: Process the images

    • Load the captured images into photogrammetry software (e.g. OpenDroneMap, Agisoft Metashape).
    • Attempt to generate an orthomosaic or 3D point cloud.
    • Evaluate the result quality.

Expected Results

Check Expected Outcome
Mission upload QGroundControl shows "Mission Accepted" with survey waypoints
Grid flight Drone follows the survey grid pattern visiting all waypoints
Photo triggers A photo is captured at each waypoint where IMAGE_START_CAPTURE was set
Photo count Number of photos on SD card matches the number of photo trigger waypoints
GPS tags Each photo contains EXIF GPS coordinates
Image quality Photos are sharp and correctly exposed
Photogrammetry output (Optional) Software can align images and produce a 3D model or orthomosaic

Known Limitations

  • Video/photo capture to the Android device storage is not yet implemented. Photos are saved to the drone's SD card only.
  • The IMAGE_START_CAPTURE command is translated to a DJI TakePhoto waypoint action. Camera settings (exposure, white balance) must be configured on the drone or via DJI Go before the flight.
  • End-to-end photogrammetry workflows are still being validated. Please report your results to help improve this use case.

Report Your Results

Tested WenuLink with your drone? Help the community by submitting a compatibility report:

📄 Submit a Compatibility Report

The form covers all three use cases in a single submission — just check the ones you tested and provide your results. You can also attach flight logs for further analysis.

All submitted reports are tracked under the compatibility label and used to update the Compatibility Matrix at the top of this page.