Adafruit Ultimate GPS Fix LED to TFT Display

Hi guys,
I have an Adafruit Ultimate GPS and would like to take the "Fix LED" output and display the output on my display, rather than to an LED.

When there is no fix, the FIX pin is pulses up and down once every second. When there is a fix, the pin is low (0V) for most of the time, once every 15 seconds it will pulse high for 200 milliseconds.

Currently I have this setup to illuminate a LED but I want to sense the "HIGH" and then get the Arduino (Mega) to display a dot in the screen. The dot will then appear on the screen every 1s or 15s depending on the FIX status.

My first thought was to connect the FIX output on the GPS directly to a digital pin on the Arduino and set that pin up as an INPUT. As the LED flash is independent of other activities I thought I would setup an interrupt to activate on the INPUT pin RISING and then have the interrupt routine display the dot on screen.

Is this the right way, or am I on the wrong path altogether??

Any advice welcomed.


Maybe I am not understanding what you are trying to do, but I am not sure why dot on a LCD screen would be better than a LED turning on? Were you planning on drawing a map and have the dot be the location?

I don't see anything wrong with your idea, assuming the GPS is operating the LED with a 5 v. output.
Just route it into an interrupt, and use the interrupt to read and save the millis() value. At the next interrupt, check how long bewtween interrupts, and you've got it.

The fix signal is an output from the GPS module and is a 3.3V signal. But a 3.3V level will be read as a "1" by your 5V Arduino. So I think what you're planning to do should work just fine.

But if you're also decoding the GPS sentences you can get the fix information that way. The NMEA sentence RMC includes a field that indicates whether or not the GPS has a fix.

Thanks Guys. I got into this last night and it works a treat:)

I didn't interrogate the NMEA string during the interrupt routine because I felt this was probably a quicker / less processor intensive way of getting the same result.

Now, whenever the LED on the GPS unit flashes I get a red circle flash on my TFT - a good visual aid as to what's going on with the GPS fix signal.

I do interrogate the NMEA stream elsewhere in my code to generate a 1-5 bar signal strength indicator, based on number is satellites visible.