Litchi Waypoint Mission to DJI Fly Waypoint Mission Instructions


This web application can be used to convert a Litchi mission CSV file into a DJI Fly (all models) of DJI Pilot 2 (all models) waypoint KMZ file. The instructions below were created after reading how others have uploaded missions to DJI Fly for their Mavic 3 / Air 3 / Mini 4 Pro. If you see any details that are not correct or incomplete, please let me know so that I can refine these instructions.

  1. Create a mission using Litchi's Mission Hub
    1. A mission can be created like any other Litchi mission then exported as a CSV file.
    2. Note that some parameters (Mission speed, Path mode, Finish action, et.) are not stored in the CSV file. As a result, they must be manually set here or in the DJI Fly app.
  2. In page one of the Litchi to Mavic 3 Mission page:
    1. Set the desired "Signal Lost Action" to either continue the mission or to execute the normal "Signal Lost" action.
    2. Set the mission flight speed in meters per second.
    3. Use the file chooser to upload your Litchi CSV file.
    4. Generate the mission and review the resulting parameters.
  3. In page two of Litchi to Mavic 3 Mission:
    1. Review the displayed parameters and calculations.
    2. Download the KMZ file to your computer.
  4. Upload this new mission KMZ file to DJI Fly: (More details: Waypoints how to Back-Up Export & Import)
    1. Connect your flying device (iPhone, iPad, controller) to your computer via a USB cable, WiFi, or Bluetooth.
      • Note: Existing waypoint KMZ files are stored in:
        • Files/DJI Fly/wayline_mission (IOS)
        • Android/data/dji.go.v5/files/waypoint (Android)
    2. An existing Mavic 3 mission will be needed. This mission will be overwritten. If transferring many missions, create one (in DJI Fly) specifically for transfer purposes and use it each time you transfer a misstion.
      • Note: Mavic 3 mission folders and KMZ files use a GUID for both the folder name and as the KMZ file name. GUIDs look something like this: 9C93523B-E002-4378-8732-0B016C3F82A3.kmz.
      • Note: Your waypoint folder structure may look like this:
        • waypoint
          • 9C93523B-E002-4378-8732-0B016C3F82A3 <-- a mission folder
            • 9C93523B-E002-4378-8732-0B016C3F82A3.kmz <-- a waypoint mission KMZ file
    3. Select a mission folder (a folder named as a GUID as shown above) that can be overwritten.
      • Hint: Use the creation date to identify the mission to be overwritten.
    4. Rename the KMZ file created with this web application so that it matches the name of the mission file on your device that you will be replacing.
    5. Upload the new KMZ file to this folder which will replace the one that is already there.
      • Note: On IOS devices (iPhone, iPad, MacBook), Airdrop can be used to copy and transfer files.
      • Back-up existing waypoint folder prior to copy and transfer.
      • Do not delete any files.
  5. In DJI Fly:
    1. Start DJI Fly and enter the Waypoints menu.
    2. Open the newly imported mission.
      • Note: When initially opened, your current location will be displayed instead of the mission location.
    3. Navigate to the mission location on the map and then choose "Save As" to create a new mission. This new mission will have the corrrect preview image.
    4. Optional: Delete the imported mission. You may also choose to retain it for future imports.
    5. Examine all waypoints to be sure they are configured as expected.
    6. Adjust the Waypoint mission parameters (such as speed) as desired.
  6. Go fly!
DJI Fly Waypoint Mission Created From Litchi

This web application can be used to convert a Litchi mission CSV file into a DJI Fly (all models) or DJI Pilot 2 (all models) waypoint KMZ file.

Once created, the KMZ file must be uploaded to the "waypoint" folder on the device running DJI Fly. If using DJI Pilot 2, the import function can be used to upload the KMZ file. Detailed instructions are available from the "Instructions" button above.

Things you should know about this application:

  • DJI Fly was not designed for mission uploads. Therefore, some extra steps must be performed to upload missions. This process may be too complicated for the casual user.
  • From what I have seen, all DJI Fly missions store data in metric units. Therefore, if a Litchi mission is uploaded with imperial units, the data will be converted to metric units in the DJI Fly KMZ output.
  • Differences between Litchi Missions and DJI Fly Missions:
    • It is important to understand that the resulting DJI Fly waypoint mission will not follow the exact path of the Litchi waypoint mission. This is because Litchi and DJI use different methods to generate a curved mission flight path. The differences between Litchi and DJI flight paths are described here.
    • While the DJI Fly WayPoint Markup Language (WPML) does support straight-line missions, it appears that the DJI Fly implementation for straight-line missions is incomplete. A DJI drone can fly a straight-line mission but DJI Fly will not display the straight-line mission properly.
    • DJI Fly's implementation of waypoint actions is very limited. Like Litchi, the WPML language does support multiple actions at one waypoint and allows them to be specified sequentially. However, when one waypoint has multiple actions (like are used in my Panorama Mission), DJI Fly continues to execute those actions sequentially as the drone flies away from that waypoint.
    • Litchi has two ways to define the heading and gimbal pitch angles at a waypoint:
      1. Heading and Gimbal Pitch (Focus POI or Interpolate) settings
      2. Rotate aircraft and Tilt Camera waypoint actions

      DJI Fly has one way to define heading or gimbal pitch angles using "action groups" and "actions". Converting between the Litchi method and the DJI Fly method is not always well-defined and may produce unexpected results.

NOTE: I do not own a Mavic 3 / Air 3 / Mini 4 Pro. As a result, I am unable to test-fly a converted mission. However, this software has been successfully used by many people. If you do experience any abnormalities flying a converted Litchi mission, please let me know.

Signal Lost Action:
Drone Type:
Allow Straight Lines:
Mission Speed:
Litchi CSV File Upload:

Allow Straight Lines

Litchi allows the path mode of waypoint missions to be set to either "Curved Turns" or "Straight Lines". The WPML language used in DJI Fly also allows either straight lines or curved turns to be specified. However, for unknown reasons, DJI Fly's implemention of waypoints does not allow one to specify either straight lines or curved turns and all waypoint missions created in DJI Fly are executed using curved turns. Therefore, by default, this converter will convert all missions to use curved turns.

This checkbox has been added to override this default behavior. By checking this checkbox, the "useStraightLine" parameter will be set to true in the WPML code of the KMZ file. However, doing so will cause the waypoint mission to be displayed incorrectly (wonky like a spiderweb) in DJI Fly. Even so, I have been told that the mission will be correctly flown with straight lines even though DJI Fly's display of the mission is incorrect. If you try this, I would be interested in hearing if it works for you.


  • 2023-02-06: Reworked the Google Elevation API code that handles "Above Ground" waypoint heights.
  • This converter can now read a CSV file created with semi-colons used as delimeters instead of commas. This enables it to be able to read a file created by Grid Mission Designer (
  • In addition to Litchi CSV files, one can now upload and convert KML files containing a 3D path.


Litchi Utilities dot Com
by Wes Barris