Arduino & LS20031 GPS

I have attached the LS20031 GPS to an Arduino Mega 2560 R3 using these connections:

GPS Arduino
VCC – 3.3v
RX – RX1(pin 19)
TX – TX1(pin 18)

When I give power to the Arduino, a light starts blinking on the GPS(what does that mean?).

And here is my code:

    #include <SoftwareSerial.h>

    #define rxPin 19
    #define txPin 18

    SoftwareSerial mySerial(rxPin, txPin);

    void setup()  {

    void loop() {
      if (mySerial.available()) {

I open the serial monitor (set to 57600 baud) , and I should get some NMEA 0183 messages, but I don’t get anything. Clear screen.
The light is still blinking (is that the satellite fix indicator?)…

So, what have I done wrong?


Hello, Boris.

Your RX and TX connections are mixed up. The transmit from the Arduino should go to the GPS’s receive, and vice versa. Since the GPS operates at 3.3V, you should probably have a voltage divider on the TX from the Arduino, to drop the voltage down to 3.3V. Also, you need to set the baud rate of the GPS serial connection (mySerial) to 57600bps. The connection speed to the computer matters less, but should match the serial monitor.

The GPS module’s red LED blinks when it has a satellite fix.

- Ryan