Arduino GPS – On the Cheap

I had an old USB GPS puck sitting around and wondered if I could make it play nice with the Arduino. Of course, there are easier modules (including this one in serial) that can be found elsewhere for a few dollars more. But assuming you have this one, it can be done.

You will need…

An Arduino board and IDE

NewSoftSerial Library:
http://arduiniana.org/libraries/NewSoftSerial/

Adafruit GPS Testing Sketch:
https://github.com/adafruit/GPS-shield-RMC-test-sketch/blob/master/GPStest_RMC.pde

Small Screwdrivers and Soldering Iron

Globalsat Magnetic GPS Puck – $30-35 [1]

JST SH Connector + 6-Wire Assembly – $1.50 [2]

Remove the Module…

  1. Remove the 5 screws from the GPS puck’s housing
  2. Lift out the rubber weatherproofing gasket.  It should not be glued in.
  3. Gently lift the exposed GPS module from the housing and unplug the connector.

Decision Time…

The module has a PL-2303HX chip under the antenna (that ceramic, boxy looking part) that converts serial data to USB so you can normally plug the device into your laptop.   Your Arduino can’t read the USB data coming off your module, so you have two choices:

1) Use the appropriate pin to snag the data before it’s converted or…

2) Convert back outside of the module

Naturally, I went the crazier route, and decided to find the chip and pin.   To get at it, you could (and probably should) carefully cut away the small cover to expose the left side of the chip.  Note that this is all pretty tight work, and I haven’t found an alternate (exposed) point to use other than at the chip itself.

Since I was doing exploratory work, I decided to pop the antenna off the assembly using a flathead screwdriver so that I’d have easy access.  A continuity check showed there’s a solder point on the bottom of the board that correlates with where the antenna post normally passes through, so I was able to simply reattach the antenna later on a short length of wire.

Using the datasheet from Prolific (http://www.prolific.com.tw/eng/downloads.asp?ID=23) you can see that the data we’re looking to snag happens on Pin 5.  This is going to be the data line to your arduino.

Using the wire harness from Sparkfun, you can now wire up the module to your Arduino board.  There are six wires.  One black followed by five white.  Ignore the black one.  The first and last white wires are wired to Gnd, while the fourth white wire is run to the 5v supply on your Arduino to power the module.

You can find a basic diagram here: http://wiring.org.co/learning/libraries/basicpositioning.html

Now that we’re wired up, I used Adafruit’s GPS test sketch to make sure everything was working, which you can find at the link above.  Remember that you’ll have to get the NewSoftSerial library and put it in your libraries folder first.  And for debugging purposes, the LED on the module itself blinks when it’s getting satellite broadcasts.  If the light is solid, the module isn’t getting data… try moving your setup near a window.  You’ll notice mine is on the floor near  a patio door.

You’ll want to check that the pin assignments in the Adafruit Sketch match the pin you’re using to steal data off your GPS module, then upload it and open your Serial monitor.  If you’re connected up correctly, you should soon see your Time, Date, Lat and Long come streaming through!

If you end up using one of these modules with an external IC to switch back to serial, I’d love to see what you used!

[1] GPS Puck – Additional

[2] 6 Wire Assembly – Additional
http://www.sparkfun.com/products/10361

  • vincenzo

    Help me please! I Hacked the bu 353 and i found the pin number 5, but the gps doesn’t fix! The serial “2″ recived data from gps, but doesn’t fix! Do you know if the “glue” under the antenna is conductive?

  • http://www.DavidCDean.com David C Dean

    I wouldn’t think so. It’s hard to remember much about this project, as it was a little while back, but I don’t think I had any problems once I’d found the right pin.

    I probably shouldn’t have put it on a long lead like that, but as I recall, I’d torn the module up pretty badly just exploring its guts.

    Are you not getting data off it at all?

  • Vincenzo

    I’m italian, sorry for my english! I recive data from the gps serial pin 5 but this data is : “gp………” and the led on the bu 353 doesn’t blink. It doesn’t fix! I removed the ceramic antenna brutaly and i think i damage it. I will have the explane to reconnect thi antenna, please! Thanks a lot!

  • http://www.DavidCDean.com David C Dean

    Your English is good, Vincenzo. I also took the antenna off pretty brutally and had to solder it back on with a whip, but it did work afterwards. I’ll see if I can dig out the gps module this evening and get a photo or two. Good luck!

  • Vincenzo

    Thanks! I think that the ground of the antenna isn’t connected or in short circuit! If you can, i need the photo of the connession beetween the antenna and the circuit!!!
    Thanks!!

  • Vincenzo

    Hallo David, are you found this old project?

Yeah That's Me.