problems reading gps output

Hello! i'm trying to read gps(global sat et-332) tx output using arduino mega 2560 i've connected gps tx to arduino rx1 gps configured to work in nmea mode, if i connect it to pc - i get perfect nmea output

but when i when i run this code on arduino

void setup() {
  // initialize both serial ports:

void loop() {
  // read from port 1, send to port 0:
  if (Serial1.available()) {
    char inByte =;


i get this


instead of NMEA

none of googled gps reading solutions are worked, i'm stuck :(

I haven't used a GPS device before. But I do know that when talking over the Serial monitor you have to use the right baud rate. Perhaps 9600 baud is the wrong rate. Also you misspelled Serial in your code. Perhaps that may be causing the problem. Hope this helps.

whwn i connect to pc using same baud rate - i get nmea sentences

misspelled? where? i'm using arduino mega, it has 3 serial's, i connect gps to serial1 rx

In void setup you have it as "Seriall.begin(9600); You put an extra 'l', lol

dude, it’s 1(one) :slight_smile:

How have you connected it, hardware-wise?

From the datasheet I found:

Output TTL level , 0V ~ 2.85V

I'm wondering if, electrically, it is matching up.

Maybe the logic levels are inverted, the datasheet is a bit vague on that point.

i thought about it. But how do i check it or how do i invert it?

Hmm- I can't get the sheet to open from USGlobalsat. But the board I have from them runs at 4800 baud, default- might be worth a quick try just to see...


nope 4800 gets almost same result

Can you post a link to a datasheet that describes the requirements in detail? Like, logic levels, whether a 1 is 0V, 5V, -5V and so on?

Sounds like you have an RS232 level device connected to the TTL level Arduino.

Get yourself a MAX232 or equivalent circuit to do the appropriate level shifting.


but i thought that arduino can understand rs-232

but i thought that arduino can understand rs-232

We can't help what you think. The FACT is that it can't.