arduino tinygps help needed


I have newsoftserial and tinygps library working on arduino 18, then I switched to arduino 22 and same program/sketch does not work , it displays messages in setup() , I copied tinyGPS and Newsoftserial library to arduino 22 library folder, has anyone seen this problem, is there a workaround

-Thanks akmishra_99

Hi, You can copy and paste message that appear in the lower panel of the IDE.

Show us what the error messages are and we may be able to help…s


In setup() there are messages such "tinyGPS library my Michael hart version .9 ", this message gets printed then no other message get printed such as acquired data and then longitude and latitude values, I am at work right now, exact message I'll post in the evening, I am getting no data from GPS device.

-Thanks akmishra_99

here is complete message when it loads on arduino

"Testing TinyGPS library v .9
By Michael Hart

sizeof(gpsobject) = 103"

after this there is no output

here is code (this code works on arduino 18)
#include <NewSoftSerial.h>
#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
It requires the use of NewSoftSerial, and assumes that you have a
4800-baud serial GPS device hooked up on pins 2(rx) and 3(tx).

TinyGPS gps;
// NewSoftSerial nss(2, 3);
NewSoftSerial nss(2, 3);
void gpsdump(TinyGPS &gps);
bool feedgps();
void printFloat(double f, int digits = 2);

void setup()

Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println(“by Mikal Hart”);
Serial.print("Sizeof(gpsobject) = "); Serial.println(sizeof(TinyGPS));

void loop()
bool newdata = false;
unsigned long start = millis();

// Every 5 seconds we print an update
while (millis() - start < 5000)
if (feedgps())
newdata = true;

if (newdata)
Serial.println(“Acquired Data”);

void printFloat(double number, int digits)
// Handle negative numbers
if (number < 0.0)
number = -number;

// Round correctly so that print(1.999, 2) prints as “2.00”
double rounding = 0.5;
for (uint8_t i=0; i<digits; ++i)
rounding /= 10.0;

number += rounding;

// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;

// Print the decimal point, but only if there are digits beyond
if (digits > 0)

// Extract digits from the remainder one at a time
while (digits-- > 0)
remainder *= 10.0;
int toPrint = int(remainder);
remainder -= toPrint;

void gpsdump(TinyGPS &gps)
long lat, lon;
float flat, flon;
unsigned long age, date, time, chars;
int year;
byte month, day, hour, minute, second, hundredths,local_hour;
unsigned short sentences, failed;

gps.get_position(&lat, &lon, &age);
Serial.print("Lat/Long(10^-5 deg): “); Serial.print(lat); Serial.print(”, “); Serial.print(lon);
Serial.print(” Fix age: "); Serial.print(age); Serial.println(“ms.”);

feedgps(); // If we don’t feed the gps during this long routine, we may drop characters and get checksum errors

gps.f_get_position(&flat, &flon, &age);
Serial.print("Lat/Long(float): “); printFloat(flat, 5); Serial.print(”, “); printFloat(flon, 5);
Serial.print(” Fix age: "); Serial.print(age); Serial.println(“ms.”);


gps.get_datetime(&date, &time, &age);
Serial.print("Date(ddmmyy): “); Serial.print(date); Serial.print(” Time(hhmmsscc): “); Serial.print(time);
Serial.print(” Fix age: "); Serial.print(age); Serial.println(“ms.”);


gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
Serial.print(“Date: “); Serial.print(static_cast(month)); Serial.print(”/”); Serial.print(static_cast(day)); Serial.print("/"); Serial.print(year);
Serial.print(" Time: “); Serial.print(static_cast(hour)); Serial.print(”:"); Serial.print(static_cast(minute)); Serial.print(":"); Serial.print(static_cast(second)); Serial.print("."); Serial.print(static_cast(hundredths));
Serial.print(" Fix age: “); Serial.print(age); Serial.println(“ms.
Serial.print(” Local Time: “); Serial.print(static_cast(local_hour)); Serial.print(”:”); Serial.print(static_cast(minute)); Serial.print(":"); Serial.print(static_cast(second)); Serial.print("."); Serial.print(static_cast(hundredths));

Serial.print("Alt(cm): “); Serial.print(gps.altitude()); Serial.print(” Course(10^-2 deg): “); Serial.print(gps.course()); Serial.print(” Speed(10^-2 knots): "); Serial.println(gps.speed());
Serial.print("Alt(float): “); printFloat(gps.f_altitude()); Serial.print(” Course(float): "); printFloat(gps.f_course()); Serial.println();
Serial.print("Speed(knots): “); printFloat(gps.f_speed_knots()); Serial.print(” (mph): “); printFloat(gps.f_speed_mph());
Serial.print(” (mps): “); printFloat(gps.f_speed_mps()); Serial.print(” (kmph): "); printFloat(gps.f_speed_kmph()); Serial.println();


gps.stats(&chars, &sentences, &failed);
Serial.print("Stats: characters: “); Serial.print(chars); Serial.print(” sentences: “); Serial.print(sentences); Serial.print(” failed checksum: "); Serial.println(failed);

bool feedgps()
while (nss.available())
if (gps.encode(
return true;
return false;