Jump to content
The simFlight Network Forums
tuomas

GPSOut.dll and Garmin Aviation GPS units in FS200x

Recommended Posts

Pete

in SDK this may mean something

"Older software versions in certain devices use slightly different enumerated values for fix. The list of devices and the

last version of software in which these different values are used is:

Device Last SW Version

eMap 2.64

GPSMAP 162 2.62

GPSMAP 295 2.19

eTrex 2.10"

my gps295 has SW version 2.50 which would use slightly different enumerated values for fix.

Brent

Share this post


Link to post
Share on other sites

There is a device interface SDK doc at

http://www.garmin.com/support/commProtocol.html

I'll read thru it and see if I see any clues

I've seen all that stuff before. It's for transferring tracks, waypoints, routes and stuff like that. I don't think you will find anything in there about GPS data input, which is what you are wanting.

my gps295 has SW version 2.50 which would use slightly different enumerated values for fix.

Fixes (i.e. waypoints) are to do with plans you download to your GPS so it can follow them. All that stuff is to do with using your GPS for the purpose it was designed -- i.e. a GPS. With FS and GPSout you are only wanting to use it as a moving map, not a GPS at all. I prefer using a PC for that as the screen is bigger and clearer and there is a wider choice of maps. but some folks do want to use the GPS instead. However, this uses that GPS in "simulation" mode, wher its own GPS hardware is switched off and all you are really using is its display.

Regards,

Pete

Share this post


Link to post
Share on other sites

Pete

this is serial protocol for garmin is it any help?

If you tell me what Tuomas sent you to get the garmin 195 to work I will try to get it from garmin

Thanks Brent

Serial Protocol

The Serial Protocol is based on RS-232. The voltage characteristics are compatible with most hosts; however, the

device transmits positive voltages only, whereas the RS-232 standard requires both positive and negative voltages.

Also, the voltage swing between mark and space may not be large enough to meet the strict requirements of the RS-232

standard. Still, the device voltage characteristics are compatible with most hosts as long as the interface cable is wired

correctly.

The other electrical characteristics are full duplex, serial data, 9600 baud, 8 data bits, no parity bits, and 1 stop bit.

The mechanical characteristics vary among devices; most devices have custom-designed interface connectors in order

to meet Garmin packaging requirements. The electrical and mechanical connections to standard DB-9 or DB-25

connectors can be accomplished with special cables that are available from Garmin.

Serial Packet Format

All data is transferred in byte-oriented packets. A packet contains a three-byte header (DLE, ID, and Size), followed by

a variable number of data bytes, followed by a three-byte trailer (Checksum, DLE, and ETX). The following table

shows the format of a packet:

Table 2 – Serial Packet Format

Byte Number Byte Description Notes

0 Data Link Escape ASCII DLE character (16 decimal)

1 Packet ID identifies the type of packet

2 Size of Packet Data number of bytes of packet data (bytes 3 to n-4)

3 to n-4 Packet Data 0 to 255 bytes

n-3 Checksum 2's complement of the sum of all bytes from byte 1 to byte n-4

n-2 Data Link Escape ASCII DLE character (16 decimal)

n-1 End of Text ASCII ETX character (3 decimal)

3.1.2 DLE Stuffing

If any byte in the Size, Packet Data, or Checksum fields is equal to DLE, then a second DLE is inserted immediately

following the byte. This extra DLE is not included in the size or checksum calculation. This procedure allows the DLE

character to be used to delimit the boundaries of a packet.

3.1.3 ACK/NAK Handshaking

Unless otherwise noted in this document, a device that receives a data packet must send an ACK or NAK packet to the

transmitting device to indicate whether or not the data packet was successfully received. Normally, the transmitting

device does not send any additional packets until an ACK or NAK is received (this is sometimes referred to as a “stop

and wait” protocol).

The ACK packet has a Packet ID equal to 6 decimal (the ASCII ACK character), while the NAK packet has a Packet

