TinyGPS

A Compact Arduino GPS/NMEA Parser

TinyGPS is designed to provide most of the NMEA GPS functionality I imagine an Arduino user would want – position, date, time, altitude, speed and course – without the large size that seems to accompany similar bodies of code.  To keep resource consumption low, the library avoids any mandatory floating point dependency and ignores all but a few key GPS fields.

Usage

To use, simply create an instance of an object like this:

#include "TinyGPS.h"
TinyGPS gps;

Feed the object serial NMEA data one character at a time using the encode() method. (TinyGPS does not handle retrieving serial data from a GPS unit.) When encode() returns “true”, a valid sentence has just changed the TinyGPS object’s internal state. For example:

#define RXPIN 3
#define TXPIN 2
SoftwareSerial nss(RXPIN, TXPIN);
void loop()
{
  while (nss.available())
  {
    int c = nss.read();
    if (gps.encode(c))
    {
      // process new gps info here
    }
  }
}

You can then query the object to get various tidbits of data. To test whether the data returned is stale, examine the (optional) parameter “fix_age” which returns the number of milliseconds since the data was encoded.

long lat, lon;
unsigned long fix_age, time, date, speed, course;
unsigned long chars;
unsigned short sentences, failed_checksum;

// retrieves +/- lat/long in 100000ths of a degree
gps.get_position(&lat, &lon, &fix_age);

// time in hhmmsscc, date in ddmmyy
gps.get_datetime(&date, &time, &fix_age);

// returns speed in 100ths of a knot
speed = gps.speed();

// course in 100ths of a degree
course = gps.course();

Statistics

The stats method provides a clue whether you are getting good data or not. It provides statistics that help with troubleshooting.

// statistics
gps.stats(&chars, &sentences, &failed_checksum);
  • chars – the number of characters fed to the object
  • sentences – the number of valid $GPGGA and $GPRMC sentences processed
  • failed_checksum – the number of sentences that failed the checksum test

Integral values

Values returned by the core TinyGPS methods are integral. Angular latitude and longitude measurements, for example, are provided in units of millionths of a degree, so instead of 90°30’00”, get_position() returns a longitude value of 90,500,000, or 90.5 degrees. But…

Using Floating Point

…for applications which are not resource constrained, it may be more convenient to use floating-point numbers. For these, TinyGPS offers several inline functions that return more easily-managed data. Don’t use these unless you can afford to link the floating-point libraries. Doing so may add 2000 or more bytes to the size of your application.

float flat, flon;

// returns +/- latitude/longitude in degrees
gps.f_get_position(&flat, &flon, &fix_age);
float falt = gps.f_altitude(); // +/- altitude in meters
float fc = gps.f_course(); // course in degrees
float fk = gps.f_speed_knots(); // speed in knots
float fmph = gps.f_speed_mph(); // speed in miles/hr
float fmps = gps.f_speed_mps(); // speed in m/sec
float fkmph = gps.f_speed_kmph(); // speed in km/hr

Date/time cracking

For more convenient access to date/time use this:

int year;
byte month, day, hour, minutes, second, hundredths;
unsigned long fix_age;

gps.crack_datetime(&year, &month, &day,
  &hour, &minute, &second, &hundredths, &fix_age);

Establishing a fix

TinyGPS objects depend on an external source, i.e. its host program, to feed valid and up-to-date NMEA GPS data. This is the only way to make sure that TinyGPS’s notion of the “fix” is current. Three things must happen to get valid position and time/date:

  1. You must feed the object serial NMEA data.
  2. The NMEA sentences must pass the checksum test.
  3. The NMEA sentences must report valid data. If the $GPRMC sentence reports a validity of “V” (void) instead of “A” (active), or if the $GPGGA sentence reports fix type “0” (no fix) then those sentences are discarded.

