yashsingh1/xdaforums huggingface dataset:
[Windows Mobile Apps and Games] programatix:
Ok, got it working. From this, I understand that Garmin is expecting a certain message as a reply when Garmin tries to connect to the GPS device but your driver doesn't know how to respond when the hardware GPS has not receive a satellite lock. Am I right?

Anyway, I never have any issue starting Garmin with my Touch Pro.

Regarding the QueStub, it would be a problem if the device hang when Garmin is running (which it did just now). When this happen, the registry is not reverted back to normal. Would it be great if QueStub can detect that and revert it back to normal?

Thanks.
[Windows Mobile Apps and Games] Laos101:
your data is configured metric, got any math for customary? (Feet, Miles)
[Windows Mobile Apps and Games] Mach2003:
My Driver:

Dll loads on SoftReset (or installation), and stays resident therafter.

On Init Port (soft reset), reads registry and saves values.

On Open Port, Re-Reads registry, opens the original port, starts a thread that polls original port, and saves the GPS messages in a buffer. This thread will modify the messages if it needs to.

On Read Port, Pass the saved messages, if any, from the buffer back to the caller. These messages must have originally come from the underlying GPS driver, are are never re-sent.

IOControl and Write are passed directly to the underlying driver.

On Close, close original port.

So, no, my driver re-acts exactly like the orininal port when waiting for sat lock, it sends the nearly empty strings unaltered, back to the application.

The Garmin issue is that Mobile XT does a funny process: It opens My port when you change to it, and calls Read right away, if there is no data there waiting, or it does not like the data it sees, it reverts to the original port found in the GPSID Reg. Also if the original port was used before, it may even ignore your request to change the port without ever opening my driver port at all.

v0.6 solves this by stuffing a couple of "no sat lock" strings into the buffer on open port, so Garmin will see data right away. It also forces Garmin to wait 100 m/s before it can look for data.

QueStub changes the GPSID Reg to point to the ModDriver port instead of the original one, so that if Garmin does not like the data, it will revert back to GpsModDriver port instead of the original one.

Yes if you have to soft reset, then the External GPS port will be wrong, and all gps will be broken until you re-set it from either the control panel or registry edit. QueStub monitors using WaitForSingleOblect( Old.exe's.ProcessHandle), so as long as the process dies normally it will reset the Reg.

I could save the original values to my own Reg, and check them, both on driver start-up, and on QueStub startup, that might solve the issue.
[Windows Mobile Apps and Games] Mach2003:
The reg values are meters only, there are 1600 meters in a mile, and so 1 mph = 1.6 kph :) When I create a UI for the settings, I will allow for alternate units in it.

The GPS data is in meters and knots, as is all original GPS data, so your app will use the Gps data in any units you are used to (the gps app converts from metric).
[Windows Mobile Apps and Games] Lycox:
Awesome project man :)

Still having the same issue. Will try to reduce the LagAdvance and report later my experience ;)

Edit: An UI for chaning the values would be nice :) I saw in your first post some registry settings, which I had to add them by myself. Would be great to integrate it in the cab for non-experienced users.
[Windows Mobile Apps and Games] Mach2003:
the CAB does create the REG values for you, only the "index" value needs to be manually created if the default one is a conflict for you.
[Windows Mobile Apps and Games] Lycox:
Well I meant these reg values (I had to add the last three values manually):

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver]

"IsEnabled"=dword:1

"MaxLogFileSize"=dword:0

"CurrentLogFile"=""

"OldLogFile"=""

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers]

"InputBufferSize"=dword:0200

"OutputBufferSize"=dword:0200

"RetryWaitOnError"=dword:3

"SleepOnNoData"=dword:01f4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\GPSOneDevice]

"PollInterval"=dword:01f4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer]

"DriverInterface"="COM4:"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer\ActiveDevice]

"Index"=dword:00000004