ID equal to 21 decimal (the ASCII NAK character). Both ACK and NAK packets contain an 8-bit integer in their

packet data to indicate the Packet ID of the acknowledged packet. Note: some devices will report a Packet Data Size of

two bytes for ACK and NAK packets; however, only the first byte should be considered. Note: Some devices may

work sporadically if only one byte ACK/NAK packets are sent. The host should send two byte ACK/NAK packets to

ensure consistency.

If an ACK packet is received, the data packet was received correctly and communication may continue. If a NAK

packet is received, the data packet was not received correctly and should be sent again. NAKs are used only to indicate

errors in the communications link, not errors in any higher-layer protocol. For example, consider the following higherlayer

protocol error: a Pid_Wpt_Data packet was expected by the device, but a valid Pid_Xfer_Cmplt packet was

received instead. This higher-layer protocol error does not cause the device to generate a NAK.

Some devices may send NAK packets during communication timeout conditions. For example, when the device is

waiting for a packet in the middle of a protocol sequence, it will periodically send NAK packets (typically every 2-5

seconds) if no data is received from the host. The purpose of this NAK Packet is to guard against a deadlock condition

in which the host is waiting for an ACK or NAK in response to a data packet that was never received by the device

(perhaps due to cable disconnection during the middle of a protocol sequence). Not all devices provide NAKs during

timeout conditions, so the host should not rely on this behavior. It is recommended that the host implement its own

timeout and retransmission strategy to guard against deadlock. For example, if the host does not receive an ACK within

a reasonable amount of time, it could warn the user and give the option of aborting or re-initiating the transfer.

The Serial Protocol Packet ID values are defined using the enumerations shown below:

enum

{

Pid_Ack_Byte = 6,

Pid_Nak_Byte = 21

};

Share this post


Link to post
Share on other sites

this is serial protocol for garmin is it any help?

No, not at all. That, as I said in my last reply, is Garmin's protocol for transferring routes, fixes, track logs and so on. It is nothing whatsoever to do with making the GPS into a mere moving map for another GPS position source.

If you tell me what Tuomas sent you to get the garmin 195 to work I will try to get it from garmin

Did Tuomas send me something? I am at a loss to know what you are talking about I'm afraid. Can you give me a reference?

I implemented the AV400 facility in GPSout years ago. I cannot even find the original specification now. But check in the "Interface Settings" section of your Garmin manual. You'll see some definitions, like:

* Aviation In -- allows the unit to commiunicate with a Garmin panel-mounted GPS ...

* Garmin -- the proprietary format used to exchange waypoint, route, track log data ...

* NMEA -- supports the input/output of standard NMEA 0183 data ...

Of these GPSout supports the first and third. The second has absolutely no provision for driving the GPS unit as a moving map!

Regards,

Pete

Share this post


Link to post
Share on other sites

Pete

This is where I got the impression Tuomas sent you a protcol , a quote from his post 12/26/03( new post nov 15 2005)

"Someone is going to search for this stuff on the forum anyway, so I thought I'd write up some stuff so they know this stuff works

So, as of the last version or so of GPSOut, there's support for AV400 format. This is the "Aviation" format that some Garmin (and other brand) GPS units use to talk to each other. So the panel mounted unit can output the gps location, heading and airspeed etc to the other device. Handy if the other thing has a better antenna etc.. This in real life. For simulator use we have other ideas..

So, I found this document that describes this protocol, and mailed it to Pete. In short, he sent me back a test dll and it worked pretty much "out of the box" - the Garmin was convinced that FS2004 was actually a nice panel mounted GPS device instead of a $50 game. Very handy if you bought a GPS for real-life flying. "

I did find this:

Interfacing Garmin 295

the following formats are supported for connection external devices: Garmin propietary, Garmin peoprietary differential GPS(DGPS) NMEA 0183 output (version 2.30) ASCII text output, RTCM SC-104 input (version 2.0)

