Grinkevich Photography

Grinkevich Photography header image 2

Nikon D90 Homemade GPS

December 5th, 2010 · 31 Comments · Nikon D90, Projects

I decided to make my own GPS for my Nikon D90.  Nikon wants well over $200 for a GPS unit.  The parts I used cost roughly $40 in total, much less expensive than Nikon’s solution.  The D90 accessory plug outputs +5V and expects 5V TTL logic.  I was able to output +3.3V logic from my Arduino and it worked, but the GPS unit’s threshold must have been lower and the D90 didn’t accept the data.  Below are the details on how I completed the task. I have left out the tracing and testing (e.g. checking to make sure I didn’t connect two pins or ground anything out) phases of the project in this writeup, but needless to say you should test and check your modifications with a multimeter.

Remote Shutter Release

I started with a cheap knockoff remote shutter release cable from Ebay; cost $5-$6.

10 Pin Connector

The connector needs to be cut apart since the the wire only has the pins soldered for the remote release (3 wires).

10 Pin Connector

The outer molding removed.

Nikon D90 10 Pin Connector (Side)

After careful cutting the connector has been completely exposed.

Nikon D90 10 Pin Connector Pinout (Front)

Here is the pinout of the connector for the D90.

Nikon D90 10 Pin Connector Pinout (Bottom)Nikon D90 10 Pin Connector Pinout (Top)

The corresponding solder pads, I’m not sure if all the connectors will have the same location of pads.

Interface Wire

Soldering the molex connector wire onto the D90 plug.  I decided to use this approach instead of hard wiring into the GPS for three reasons.  I wanted to be able to disconnect from the GPS unit, still be able to use the USB output from the GPS and if the connector broke I could make a new jumper wire easier.

Arduino Emulating GPS Data

I wanted to test the connector after I finished soldering it, so I setup my Arduino to output some emulated NMEA GPS sentences.  The D90 accepted the Arduino’s 3.3V logic.

GPS Board

After tracing the pins from the PL2303 Serial to USB converter I was able to find larger pads to solder the +3.3V and GPS Data.  The +5V is used for powering the GPS and as a reference voltage for the logic level converter.  The 3.3V is used as reference for the logic level converter.  This GPS unit cost $30 shipped off Ebay.

GPS and Logic Level Converter

Here is the Sparkfun logic level converter hooked up to the GPS.  The converter needs +5V and +3.3V as reference voltages to do the conversions.

Sparkfun Logic Level Converter

Closeup of the logic level converter.  Cost under $2.

Finished GPS

Here is the completed GPS.  I didn’t take any pictures of soldering the USB connector.  Since this picture I have epoxied the cover back into the connector to add strength and to prevent short circuiting.  I would not connect the GPS to the computer and camera at the same time.  If you do you will just want to connect the ground and GPS data lines and NOT THE +5V.  You really don’t want the a voltage differential to go into your camera or vice versa.

Real GPS Data

And we have real GPS data!

All things considered the project was definitely worth it and made me exercise some of my EE skills from college.  I still need to figure out how I am going to mount the GPS to the D90.  So now I will be able to geotag my photos when I am out taking pictures and won’t ever forget where I took one again.

Tags: ···

