Standard Horizon GX2200E does not output Lat/Long correctly

andyp

Well-Known Member
Joined
22 Oct 2009
Messages
88
Location
Gosport
Visit site
I have bought a SH GX2200E Matrix VHF for my new yacht. It is a great bit of kit with AIS/DSC and built-in GPS.
My only problem is trying to output Lat and Long in an NMEA GLL sentence - I can't get my Shipmodul Miniplex-2 multiplexer to recognise this as valid.
The GSA and GSV (satellite status) sentences are fine so I know the connection settings are correct. The VDM messages for AIS targets are also correctly output.
I have been through all the setup settings to turn NMEA sentences on and off and change baud rates but to no avail.

When I set the Multiplexer input to Plain Text (not NMEA) I can see it receives a GLL sentence as shown below but this is rejected as incorrect. I think it is because there are 4 decimal places after the Lat and Long minutes?? All of the online NMEA sentence definitions I have surfed show GLL with only 2 decimal places of Lat and Long.

$GPGLL,5047.3436,N,00107.1963,W,180340.000,A,A*4A

I am asking both Shipmodul and Standard Horizon support staff for help but wonder if any of you have tried to interface these great pieces of kit.

Thanks

Andy
 
I think you are very likely to be correct about the sentences being rejected by Shipmodul Multiplexer. NMEA implementations are often rather sloppily programmed, for instance the Euronav SeaPro plotter is incredibly pickky and rejects sentences which are acceptable to other plotters such as 'SeaClear', but which of the two (if either!) is correct I don't know.