"Prefix"="COM"
[Windows Mobile Apps and Games] Mach2003:
So it seems that ModDriver is assigned to COM1, good ( I can't see the index value in your picture). Is COM4 your original GPS data port? Before you installed ModDriver, what port did you select in your GPS program? See my message a couple of posts ago, showing where ModDriver reads the original port from your registry (or effectivly, from the External GPS control panel).

In GpsModSetup, you can change the GPSID port to the port you open original GPS data on. Make sure to save, save in order to update the driver, then re-open GpsModSetup to see if it works.
[Windows Mobile Apps and Games] temp2escape:
I'm not sure which registry is the right one. Below is the registry I've done checking.

1. HKLM\system\CurrentControlSet\GPS Intermediate Driver\Multiplexer\DriverInterface = "COM 4"

2. HKLM\System\CurrentControlSet\GPS Intermediate Driver\Multiplexer\ActiveDevice\Index = "4"

3. HKLM\SOFTWARE\Mach2003\GpsModDriver the key GpsComPort = "4"

4. Drivers\builtin\serial5 = "There is no index"

I'm using HTC Touch HD. Runned Garmin Mobile XT and it seems to be connected well to COM4. I believe that is the original GPS data port.

The GPS Mod Setup still doesnt show any activity on the main screen.

Still showing only:

Gps Live Data

Profile: Driving

What should be done?
[Windows Mobile Apps and Games] ChefChaudart:
HTC always use COM4 for GPS port.
[Windows Mobile Apps and Games] temp2escape:
This are the only setting under HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5

I noticed from other replies they have more setting than this. Is this the cause of the problem?
[Windows Mobile Apps and Games] Mach2003:
@temp2escape

First check to see if GpsModDriver.dll is actually installed in your windows folder. If not, try to install the cab again, still not there? Use the zip from first post and copy the dll from the zip to the windows folder on the phone. Soft reset, see if it works.

Next check if there is a free COM port on the phone. Use anything (HTCGpsTool will do), open COM1, 2, 3, Find the first port that fails to open. Using CeRegistryEditor (HKLM\Drivers\BuiltIn\Serial5), create DWORD value, right click, new, DWORD value. Value name: Index, Value Data: 1 (actually the free COM port number you found above). Soft Reset. See if ModSetup has live data now.
[Windows Mobile Apps and Games] _JuSteR_:
Do you know if it works with Franson GPS?
[Windows Mobile Apps and Games] JaCoL_JcL:
meh got a problem with mio p350 (Widnows Mobile 5)

on GPS mod driver settings in line:

"FIX on X of X sats"

Got a 0 sats and in some time in 2-3 sek got a 4 sats and then again a 0 sats :/

Here is a video with the problem ...

http://qik.com/video/4197265

PZL help me mach2003 ;)

TomTom don't see a GPS device/signal on GpsModDriver :/
[Windows Mobile Apps and Games] Mach2003:
Your video link gives me this:

What you are describing is poor fix. Try first using the phone with a clear view of the sky. Under some systems, that first view of the sky may require 30 minutes to download the almanac data in the sat. data stream.

I don't know of any program (like QuickGps) to speed this up with WinMo 5.
[Windows Mobile Apps and Games] JaCoL_JcL:
my bad now the video is public now check it!

and tomtom don't want to work with gpsmodsettings (COM5) is a "no GPS device found" :/

_____________

ok when i got a fix at bulid-in GPS (com2) a Gps Mod going crazy! Got a fix (N, and E sems to be OK) but in line "FIX on X of X sats"

Got a 3d Fix on 4 sats of 0 sats"

