Go Down

Topic: problems reading gps output (Read 1 time) previous topic - next topic

1101

Jul 14, 2012, 10:08 am Last Edit: Jul 14, 2012, 10:10 am by 1101 Reason: 1
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
Code: [Select]

void setup() {
 // initialize both serial ports:
 Serial.begin(9600);
 Serial1.begin(9600);
}

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

}


i get this
Code: [Select]

??é9óæ̦&¦f³¦&æssssóæóææssS9ófóæS9sóæææfM???=?æ̦æ&f³¦&æS¦&æÌÓ:>6NÆN>2"26F:>2NêN:N>2N2F&N6>FNÊN:.F*NÊNN>>>>V*ÊÖ?ù??é9óæ̦æ¦Ì³¦&æS¦&æÌÓ>NÆN>2"26F:>"NêN:N>2N2F&N6>FNÊN:.F*NÊNN>>>>V*:ÊÖ


instead of NMEA

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


ebird97

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.

1101

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

ebird97

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


Nick Gammon

How have you connected it, hardware-wise?

From the datasheet I found:

Quote
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.
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

1101

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

TobyB

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...

t

1101

nope
4800 gets almost same result

Nick Gammon

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?
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

kg4wsv

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.

-j

1101

but i thought that arduino can understand rs-232

PaulS

Quote
but i thought that arduino can understand rs-232

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

Go Up