To test whether the TinyGPS object contains valid fix data, pass the address of an unsigned long variable for the “fix_age” parameter in the methods that support it. If the returned value is TinyGPS::GPS_INVALID_AGE, then you know the object has never received a valid fix. If not, then fix_age is the number of milliseconds since the last valid fix. If you are “feeding” the object regularly, fix_age should probably never get much over 1000. If fix_age starts getting large, that may be a sign that you once had a fix, but have lost it.

float flat, flon;
unsigned long fix_age; // returns +- latitude/longitude in degrees
gps.f_get_position(&flat, &flon, &fix_age);
if (fix_age == TinyGPS::GPS_INVALID_AGE)
  Serial.println("No fix detected");
else if (fix_age > 5000)
  Serial.println("Warning: possible stale data!");
else
  Serial.println("Data is current.");

Interfacing with Serial GPS

To get valid and timely GPS fixes, you must provide a reliable NMEA sentence feed. If your NMEA data is coming from a serial GPS unit, connect it to Arduino’s hardware serial port, or, if using a “soft” serial port, make sure that you are using a reliable SoftSerial library. As of this writing (Arduino 0013), the SoftwareSerial library provided with the IDE is inadequate. It’s best to use my NewSoftSerial library, which builds upon the fine work ladyada did with the AFSoftSerial library.

Library Version

You can retrieve the version of the TinyGPS library by calling the static member library_version().

int ver = TinyGPS::library_version();

Resource Consumption

Linking the TinyGPS library to your application adds approximately 2500 bytes to its size, unless you are invoking any of the f_* methods. These require the floating point libraries, which might add another 600+ bytes.

Download

The latest version of TinyGPS is available here: TinyGPS13.zip

Change Log

  1. initial version
  2. << streaming, supports $GPGGA for altitude, floating point inline functions
  3. also extract lat/long/time from $GPGGA for compatibility with devices with no $GPRMC
  4. bug fixes
  5. API re-org, attach separate fix_age’s to date/time and position.
  6. Prefer encode() over operator<<. Encode() returns boolean indicating whether TinyGPS object has changed state.
  7. Changed examples to use NewSoftSerial in lieu of AFSoftSerial; rearranged the distribution package.
  8. Greater precision in latitude and longitude.  Angles measured in 10-5 degrees instead of 10-4 as previously.  Some constants redefined.
  9. Minor bug fix release: the fix_age parameter of get_datetime() was not being set correctly.
  10. Added Maarten Lamers’ distance_to() as a static function.
  11. Arduino 1.0 compatibility
  12. Added satellites(), hdop(), course_to(), and cardinal()
  13. Improved precision in latitude and longitude rendering. get_position() now returns angles in millionths of a degree.

Acknowledgements

Many thanks to Arduino forum users mem and Brad Burleson for outstanding help in alpha testing this code. Thanks also to Maarten Lamers, who wrote the wiring library that originally gave me the idea of how to organize TinyGPS.  Thanks also to Dan P. for suggesting that I increase the lat/long precision in version 8.  Thanks to many people who suggested new useful features for TinyGPS, especially Matt Monson, who wrote some nice sample code to do so.

All input is appreciated.

Mikal Hart

