user1499: I have written this little snippet of code to interface with EM408 GPS.
#include <SoftwareSerial.h>
SoftwareSerial GPS = SoftwareSerial(2,3);  //rx,tx
void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
  //Serial.print(GPS.read(), BYTE);
  Serial.write(byte(GPS.read()));  //as of Arduino 1.0
}

Hardware side i have these connections: 
ENABLE: 3.3V 
Vcc   : 3.3V 
Ground: Ground 
Rx, Tx correctly connected to arduino and correctly initialized with SoftwareSerial
However, the values i get are just junk data
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

I get these without ending...
I experimenting with changing the baud rate, still the same thing goes on.
Any ideas?
EDIT:
I used to get random junk data before with the EM406 gps module, but i solved it by casting everything to BYTE. I have tried both approaches here, but the results are the same...

user84: The problem you get is that read() does not wait for a byte to be available, it just returns -1 if there is no byte available; converted as an unsigned byte that becomes 255.
In ISO-8859-1, which I guess is the encoding that your serial monitor is using, 255 translates to ÿ, so this is exactly what you observe.
Fixing this problem is straightforward, just check that a byte is available on SoftwareSerial before reading it:
void loop()
{
    if (GPS.available()) {
        Serial.write(byte(GPS.read()));  //as of Arduino 1.0
    }
}


1499: <p>I have written this little snippet of code to interface with EM408 GPS.</p>

<pre><code>#include &lt;SoftwareSerial.h&gt;
SoftwareSerial GPS = SoftwareSerial(2,3);  //rx,tx
void setup()
{
  GPS.begin(4800);
  Serial.begin(9600);
}

void loop()
{
  //Serial.print(GPS.read(), BYTE);
  Serial.write(byte(GPS.read()));  //as of Arduino 1.0
}
</code></pre>

<p>Hardware side i have these connections: <br>
ENABLE: 3.3V <br>
Vcc   : 3.3V <br>
Ground: Ground <br>
Rx, Tx correctly connected to arduino and correctly initialized with SoftwareSerial</p>

<p>However, the values i get are just junk data</p>

<pre><code>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
</code></pre>

<p>I get these without ending...
I experimenting with changing the baud rate, still the same thing goes on.
Any ideas?</p>

<p>EDIT:<br>
I used to get random junk data before with the EM406 gps module, but i solved it by casting everything to BYTE. I have tried both approaches here, but the results are the same...</p>
 84: <p>The problem you get is that <code>read()</code> does not wait for a byte to be available, it just returns <code>-1</code> if there is no byte available; converted as an unsigned byte that becomes <code>255</code>.</p>

<p>In <strong>ISO-8859-1</strong>, which I guess is the encoding that your serial monitor is using, <code>255</code> translates to <code>ÿ</code>, so this is exactly what you observe.</p>

<p>Fixing this problem is straightforward, just check that a byte is available on <code>SoftwareSerial</code> before reading it:</p>

<pre><code>void loop()
{
    if (GPS.available()) {
        Serial.write(byte(GPS.read()));  //as of Arduino 1.0
    }
}
</code></pre>