adn tomtom don't see it as a GPS device :(
[Windows Mobile Apps and Games] sonificator:
I was trying to use it on CDMA TP2 with Garmin XT. In my case everything seemed to have installed correctly, but none of the profile shortcuts were launching anything. Then the devices started freezing up. Now I am unable to uninstall it - please help.
[Windows Mobile Apps and Games] JaCoL_JcL:
to uninstal use a SK TOOLS or a Pocket Mechanic!
[Windows Mobile Apps and Games] brshop:
Anyone tested this with GpsSpot? (http://www.cradle-software.de/en/software/gpsspot)

Does the arrow show the direction while you are standing with this driver on a device with digital compass? With the original GPS drivers this application only shows the correct direction while you are moving.

Thanks

Peter
[Windows Mobile Apps and Games] barty22:
Just tried it and I can't find any way to let GpsSpot use another COM port. In order to use GpsModDriver you can try QueStub (see the first post of this thread). It was a little bit too much for me to try right now...
[Windows Mobile Apps and Games] Mach2003:
I don't know about Gpsspot, but yes the compass works while you stand still, in MOST applications. Gpsspot would need to be able to read the GpsMod com port instead of the factory one. It would also need to be able to show direction when speed is zero. Only way to know for sure is to try it.
[Windows Mobile Apps and Games] JaCoL_JcL:
here a video:

http://qik.com/video/4201433

what u think mach2003? this is when a bulidin gps catch a fix!
[Windows Mobile Apps and Games] brshop:
GpsSpot uses the GPS intermediate drivers. So you can set the COM-Port at Settings->Connections->External GPS.

To make my question more general: does this driver work with the WM intermediate drivers?

Thanks
[Windows Mobile Apps and Games] Mach2003:
you will need to install QueStub, but set the noted regy to point to gpsspot first then. GPSID needs to be set to the original port to get mod driver running, then questub changes it to mod driver's port before starting 'the' application.
[Windows Mobile Apps and Games] Mach2003:
your original gps must not send the same data strings as HTC. You could enable logging and extended, and send me a copy of the logs created at \Mach2003 on the device. I will look at them and see if I can do anything to help you out.
[Windows Mobile Apps and Games] TrYde:
Using it on IGO and it is perfect ! Thanks a lot :D

I'll try it in my car today :)
[Windows Mobile Apps and Games] temp2escape:
It works now. I copied GpsModDriver.dll to 'Windows' folder of the device (not the one in the memory card) and create the 'Index' under 'HKLM\Drivers\BuiltIn\Serial5' with the value '1'.

Tried it while driving from work today. Didn't really notice any improvement. I've used a Mitac Mio A700 before and it works fine with Garmin Mobile XT (GMXT). GPS lag wasn't an issue with it.

But I wasn't running the same version of GMXT with my current HTC Touch HD. It was version 4 I think. Now I'm running version 5.

I tried GMXT on Nokia E72 the other day (also without GPSmod installed). Does not performs well. Almost the same level as HTC Touch HD. Mitac Mio A700 is still the best.

I wished I could run a test by running GMXT on both phone at the same time. I can't. I dropped my Mitac Mio A700 recently and the memory card slot doesn't work anymore.

I'll try two more test. Playing with "lag advance" setting and install a previous version of GMXT and see if there is any difference.

Thank you very much Mach2003. Really appreciate your effort.
[Windows Mobile Apps and Games] Mach2003:
@JaCoL_JcL

I have your logs, and can see that your GPS chip acts quite different than the HTC one. As a test, please set Sleep Time (from 1000) to 1500, using GpsModSetup, settings page (be sure to save, save), and see if your data is better.

On HTC the GPS layer does not return to my driver untill a full string is available; On MIO the layer does return early, and takes an extra 300-500 ms to compose a full string. Setting sleep to 1500 should take this into account, even though it may add another 300-500 ms to your lag time.

I'll look into changing driver to do this more efficently with the next release.
[Windows Mobile Apps and Games] Mach2003:
Under no circumstances should any driver or service be installed to external memory! ALWAYS CHOOSE DEVICE MEMORY FOR INSTALLATION

Has anyone tried the 1.50 beta on a device that does NOT have a compass? Or for that matter has anyone tried the beta at all (you sure can't tell from the feedback we (don't) get here)?
[Windows Mobile Apps and Games] Caste23:
using it on Igo and it works too ! :) :)

But I use Igo8 in landscape.. how to use it in landscape ?

thanks a lot !

regards

Caste23
[Windows Mobile Apps and Games] Caste23:
Hi all,

I have a problem now... :(

After a reset , My gps doesn't work..... :(

I have no COM4 in tomtom !!?

What can I do ?

thanks....

Probleme solved ! :)
[Windows Mobile Apps and Games] Mach2003:
Happy New Year to all!

Mobile XT does not really let you select a com port. It uses the port assigned from GPSID. This is the reason QueStub is used with XT. When QueStub is installed, XT will use GpsModDriver. Without QueStub, XT will use COM4 by default.

With or without QueStub, you should be able to select the intermediate driver though, this selection uses the GPSID API calls, and does not use a COM port at all (and therefor will not use ModDriver).

"7500 Com Port", I can't help you on this one :(
[Windows Mobile Apps and Games] ATomCZ:
I tested it with iGO8 and Google Maps and it works.

It also works in

- Visual GPS

- GCzII

- GPS Tuner it's necessary set min speed to 0

Doesn't work in:

- GPS Tuner

- GeoScout

- Smart Maps

Great works! Many thanks!
[Windows Mobile Apps and Games] TrYde:
I'm using IGO in landscape mode and it works. It uses the GSensor to fix the orientation when you go from portrait to landscape.

In the car it doesn't work well as expected :(
[Windows Mobile Apps and Games] dampam:
On my HD2, without QueStub, XT would only use Intermediate driver. Is there a registry key or 2 that I can tweak so that XT will default to com 4 ?

