Sending location information from an Android phone to a Nikon camera
From Just in Time
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.
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.
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.