31 Comments so far ↓

  • George

    Ahh, reminds me of good old senior design project days. Very nice write-up. Wish my Olympus eVolt was enable to encode GPS data into photos.

  • Max

    Brilliant! I had thought about doing something similar but hadn’t find a cheap way around the proprietary connector. I didn’t realize that they were using that slot for remote triggers. I wonder if you could track down a manufacturer that would pin-out all the connections to a cable?

    I’ve been thinking about doing some interesting things w/ the USB port, and would love to vampire-off the 5V of the GPS port. Any idea how much current you can sap off it?

    -m

    • dan

      Max,

      I haven’t found anything short of the cable Nikon sells that you could cut in half.

      I just took an amp reading and the GPS draws roughly 50mA. I don’t know how much you can pull on that pin. The +5V is always on, even when the camera is off. I think there is another pin that can output the +5V with the “auto meter” option in the GPS menu but then the GPS would have to re-acquire the GPS fix.

  • Fernando Lamarca (FLA)

    Great job …
    Thanks for putting the text clearer picture of the original.
    Forgot password Flickr and I can not access my web.
    See the link to Nikon with the progress of my work

    Greetings
    Fernando_FLA

    http://www.nikonistas.com/digital/foro/index.php?showtopic=38837

  • Robert

    This is awesome. Gonna have to give this a go if my Garmin Edge 705 doesn’t work.

    Great write up!

  • Rafal

    Hi!

    On my D90 on pin as you describe +5V I have 6,5V. Is this pin connected directly to battery?
    Is in D90 another pin with exactly +5V?

    I am going to connect this GPS to camera.
    http://www.propox.com/download/docs/GPS_FGPMMOPA6.pdf

    Do you have idea how to connect it to D90? How make DC stabilizer and converter for different voltage level between GPS and camera?
    Could you help me and give some advices.

    Best regards,

  • DOUCET

    Great job !
    I would like to do the same, but I don’t understand why do you not use directly the +5V of the camera to power the GPS ? Why using a converter in 3,3v ?

    Thanks

    • dan

      I am using the 5V to power the GPS. The GPS chip outputs 3.3V TTL and the D90 expects 5V TTL, so that is why I used the logic level converter.

      • DOUCET

        Okay, but I still don’t understand the use of the 3,3V output’s
        Maybe it’s the connections that I’m not sure..
        It’s not enough to connect the 5V power and the ground to the GPS and the GPS data to the camera ?

        • dan

          The GPS I used was a USB GPS and I had to find the data out from the actual GPS chip which is 3.3V. The output from the GPS chip is connected to a PL2023 serial to usb converter that is at 5V, but you can’t use USB signals for the D90.

          • DOUCET

            Okay, so if I well understand, you need to convert the GPS data in a 5V signal in order to be accepted by the camera ?

          • dan

            Correct, the D90 expects 5V logic, even though most 5V logic devices can accept 3.3V logic, but the D90′s thresholds must be higher.

  • LouiZo

    Thanks for your article that describe the pinouts! I’ve just done a test with a Pharos GPS-500 and the same connector you have (with a shutter cord). The power on my side is 6v and Pharos output is 3.3V, but plug directly, it works fine! no need to have a level shifter, at least on my D3100 ;-)
    Thanks again !
    LouiZo

  • Wells

    Hi,

    I got a GPS module, it output 4800 baud serial signal, and I found it has a ST232B ic to transform TTL signal to RS232 signal, so I line out the ttl signal from PIN12 of ST232B, the TTL signal is 5V, but D90 could not find the GPS device.

    I connected Vcc to GPS module +5v
    GND to GPS module GND
    GPS Data to GPS module ST232B pin 11 (TTL output).

    what’s wrong with my device?
    my arduino can use TinyGPS library to got GPS data from my GPS module.

    Can you provide the arduino test sketch for refference.

    Thanks.

    BR,
    Wells.

    • Wells

      Sorry,
      Thanks,

      I found my problem~
      I connected the gps data pin to the ST232B pin 12.

      I confirmed with the ST232B datasheet, found that it’s the ttl input pin. so it’s my mistake, now my GPS module works!

      Thanks!

  • Dave

    Here’s a suppier for the connector on a basic lead.
    http://www.gadgetinfinity.com/product.php?productid=17586.

    • dan

      Dave,

      That looks like it just has pinouts for the shutter and focus, you need other pins for the GPS to work.

  • Bernd

    Hi nice job!

    Anyone having some info on how to make a bluetooth module for the nikon D90 to connect to various external gps loggers , like the I-blue , qstarz and so on.

    Thank You

  • Luc

    Hi, nice job, very usefull !

    Tested on a Nikon D5100 , just work fine !

    If this can Help for D5100 users :
    - Vcc is 6V an permanent
    - Gps data in is internally pulled up to 3V, so you can use a simple NPN transistor to translate signal from RS232.
    ( for example a 2N2222 with a 10K resistor on base, emitter to gnd an collector directly tied to Gps input : tested OK with a Garmin GPS )

  • DIY Nikon D5100 GPS | Cyrozap's Tech Projects

    [...] 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 [...]

  • zequ

    hello i need one gps for my nikon D80 you can help me??

  • Josh

    Hi Dan,

    I’ve re-wired up a shutter-release cable, and I’d just like to emulate some GPS positions for my research. Can you give me an idea of the NMEA sentences you used?

    I’ve been using Serial.begin(4800); and Serial.println(); with some of the examples at http://home.mira.net/~gnb/gps/nmea.html#gpgga but while the camera seems to detect the GPS messages – it allows me to go into “position”, which it didn’t before I debugged my code – it is set to “—, —” for everything.

    Kind Regards,
    Josh

  • Jeffrey

    This is excellent!

    I wonder, would it be possible to log the position of the camera in space and write that into the exif data?

    http://www.x-io.co.uk/node/9

    that would be great. Do you know if it would be possible, or will only GPS info work?

    • dan

      The camera only accept NMEA sentences. If you formulated the proper GPRMC and GPGGA sentences it would accept them.

  • Jacob

    I have been looking for something like this on and off for nearly two years, I sold my D90 some time ago, and I am now going to get a D7000. I am a tinkerer of sorts, and I do enjoy building things myself, however, with regards to GPS and the construction done here, it seems I am a bit in the dark.

    I am wondering if you could possibly give me a bit more detail than what you have on your site. i.e. I am a bit confused about the USB to serial adapter, what is the purpose, from what I can see, the navibe GPS unit uses USB, and should not require any sort of adapter. So a bit more detail would be greatly appreciated… If you would like, I have submitted my email and would thoroughly enjoy learning a bit more from you if you have the time.

    ~Jacob

    • dan

      The cameras accept TTL level logic from the GPS. You can’t hook up a USB GPS directly to the camera. The adapter you see is a logic level converter that brings the 3V logic to 5V logic so the camera can use the data. Some people have been able to directly hook the GPS up without the logic level converter.

  • Emppu

    Jacob, you just have to bypass the USB converter, since the camera accepts rs-232 serial data at TTL (5V/0V) levels, so you cannot hook the USB cable directly to the camera. Or you could use a GPS module that outputs TTL level signal natively.

  • Accessory for Nikon D7000 – Part 1 – GPS receiver

    [...] pins. You need just three of them: VCC, Ground and Data In (RX). Therefor I used the pinouts from dan’s blog: Nikon connector from top (taken from grink.com) Nikon connector from bottom (taken from [...]

Leave a Comment