Difference between revisions of "Sending location information from an Android phone to a Nikon camera"

From Just in Time

Line 26: Line 26:
* [ Checksum] is hex representation of the XOR of everything between the '$' and '*' (not including).
* [ Checksum] is hex representation of the XOR of everything between the '$' and '*' (not including).
* [ pinouts]
* [ pinouts]
==Comments? Questions?==

Revision as of 00:11, 30 April 2013

This page describes my ongoing project that offers location data from an Android phone to a Nikon D7000 camera. Using the Android location information is especially convenient, because it gracefully switches from GPS information outdoors to Wifi and GSM station information if it can't receive any GPS signal, providing the camera with best-effort location estimates.

Of course, the fact that I already own an Android phone also means that the additional hardware cost of approximately $15 sets of nicely against the $200 Nikon GP-1 GPS module.

The sources for the Android app–which is in a very rudimentary stage right now–are available on GitHub.

Nikon D7000 camera being fed GPS NMEA sentences from an Android phone. To the left is a bluetooth serial module that receives data from the phone and feeds it to the D7000


I'd like to geotag the images I take using my D7000. For a while things went just fine using my Eye-Fi SD card. The Eye-Fi software on windows uses WiFi access point IDs to determine where pictures were taken. Unfortunately, I'm on linux and the Google API that I used in my own programs to do the access-point-to-location conversion is no longer available.

It became time to do the geotagging in-camera. Fortunately, the Nikon GP-1 GPS module–at $200–costs more than I'm willing to pay for this functionality, providing me with an excellent excuse to start building my own.

The current setup is as follows: An inexpensive (€8,-) bluetooth-to-ttl module is connected to the gps/shutter connector on the camera. The plug was "engineered" from a cheap remote shutter release cord, bought for $2.89 via Ebay. My dedicated app on my Android phone asks the OS for location information and at a steady rate of 4/s creates NMEA RMC and GGA sentences and sends these to the bluetooth module.

Road Map

Since the plug also allows control of the shutter, I'd like to add an attiny to the setup that should react on non-NMEA sentences like "+f", "+s", "-f", "-s" to emulate pressing and releasing the focus and shutter buttons. This would turn my phone into a remote control. And while I've got a microcontroller attached, I might as well add a remotely controlled interval timer.

I'd really like to get both the microcontroller and the bluetooth module in low-power mode if the camera is switched off. Unfortunately, the plug has no signal indicating whether the camera is switched on or not. There may be a way: apparently the GPS input is connected to a pull-up resistor or bridge that is only powered when the camera is switched on; I'm measuring approximately 2.5V on this line when the camera is on. It should be possible to amplify this "signal" enough to wake up the attiny.


Comments? Questions?


{{#set: |Article has average rating={{#averagerating:}} }} {{#showcommentform:}}

{{#ask: Belongs to article::Sending location information from an Android phone to a Nikon cameraModification date::+

 | ?Has comment person
 | ?Has comment date
 | ?Has comment text
 | ?Has comment rating
 | ?Belongs to comment
 | ?Comment was deleted#true,false
 | ?Has comment editor
 | ?Modification date
 | ?Has attached article
 | format=template
 | template=CommentResult
 | sort=Has comment date
 | order=asc
 | link=none
 | limit=100