There are lots of messages like this one floating around, but I believe mine might be a little simpler than most, so I thought some reiteration was justified.
To make Garmin Mobile PC (I have v5.60g, but I believe this should work with any version) work with the SiRFstar III GPS in the Viliv S5, follow these steps.
1: Install Garmin Mobile PC. Use the default installation settings. Do NOT run the software yet.
2: Download Franson GPSGate from - there is a 14-day free trial, and the express version (which is all you need) costs only US$12.95. The version I installed was v2.6, which was current at the time of writing.
3: Install GPSGate then run it. It will fail to find your GPS - this is normal. Click the "Advanced" button and tell it to look on COM1: at 9600bps. It will tell you that there is a valid GPS present, and if you're outside or the GPS has acquired a lock, it will tell you that it has a valid location as well.
4: Switch to the "Output" tab in GPSGate. Where it says "Select from list and click Add button", select "Virtual COM port". However tempted you might be, do NOT select "Virtual COM port / Garmin emulation". When you click "Add", it will ask you for a COM port - select COM2: and set it to 4800bps. You should now see "Virtual COM2:" in the "Active output" list, just beneath "GPSGate Direct". Close the GPSGate window, and it will minimize to your task bar.
5: That's it. Run Garmin Mobile PC and it should find your GPS on COM2. If it doesn't (and it may take a while to tell you), click the "Settings" button, click the "System" icon, then click on "Remote GPS". Select "Serial GPS", then "COM2:".
[Rant]
This silly dance is necessary because of a combination of poor design decisions by Viliv and idiotic programming by Garmin. It beggars my imagination to believe it, but Garmin Mobile PC is *hard-wired* to use 4800bps serial connections, and there appears to be *no way* to get it to use any other speed. I'm a programmer by trade, and spent some time browsing through the Garmin binaries for registry keys or commandline options that might allow you to specify other speeds, but there simply doesn't appear to be any. For reasons known only to themselves, Viliv decided to implement their GPS unit at 9600bps, a speed that apparently cannot be altered (you can use the options in the Windows device manager and it will *look* as though the speed has changed, but using a program like SiRFDemo will show that the port is still running at 9600bps, no matter what you select).
All GPSGate is doing is taking the 9600bps data from COM1 and playing it back at 4800bps on COM2: now, while I mean the Franson people no ill-will (it's a good little application and a Godsend in this instance), it simply shouldn't be necessary to use it to do this. Supporting different COM port speeds is so fundamental that I personally think Garmin have been professionally negligent by not providing the facility. Alternatively, Viliv should support port speed alteration on the device - in Garmin's very slight defense, 4800bps is the more normal convention for GPS speed.
[/Rant]
Once you've done all this, the resulting combination is *very nice*. The GPS in the Viliv acquires satellites very quickly from warm starts (less than 30 seconds usually), holds onto them well, and will even work acceptably indoors. The Garmin Mobile PC Software itself is a pleasure to use and quite pretty to look at.
It just amazes me that when the package is so good, they should allow such a basic programming bungle to ruin the out-of-box experience in this way.