Struggling with reading NMEA serial from an external device

Hello everyone, just dipping my toes into arduinos, I'm already a software engineer that works in embedded but wanted to get started working on some personal projects, so I picked up a couple arduinos, a Mega and an Uno. So here's my current issue:

I am currently trying to get either a Mega2560 or an Uno to receive NMEA strings from a GNSS receiver and just can't get it figured out. I'm using either the serialPassthrough example or the SoftwareSerialExample that is built into the 2.3.2 IDE.

I have all the baud rates, data bits, parity, and stop bits configured the same on all devices, but when I connect the GNSS receiver to the arduino the output is garbage characters. I know the output from the GNSS receiver is good because I can read it just fine into PuTTy or Tera Term.

I can also loop the serial back onto different serial ports on the arduinos and read that just fine, or connect the two arduinos together and send messages back and forth between just fine also. But reading from an external (non arduino) device the incoming characters get mangled. Like seen here:


And what it should look like here in Tera Term:
good_serial

Any and all ideas are welcome,
Thanks

Please post a link to the GNSS receiver and a wiring diagram.

If the receiver has an RS232 serial interface, you cannot connect it directly to an Arduino.

Use an RS232-TTL serial adapter to connect it, otherwise the voltage levels may destroy the Arduino.

1 Like

The NMEA standard is: While NMEA 0183 only defines an RS-422 transport,". So you will need that type adapter.

1 Like

By all means read the manual for your GNSS receiver. It has to define the interface.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.