PCB to convert Differential NMEA to Single Ended

Joined
20 Jun 2007
Messages
16,234
Location
Live in Kent, boat in Canary Islands
www.bavariayacht.info
Further to:
Yes. I'm getting an output, but I need to convert it to single-ended...
Thanks to Nigel for pointing me in the right direction.
Have used optocoupler as per the attached diagram, worked perfectly, my GPSMAP750 now receives NMEA sentences DBT, HDG, HDM, MTW, VHW and MWV from the NMEA output of the ST60 Multi instrument.

I've built a PCB (22mm x 23mm) that will convert Raymarine "Differential" NMEA to Single Ended, with a gain control (to reduce to 5V if necessary):
NMEA-D2SE-Buffer-001_zps1ffdbb81.png~original

NMEA-D2SE-Buffer-000_zps12355cb7.png~original


Thanks to Plevier for the idea of using parasitic power from the NMEA+ output (note that this breaks isolation), although I have included an option to take it from another source (in the form of spare holes for 12V and GND). Resistor R1 found by trial and error to just saturate the LED in the optocoupler, R2 chosen to limit the maximum current to 60mA (from the Raymarine 80mA source), in practice it draws 2mA.

I made a couple of spare PCBs, so can supply kits at cost.
 
Last edited:
My word that's a bit exotic.
I soldered the resistors onto the 4N25 chip, pushed it up a bit of sleeving and stuck it to the back of the ST60 with double sticky! Didn't photo it unfortunately.
It works :o
Cost £3.47 for enough to do 5 instruments - have got 4 spare sets going to waste.
Days later I met someone who had spent £100+ on a Raymarine interface box to do exactly the same job, he felt a bit p*ssed off.
 
The output transistor of the OPIA412 is a bit slow. Have you looked at the shape of the output on a scope? Is it a bit rounded? The 413 is quicker.

Also if you are using the NMEA+ voltage to drive the output side of the opto doesn't that negate the purpose of using an isolator?
 
Last edited:
Also if you are using the NMEA+ voltage to drive the output side of the opto doesn't that negate the purpose of using an isolator?

As Nigel acknowledges copying that bit from me I will answer.
The purpose of the exercise in my case was not isolation; it was to convert the odd NMEA output of the ST60 (+11V for off, 0V for on) to a form acceptable to the single ended input of the Garmin 750 which seems (Garmin are not explicit) to expect 0V for off and anything from +5V to +12V for on.
Preserving the isolation would have meant extra wiring round the Garmin, not easily accessible.
Seems to me both Ray and Garmin are being naughty and not complying with NMEA specs properly.
In fairness to Ray, the main purpose of this output is as an alarm to a relay or annunciator, for which it makes sense; enabling it as an NMEA output is an extra facility that was enormously useful to me.
 
Last edited:
From a technical perspective, it's an 'interesting' circuit.
Might not always work.
If the output pot is set high, loading it with a lowish impedance to gnd might be messy.
The asymmetric termination of the diff signal is 'ugly'.
It throws away the noise immunity that makes diff lines good.


But, if it works, it must be OK.
It is specific to the way Garmin and co have implemented their interfaces though.
 
The output transistor of the OPIA412 is a bit slow. Have you looked at the shape of the output on a scope? Is it a bit rounded? The 413 is quicker...
Not particularly rounded no, in fact I had to increase the input resistor to reduce ringing.

Haven't tried a 413, but the 412 has been withdrawn, and with no substitute; is the 413 still current? A pity, as it's a handy device; I bought the last dozen that Farnell had in stock.

Isolation part answered by Plevier above. If isolation is required, I could use the alternative power input.

...If the output pot is set high, loading it with a lowish impedance to gnd might be messy.
The asymmetric termination of the diff signal is 'ugly'.

Regarding the pot, yes I could have included a series resistor, but the 200R in the collector limits the drain to 60mA, which is well within spec.

In what way is the termination asymmetric? The driver for this is an 80mA source on the NMEA+ output, with a pull down on the NMEA- output.
 
Last edited:
... yes I could have included a series resistor, but the 200R in the collector limits the drain to 60mA, which is well within spec.

In what way is the termination asymmetric? The driver for this is an 80mA source on the NMEA+ output, with a pull down on the NMEA- output.
The 200R is not shown in series with OC1 collector?
NMEA pos is terminated in 220R, NMEAneg is terminated in 10k plus a diode...
If they are a twisted pair, about 200 across the pair would be better, esp for long lines.
60mA for a low speed data line seems like a lot....


As I said, it works, but it could be done either simpler or a more general solution.
Then there's the issue of putting 12V on the source's output, via 220R, if the source is switched off.
That can be enough to prevent a proper reset or start.
 
The 200R is not shown in series with OC1 collector?...

Huh?

Like I said, this is specifically for Raymarine "differential" devices, which are themselves not balanced, just awkward to interface with. See image below to clarify this.

Also, the 12V input isn't intended to be used with a raw feed, some current limiting is recommended. It was added as an afterthought to add some flexibility, just like the second GND terminal.

Bottom line: it ain't perfect, but it works.

Raymarine "differential" output stage:

8d6075e691ecd726d293ed6f8f06d13d_zpsfa6dd9cc.jpg
 