I noticed a few other posts where they had this gps working with GPSOUT ,and I have left messages to them, for info on how they made it work

I'll still keep looking for the golden key

Thanks Brent

Share this post


Link to post
Share on other sites

This is where I got the impression Tuomas sent you a protcol , a quote from his post 12/26/03( new post nov 15 2005)

...

So, as of the last version or so of GPSOut, there's support for AV400 format. This is the "Aviation" format that some Garmin (and other brand) GPS units use to talk to each other.

...

So, I found this document that describes this protocol, and mailed it to Pete.

Rightso that's presumably where I got the AV400 format from? This will be the document I can't find at present. But this was about two years ago -- the files (and emails) will be long deleted, maybe archived (I get about 2000 emails per week so I cannot keep them all on-line!).

Regards

Pete

Share this post


Link to post
Share on other sites

Reading my own TXT file for GPSout I see AV400 was also called ARNAV or KING format. Using Google I did find one short document, though it isn't definitive enough. Here's an extract:

ARNAV FORMAT: Aeronautical manufacturers thumb their noses at the NMEA

specification (for boats) and have no formal standard for GPS. Several

of them use a format called ARNAV, which is the same as the KING format.

APRS parses ARNAV in two ways. First, it plots any received packet

that contains the RAW ARNAV data in a packet beginning with the STX

character. It can also parse RAW ARNAV data comming in the same port

as the TNC without the packet header. For this to work, the station

must be in SPM or HSP modes and be validated for GPS. And the GPS and

TNC must be set to the SAME baudrate (4800 usually). One user says he

has to operate both at 2400 baud to make it work reliably.

The ARNAV data begins with an STX, has lots of data lines, and then ends

with an ETX. Each line of data has a single leading character that indicates

what the remaining data on the line represents. APRS will parse out the

following fields:

