Newsgroups: sci.geo.satellite-nav Path: unixg.ubc.ca!news.mic.ucla.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!solaris.cc.vt.edu!uunet!psinntp!psinntp!anasaz!chad From: chad@anasazi.com (Chad R. Larson) Subject: Magellan Trailblazer data interface (repost, sorta) Message-ID: <1994Oct25.001115.19596@anasazi.com> Sender: usenet@anasazi.com (Usenet News) Organization: FDC Anasazi, Inc. Phoenix, Arizona USA Date: Tue, 25 Oct 1994 00:11:15 GMT Lines: 431 > From: "Dale G. Smith" > From: Conrad Foster > From: Paul Opitz > From: Frank G. Liu > > Could you please email me copies of those articles? I have been getting enough e-mail requests for the Magellan Trailblazer data interface information I posted a while back that I think I'll repost the information. If y'all believe this is an inappropriate use of net bandwidth, please let me know. Attached is sort of a concatenation/digest of the articles posted here over the past couple of months. I hope they help you. -crl -- Chad R. Larson "I read the news today, oh boy!" -- John Lennon (602) 870-3330 ...!attmail!anasaz!chad chad@anasaz.UUCP chad@anasazi.com Anasazi, Inc. - 7500 North Dreamy Draw Drive, Suite 120, Phoenix, Az 85020 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= I got my copy of the "National Marine Electronics Association Standard for Interfacing Marine Electronic Devices - NMEA 0183 Version 2.00" dated January 1, 1992. You would be amused to see all the things they have message formats ("sentences") defined for. GPS satellites in view, for example, with elevation, azimuth and S/NR for each one. Or the GPS almanac data. Or mundane stuff like rudder sensor angle. Anyway, the Trailblazer can be configured to emit one of three different sets of sentences. Set "A" is comprised of APA, GLL, BWC, VTG. Set "B" is RMC and RMB. Set "C" is GLL, APB, GGA, VTG and BWC. Those sentences are: APA - Autopilot A Format. "Not recommended in new designs." APB - Autopilot B Format. BWC - Bearing and Distance to Waypoint GGA - Global Positioning System Fix Data GLL - Geographic Position in Latitude/Longitude RMB - Recommended Minimum Navigation Information RMC - Recommended Minimum Specific GPS Data VTG - Track Made Good and Ground Speed For my purposes, set C is going to be the preferred one. Set B (the recommended minimums) is the NMEA's attempt to force a common ground between different manufacturers, and has some useful information such as both the origin and destination waypoints. But it is mutually exclusive to set C, which has a lot more information. Set A seems mostly for support of older boat steering equipment. -------- The data interface to the Magellan consists of a 6-pin molded connector that mates with the socket on the back of the unit. A six foot cable runs from the connector to a plastic module. From the other side of the module (which is glued shut) is a one foot pigtail with six wires. The six wires are designated external power (red/black), NMEA data out (brown/orange) and "reserved for future use" (yellow/white). They are very proud of this interface; list price is $46. I'm tempted to try to break into the plastic module to see how hard it would be to build my own. I'd like to have a permanent interface in both my car and my airplane. Do you suppose anyone would like to chip in to buy a sacrificial lamb? There is no direct electrical path through the module on any of the pins; there's at least a semiconductor junction (or more) drop on all of them. That didn't surprise me on the power leads; I expected some voltage regulation if nothing else. Input voltage is allowed to be from 9 to 16 VDC. I don't know what else is done on the data leads. The NMEA specifies the interface to compatible with RS-422 differential with a minimum voltage swing of 2.0 volts. A listener shall not take more than 2.0 mA from the line. I would think that could all be done in the Trailblazer. The module must be providing some isolation or protection functions. According to my 'scope, the data leads swing 4.5v between mark and space. This makes sense, given the 3 AA cells in the battery pack. However, that voltage swing doesn't change at all when the unit is connected to external power. In order to connect this to an RS-232 (read "laptop computer") interface correctly will require additional circuitry. RS-232 wants a swing of at least 6 volts, plus/minus 3 volts around the reference ground. Further, a signal transiting into that 6 volt "undefined" region without exiting the other side is deemed to have not changed. I will probably build a small box that has a DB-25 connector on it, takes a coaxial power plug so any Radio Shack power adaptor and/or cigarette lighter cord can power the Trailblazer and the new interface circuit and clamp it with strain relief onto the pigtail. Dallas Electronics makes a chip that has CMOS compatible inputs and incorporates a charge pump so it can provide legal RS-232 output from a positive-only power supply. One of those puppies (and maybe a fuse) ought to do it. But if you're willing to fudge on the "correctly" part... The 0183 specifies the data format to be 4800 baud, 8 bits, no parity, one stop bit per character. All data will be ASCII characters with a zero in the high order bit position. I connected the NMEA "B" (brown) lead to the signal ground pin and the "A" lead (orange) to the received data lead on my laptop. I fired up Procomm at 4800/8/1/N and got error-free data. I'd guess the Toshiba laptop RS-232 receiver may have the neutral zone biased at zero volts instead of surrounding it. This would definately be a "your milage may vary" situation. I think I can live with it until I get the little box built. The Trailblazer only transmits if it has a valid lock. That is, instead of sending sentences with the "valid data" flags off, it just sends nothing. That will make it a little harder to decide if you're not getting good logging because the Trailblazer has lost signal, or you've just managed to pull the cable loose. Oh, well. An external power quirk: If external power is present when the unit is turned on, it shows "EXTERNAL POWER" on the display. If it is not, the display shows "BATTERY POWER". If external power is presented after the unit is turned on it transitions to the external source, but if external power is removed while the unit is running it does not transition to battery but instead shuts down. -------- As mentioned in the earlier post the Magellan Trailblazer did successfully drive the COM1 port on my Toshiba T1000SE laptop, but only because of tolerance on the part of the Toshiba. The output of the Trailblazer isn't close to RS-232. It isn't RS-422 either, although that's what is called for in the NMEA 0183 specification. Quoting: The drive circuit used to provide the signal "A" and the return "B" shall meet, at a minimum, the requirements of EIA-422-A (December 1978). And: The idle, marking, logical "1", OFF or stop bit state is defined by a negative voltage on line "A" with respect to line "B". The active, spacing, logical "0", ON or start bit stat is defined by a positive voltage on line "A" with respect to line "B". What my 'scope shows is 0v for mark, and +4.5v for space. That doesn't get the plus/minus swing needed for a computer, either RS-232 for a PC or RS-422 for a Mac. I received e-mail from someone who tried to connect a Magellan Meridian (a close relative to the Trailblazer) to his Mac, figuring RS-422 is RS-422; he failed and that is why. The Magellan folks have an out, however. Quoting again from NMEA 0183: For reasons of compatability with equipment designed to earlier versions of this standard, it is noted that the 'idle, marking logical "1", OFF or stop bit state' had previously been defined to be in the range of -15 to +0.5 volts. The 'active, spacing, logical "0", ON or start bit state' was defined to be in the range +4.0 to +15 volts while sourcing not less than 15 mA. So as long as they have sufficient current drive, they can claim have built against an older version of the standard. Be that as it may. I'm gonna build an box to interface their interface to "real" RS-232. Modern electronic parts should make this pretty simple. Maxim makes a part (the MAX233) which is takes a +5v (only) supply and eats TTL or CMOS logic input levels, and outputs valid RS-232 complete with plus/minus 10v levels. It pays attention to all the other RS-232 specs with regard to voltage slew rates and loads presented by powered off equipment and the like. They have two inverting transmitters. They have two inverting receivers (RS-232 in, TTL out) as well, and they're under $8 here in Phoenix in onesies over the counter. A note on the receivers: They have +0.8v as the switching threshold, ostensibly so unconnected leads will be forced high (useful for things like DSR or DCD). This means, however, that they will also eat the Trailblazer's output perfectly. Cool, because we need a non-inverting driver to keep the mark/space sense correct. So, I connect the Trailblazer to one of the MAX233 receivers, the output of that receiver to one of the transmitters, and the output of that transmitter to the Received Data pin on a DB-25. Add a 7805 regulator to get the +5v for the VCC on the chip, a fuse, a cigarette lighter plug, some wires, connectors and a box with strain-relief on the wires and we're in business. Time for a parts run. I'll let you know how it works out. -------- Here's an excerpt from a log of the output of my Magellan Trailblazer: $GPGLL,3337.190,N,11158.430,W,104432.686,A $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 $GPGLL,3337.190,N,11158.430,W,104435.122,A $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T $GPGGA,104435.12,3337.19,N,11158.43,W,1,06,4.5,,,,,, $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K $GPBWC,104435.12,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 The "C" set of messages was selected from the AUX screen. As you can see, there are five sentences in the C set, and they are emitted approximately every two and a half seconds. How about a breakdown? I thought you'd never ask. First, the general format of the sentences is that they will contain only ASCII printable charcters, they start with a '$' and end with a CR/LF pair. NMEA 0183 specifies some optional fields, such as a checksum; Magellan did not implement them and we will not discuss them further. Each field is delimited by a comma. Fields should be located by counting the delimiters. Null fields are represented by nothing, that is, a ",," means no data for that field. After the '$' are two characters identifying the talker type. In our case, that is GP for Global Positioning System (GPS or NAVSTAR). There are 36 other talkers defined in the standard, such as LC for Loran C and OM for OMEGA. But this is a Magellan, so GP it is. Then there are three characters which identify the sentence format, and after that are data fields dependent on the sentence type. The standard also discusses the format of types of fields, such as leading zeroes and number of decimals. Again, we will ignore the optional and just describe the Trailblazer's format. And, finally, there are 54 sentence formats in the current standard plus 64 more that are defined but "not recommended for new designs". We're only going to cover the 5 in the Magellan "C" set, but you'll get the style. Ok, in the order we see them: $GPGLL,3337.190,N,11158.430,W,104432.686,A ++- Global Positioning System talker $GPGLL,3337.190,N,11158.430,W,104432.686,A +++- Geographic Position - Latitude/Longitude $GPGLL,3337.190,N,11158.430,W,104432.686,A ++++++++- Latitude in form DDMM.MMM, that is Degrees, Minutes and hundredths of minutes. $GPGLL,3337.190,N,11158.430,W,104432.686,A +- North Latitude ('S' for south) $GPGLL,3337.190,N,11158.430,W,104432.686,A +++++++++-+- Longitude E/W $GPGLL,3337.190,N,11158.430,W,104432.686,A ++++++++++- Universal Time Coordinated (UTC) of position as hhmmss.sss $GPGLL,3337.190,N,11158.430,W,104432.686,A +- Status (A = valid data, V = invalid data) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +++- Autopilot format "B" $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- Status (A = OK, V = fix is not available) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- Always A for GPS, shows cycle lock status for Loran-C $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +++- Magnitude of cross track error $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- Direction to steer (L/R) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- cross track error units (Nautical Miles) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- Status (A = arrival circle entered) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- Status (A = perpendicular passed at waypoint) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T ++++- Bearing, origin to destination $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +- M or T (Magnetic or True for bearing) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T +++- Destination waypoint ID $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T ++++-+- Bearing, present position to destination (M/T) $GPAPB,A,A,0.0,R,N,V,V,86.8,T,001,86.9,T,86.9,T ++++-+- Heading-to-steer to destination (M/T) $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, +++- Global Positioning System Fix Data $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, +++++++++- UTC of position $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, +++++++-+- Latitude - N/S $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, ++++++++-+- Longitude - E/W $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, +- GPS quality indicator 0 = fix not available or invalid 1 = GPS fix 2 = Differential GPS fix $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, ++- Number of satellites in use $GPGGA,104432.69,3337.19,N,11158.43,W,1,06,5.1,,,,,, +++- Horizontal dilution of precision (HOP) $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K +++- Track Made Good and Ground Speed $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K +++-+- Track in degrees true $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K +++++-+- Track in degrees magnetic $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K +++-+- Speed in Knots $GPVTG,0.0,T,347.6,M,0.0,N,0.0,K +++-+- Speed in Kilometers/hour $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 +++- Bearing and Distance to Waypoint $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 +++++++++- UTC of observation $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 +++++++-+- Waypoint Latitude - N/S $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 ++++++++-+- Waypoint Longitude - E/W $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 ++++-+- Bearing to waypoint, true $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 ++++-+- Bearing to waypoint, magnetic $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 +++-+- distance, nautical miles $GPBWC,104432.69,3337.36,N,11154.54,W,86.9,T,74.6,M,3.2,N,001 +++- Waypoint ID If you made it this far, you'll have noticed a serious set of redundancy in the sentence formats. For example, given the GGA sentence the GLL sentence is completely unneeded. I'm sure this is to accomodate as many different listeners as possible, each listening for whatever they understand. Also of interest: the Magallen doesn't emit the BWC sentence if there is no route currently active. The two fields following the HOP in the GGA sentence are supposed to contain the Antenna altitude above/below the geoid (mean-sea-level). I've not seen the Trailblazer fill in those fields, even when an altitude was being reported on its screen. Bug? The other trailing null fields in the GGA sentence would contain things like the age of differential data and differential station id, if the Trailblazer knew about such things as differential GPS. The difference between bearing to waypoint and heading to steer in the APB sentence is supposed to allow the receiver to factor out the effect of drift due to air/water flow. I guess I'll have to wait until I get this whole sheebang into my airplane to find out if the Trailblazer ever puts anything different in those two fields. The VTG sentence as logged shows the receiver isn't moving. Hey, the receiver and computer were sitting out on my patio. Waypoint 001 was the Scottsdale Az airport. -------- In article <1994Jul23.201507.13984@anasazi.com> I wrote: +--------------- | The two fields following the HOP in the GGA sentence are supposed to | contain the Antenna altitude above/below the geoid (mean-sea-level). | I've not seen the Trailblazer fill in those fields, even when an | altitude was being reported on its screen. Bug? +--------------- I called Magellan technical support, and asked about this. Although the guy I talked to seemed interested and understood my question and asked for my phone number, he has not called back as yet (four days later). Another quirk: No matter what you select for a route or destination waypoint, the waypoint id in the BWC sentence is always "001". The other numbers in the sentence change appropriately. This means if you are trying to match up a waypoint in the unit with some sort of waypoint database on your computer, you'll have to match on the waypoint lat/long, not the id. -------- I called Magellan again two weeks later. I got the same guy in tech support. He professed to not remember anything about my earlier call, but this time he knew some answers. Hmmm... Anyway, he said that the lack of altitude output was the way it was supposed to work. The software that generated that sentence came directly from the Meridian, which was intended for the marine crowd. They're always at sea level, don'tcha know. Also, the waypoint identifier =is= always 001. Just a place-holder in their view. He did say that the Meridian and the Trailblazer were being set up so they could diverge as products. Seperate part numbers for the firmware and stuff like that. He suggested I might want to write the product manager for the Trailblazer (who is a different guy than the manager for the Meridian now) to suggest any changes I'd like to see. No idea about retrofits, however. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -- Chad R. Larson "I read the news today, oh boy!" -- John Lennon (602) 870-3330 ...!attmail!anasaz!chad chad@anasaz.UUCP chad@anasazi.com Anasazi, Inc. - 7500 North Dreamy Draw Drive, Suite 120, Phoenix, Az 85020