Flying a GPS logger

When I started using a Canon EOS M a year ago I started to miss the GPS capabilities of the PowerShot S100. So this winter I played with a couple of GPS modules and an Arduino Nano until I had a standalone GPS logger that could ride on my autoKAP rig. It also has a barometric pressure sensor (and temperature and humidity) so every few seconds it logs all the data to a microSD card. I flew it for the first time last week and managed to get almost everything to work.


There is a post at Public Lab about the flight and the video below displays the GPS and temperature data in 3D. I'm still working out the best workflow for getting the GPS data into Google Earth or into the EXIF headers of the photos.

My goto camera rig is now sufficiently heavy and complex that I don't fly it as often as I would otherwise. It also means that a one hour flight leads to six hours of computer work. But I like the storytelling potential it offers, and I hope to be able to use the GPS data to scale and locate 3D terrain models built from the photos (structure from motion). We will see if I ever find time for that.




  • Nice work, and congratulations on the very smooth video too! I have to agree on the EosM, the IQ is excellent for the money, equal to the Ricoh at half the price on eBay (but sadly at almost double the weight too).

    So far I have not been able to sync frames to the GPS data other than by matching clock times.

    I use an off the peg RTF GPS unit from Eagletree, it needed a logger to work and I can down load the data via USB.

    These are the bits:

    Not as elegant as the SkyPod, it's a tight fit getting the bits in the Hammond 1551k case, I had to squash in a lot of spare wire and remove the ferrite ring on the GPS reciever.


    Eagletree software lets you see, save and post the data as KML to Google earth:


    I began with a simple altimeter with the same logger:

    but switched to 3D data from a GPS sensor in the hope of getting oriented images. This hasn't happened and the RTK data from these units isn't good enough for mapping. GCP is the way to go.
  • It's good to know about that off-the-shelf solution. The SkyPod is also self contained, so the only link to the photos is through their timestamps. A program like Geosetter can write the GPS data to the EXIF headers. I tried without success to run the GPS with the same Arduino Nano in the autoKAP controller that was triggering the camera. That would allow synchronous data and photos, but apparently the serial communication with the GPS interrupted the signal to the servos on the rig and they jerked every time the GPS sent data. So I gave up and made the SkyPod independent (it has its own Nano). I'm glad that happened because now it is more useful to others. A SkyPod can be added to any rig, and can share battery power if that is already on the rig.

    It's nice that the Eagle Tree software will prepare your data for Google Earth. I do that by hand, but it just entails pasting the comma separated GPS data into a KML file with a few lines that precede and follow the data. The data can also include sensor data (pressure, temperature, etc) but I still have not learned how to make Google Earth display those data (e.g., as colors). I did all that manually for the display in the video (each color is a separate KML file). There must be a better way.

    Here are the parts of the SkyPod GPS logger.

  • edited June 24
    Very nice - I like the concept of logging additional geotagged data, not only coordinates!

    I (used to) fly the Holux M-241 GPS logger (this one, but I never actually used it to geotag the photos (which I planned originally), I simply used the GPS track for visualizing the flight paths in Google Earth - very helpful if you fly somewhere in the desert which looks everwhere the same on satellite imagery. The logger was simply clipped with an extra carabiner into the line, hanging a few centimeters above the rig. Would be interesting to see how precisely the georeferencing of an SfM 3D model would turn out if you use the GPS data to geotag the photos!

    Have you ever thought of synchronizing shutter and logger via hot shoe? Or logging camera tilt or compass direktion? Would be interesting - even for ground photography. In theory it should be possible to feed all the data into an SfM software to help with geometry reconstruction...

    Keep up the good work!

  • The Holux logger looks like a nice one. They also have other models, and there are a few similar devices from other manufacturers. Some of these are in really tidy little packages which is nice for flying. These seem to require proprietary software to read the data from the device. That's probable a good thing for most people, but I really like the idea of just getting a comma separated file of the data you want.

    I hadn't thought about the signal coming from the camera hotshoe. Maybe the Arduino could use that to time the data reads and writes. I don't know what kind of signal you can get from a hotshoe, but it might be all the Arduino needs. I decided that since the camera is shooting every four seconds and the GPS data are being logged every four seconds, the error due to the rig moving between those two unsynced events will typically be smaller than the GPS precision. When the GPS data are written to the photo files, the closest timestamp match is used, so the two events that are matched will generally be within two seconds of each other. It is also no problem to log GPS data every second or two.

    My next goal is to get a good series of KAP shots of a topographically interesting subject from many angles while the SkyPod is logging GPS data. I'm not sure which software is best for exploiting the GPS data while making a 3D model. I have used AutoDesk ReCap 360 (online) to make an sfm model, but without GPS data. The results were very good, but the model was not scaled or located. It will be nice to have the model scaled, but I'm not sure if it will be a better model. I am still blown away by the fact that software can take a bunch of photos and reconstruct the 3D world using no other information.

    Below is a video of that result from last year.


  • Hi Chris,

    as said I never made use of geotagging imagery for SfM 3D modelling (too many things to do, too little time), but I'm sure most dedicated SfM software will be able to use the EXIF coordinates for georeferencing (at least Agisoft PhotoScan does). I usually scale and georeference the models afterwards, if need be with ground control points from Google Earth. This can be done in MeshLab, too.

    As for the hotshoe signal I can't really remember - I'd try measuring with a multimeter, there should be a drop from 5 V to zero when the shutter is fired or something. At least there are adapters for this in the UAV world (e. g.

    Hope this helps!

  • Hi again,

    Chris - if you'd be able to construct (or modify your Skypod into) an open, modular logging device which reads out as CSV at least GPS coordinates and barometric pressure, additionally maybe temperature, gyro data (tilt, pitch), magnetic heading etc. too, and registers when the camera shutter is triggered: I'd be a very very happy customer! An IMU like device like that would be highly interesting not only for KAP or aerial photography but for ground photography, too. I'd pay a lot of Swiss chocolate for something like this!

    I've seen such systems but I don't know if they are publicly avaible, but from what I've seen I'm sure that such they are neither cheap nor open and hackable...

  • Jorre,

    That's a really interesting project. Last year I bought an IMU sensor from Pololu (AltIMU-10) and have not gotten around to using it. The sensor board includes chips for gyro, accelerometer, compass, and altimeter. It looks like it would be fairly straightforward to replace the BME280 sensor that I flew last time with the AltIMU-10. The AltIMU-10 would want to be mounted on the tilting camera tray instead of the rig frame, but that is an easy change.

    The AltIMU-10 can produce a lot of data. You could save all of it at every interval and then use whatever you are interested in. Or you could modify the sketch to save only what you need.

    The other part of your request is to read and save the data in sync with the camera shutter. That will require some experimentation with the hotshoe and with code that waits for a signal from the hotshoe to read the GPSr and sensors. If the hotshoe idea does not work, I can probably tap into the line from the SkyShield autoKAP controller that triggers the camera shutter. Either way, the sync function might be a bespoke feature that will require customization depending on your camera and control system.

    Another unknown is whether adding these new functions will require more memory than the Atmega328p can provide. I suspect that some clever programming will be required to fit everything in 32KB of flash (the GPS already hogs a lot of it). There will probably be some choices to make about how many variables can be saved (each one eats up a little memory). The GPS module also produces scads of data and I only save a few variables (date, time, lat, lon, alt).

    But it's summer, so this project will have to wait a while. And I just received a very cool wind speed sensor ( which I am sort of eager to add to the SkyPod. I'm going to need a bigger kite.


  • Hi Chris,

    the AltIMU-10 looks good, I guess that would be a good starting point to experiment. I'd rather prefer a design where the IMU (plus maybe the GPS antenna) sits right on the camera (e. g. the hot shoe). I'd like to be able to change quickly between cameras, pull the logger from the KAP rig, put it on a drone or a pole, use it on the ground etc. I tend to mix uses a lot - for photogrammetry work it is often useful to be able to switch from ground photography to PAP in an instant.

    If you start developing please let me know - I'm useless as a programmer but if I can help in any other way, I'll do!

Sign In or Register to comment.