EM-506 (módulo gps) enviando basura a un MEGA.

Buenas, tengo un módulo gps EM-506 y un MEGA, y por el momento estoy intentando sacar la posición por el puerto serie pero solo me saca basura: $GPGSV,3,3,12,09,00,000,,10,00,000,,11,00,000,,12,00,000,*71 $GPRMC,153323.936,V,,,,,,,290716,,,N*4F $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,153324.921,,,,,0,00,,,M,0.0,M,,0000*5E $GPGSA,M,1,,,,,,,,,,,,,,,*12 $GPRMC,153324.921,V,,,,,,,290716,,,N*4E $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,153325.923,,,,,0,00,,,M,0.0,M,,0000*5D

El programa es muy básico:

void setup() {
  Serial.begin(9600);   // puerto para el monitor serie. Corregir Baudios según corresponda
  Serial1.begin(4800);  // este es el puerto con el que leo el GPS
  Serial.println("Preparando...");
}
void loop()
{
  byte a;
    if ( Serial1.available() > 0 ) {  // Hay datos en el GPS?
       a = Serial1.read();            // Leo byte del GPS
       Serial.write(a);
  }
}

No sé si será cosa de las conexiones, tengo: GPS->MEGA GND-GND VCC-5V Rx- Tx1 (18) Tx- Rx1 (19) GND-GND

Aquí comentan de poner un divisor de tensión al Tx de arduino pero no me funciona.

Eso que se ve no es un divisor de tensión. El GPS usa 3.3V y tu MEGA espera valores de 5V. Cuando le envias por TX debes bajar la tensión a 3.3V para ello pones una resistencia de 1k y otra de 2k de este modo

donde 5v es TX1 del mega o pin 18 El pin Tx del GPS que llega al RX1 19 del Mega no hace falta ponerle nada porque 3.3V esta dentro del rango reconocido como nivel ALTO.

(si has puesto alguna imagen no se visualiza)

Ya me funciona, fallo mío no le dejaba tiempo suficiente para que pillara la señal correctamente. Lo he conectado directo. ¿Debería conectarlo con las resistencias? En ese caso, ¿estaría bien el esquema que puse?

Para ver si lo he entendido (estoy un poco verde en electrónica), el TX1 18 envía una señal de 5v al gps. Pero como el gps admite un máximo de 3.3v hay que bajar la tensión.

Correcto.