Page last updated on August 31, 2013 at 7:00 pm
701 Responses → “TinyGPS”

  1. Puneet

    9 years ago

    these gps.encode nothing with my gps module i am using L80 GPS module u help me plz


  2. Bill

    9 years ago

    How can i change the altitude from meters to feet? I’m using a ublox neo6m gps with a nokia 5110 lcd display as a gps system. I have it almost exactly how i want it i just cant seem to figure out how to change the altitude. I’m new to arduino so i have alot to learn so any advice would be appreciated. Thanks!


  3. Mikal

    9 years ago

    @Bill,

    Well, there are about 3.28084 feet in every meter, so just take the meters and multiply by 3.28084. Alternatively, the TinyGPS++ library reports distances in various units.


  4. Steve

    9 years ago

    How would I be able to compare the GPS latitude and longitude data my GPS obtains to a known range of lat and long coordinates. If both the obtained lat and long coordinates match the set range, I would like a message to be sent to the serial monitor. Thank you.


  5. nadeem

    9 years ago

    when i use this code , i have got a lot of errors ,

    In file included from test_with_gps_device.cpp:3:
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:25:22: error: WProgram.h: No such file or directory
    In file included from test_with_gps_device.cpp:3:
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:81: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:81: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:82: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:82: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:82: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:82: error: ‘byte’ has not been declared
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:130: error: ‘byte’ does not name a type
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:133: error: ‘byte’ does not name a type
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:134: error: ‘byte’ does not name a type
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:135: error: ‘byte’ does not name a type
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h: In member function ‘void TinyGPS::get_position(long int*, long int*, long unsigned int*)’:
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:48: error: ‘millis’ was not declared in this scope
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h: In member function ‘void TinyGPS::get_datetime(long unsigned int*, long unsigned int*, long unsigned int*)’:
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:57: error: ‘millis’ was not declared in this scope
    test_with_gps_device.cpp: In function ‘void loop()’:
    test_with_gps_device:39: error: ‘class TinyGPS’ has no member named ‘satellites’
    test_with_gps_device:39: error: ‘GPS_INVALID_SATELLITES’ is not a member of ‘TinyGPS’
    test_with_gps_device:40: error: ‘class TinyGPS’ has no member named ‘hdop’
    test_with_gps_device:40: error: ‘GPS_INVALID_HDOP’ is not a member of ‘TinyGPS’
    test_with_gps_device:42: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:43: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:46: error: ‘GPS_INVALID_F_ALTITUDE’ is not a member of ‘TinyGPS’
    test_with_gps_device:47: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:48: error: ‘GPS_INVALID_F_SPEED’ is not a member of ‘TinyGPS’
    test_with_gps_device:49: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:49: error: ‘cardinal’ is not a member of ‘TinyGPS’
    test_with_gps_device:50: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:51: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:51: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:51: error: ‘course_to’ is not a member of ‘TinyGPS’
    test_with_gps_device:51: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:52: error: ‘GPS_INVALID_F_ANGLE’ is not a member of ‘TinyGPS’
    test_with_gps_device:52: error: ‘cardinal’ is not a member of ‘TinyGPS’
    test_with_gps_device:52: error: ‘course_to’ is not a member of ‘TinyGPS’
    test_with_gps_device.cpp: In function ‘void print_date(TinyGPS&)’:
    test_with_gps_device:114: error: no matching function for call to ‘TinyGPS::crack_datetime(int*, byte*, byte*, byte*, byte*, byte*, byte*, long unsigned int*)’
    C:\Users\decent\Documents\Arduino\libraries\TinyGPS10/TinyGPS.h:82: note: candidates are: void TinyGPS::crack_datetime(int*, int*, int*, int*, int*, int*, int*, long unsigned int*)


  6. Mikal

    9 years ago

    @Steve–

    Couldn’t you just do something like:

    if (lat >= MIN_LAT && lat <= MAX_LAT && lng >= MIN_LNG && lng <= MAX_LNG) Serial.println("In the region!");


  7. Mikal

    9 years ago

    @nadeem, What Arduino IDE version are you using?


  8. Kazem

    9 years ago

    Mikal I have a technical question:
    I’m using Arduino Uno. I want to use the serial communication not only for GPS but for GSM board as well to send the Latitude + Longitude + and time by SMS to my phone.
    Is it possible to deactivate TX Pin in library and use it in GSM instead?!

    please share with me if u have any solution.
    Regard.


  9. Mikal

    9 years ago

    @Kazem, if you want two SOFT serial devices you can declare two NewSoftSerial objects, but you can only use one at a time. See NewSoftSerial documentation for details. Alternatively, put one device on HardwareSerial (pins 0 1) and the other on your software serial pins.


  10. Phil

    9 years ago

    Hello Mikal

    Great library, makes GPS work so easy. I have an application where I have run out of SRAM in a UNO. Is there a consideration where you library might use off chip SPI SRAM to do it’s work and leave the UNO memory free for other things? yes moving to a Mega would more than likely solve my issue however boards have been made etc.

    Kind regards
    Phil


  11. Punith

    9 years ago

    will this work with GTPA010??? am not getting lat and lang am just getting char and err


  12. Mikal

    9 years ago

    Hi @Phil,

    I don’t have any plans to try to support external SPI RAM. How would that work?


  13. Mikal

    9 years ago

    @Punith, make sure your character stream from the GPS is correct before sending it to the TinyGPS library. Print each character with Serial.write(c).


  14. Stefan

    9 years ago

    Hi Mikal

    Great library!
    Love the functions. Save a lot of time in my projects.

    I wonder if it’s possible to extract the exact gps coords ddmm.mmmm without converting to deg.decimal_degree.


  15. kartik

    9 years ago

    major_pr.ino: In function ‘void gpsdump(TinyGPS&)’:
    major_pr:22: error: too few arguments to function ‘void print_float(float, float, int, int, int)’
    major_pr:95: error: at this point in file

    plz tell what is this error and how to solve it I m new in this ….


  16. Eric Grammatico

    9 years ago

    Hello Mikal,

    I am testing TinyGPS13. Very good stuff ! Congrat !

    I am not able to retrieve the date from GPRMC records:
    “$GPRMC,163921.000,A,4339.8807,N,00655.7857,E,0.15,40.52,190415,,,A*5E”

    Here is my code (I just added some few lines to your sample):
    ” if (newData)
    {
    float flat, flon;
    unsigned long age, gps_date, gps_time;
    gps.f_get_position(&flat, &flon, &age);
    gps.get_datetime(&gps_date, &gps_time, &age);
    Serial.print(“LAT=”);
    Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    Serial.print(” LON=”);
    Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
    Serial.print(” SAT=”);
    Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
    Serial.print(” PREC=”);
    Serial.println(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());

    Serial.print(“Date: “);
    Serial.println(gps_date);
    Serial.print(“Time: “);
    Serial.println(gps_time);
    }

    And the result:
    “Simple TinyGPS library v. 13
    by Mikal Hart

    LAT=43.664794 LON=6.929605 SAT=5 PREC=159
    Date: 0
    Time: 16521500
    CHARS=142 SENTENCES=1 CSUM ERR=1

    Am I doing something wrong ?

    Thanks a lot for your support.

    Regards,

    Eric.


  17. Mikal

    9 years ago

    @Stefan, you should be able to extract raw data using TinyGPS++’s custom objects. Have you tried that?


  18. Mikal

    9 years ago

    @kartik, I won’t be able to easily tell the problem in your code unless you share it.


  19. Nolan

    9 years ago

    #include
    TinyGPSPlus gps;

    void setup()
    {
    Serial1.begin(9600); // opens serial port
    }
    void loop()
    {
    while (Serial1.available() > 0) //While data is available from the Airmar on pins REx and Tx, do:
    gps.encode(Serial1.read); //read the information and parse the positions into the object class
    if (gps.location.isUpdated())
    {
    Serial.print(“LAT=”); Serial.print(gps.location.lat(), 6);
    Serial.print(“LNG=”); Serial.println(gps.location.lng(), 6);
    }

    I am receiving the following error:
    GPS_WayPoints.ino: In function ‘void loop()’:
    GPS_WayPoints.ino:120:28: error: no matching function for call to ‘TinyGPSPlus::encode()’
    GPS_WayPoints.ino:120:28: note: candidate is:
    C:\energia-0101E0015\hardware\msp430\libraries\TinyGPSPlus/TinyGPS++.h:218:8: note: bool TinyGPSPlus::encode(char)
    C:\energia-0101E0015\hardware\msp430\libraries\TinyGPSPlus/TinyGPS++.h:218:8: note: no known conversion for argument 1 from ” to ‘char’

    Any idea on how to fix this? I know the libraries of TinyGPS are being included because i can see them being used in the compile folder.

    Thanks,
    Nolan


  20. Mikal

    9 years ago

    @Nolan:

    gps.encode(Serial1.read()); // <- note extra parentheses


  21. Nikhat

    9 years ago

    Hi,
    im getting data on serial monitor when i upload this code to arduino-

    void setup() { // put your setup code here, to run once:}
    void loop() {// put your main code here, to run repeatedly:}

    but when i upload tinygps++ device example or full example ,why i don’t get any thing?


  22. Chris

    9 years ago

    I got halfway through implementing checksums on a much more rudimentary parser before I found this. TinyGPS works great, thanks Mikal!


  23. Mikal

    9 years ago

    @Chris,

    :)


  24. Ehsan Balouch

    7 years ago

    Hi Mikal Hart,
    Good day,

    Can I suggest you something to add to TinyGPS library or example code, if you don’t mind suggestion from outside.
    (I’d suggest only tested and verified code to work straight away).

    Regards,
    Ehsan Balouch


  25. Eldon

    7 years ago

    Will this library work for sim808 module?…


  26. Mikal

    7 years ago

    @Ehsan Balouch: sure!


  27. Nauj

    7 years ago

    Hello,

    I’m working with Gps Shield Itead Studio 1.1 and I have a problem. I can’t extract the correct date from $GNZDA NMEA sentence.

    The function gps.crack_datetime return time well, but date is always wrong. I don’t know how to solve it.

    I post this problem wiht more details in Arduino forum, here: http://forum.arduino.cc/index.php?topic=461143.msg3167140#msg3167140

    If someone can help me to correct the detected bug, I will be very greatefull.

    Best regards.


  28. Jan van Heck

    7 years ago

    Hello Mikal Hart. With fully interessting I have read this document about reading a GPS module. But I have question about the latitude and longitude coordinates. As a Geocacher I use coordinates in WGS84 notation. Degrees, minutes, minutes (DD mm.mmm). Is this also possible to get that kind of coordinates from the GPS module? As far what I have tried till now it works what I expected.
    Kind regards Jan


  29. Mikal

    7 years ago

    @Jan, you could create a TinyGPSCustom object that extracts that raw info from the NMEA stream.


  30. Jan van Heck

    7 years ago

    Hello Mikal ;-) That is why I need some (little ?) help. At this moment I work with Arduino Uno & https://www.elecrow.com/wiki/index.php?title=GPS_shield and the TinyGPS (vs 13) library. May be not the best HW for first GPS experiments, but cheaper from the store nearby.
    Your suggestion is to build my own TinyGPS library ? Or just make some changes ? Soryy but I’m not that experienced yet. I’m still study and make my own changes in the example “test with gps device” sketch.


  31. Jan van Heck

    7 years ago

    Hello Mikal Hart,
    Do not bother further more, my problem is solved.
    Regards Jan


  32. Jan van Heck

    7 years ago

    Hello Mikal Hart,

    Do not bother anymore because my problem is solved.
    Kind regards Jan


  33. jack chen

    7 years ago

    try it


  34. Morgan

    7 years ago

    Hi Mikal,
    We may be interested in using this for a school project. I’m pretty new with arduinos and GPS modules altogether. So I have a couple of questions.

    What type of arduino did you use? There are several “basic” kinds, so I was just curious which one you used. I’m interested in using the ATtiny85 (which I know someone else asked about earlier).

    Also, did you attach a passive antenna? If so, where? I’m curious if I could attach a small passive antenna to the ATtiny. I tried reading through all of the comments and all of what you typed up but I didn’t see the answers to either of these questions. I’d appreciate any and all assistance!!

    Thank you,

    Morgan


  35. Mikal

    6 years ago

    @Morgan, I use all kinds of Arduinos. Any that support some species of TTL serial (and that’s pretty much all of them) should work.

    Most GPS modules that you buy from outlets like Adafruit and Sparkfun already have built-in passive antennae. You don’t really attach the antenna to the ATTiny as much as to the GPS module itself.

    M


  36. Vìctor

    6 years ago

    Grettings Mikal, first of all thanks for your amazing work. I have a doubt, I am using a SIM808 GPS/GSM module, I already can use de AT comands to get all the data I need but the thing is that all positioning data is on NEMA format, and I need to have it on float… So how do I use your library for just converting?, I noticed that what it does is that it READS and then it gives back the position on float… I am really confused as I need to send the AT comands and then convert. Any help or advice?, thanks. Víctor.


  37. Mikal

    6 years ago

    @Victor, I would use (or refer to) the getGPS() function in the Adafruit SIM808 library:

    https://github.com/adafruit/Adafruit_FONA/blob/master/Adafruit_FONA.cpp


  38. Víctor

    6 years ago

    Thanks Mikal, it worked just fine, it was just what I needed and I wasn’t able to find it myself, thanks a lot, grettings. Víctor.


  39. Jack

    6 years ago

    Hi Mikal,
    Are you aware of any issues/interferance with this library and the Adafruit SH1106 library?
    Regards, Jack


  40. Mikal

    6 years ago

    @Jack, no, what are you seeing?

10 Trackbacks For This Post
  1. GPS logging on SD card using TinyGPS | CL-UAT

    […] tutorials are either too complex (i.e. include extra stuff like displays) or they don’t use TinyGPS or TinyGPS++ library. In the first step I’ve managed to get GPS working and displaying the […]

  2. A cheap, functioning GPS | Denial Media

    […] first thing I had to do software wise was install the TinyGps library. This was hard to do as the creator’s website was iffy at the time. I ended up downloading it from github and renaming it to get rid of the dash […]

  3. GPS Tracker на ардуино своими руками | FNIT.RU

    […] TinyGPS (ссылка на скачивание в середине страницы) […]

  4. Arduino Time Library learning notes | tlfong01

    […] requires the TinyGPS and NewSoftSerial libraries from Mikal Hart: http://arduiniana.org/libraries/TinyGPS and http://arduiniana.org/libraries/newsoftserial/ Example […]

  5. Arduino (IoT): Simple Tutorial GPS Top Titan 3 Glonass: Parte 1 – Santiapps – Arduino (IoT), iOS, Android & Glass

    […] ser parsed a datos de ubicación, velocidad etc.  Esto lo logramos usando la TinyGPS library (http://arduiniana.org/libraries/tinygps/) que veremos en la Parte […]

  6. The SX1276 Modules Shootout – HopeRF’s RFM95W vs NiceRF’s LORA1276-C1 vs HPDTEK’s HPD13 – Rocket Scream

    […] the base station. If a valid acknowledgement packet is received, the current GPS information (using TinyGPS library)  is retrieved from L80 GPS module and stored. Some of you might have argue why not use the full […]

  7. Shield o Módulo GPS con Arduino Introducción - Geek Factory

    […] http://arduiniana.org/libraries/tinygps/ […]

  8. Módulo GPS Skylab SKM53 | Diário de Nilton Felipe

    […] a biblioteca TinyGPS (documentação e download da v13). Requer […]

  9. Tutorial Arduino: monta un GPS con reloj con Arduino - Arduino, Genuino, Raspberry Pi. Noticias y proyectos.

    […] LCDUn módulo GPS en este caso el EM-411Breadboard, jumperwires y un potenciometro.Biblioteca TinyGPS.Enlace al tutorial completo.Califique esto Sample rating […]

  10. Living by Numbers | nr's blog

    […] photo you can see the GPS shield, which has now turned up. A quick bit of poking with the lovely TinyGPS library has shown that it’s giving me location data, and as a bonus, there’s a function […]

Leave a Reply