Corrupted GPS data

I am a beginner, and need help to get a gps data.
I have this GPS Receiver,
This is my simple code.

#include <SoftwareSerial.h>
#define RXPIN 3 
#define TXPIN 4 
#define GPSBAUD 9600

SoftwareSerial uart_gps(RXPIN, TXPIN);

void setup()

void loop()
  int c =;

and the output:

What i’m doing wrong???
Why i get the, “ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”
And why i dont get all the data?

Thanks Ahead.
Eliad Cohen

Were you planning on parsing the GPS messages by yourself or were you looking for something to parse the messages for you? that long string of characters are -1's ... and it occurred when you tried to print the GPRMC message, there are 6 I think messages total. I'd recommend TinyGPS12 by Mikal Hart and that you read the Wiki section on GPS for a good idea of what is contained in what message. All GPS messages begin with a dollar sign and end with \r \n, carriage return and newline, If that helps in parsing the message.

The documentation for SoftwareSerial explains that the read function returns a character if one is available but otherwise it returns -1. The ÿ is printed when you do a Serial.write of -1. You need to use .available() to check that there's a character available before trying to read it, like this:

  while(uart_gps.available() > 0) {
    int c =;


Then when you lost data you were shielded inside?.. Too. My receiver is reasonably sensitive but inside it’s frequently worthless. I use it to sync the Time library once every 24 hours and if the weather is bad I loose position lock which is I think 6 sat’s visible to my U-Blox 6 and sometimes my clock has to be reset because my ‘cheapo’ clone looses about 10 seconds a day… When I get it on a radio, once I decode the RMC and GGA sentences I will wait for serial to quit and then I have a half second measured to process and transmit the data, put the GPS in low power mode and wake up again when time or metrology data is needed.
Perhaps my ramblings will help?