AN dd mmhh (North Latitude in degrees and minutes to the hundredths

BW ddd mmhh (West Longitude in degrees and minutes to the hundredths

Cccc (Course)

Dsss (Speed)

..... (other fields for E,G,I,J,K,L,M,Q,d,e, and v are given

Wxxxxx N dd mmhh W ddd mmhh +aaaa (Waypoint where: xxxxx is its name )

LAT LONG as shown

aaaa is altitude in ft)

Now the output from GPSout, set to AV400 mode, looks like this (this is an actual example with my aircraft stood on the threshold of 24L at EGCC

z00265

AN 53 209329

BW 002 165398

C237

D000

QW061

T----------

w01@

The z00265 gives the latitude in feet,

AN 53 209329 is the Latitude, N53 degrees 20.9329 minutes

BW 002 165398 is the Longitude, W002 degrees 16.5398 minutes

C237 is the track in degrees

D000 is my speed

QW061 is the Mag var 96.1 degrees West)

Now, you will note that GPSout is actually providing the latitude/longitude down to 4 decimal places of minutes (i.e. 1/10000ths instead of 1/100ths).

Now I don't know now if this is correct according to the original information I received, wherever and whenever that was. However, it doesn't accord with the data I found above, so I'm wondering now if some Garmin devices are programmed more flexibly than others, and yours is restricted to being as per the extract I found. Either that, or I have messed up the AV400 format in recent updates. :oops:

Anyway, to check please try the attached test version 2.601, of GPSout. Let me know please. If this works I'll release it generally in due course.

Regards,

Pete

GPSout2601test.zip

GPSout2601test.zip

Share this post


Link to post
Share on other sites

Pete

I know it's about 3am where you are and I just wanted to make your day as great as you just made mine!

The new mdl works wonderfull,I have all the proper data showing on the garmin 295 It even shows vertical speed, even gives warnings on airspace and restricted spaces exactly as in real flight.

I flew a mission today(real plane) and took along my gps to get used to it.I can't tell you how much it helps to be able to pratice learning all the funtions of this gps while sitting at my sim at home ,before you get in the plane.

I knew you could do it :)

THANKS AGAIN FOR TAKING THE TIME TO HELP !

Brent 1Lt CAP

Share this post


Link to post
Share on other sites

The new mdl works wonderfull,I have all the proper data showing on the garmin 295 It even shows vertical speed, even gives warnings on airspace and restricted spaces exactly as in real flight.

I flew a mission today(real plane) and took along my gps to get used to it.I can't tell you how much it helps to be able to pratice learning all the funtions of this gps while sitting at my sim at home ,before you get in the plane.

Okay, good! So it was the "over-accuracy" of the Lat/Lon. Thanks for testing. I'll release this GPSout as 2.61 officially at the beginning of December -- I've a few other updates timed for then, for other modules.

Regards,

Pete

Share this post


Link to post
Share on other sites

Pete

Just for everyones info I tried the garmin295 hooked up to my laptop computer today using the new dll and a USB to com converter and installing garmins usb drivers and it works great.

used this ini

[GPSout]

Sentences=AV400

Interval=1000

Port=COM4

Speed=9600

PosTo6Decimal=Yes

to find out which port the adaptor calls it's self I used garmins gps updater and noted which comport it seen the gps on ,this also verifies the gps and your computer is communicating

You should tell garmin about this .It makes a good training tool for anyone using their products ,maybe they would give you $$$ to let them include it with their gps info.I noticed they also have some emulators of there new gps 430,530,and 480, has anyone tried these with fs9

Brent

Share this post


Link to post
Share on other sites

You should tell garmin about this .It makes a good training tool for anyone using their products

Tuomas already told them back in 2003. The guy who helped him get me the AV400 format was quite pleased when it all worked.

Garmin is a big amorphous company. Telling one guy, even in the right department, obviously doesn't have much effect! ;-)

Regards,

Pete

Share this post


Link to post
Share on other sites

i have been reading every place i can and it looks as if i need a serial cable to connect my GPS to the computer to be used with GPSout, but the problem is that the only way i can connect my gps to the computer is through a USB Cable (as far as i know of) PLEASE HELP!!!!

Jay

Share this post


Link to post
Share on other sites
i have been reading every place i can and it looks as if i need a serial cable to connect my GPS to the computer to be used with GPSout, but the problem is that the only way i can connect my gps to the computer is through a USB Cable (as far as i know of) PLEASE HELP!!!!

As far as I know the serial drivers for USB do make USB connections look like normal COM ports to the programming interface, so I doubt that this is the problem. The problem is likely to be much more to do with the fact that the software you probably installed to handle the nornal functions of your PDA (Active Sync or whatever) is grabbing the link as soon as the device is connected and switched on.

I tried for ages to sort things out on my Ipaq and gave up. Sorry. Perhaps someone who succeeded (and I am sure there was at least one) can chip in if he sees your message -- else try to search through the forum, see if you can find who it was.

Regards,

Pete

Share this post


Link to post
Share on other sites

By the way, I luckily found the document. Pete, I sent you a private message .

It's pretty awesome how cool things can be achieved with a silly €50 game..

If the GPSMap 396 wasnt so abysmally expensive, it'd be fun to think about supporting the NEXRAD weather stuff and METAR information and the traffic display data sent from FS.. :)

But then again, one can use the nice GNS530 gauge from RealityXP and build a frontpanel bezel for it using a small LCD screen and some buttons and.. blam!

baron-gns2.jpg

I must be insane to tinker with stuff like this... :shock: 8)

//Tuomas

Share this post


Link to post
Share on other sites
By the way, I luckily found the document. Pete, I sent you a private message .

Ahthe AV400 spec? Thanks. I've downloaded it and will file it for reference.

Happy New Year to you too! ;-)

I must be insane to tinker with stuff like this... :shock: 8)

