In an effort to give back to the DIY community, we have decided to offer our standalone geo-tagging software, SwiftTag, for free. It is meant to work with all camera setups that are triggered by the APM platform. By using a synchronization script with Mission Planner, it is possible to accurately tag every photo taken in flight without resorting to comparing the camera’s internal timestamp against the log of GPS positions.


SwiftTag compares a sync photo to the .log created by downloading the autopilot’s log. It can then tag all the photos, creating a CSV file that can be read by most processing software. The CSV file contains the position as well as the attitude for each photo. SwiftTag also allows filtering of the photos by roll, pitch or yaw values if needed.


SwiftTag was developed to address the existing short comings in tagging photos with the APM platform. By using SwiftTag we have reduced the average local error in our tags from 20 meters to less than 4 meters. Most notably, we used SwiftTag to tag over 40,000 photos taken for a large mapping project. The ground coverage was approximately 60 sq km flown over 9 days with our Lynx M UAS.


For a detailed workflow on how to use SwiftTag, downloads, and FAQ, please visit:


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Hi Shawn

    I know that this post has almost a year old; but can you resolve the EKF detail?. I appreciate so much if you can share your solution....

    Best Regards

    Juan Pablo, Peru.

  • I am having trouble using SwiftTag now that I am using the EKF_enable. After the initial home location is acquired the camera by distance function does not work and my copter icon does not move in Mission Planner. Only when I arm will it start to move in MP and trigger pictures when walking with it. This is inconvenient/impossible when all those propellers are spinning. Any suggested solution?

  • @Jesus A

    I use the geotaging feature on MP and like the latest release, as the track is shown, so it makes it alot easier to align images with altering the triggering delay / advance. The extra features you plan to add will also be most welcome, as even with a 2D gimbal fitted, there are some turns that are so steep, the gimbal "maxes out" and the images are angled. if you're starting a wish list, some programs are able to detect blurred images after geotagging! Keep up the good work!

    Best Regards,

    Keith, Nottingham, UK.

  • Developer

    We currently managing the deep stall entirely with the RC transmitter using a mix to change the flight mode and the elevator throw. The deepstall can be entirely hands off or steered with the rudder to keep the plane aimed in the desired diestion. When we competed in the AUVSI student competition I had modified the logic for loss of link to trigger a deep stall after three minutes.

    I've considered a couple of ways of modifying the code to trigger deepstall. The biggest reasons to move it into the autopilot instead of from the RC transmitter is that it can be done as a failsafe mechanism, and would allow the plane to steer during the deep stall. From an autopilot change perspective its fairly easily, the deepstall uses a range well outside the standard elevator range the autopilot is normally allowed to use, and holds it there.

    A video of some deepstalls (intermixed with a couple of takeoffs) can be viewed here:

    My past attempts with Mission Planner have shown that using the CTRL+F method show that it does not work if there is any mismatch in the number of photos and camera messages. "CAM Msgs and Files discrepancy. Check it! Aborting....." In this case the mismatch is from the camera haven been powered on after the plane was turned on. It just hasn't shown to be reliable in our experience, and past lack of stability has also motivated the development of SwiftTag.

    Unfortunately I'm not familiar enough with Mission Planner to spend the time to working with it at the moment. The outlined procedure should allow it to be added fairly easily though. 

  • Hi Michael.

    Mission Planner already does fine geotagging based on CAM messages (I was the one who added that).
    You just need to open the "special" form with CTRL+F

    After having been playing with aircrafts missions I found that roll pitch filtering is important so I was planning to add two new features to mission planner.

    1. Stop taking pictures when aircraft is turning by DO_SET_CAM_TRIG to 0 before every turn of a survey mission.

    2. Adding filtering to the geotag tool of mission planner.

    For the last item, would you incorporate your changes to mission planner? It would be great
  • Distributor

    very nice!

  • Developer

    Hi Michael,

    I just noticed the deep stall landing feature on your site. Do you have the code changes for that in a repo somewhere? I'd like to have a look to see if it something we could include in future releases. Do you have any videos of a deep stall landing?

    Cheers, Tridge

  • Developer

    very nice, thanks for releasing this!

  • Moderator

    Very cool, well done. Is that a smaller version of your airframe in the bottom photo?? (or just getting far away ;-))

  • interesting software thanks. I'm just about ready to attach & test my canon sx220 for an auto mission; I really need to learn what settings (iso/shutter speed/manual focus/etc) work best for me, and then I guess the next step is to learn something like this for using with Microsoft ICE as I have never got to the stage where I am sequencing & stitching photographs.

    Most of my time is spent making & plotting & perfecting auto missions, but I guess I have some nice missions that work for me now, and I can probably progress.

    I did experiment last year with the canon sx220 as an aerial video filming device it was truly horrible due to the stabilization (both on & off I tried), I think also the camera has a 'floating sensor' - Is it possible to glue/fix it so it is solid/still?

    I also used it for photo but I found it needs some gimbal vertical stabilization to be effective as I could never get a consistent sequence of photos. Will a servo gimbal work? Or is brushless the way (but more weight)?

    I should probably start figuring something out for this year, perhaps a swopable unit between my normal gopro 2-axis gimbal & a vertical unit. 

    Time, effort, time, effort.... ;)

This reply was deleted.