Interfacing with Garmin GPS18x LVC

Hi guys,

I'm currently working on a school project (near space gas balloon with altitude control mechanisms), which requires connecting a GPS sensor onto the control system built around Arduinos. From other people's recommendations as well as my good experiences with Garmin, I bought a Garmin GPS18x LVC (http://static.garmincdn.com/pumac/GPS18x_TechnicalSpecifications.pdf). The GPS unit itself looks pretty cool, however with my beginner level on electronics, I'm having three major problems now:

  1. According to online document (http://showcase.netins.net/web/wallio/GPSrcvrsvs60kft.htm), GPS18 series sensor need to be updated to the newest firware (3.3 for now) in order to operate at above 60k ft altitude (this project will go that high). So I'm trying to connect the GPS to PC by soldering its wires into a DB-9 connector using the instruction on page 8 of its data sheet(why do they left the yellow cable that handles PPS open?). But the PC has no response after I connect the GPS unit onto it. I have the corresponding Garmin program installed on the PC though. I have no experience working with serial port on PC. Does anyone know what is going on?

  2. For the requirement of this project, all the information we need to receive from this GPS sensor are just current time, current location, current speed, and current altitude. So for that, I think we just need to read $GPGGA sentences from the GPS. Am I right?

  3. For connecting GPS18x LVC onto Arduino, because GPS18x uses RS-232 protocal, I think I need to convert this into TTL for Arduino using a MAX202 chip(I can only find MAX202 at school, but I mostly hear people using MAX232, is this ok?). After I have done that, can I directly connect the GPS in the same way as in this tutorial[ch65288]Arduino Playground - HomePage?

That are all my questions so far. I'm still a rookie on Arduino and welling to learn as much from you guys as I can. Let me appreciate in advance for any kinda help!

A cursory browse through the PDF document shows that the LVC version has only TTL (5V) logic inputs and outputs. Connecting it directly to the +/-12V RS-232 port on a PC may have already toasted it.

Hi Richard, thank you so much for replying my question! I have read that part. However, according to online discussion at (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1270541607) and (How to configure and use Garmin GPS 18 LVC? | Forum for Electronics), people saying that Garmin GPS 18x LVC uses actually RS-232 protocol not TTL standard. With this conflict, the data sheet was seemed confusing to me too.

So back to the question, in terms of power consumption and configuration (except for the fact that MAX232 uses bigger capacitors than MAX202), MAX202 is equivalent to MAX232, is this right?

You don't necessarily need a MAX232 for the GPS18 LVC.

The LVC uses rs232 levels but 5V TTL voltages. That's a disappointing hack from Garmin on a US$80 GPS, IMO, but it's otherwise a good device. This means that electrically you can connect the LVC and an Arduino, but logically the signal is inverted, and the ATmega's UART can't handle that.

Your choices are:

  • use a MAX232 on the arduino side to handle the inversion.
  • use a 7404 inverter to invert the signal.
  • Use a transistor circuit to invert the signal.
  • Use NewSofSerial to connect the GPS, and use the software inverter capability.

I actually used the first option, but I had an RS232 arduino instead of a standard USB model for that project.

-j