Any HD2 user can share what you see on your XT port selection page and which com port is the GpsModDriver assigned to by default (i.e which is your first free com port on HD2) ?
[Windows Mobile Apps and Games] Mach2003:
I can tell you that barty22's HD2 defaults GpsModDriver on COM1 (he sent me plenty of log files when testing the compass api). But if you have assigned two ports to Bluetooth prior to installing ModDriver, then the first available port would be 3. All HTC devices that I ever heard of, use COM4 for default GPS port. You can see your original port under "Program Port" on the first page of "external GPS" control panel, and under a couple of GPSID regy's I have posted a couple of pages back.

try setting XT to COM4 here:

HKLM\Software\Garmin\Que: "ComPort" DWORD 4
[Windows Mobile Apps and Games] swagie:
@ Mach2003

Hy, I like what you are doing very much but have a little problem like catweazle.nl.

I have an omnia qwerty (B7610).

The following issue:

When installing your driver it works like it should work and programs can use it perfectly.

After a soft reset no connection to mod driver and no gps data in mod setup.

After reinstallation of the driver all works well again and can be used.

Any idea??
[Windows Mobile Apps and Games] Naamah:
...problem solved by myself :D
[Windows Mobile Apps and Games] Mach2003:
- Check "external GPS" control panel (all three pages).

- Check HKLM\Drivers\Builtin\Serial5 in registry when ModDriver is installed and working, re-check it again just after soft reset, compare the two. Something else may be changing the values on soft reset.

- Look for GpsModDriver.dll in the phone's \windows (after soft reset).

The popup is telling you that the driver did not load, it tells you to 'look' in registry (not to edit it). HKLM\Drivers\Serial5: DWORD 'Index' is the installed port number. You may have to soft reset.

- ModDriver must be installed in device memory.

- Phone must have a free COM port

- External GPS control panel must be prorerly setup first.

You may have to try re-installing driver after a fresh soft reset.

If you are using 1.50 beta, try manually copying the attached dll into the devices windows folder. For the raw dll from the original release, see zip on first post.
[Windows Mobile Apps and Games] rydzo:
Omnia ports for GPS Mod Driver

Hi all,

I didn't find an answer in this tread, so here is my question:

I instaled GPS mod driver on samsung Omnia i900.

after running the GpsModDriver Settings on my screan aperars:

GPS Live Data

Profile:

and thats it.

After entering the System tab i have

GpsModDriver port 1

GPSID - External GPS port 4

In External GPS settings in software i have sellected port 6 and in hardware port 9 (4800).

Which setting do i have to change in order to see data in GpsModDriver?

And afterward to use it in other programs (tomtom, visualGPS and so on)?
[Windows Mobile Apps and Games] Naamah:
Ok, I've installed the app and dll in the device memory and create the registry key.

Now the app show the correct index that are writed in the registry.

But... the Live Data page is empty... no data... no zeroes. Only the "Live Data" string in the upper left corner and the menu in the bottom.

I are sure that my GPS port is COM4 and it is right showed by the app.

For the GpsModDriver Port I've selected the COM1 because is the first port that can I open without error.

Now, what I wrong?

Re-Thanks!
[Windows Mobile Apps and Games] Mach2003:
A soft reset should change your COM4 into COM6, but you could do that yourself too.

You quoted GpsModDriver Port as COM1, use that in your GPS applications.

If you are forcing ModDriver to use a port (by setting Index), you have to set it to a port that that does not yet exist, it should give an error when you try to open it before setting ModDriver to use it. If is does open, before setting ModDriver to use that port, then some other driver is allready installed on that port. As noted before, setting index to an already used port can cause your phone to lock up, requiring a hard reset (back to last flash), it is best to remove the index value entriely, and let windows assign the first free port.
[Windows Mobile Apps and Games] Naamah:
Ok, i've reinstalled the app in the device memory, and in the registry the index key is not present, so the when I open the app i can see that the port assigned is the COM1.

The port of my internal GPS still remain the right one (COM4).

But... I still see no data.

Why?
[Windows Mobile Apps and Games] swagie:
Mach2003,

As you said I checked aal the items and they do not change in any way.

I noticed when reinstalling that you driver triggerd an GPRS connection on first time entering the config panel only.

Maybe this helps in finding the problem.

Would it be possible to enter a switch option in the system menu for an timer that keeps the gps port open when there is no connection by a programm to your mod driver.

I am using a geocaching programm that pols every 10 sec. or so the gps. The programm has no option to keep the connection to the gps open permanently. So a time out setting in your driver would help solve this problem since my programm can't get a valid fix in the short time it's connected to your driver.

Maybe this could help other users as well with dieefrent programms then mine.

