Recently, I bought a Nikon D5100. It is the best camera I have ever owned. EVER. You have no idea how happy I am with my purchase of it (and I should be happy with it—at $840, it's nowhere near cheap). One of the awesome features it has is GPS input. It can take TTL serial GPS data and use it to geotag pictures. This is awesome, but it comes with a catch: Nikon's GPS is $250! It's also absurdly bulky. Wanting geotagging that I can easily disable (I don't want home pictures, etc. to be tagged), I built this simple GPS that will work in many of Nikon's newer cameras.
- Microsoft GPS-500 (or GPS-360, it has the same pinout)—I got mine on eBay for $20 (and it came with a TTL-USB cable AND Streets & Trips 2008 AND an MSN Direct Receiver)
- Shutter connecting cord for Nikon D5100
- Ethernet cable that you're willing to strip
- Kapton tape
- Some sort of strain relief for the wires at the camera connector
- A steady hand
I got the pinout data for the GPS from here and the pinout data for the camera connector (with a lot of other useful info) here. Note: on the Flickr photo, read my comment for clarifying info and corrections.
My setup doesn't use any TTL voltage converters because the D5100 seems to be able to use the 3.3V TTL from the GPS. I may include a diode in the power line at some point to drop the voltage a little because the camera is feeding 6V to the GPS and its specs say it has a max power input of 5.5V, but it's working so far.
Basically, connect pin 5 on the GPS (the one to the right of the leftmost one when the gold contacts are facing up) to the power pin on the camera connector, pin 2 on the GPS to ground on the camera connector, and pin 3 on the GPS to TTL/Serial in on the camera connector.
EDIT: I added the diode; it dropped the voltage to about 5.0V-5.2V. I feel a bit better now.
Oh, by the way, don't connect Pin 1 (GPS Rx) to ground! I happened to do this by accident and it screwed up the serial output until I fixed the solder bridge.
This setup may work for other newish Nikon cameras, but they may not be 3.3V TTL tolerant, so YMMV.