However two places of decimals in the minutes is not the limit, and indeed SiRF based chipsets output three as standard (here's an example from a SiRF III chip-set: $GPGLL,5214.116,N,00008.293,E,115805,A*26).

I think that the reason is that the administrators of the NMEA standard do not publish a proper definition, or at least make it very expensive to get hold of, so programmers instead turn to such uncontrolled sources as http://gpsd.berlios.de/NMEA.txt. But this document, although extremely helpful, is not the standard and is not written precisely enough, probably to avoid copyright problems. For instance in it the GLL sentence is defined like this:

=== GLL - Geographic Position - Latitude/Longitude ===

------------------------------------------------------------------------------
1 2 3 4 5 6 7 8
| | | | | | | |
$--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,a,m,*hh<CR><LF>
------------------------------------------------------------------------------

Field Number:

1. Latitude
2. N or S (North or South)
3. Longitude
4. E or W (East or West)
5. Universal Time Coordinated (UTC)
6. Status A - Data Valid, V - Data Invalid
7. FAA mode indicator (NMEA 2.3 and later)
8. Checksum


which implies, as you say, only two places of decimals, but elsewhere in the same document it shows three being used:

Where a numeric latitude or longitude is given, the two digits
immediately to the left of the decimal point are whole minutes, to the
right are decimals of minutes, and the remaining digits to the left of
the whole minutes are whole degrees.

Eg. 4533.35 is 45 degrees and 33.35 minutes. ".35" of a minute is
exactly 21 seconds.

Eg. 16708.033 is 167 degrees and 8.033 minutes. ".033" of a minute is
about 2 seconds.


What beats me is that there is no advantage at all in programming receivers to be pickky. Good practice is to code transmitters to be absolutely squeaky-clean so far as adherence to a standard is concerned, but to make receivers as tolerant as possible. The correct way imho to receive NMEA sentences is to use a format specifier which can cope with a variable number of decimal points, like this snippet of a parser I wrote some time back (I looked for the RMC sentence as I also wanted time):

// $GPRMC,115807,A,5214.116,N,00008.293,E,000.0,360.0,020704,003.2,W*6F
char gps_format_string[] = "$GPRMC,%d,%1c,%f,%1c,%f,%1c,%*f,%*f,%d,%*[^*]*%x";
...
sscanf(buffer, gps_format_string, &time, fix_status, &latitude, latside, &longitude, longside, &date, &checksum);


Not that this helps you much unless you can get the Shipmodul manufacturer to update their firmware for you. Good luck and keep us posted!
 
I have bought a SH GX2200E Matrix VHF for my new yacht. It is a great bit of kit with AIS/DSC and built-in GPS.
My only problem is trying to output Lat and Long in an NMEA GLL sentence - I can't get my Shipmodul Miniplex-2 multiplexer to recognise this as valid.
The GSA and GSV (satellite status) sentences are fine so I know the connection settings are correct. The VDM messages for AIS targets are also correctly output.
I have been through all the setup settings to turn NMEA sentences on and off and change baud rates but to no avail.

When I set the Multiplexer input to Plain Text (not NMEA) I can see it receives a GLL sentence as shown below but this is rejected as incorrect. I think it is because there are 4 decimal places after the Lat and Long minutes?? All of the online NMEA sentence definitions I have surfed show GLL with only 2 decimal places of Lat and Long.

$GPGLL,5047.3436,N,00107.1963,W,180340.000,A,A*4A

I am asking both Shipmodul and Standard Horizon support staff for help but wonder if any of you have tried to interface these great pieces of kit.

Thanks

Andy


Does the GX2200 not output the RMC sentence as well? If so, just filter out the GLL one in the Multiplexer config, assuming it transmits RMC correctly!

RMC - Recommended Minimum Navigation Information (GPRMC)

12
1 2 3 4 5 6 7 8 9 10 11| 13
| | | | | | | | | | | | |
$--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a,m,*hh<CR><LF>

Field Number:
UTC Time
Status, V=Navigation receiver warning A=Valid
Latitude
N or S
Longitude
E or W
Speed over ground, knots
Track made good, degrees true
Date, ddmmyy
Magnetic Variation, degrees
E or W
FAA mode indicator (NMEA 2.3 and later)
Checksum

This is apparently the correct format for GLL:

GLL - Geographic Position - Latitude/Longitude

1 2 3 4 5 6 7 8
| | | | | | | |
$--GLL,llll.ll,a,yyyyy.yy,a,hhmmss.ss,a,m,*hh<CR><LF>

Field Number:
Latitude (as you say, only 2 digits after the dec point)
N or S (North or South)
Longitude
E or W (East or West)
Universal Time Coordinated (UTC)
Status A - Data Valid, V - Data Invalid
FAA mode indicator (NMEA 2.3 and later)
Checksum
 
Does the GX2200 not output the RMC sentence as well? If so, just filter out the GLL one in the Multiplexer config, assuming it transmits RMC correctly!...

I think it highly likely that the title of this thread should be "Shipmodul multiplexer does not read Lat/long correctly". So although worth trying the RMC sentences are equally likely to be parsed incorrectly.
 
I think it highly likely that the title of this thread should be "Shipmodul multiplexer does not read Lat/long correctly". So although worth trying the RMC sentences are equally likely to be parsed incorrectly.

I use a Shipmodul 2 USB and a Lite version before that and had no problems at all with any equipment including a Navicom RT650 AIS/VHF, (which admittedly doesn't have a GPS built in)
 
I've just noticed that my Airmar GPS/compass sensor also outputs the lat/lon with 4 decimal minutes digits (its not yet been installed). I did give it a quick try with my Shipmodul multiplexer and no data was being sent but I put this down to a connection issue (the Airmar has differential output but I had the wires reversed, - I didn't realise at the time of the testing)

I will try it again, weather permitting, tomorrow and let you know whether I have the same issue.

Ian
 
Thanks Ian and jdc for your comprehensive inputs.

I have been back to the boat today and realise all is actually OK.

I had missed the fact that the multiplexer was selecting one GPS input only to process as a priority with the second only monitored as a backup.

When I only powered up the VHF as a GPS source then all sentences were present GSA, GSV, GLL and RMC.

Then when the Raymarine GPS was powered up the multiplexer selected this signal to output and blocked the GLL and RMC from the VHF.

Sorry for any confusion and wasted time for other forumites. The GX2200E is still a great bit of kit and I am sure I am only just scratching the surface!

Andy
 
Thanks Ian and jdc for your comprehensive inputs.

I have been back to the boat today and realise all is actually OK.

I had missed the fact that the multiplexer was selecting one GPS input only to process as a priority with the second only monitored as a backup.

When I only powered up the VHF as a GPS source then all sentences were present GSA, GSV, GLL and RMC.

Then when the Raymarine GPS was powered up the multiplexer selected this signal to output and blocked the GLL and RMC from the VHF.

Sorry for any confusion and wasted time for other forumites. The GX2200E is still a great bit of kit and I am sure I am only just scratching the surface!

Andy
Thanks for the update. At least I know I won't have a problem with my Airmar sensor.
Ian
 
Top