Last edited:
I see, the 12V is not a rail.
The NMEA plus output of the Raymarine thing looks like a current source, the neg output is an open drain switch.
That isn't exactly differential NMEA.
You could replace your circuit with two resistors and a transistor.....
 
The NMEA plus output of the Raymarine thing looks like a current source, the neg output is an open drain switch. That isn't exactly differential NMEA.
You could replace your circuit with two resistors and a transistor.....

Exactly. Not differential NMEA at all, but it looks like it on the connections.

I did play around with a transistor, how would you do it?
 
NPN , emitter = gnd.
Base to NMEANEG, pulled up to NMEAPOS by 10k or so
Collector is output, either open collector or pull up to NMEAPOS

If the input of the other kit accepts open collector, the opto is a nice idea though.
 
First thanks to Nigel and Plevier for getting the issue under way. I tried it with single transistor inverters and ended up blowing the output FET in the st60 multi...
I then found an opto-isolator on a bit of old kit and having replaced the FET (with an ordinary power transistor) I did the following:
drive the diode via 1K series resistor. Power the other half = Vcc from the 12v into the ST60, No 220r as it just shunts the current limiter, negative and NMEA in from the listener, in my case a gar4008. The emitter load of the output is a 2.2K in parallel with a 10k pot which needed to be turned pretty well full on. I guess it can be refined to draw less current but that may be next winter as it's time to 'hit the list' before spring...
We are being asked to produce depth/time/location data for teamsurvey and now I am able to participate. Thanks again guys.
 
Am I missing something? Why not just connect the +ve output and ignore the negative since most nmea inputs are compatible with RS232 and 422 signals

If the signal out is 12v then you probably should fit a series resistor to limit the led current in the garmin's nmea input opto isolator (if its 'safe to 11v, then probably won't need more than a few hundred ohms, eg 470R).
 
Am I missing something? Why not just connect the +ve output and ignore the negative since most nmea inputs are compatible with RS232 and 422 signals

If the signal out is 12v then you probably should fit a series resistor to limit the led current in the garmin's nmea input opto isolator (if its 'safe to 11v, then probably won't need more than a few hundred ohms, eg 470R).

Yes you are missing the point entirely.
The Raymarine output has a permanently on +ve output at about 11V.
The nominally -ve output floats for OFF and goes to 0V for ON.
So your suggestion just puts permanent 11V onto the Garmin input...
(See Nigel's post #8)
 
Last edited:
Yes you are missing the point entirely.
The Raymarine output has a permanently on +ve output at about 11V.
The nominally -ve output floats for OFF and goes to 0V for ON.
So your suggestion just puts permanent 11V onto the Garmin input...
(See Nigel's post #8)

I'll get my coat..

Which Raymarine product are we talking about?

It sounds like a variation of Sealtalk. With a Shipmodul multiplexer, input 4 can read Sealtalk data - the red (+12v) line connects to the +ve input and the yellow data line connects to the -ve input. If the yellow was to float, there would be no led current, when switched to 0v, then led current flows.

http://www.thomasknauf.de/rap/seatalk1.htm

Serial Data, yellow: +12V=Idle/Mark=1, 0V=Space/Data=0, 4800 Baud, pullup circuit in each device, talker pulls down to 0V (wired OR).


So the output will float when not connected to another device as there is no pullup.
Ian
 
Which Raymarine product are we talking about?

It sounds like a variation of Sealtalk.

ST60 multi or digital (possibly others).
Nothing to do with the Sealtalk - it's an additional output switchable to be an alarm or NMEA.

586044_orig.jpg


Did somebody call? :)

It is NMEA signals, Raymarine just don't alert you to the b*st*rd voltage levels of it.
I suppose you could make it work connected to an isolated differential input (in fact that's what I created isn't it?) but Garmin are also naughty.
Neither of them complies with standard.
 
Last edited:
ST60 multi or digital (possibly others).
Nothing to do with the Sealtalk - it's an additional output switchable to be an alarm or NMEA.

It is NMEA signals, Raymarine just don't alert you to the b*st*rd voltage levels of it.
I suppose you could make it work connected to an isolated differential input (in fact that's what I created isn't it?) but Garmin are also naughty.
Neither of them complies with standard.

If its NMEA v1 then they are not in the wrong - +- 12 to 15v was allowed and nmea inputs should be okay with it but mixing v1 with V2 and later might cause a problem which is easily addressed with a resistor and 4.7v zener to clamp the signal to -.6 and +4.7 which should not 'upset' the Garmin.

There would not be any problem connected to either a single ended or differential input which used the required opto coupler as these include a diode but might be an idea to add a series resistor to limit the led current if the input is 12v.
 
It needs to be inverted as well as tamed.
Have a go with your ideas and post the results, it's great fun.

No problem. I would use an HL11 6pin dip opto schmitt, either leaving the led input floating for differential use, or not, as the case may be.

The output is inverted and being a schmitt trigger design has fast rise and fall times. It operates from 3 to 15v, the led current is 50ma max so a 470r or 1k series resistor would be fine for a 12v signal and a diode across the led input will protect against any negative voltages.

Ian
 
Top