SparkFun Forums 

Where electronics enthusiasts find answers.

Tips and questions relating to the GPS modules from SFE
By magnethead
I've never played with GPS before, bought the logger quite a while ago, just now starting to tinker with it.

I'm using AF's 128x64 OLED display, a Teensy 3.0, The venus logger SMA, SMA antenna (non-housed), and a 3V3 FTDI cable.

Sitting at my desk, my phone can fix on 6 birds.

I loaded the TinyGPS lib, got the display to work, and got things to "seemingly" behave.

But the GPS won't fix? It just keeps saying 0 satellites. I plug my FTDI into the loop to see the NMEA strings (which i had to look up to debug), and they all say V/Void in the validity term.

Am I missing anything, or does it just not want to fix? I set it in a south facing window for 30 minutes, and the LED was still solid green, and display showed 0 birds.
Code: Select all

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <TinyGPS.h>

#define OLED_DC 21
#define OLED_CS 10
#define OLED_CLK 13
#define OLED_MOSI 11
#define OLED_RESET 9

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");

TinyGPS gps;
elapsedMillis checkData;

void setup()   {                
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  // init done
  display.display(); // show splashscreen
  display.clearDisplay();   // clears the screen and buffer
    // text display tests
  display.print("Simple TinyGPS library v. "); 
  display.println("by Mikal Hart");
  display.clearDisplay();   // clears the screen and buffer  

  int printCount = 0;

void loop() {
  bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;

  // For one second we parse GPS data and report some key values
  for (unsigned long start = millis(); millis() - start < 1000;)
    while (Serial1.available())
      char c =;
       display.print(c); // uncomment this line if you want to see the GPS data flowing
      if (gps.encode(c)){ // Did a new valid sentence come in?
        newData = true;
   if (checkData > 1000){
  checkData = checkData - 1000;   
  display.clearDisplay();   // clears the screen and buffer 

    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    display.println(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    display.print(" LON=");
    display.println(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
    display.print(" SAT=");
    display.println(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());


By magnethead
I took it outside, and the LED started blinking, but TinyGPS still kept saying no birds and no location.
By magnethead
After soldering my connections (been using a sodlerless breadboard), it's working now. It won't get the initial fix indoors, but if I take it outside, let it pick up all 9 birds, then I can come back in and it will stay connected. Which I like very much in this oppressive texas heat.
By magnethead

I'll be powering from an external 3V3 source when operational. What would be the best way to wire in a up-keep battery to keep the chip awake, but not processing? Something about cold start vs hot start?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]