I'm willing to use my device as beta tester if you want.
[Windows Mobile Apps and Games] Junoman:
Excellent work mate...!

Cheers'

J.
[Windows Mobile Apps and Games] :
@Mach2003

the ModDriver by default gets registered with [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5]. IMO not a good idea because nowadays devices having Bluetooth on board occupy this key already:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5]

"DeviceArrayIndex"=dword:00000005

"Prefix"="COM"

"Dll"="BtCeIf.dll"

"Order"=dword:00000000

"Index"=dword:00000005

"FriendlyName"="Bluetooth Serial Port COM5:"

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial6]

"DeviceArrayIndex"=dword:00000006

"Prefix"="COM"

"Dll"="BtCeIf.dll"

"Order"=dword:00000000

"Index"=dword:00000006

"FriendlyName"="Bluetooth Serial Port COM6:"
[Windows Mobile Apps and Games] Naamah:
No idea about this? I must to set any data on my PDA? (like GPS hardware and software port?)

In this case I see that the software port is 4 and the hardware port is not setted (only the baud rate is set to 4800), as the defaults value of my HD2.
[Windows Mobile Apps and Games] Mach2003:
The index value is created when the driver loads for the first time. You still have an install issue of some sort.

Have you soft reset the phone since installing ModDriver?

Try re-installing again.

Try copying the dll manually to the \windows folder.

There is no DATA, INTERNET, or anything like it in ANY of the apps or drivers I have posted here. If you get a GPRS data request, then it is not coming from my software. You may have enabled AGPS that uses a data connection on GPS port open.

I will consider adding a 'keep alive' timer to driver for a future update.

You could enable logging and then inspect the ModDriver.txt file in \Mach2003 to get an idea of what is happening on soft reset.

That's not fair, they stole my key! Actually I stole the key from the person who posted the serial driver I used as a template, By the way, both the devices I have (TyTn and Diamond) have bluetooth, and do not have those keys.

I will change it in the next update, thanks for this.
[Windows Mobile Apps and Games] Mach2003:
HTC devices do not use the hardware port in external gps control panel, it needs to be left empty. The baud rate on this page is ignored as well. Software port is used, COM4 is standard, GpsModDriver will read GPS data from the 'software port'.

Normally you do not need to set anything to install and use ModDriver.

Does your phone have bluetooth ports already installed under serial5 key (as posted by jwoegerbauer)?
[Windows Mobile Apps and Games] swagie:
@ Mach2003

I solved the problem. It is a but in the stock rom version.

I an now running a custom rom from another forum and now your driver keeps on working after the soft reset.

Thanks for the support so far and keep up the good work.

YOU ARE MAKING A LOT OF PEOPLE HAPPY!!!
[Windows Mobile Apps and Games] dampam:
Hi March2003

Thanks for the information. This is weird, the 2 bluetooth ports (com1 and 2) seems to be assigned by XT as I did not assigned (and not sure how to) these to any other applications.

Any idea how can I free up these 2 ports ?

I am running on HD2 stock rom.

I may be a bit off topic but any advise will be appreciated.
[Windows Mobile Apps and Games] Naamah:
I have Serial1 and Serial2 as Bluetooth port, in my registry, and Serial5 as GpsModDriver.
[Windows Mobile Apps and Games] Mach2003:
XT does not create these ports. Look in your bluetooth setup to see if there are any incomming or outgoing COM ports assigned. Your system needs a driver to provide this functionallity (if you ever want to use Bluetooth Active Sync, Gps, ... ). One port reserved for Bluetooth may be enough.

To remove them, rename the dll to something else (it will be a hidden file in the windows folder). Soft reset, and then remove the values from those keys. You won't be able to remove the key itself (protected), but removing all the values will disable the attempt to load the dll (that no longer exists).

I have no idea if your system will re-create these keys, so I'd delete one set, and soft reset, to see if it comes back.
[Windows Mobile Apps and Games] JaCoL_JcL:
BTW is there any COM port manager for Windows Mobile?
[Windows Mobile Apps and Games] Lord.Nibbler:
Hi Mach2003,

I've just discovered your GpsModDriver and I must say it's awesome with the compass data inserted in GPS messages for geocaching or hiking apps :) :cool:

Yet as there are two profiles "Driving" and "Walking" have you ever thought to assign a separate COM port for each profile ?

This way one could set "Driving apps" to "Driving COM port", walking & geocaching apps to "Walking COM port" and wouldn't need to switch profiles no more when going from an app to another :cool:

Cheers,

Nibbler