Aren't we all, just a little, at least? :-)

Best regards

Pete

Share this post


Link to post
Share on other sites

Thanks to P Dawson -- plugin looks great. I'm using it with the Garmin 396 and after a few minutes of maneuvering, the garmin seems to detach from the serial data because it just stars flying straight and level without response to maneuvering in FS2004. I have GPSOut 2.601 and my config is

Sentences=AV400

Interval=1000

Port=COM1

Speed=9600

I have to restart the 396 to get it to follow FS2004 again. Oddly, the 396 (firmware 2.70) has locked up twice while the serial data was coming in, so I'm going to try increasing the interval.

When I connect the FS PC to minicom on my laptop, the data looks like its coming faster than every 1000ms.

The next day...

I've updated the Firmware to 2.92beta and the unit seems to be following FS2004 much better. I can even pause the simulator now (396 used to keep flying straight and level).

It would be great if traffic data (TIS-like) could be output over AV400 from FS2004, but I think the GTX330 uses NMEA or something proprietary.

Thanks again Pete!

Share this post


Link to post
Share on other sites

When I connect the FS PC to minicom on my laptop, the data looks like its coming faster than every 1000ms.

The time is from the start of one message to the start of the next. At these low speeds the message itself can eat into that time enough to make it look faster. Additionally, the time will vary a little -- the FS PC is busy doing other things. The timing is based on a Windows timing system which will fluctuate a little, then, added to that, the serial port driver system is buffering. I cannot control the exact timing synchronously because that could adversely affect FS performance (inducing stutters).

If your device fails when messages are too close, increase the time a little to ensure more space.

The next day...

I've updated the Firmware to 2.92beta and the unit seems to be following FS2004 much better. I can even pause the simulator now (396 used to keep flying straight and level).

Okay, good.

Regards

Pete

Share this post


Link to post
Share on other sites

I realy hope someone can help me to get my garmin 196 work with FS.

Here what I have done:

I have put GPSout.ini and .dll into the Flight Simulator Modules

folder.

In GPS ini

Sentences=RMA,RMC,GLL,GGA

Sentences=AV400.

Interval=1000

Port=COM5

Speed=9600

PosTo6Decimal=Yes

Since my laptop ( Toshiba G20) dosent have a Seriell port and only usb I have MixW ComEmul.

Here I have set Pair # = Pair #1

First emulated port = COM5

Second emulated port COM6

The usb port that go to GPS is in comport5

In Device Manager I can see this text

Prolific USB-to-Serial Comm Port (COM5)

The gps (Garmin GPSmap 196)

Is in Simulating GPS and

Aviation IN

When I start up FS and turn om GPS notting is happen…

Can someone help me?

Sorry for my bad English…

Share this post


Link to post
Share on other sites

Sentences=RMA,RMC,GLL,GGA

Sentences=AV400

You can only have one "Sentences" parameter. AV400 or the NMEA stuff. You need to delete the one you don't need.

Since my laptop ( Toshiba G20) dosent have a Seriell port and only usb I have MixW ComEmul.

Here I have set Pair # = Pair #1

First emulated port = COM5

Second emulated port COM6

The usb port that go to GPS is in comport5

In Device Manager I can see this text

Prolific USB-to-Serial Comm Port (COM5)

Something doesn't make sense there. If you have GPSout connecting to your LapTop via COM5 which is a USB/Serial adapter, then why run MixW? You don't want that.

Where is the GPS connected? Where is FS + GPSout?

Pete

Share this post


Link to post
Share on other sites

Hello Pete

Now it works :)

I follow your tips an now it works. This is a very good training for me. Thank you.

I have many greetings from Fred Solli that tips me about you

:)

Share this post


Link to post
Share on other sites

Now it works :)

Good! Well done!

I have many greetings from Fred Solli that tips me about you

:)

Oh, right! Thanks! ;-)

Pete

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.