Hi Everyone!
A couple of weeks ago I got an Axim X30, so I decided to buy a Pharos iGPS-500 module (or PK041 as referred sometimes). I use it with iGO, and I could say it works OK, with the exception of the well known issue - if I plug in the module before starting the iGO (or any other program that reads the GPS input) - the PDA hangs or crashes. The issue is so "popular", that the Pharos company even has a "solution" to the problem on their FAQ section. It says: "Just don't plug it in before starting the program." :approve:
Being a tecchie myself, I mailed the Pharos company and asked them to reveal the dark secret why that happens in the first place. They did not reply. Great customer support. :approve:
I did a little research and I found out that the cause of the crash is buffer overflow. Unlike a modem which "speaks" only when spoken to, the GPS starts sending an abundance of data the moment you plug it in. And besides that - it has no flow control. You could just say that it is data-incontinent.

When there is no program started to read it, the input buffer gets overflown very quickly and the whole thing hangs.
How to solve it? There is an article on the Codeproject
Serial driver for Pocket PC about making your own serial driver. Obviously, it could be modified in a way that it would use a cyclic-buffer in order to prevent the overflow. As soon as I figure out how to modify it, I'll share the solution with the rest of you.
Regards,
JonnieZG
P.S. Apparently, the problem is not related just to Axim, but the Windows Mobile 2003 OS.