Trying to read NMEA from GPS Plotter.

Hi all,

I’ve come to a dead end in my Little Project in Reading NMEA data from a plotter I’ve got. What I want to do is to connect the device to an old plotter I’ve removed from my boat and get an Arduino Nano to read and parse data from this. Later on when I’ve got this to work I would like to move my Arduino to the boat and also receive wind and speed information from the other NMEA enabled devices.

The plotter I’m trying to connect is an Navman Tracker 5500.

The plotter has 8 wires that are labled like this according to the manual:
1 Black Ground (power negative, NMEA)
2 Brown Power out, 9 V DC
3 White NMEA out, to autopilot/radar
4 Blue NavBus - or NMEA2 input
5 Red Positive power in, 11 to 16.6 V DC
6 Orange NavBus +
7 Yellow Auto power in (connect to positive power in to enable auto power)
8 Green External beeper or light out, switched to ground, 30 V DC, 200 mA maximum

I’ve connected the plotter to an external 12V charger and for this I’m using the black and red wire. So far so good. :slight_smile:
When It comes to the arduino later on I want to Power this from the computer via USB so that I can debug the data. My problem now as far as my limited knowledge in Electronic goes is that I don’t have a common ground between the plotter and the Arduino.

What I’ve tried then is to use an opto iscolator (PC817) as an attempt to get away from the common ground problem. The PC817 has four legs:

  1. Anode
  2. Cathode
  3. Emitter
  4. Collector

Now I’ve tried to connect the White plotter wire to the Anode (1) and the black plotter wire to the Cathode (2). Besides this I connect Arduino 5V to the collector (4) and Arduino RXD to the emitter (3).

Then I write a really easy sketch that reads data from the RX pin and output this to the Console.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(19600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

Serial.println(“Goodnight moon!”);

// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
}

void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
delay(10);
// if (Serial.available())
// mySerial.write(Serial.read());
}

In theory I Think I should be able to read some data now, but all i get is nonsens data.
Can anyone please give me a hint on what I’m doing wrong?

Kind regards

In theory I Think I should be able to read some data now, but all i get is nonsens data.

Which you aren’t going to show us. OK, then we’ll guess. I’ll guess a wrong baud rate. Or soething is not wired correctly. What IS connected to pins 10 and 11?

DrewWestling:
The plotter has 8 wires that are labled like this according to the manual:
1 Black Ground (power negative, NMEA)

2 Brown Power out, 9 V DC

3 White NMEA out, to autopilot/radar

I've connected the plotter to an external 12V charger and for this I'm using the black and red wire. So far so good. :slight_smile:
When It comes to the arduino later on I want to Power this from the computer via USB so that I can debug the data. My problem now as far as my limited knowledge in Electronic goes is that I don't have a common ground between the plotter and the Arduino.

Lack of a common ground, probably isn't the problem you think it is and you can probably do without the opto-coupler.

Your Arduino Nano should have a pin labelled RAW, which is the input to a voltage regulator, capable of taking a maximum of 12V. The Navman pin 2 is the 9V output of the Navman's voltage regulator. So why not;
i) Connect Navman Pin 1 (black) to one of the Nano GND pins (0V).
ii) Connect the Navman Pin 2 (brown) to the Nano Raw input pin.
Which sorts out the common 0V reference and +5V supply for the Nano.

Now you (just) have to interface the Navman Pin 3 (White) NMEA Serial Out (Tx) to the Nano Serial In (Rx). This is your real problem!

In theory I Think I should be able to read some data now, but all i get is nonsens data.
Can anyone please give me a hint on what I'm doing wrong?

Yep. The Navman is using (bipolar) RS232, with logic 1 between -3V and -25V and logic 0 between +3V and +25V. The Nano uses a TTL serial protocol, with logic 1 between +2V and +5V and logic 0 between 0.8V to 0V.

There are various ways to match the levels. There are inexpensive, bi-directional, RS232 to TTL interface modules available on e-bay. If you only need to connect the Navman's Tx to the Nano Rx, an inverting circuit and voltage divider would probably do.

Disclaimer. I take no responsibility for you blowing anything up. You should always check the electrical specs of interfaces yourself, against documentation or practically with a meter.

Thanks for your kind reply MattS!

MattS-UK:
Lack of a common ground, probably isn’t the problem you think it is and you can probably do without the opto-coupler.

Your Arduino Nano should have a pin labelled RAW, which is the input to a voltage regulator, capable of taking a maximum of 12V. The Navman pin 2 is the 9V output of the Navman’s voltage regulator. So why not;
i) Connect Navman Pin 1 (black) to one of the Nano GND pins (0V).
ii) Connect the Navman Pin 2 (brown) to the Nano Raw input pin.
Which sorts out the common 0V reference and +5V supply for the Nano.

I haven’t got any RAW pin? on my Arduino Nano v3 (chineese copy bought from ebay). Is the VIN an equivalento the the RAW pin?

MattS-UK:
Now you (just) have to interface the Navman Pin 3 (White) NMEA Serial Out (Tx) to the Nano Serial In (Rx). This is your real problem!

Yep. The Navman is using (bipolar) RS232, with logic 1 between -3V and -25V and logic 0 between +3V and +25V. The Nano uses a TTL serial protocol, with logic 1 between +2V and +5V and logic 0 between 0.8V to 0V.

There are various ways to match the levels. There are inexpensive, bi-directional, RS232 to TTL interface modules available on e-bay. If you only need to connect the Navman’s Tx to the Nano Rx, an inverting circuit and voltage divider would probably do.

Disclaimer. I take no responsibility for you blowing anything up. You should always check the electrical specs of interfaces yourself, against documentation or practically with a meter.

I have a couple MAX232a laying in a box that I purchased for this project. I’ll have connected the pieces but I want to do some measuring with my multimeter before I turn the power on.

I’ll keep this thread updated with my progress later on when I’ve tested my setup.

DrewWestling:
Thanks for your kind reply MattS!

I haven’t got any RAW pin? on my Arduino Nano v3 (chineese copy bought from ebay). Is the VIN an equivalento the the RAW pin?

Sorry, my mistake, I was looking at a Mini. The input to the voltage regulator on a Nano is pin30, indeed it is labelled Vin and accepts 7V to 12 V.

The rest holds true.