yashsingh1/xdaforums huggingface dataset:
[Windows Mobile Apps and Games] IIIIIChrisIIIII:
I've checked your speed calculation and have observed that your calculation causes a fluctuation every 2 seconds. This is because you are raising the difference of the calculated speed with your last measured speed at factor 2. That means when a measured acceleration occures you're rising it at factor 2. So next time (t+1) your last calculated speed is the measured speed at t+1 (under assumption of a linear acceleration). But that means the acceleration at time t+1 = 0. (look at the attachment, that picture can say more than 1000 words ;))

I've developed a formula for speed s that smooths that fluctuation of acceleration by holding your speed corrections:

s=a*c-lms

where

a=ms-lms //measured acceleration

and

ms = measured speed = ((received GPS position at t2) - (received GPS position at t1))/(t2-t1)
lms = last measured speed = ((received GPS position at t1) - (received GPS position at t0))/(t1-t0)

and

c is a constant factor. I've choosen 1,5 but it can be left on your factor 2, too.

I don't know if it will really help because, like i've told you in my previous post, i don't understand your formula for building the new distance...

EDIT: I've just seen, the attached file has been reduced ... so here is another try:
[Windows Mobile Apps and Games] axl30:
a best explanation could not be given!
[Windows Mobile Apps and Games] tcchuin:
how to know if my garmin works with this driver?
[Windows Mobile Apps and Games] IIIIIChrisIIIII:
Read the thread and/or install the driver and check it out!

But probably it will work...
[Windows Mobile Apps and Games] frankkk:
uninstalling 0.9

So DOES installing RC3 over 0.9 replace the dll in the windows dir and work well? I noticed the GPSmod driver on com1 has disappeared so i used com4 (?)

I don't want to buy SKtools just for uninstalling this (I use Resco explorer for register editing) and I certainly don't want to hard reset.

Do I have to remove the serial5 registry entries now or are they useful for something else also?

Thanx for the good work though, your driver improves a lot :cool:
[Windows Mobile Apps and Games] oruam57:
I tried but instabilities and occasional course "flips" remained, albeit a bit less frequent.

I confirm best results with EnableCourse = 0 and EnableSpeed = 1

Note that I'm not criticising driver working, lag compensation is very good. With my hardware/software/usage pattern (Diamond2/TomTom/car driving) combination I did not notice problems related to speed and course "freezing" so I am perfectly satisfied with keeping that part of the driver inactive.
[Windows Mobile Apps and Games] Mach2003:
You *must* have another app holding the port open at the time, there may be cases where the driver holds the port open after the application has closed it. Try running virtcom right after a soft reset.

The fact that you could not re-open the port is also the reason you could not un-install the driver.

The serial5 keys are of no use when GpsModDriver is not installed, remove all that you can from here. Same goes for the Mach2003 keys.

I'll revisit the setup.dll in RC3 to see if there is an error, or patch that can be done.

Try EnableSpeed=0 for a bit, and report the difference in speed then. Or use a clock and known distance (speedometer check road) to see what tye correct speed is at the time. Perhaps I am indicating the incorrect speed,, although in my testing, I indicate a speed only slightly less than my vehicle's speed.
[Windows Mobile Apps and Games] Mach2003:
I'll look again at my speed, and double check with your calcs.

There is no 'Constant' in my math.

My posted speed calc is reduced from several items. The 7200, is doubled because of an earlier "average" (n/2)/3600 = (n/7200).

I applied speed this way:

Previous pass:

lspd = 0 kph, stopped

Next pass (1 second later)

Distance traveled = 27.78 meters (all I have to work with)

aspd = 27.78/1sec = 100 kph.

cspd = (2*aspd-lspd)=200, assume linear acceleration we must now be going 200 to have averaged 100 during the previous second.

Now calculate what our speed will be in another second (Assume LagAdvance is 1000)

acc=cspd-lspd/1second=200

fspd=cspd+acc, 200 + 200 = 400.

dms = Time in millisec Passed since previous reading
dist = Meters travelled since last reading

aspd = (dist * 3600.0) / dms;	// meters per millisec to km/h
speed = (2.0 * aspd - LastSpeed);	// current speed from average speed

// Save and Use speed or aspd, depending on EnableSpeed==(1 or 2)
CurrentSpeed = FutureLastSpeed = ((EnableSpeed==2) ? aspd: speed;

// Calculate the Distance we will travel in LagAdvance Millseconds
// Future speed is not needed...
/*
fspd = speed * 2.0 - LastSpeed);
aspd = (speed + fspd) / 2;
dist = aspd * 1000.0 / 3600000.0 * LagAdvance;
*/

dist = (speed * 3.0 - LastSpeed * LagAdvance / 7200.0;

Now, I'd be glad if you could point out my error(s)!
[Windows Mobile Apps and Games] IIIIIChrisIIIII:
Before we missunderstand each other, cspd = (2*aspd-lspd)=200 is your assumed speed at time t1. And aspd is the uncorrected speed calculated through received data from GPSID. Is that correct?
[Windows Mobile Apps and Games] maair:
Hi , I can upgraded and this is the test result. :) Using RC3 version.

Today I've drive about 400km using TomTom and the position is right. No position lag or spinning anymore.

But sometimes the position is jump to another lane while I stop at red light and TomTom always recalculate the route.

And one problem is speed that shown in TomTom is not actually right. It always move up and down even I tried to drive steady.
[Windows Mobile Apps and Games] Mach2003:
No, cspd is the Current Speed. aspd is the average speed during the last pass (second).

Added: lspd is reported speed last pass (a second ago), remember we don't need future speed in the end, only future position, and future position only needs "how far will we travel, and in what direction will that be".
[Windows Mobile Apps and Games] Mach2003:
Added to Post 1:

For the time being - Always soft reset just before un-installing or upgrading the dirver

This should avoid the "stuck open/open" port issues until I have a chance to look into it.
[Windows Mobile Apps and Games] wandel:
Hello...any body home?))
[Windows Mobile Apps and Games] praveenreddy:
wiill it foe lg fathom
[Windows Mobile Apps and Games] andrej_:
With default settings navi-apps constantly loose position, and after that some outlier position value happens.. and so on. This can't be due to sensor, as default driver works much better (constant signal, no position dragging). Position slightly float around only then I don't move.

p/s/ gps on hd2 seems much better than on my old asus p535 )
[Windows Mobile Apps and Games] bartvdv:
even though a bit late

HD2's gps isn't crappy the location of gps antenna is rather strange, it is locatad near the bottom on the right side which means by holding the phone in your right hand you most probably block / cover the gps antenna.

Further more I had trouble with a-gps but since I pointed that one to supl.nokia.com at port 7275 i receive the correct data and have a fix on 5 or more birds in 3 to 10 seconds after the data is received, and nokia is fast ;-)

It seems nokia now answers the windows phones correctly, google did not, nor did nokia....

Anyhow I use 3.6.2 now and increased the keep fix to 1/2 hour so i can do my shopping while forgetting I am logging my movements and have a fix again in a few seconds as I leave the store...

And now that I have everything working as I once wanted it to work I bought a android phone .....:confused:

Still see gpslogs but sometimes that is nice specially while needing proof that a brand new car is using about twice as much petrol as can be expected from such a car ....

thanks all and thanks for all the work mach 2003, I keep the windows phone for bicycle track recordings and will probably end up with windows phone 7 , 7.5 ... 8 next year
[Windows Mobile Apps and Games] rising power:
feature request: cell tower and gps

i tried to read this thread, and i gave up by half of it. hope is not too late to keep digging.

Thanks Mach2003 for developing and supporting this wonderful app.

I've been using it lately with my LG fathom, since its gps is crappy.

I use waze all the time, and I would like to have muy aproximate location parsed to it while getting a fix. I mean, to show me jumping from one cell tower to another rather than freezed at my first location. that until the gps locks the birds. (because sometimes takes 15+ minutes to fix a signal, specially at high speed).

is it possible to do that, how?

thanks.
[Windows Mobile Apps and Games] Mach2003:
In ModSettings: menu, system; 'Keep Fix' sets the amount of time, in milli seconds, to keep fix when lost, and is also used for cell tower fix while waiting for a GPS fix. An entry of 900000 will give you 15 minutes.

We aware that if you actually lose fix (after getting the first fix) for any reason, ModDriver will project your position for this timeout as well, and after only a few seconds your indicated position will be WAY OFF unless your speed and direction are constant.
[Windows Mobile Apps and Games] turista:
Help

Work some one from version QuickGPS Lite drivers on the PDA LOOX N560 ? After this installs it takes fix GPS cca 4 satelits at 10 min (as a without installs Driver). Is it in his settings?.You can me anybody with this consult, please.
[Windows Mobile Apps and Games] bryan_ch_wu:
HCHDG nmea sentence

Could you please kindly help to add HCHDG nmea sentence for compass output.

Deeply appreciated!

$HCHDG,101.1,,,7.1,W*3C

where:

HCHDG Magnetic heading, deviation, variation

101.1 heading

,, deviation (no data)

7.1,W variation
[Windows Mobile Apps and Games] pol098:
Display problem

I don't know if this will be seen in this old thread about an obsolescent operating system. I'm trying to identify a system bug in a Toshiba TG01 running a cooked "HTC Sense" WM6.5. In GpsModDriver 3.6.0 (this version seems to work better than later ones for me) it manifests in the startup message "GPS live data" being displayed very briefly in a huge, grotesquely zoomed, format, with each letter maybe a centimeter high. this is not a problem for GpsModDriver operation, but this same grotesque zoom happens in other applications in menus and the like, and prevents them from working. While the source code for GpsModDriver is not published, and I don't request or need it, I would be very grateful (if this message is seen!) for the few source lines which set the mode and invoke the "GPS live data" message. (If the message is intended to be displayed in huge letters, please ignore this!) Thanks for reading this, and best wishes.
[Windows Mobile Apps and Games] Mach2003:
All text displayed in the settings app, is calculated to be as large as will fit on the screen.

For WM_PAINT, I have a routine that takes a multi-line of text (with cr-lf) and displays it with the biggest font available, that will fit the screen width and height.

This is just a fragment, not the whole paint routine, it's not supposed to compile like this...

GetClientRect(hwnd, &cf);

hdco = GetDC( hwnd );
hdc = CreateCompatibleDC( hdco );
hbm = CreateCompatibleBitmap(hdco, cf.right - cf.left, cf.bottom - cf.top );
ReleaseDC( hwnd, hdco );
hbmo = SelectObject( hdc, hbm );

fold = GetCurrentObject( hdc, OBJ_FONT );
if( fold )
GetObject( fold, sizeof( LOGFONT ), &lf );
else {
if( hTextFont ) {
SelectObject( hdc, hTextFont );
GetObject( hTextFont, sizeof( LOGFONT ), &lf );
}
else {	// no font in the dc
hdco = GetDC( MainWind );
fold = GetCurrentObject( hdco, OBJ_FONT );
ReleaseDC( MainWind, hdco );
SelectObject( hdc, fold );
GetObject( fold, sizeof( LOGFONT ), &lf );
}
}
oldpitch = lf.lfHeight;

// add a bit of a margin
cr = cf;
cr.left += 10;
cr.right -= 10;
cr.bottom -= 10;
cr.top += 10;

// get the width and height of the display data
tr = cr;
DrawText( hdc, line, -1, &tr, DT_CALCRECT | DT_LEFT | DT_NOCLIP );	// the size of whole text
wide = tr.right - tr.left;
high = tr.bottom - tr.top;

if( wide == 0 )
wide = cr.right - cr.left;
if( high == 0 )
high = cr.bottom - cr.top;

// use width or height as the factor ?
pitch = lf.lfHeight;
wide = pitch * (cr.right - cr.left) / wide;
high = pitch * (cr.bottom - cr.top) / high;

if( abs(wide) < abs(high) )
pitch = wide;
else
pitch = high;

if( oldpitch != pitch ) {
if( hTextFont ) {
DeleteObject( hTextFont );
hTextFont = NULL;
}
lf.lfHeight = pitch;
hTextFont = CreateFontIndirect( &lf );
SelectObject( hdc, hTextFont );
}
FillRect( hdc, &cf, (HBRUSH)(COLOR_WINDOW+1));
SetBkColor( hdc, dwBackColour );
SetTextColor( hdc, dwTextColour );	//RGB( 0, 0, 0 ) );	// black
DrawText( hdc, line, -1, &cr, DT_LEFT | DT_NOCLIP);

fold = GetCurrentObject( hdc, OBJ_FONT );
[Windows Mobile Apps and Games] Melek420:
ada maanfaatnya kah untuk driver online ?

:)
[Windows Mobile Apps and Games] Mach2003:
I can't make sense of your post!

Install teh driver, and follow the link from first post to the use QueStub patch. Garmin will use the GpsModDriver (tap the signal strength bars to confirm).

As you can read here, there may be a problem with calculated speed.

Set the DeltaSpeed, and DeltaCourse values higher to stop 'spin' or 'jumping' at a stop. DeltaTime may also need to be increased, if your 'jump' happens only after being stopped for (default=)10 seconds.
[Windows Mobile Apps and Games] axl30:
a best explanation could not be given

i have correct...

the translator has been wrong:p
[Windows Mobile Apps and Games] Mach2003:
Here is an interesting fact.

I have a raw data log (actually several) from the gps (use HTCGpsTool, log nmea, on original com4 port).

I have confirmed with published formulla comparing to GpsModDrivers calculations, the distance and course between any two points (lat,lon,lat2,lon2).

When I compare the heading reported by the gps to what I calculate, from the same set of points, the results vary a great deal.

1) The gps uses points, other than the ones it reports, to calculate course.

2) The gps uses an averaging system of some sort to report course

3) The gps calculation is in error

4) The gps calculates course over a longer trend than one update

I can not reproduce the speed reported by the gps reliably, with any calculation or averaging system I can come up with either.

There are several different ways to calculate distance and course between two points. I have tried 4 or 5 of them, none of them vary by more than 0.01 degrees or 0.01 meters over the distance that you can normally travel in a second.
[Windows Mobile Apps and Games] Mandragore:
Yes, that sure is remarkable.

Oh, and I think axl30 tried to say that he didn't notice any improvement.
[Windows Mobile Apps and Games] nanomite:
Finally got it working

Thanks for the hopefully great addition to improving GPS software.

After much frustration and searching I finally got it working on my HTC Universal under TOM TOM.

External GPS settings kept dropping COM 4 for the Bluetooth COM 0.

So here's what I have

Holox Bluetooth GPS on COM 0

MS External GPS Settings COM 4

TOM TOM GPS Port GPSMODDRIVER

Have to go for a drive in the next few days and check it out.

Again thanks for the hard work.

After soft reset everything gone back to default setting. I'm giving up. Thanks for the work anyway
[Windows Mobile Apps and Games] Mach2003:
If you never want "external gps" to switch to your BT device, try removing the matching key here:

System\\CurrentControlSet\\GPS Intermediate Driver\\Drivers\NameOfBTDevice

If you have a BT connected, why do you want to use the original port, or GpsModDriver? Doesn't your BT device track reliably? I also have a Garmin 10x BT, and when I use it, I suffer from none of the issues we see on the onboard gps. But when I use BT, my poor battery dies within an hour (away from the carplug), also the BT is an extra device I have to remember to take along.

This is the first I heard of TT switching ports, but you could use the QueStub linked for Garmin users, just make the garmin key point to the TT executable, and rename the TT file Old.exe, and rename QueStub to whatever the TT exe is.

In any case, if you are still having troubles, I probably can do something so that GpsModDriver can open another COM port instead of reading the External GPS settings, pehaps an override key...
[Windows Mobile Apps and Games] Gui_Busa:
Is there really a Solution?

After Reading lots of suggestions from multiple threads, I am very confused as to the best solution to the slow Gps fix time and lag issues with the HTC Touch pro. Or do the various solutions vary from device to device? I did even find a Thread that mentioned that there was a solution based on using an alternate radio from the HTC Blackstone, unfortunately this requires you to unlock the device in such a way that you can test new radio’s that I have not tried yet.

If HTC do not eventually provide a suitable fix for this (Not the one on the HTC website) as I have also tried this, I will be forced to sell the touch pro at a loss and find an alternate device without the Gps issue.

I have had on test a HTC Touch Pro II from a friend and found no issues with the use of the GPS and TomTom navigation software, so this may be the way to go.

Any comments and thoughts gratefully received.

Note:- also tested with a 6.5 cooked Rom same issues.
[Windows Mobile Apps and Games] IIIIIChrisIIIII:
Thanks a lot for your patient. :)

But i still don't understand it. Lets not think about GPS navigation lets get more common. Lets asume we are measuring our first position p0=0m at time t0=00 seconds. After one second we are doing the same. We are measuring the current position p1=27,7m one second later at t1=1s. Then it is fact, that you have been moved from p0 to p1 with a speed of 100km/h. That means at time t1 we HAVE a speed of 100km/h (assuming measuring and calculating doesn't cost time). Therefore from my understanding your aspd should be current speed. Now -back to ouer gps-problem-, because we know, that we have a lag and want to calculate the position in the future (by the way, yes i know we dont need the speed, but only the the future position) we don't want to use the measured current position (we are still at time t1), but a corrected one. So you are changing the speed that has been calculated between t0 and t1 and recalculating under consideration of "improved" speed where you sould be (p1') at time t1. (heading unconsidered)

I dont want to say your calculations a wrong. I only want to say i cannot follow your thoughts.

Perhaps, if you have time (i don't want to tease you with this stuff), you could write me down exactly your steps between the "loop". With loop i mean the steps you are calculating when you receive a position from GPSID until outputing the new position:

var prevPos //variable to remember the old position

While(GPSID_Pos){
var curPos=GPSID_Pos;

...//Your calculations

COM1.WriteLine(newPos); //Send the new position
}
[Windows Mobile Apps and Games] tcchuin:
i done all the steps,but not including the registry thingy,must i add the regisrty key?and now garmin is showing using gps intermediate driver
[Windows Mobile Apps and Games] peacock93:
Mach2003,

I think if you and Chris would get on Instant Messaging and talk this out I think you two could come up with the best solution. I've been following both of your calculations and see merit in both and believe between you two you have the fix.

peacock93
[Windows Mobile Apps and Games] Mach2003:
You are correct, but the original problem had us atarting at 0kph, and not at the same speed. When introducing linear acceleration we have a different solution.

Inital speed=0, T=0. Average Speed = 100 at t1 (27.7 meters traveled in 1 second).

We have to realize that at t0+0.5 seconds our speed would be half that of the final speed (we started at zero, acceleration is constant). If we make the final speed 100, then the acceleration from 0 to 100 tool place in an instant at t0+NaN seconds. In order to travel 27.7 meters in one second starting at 0 kph, average speed must be 100, therefore speed at t0+0.5 seconds must be 100: Acceleration = 100kph/s, Final speed = 200.

Make a small chart: (Time, Speed, Acceleration,Distance), fill acceleration with some random numbers (all the same value is great). Insert an inital speed (0) at t0, and calculate the speed for the other times, using the acceleration. Now calcualte the distance you would move. Test the therory by re-calcualting the speed from the distance and time alone.
[Windows Mobile Apps and Games] Mach2003:
If Garmin Mobile XT is installed (running from main memory), no reg edit is requred, just copy QueStub to \Garmin, rename the existing Que.exe to Old.exe and rename QueStub.exe to Que.exe.

If Garmin Mobile XT is running from a non-standard place (storage card), create the key as shown (or just use the path allready there), and do the copy re-name steps there instead of \Garmin.

But then all the other smart people who read the thread would miss the chance to comment, add their thoughts.
[Windows Mobile Apps and Games] Mach2003:
Beta copy (again)

Attached to This post is the latest version:

I leave it here, because it is largely untested (about 15 minutes in the current state).

- Adds multi-open support, more than one app can use GpsModPort at the same time

- Changes speed and Course, and averaging (Enable=2)

- Fixes some little bugs.

- More things, I can't remember right now, and am too lazy to look up.

- I have not been able to stall uninstall/upgrade with this one

(Remember that uninstall uses the setup.dll and driver code from the currently installed version, not the one you are about to install)

* RMC string outputs 'A' (valid) instead of 'V' (void), when lat and lon are invalid, could show your position at 0,0 while waiting for a fix.

* Garmin will switch back to COM4 when suspended (GPS Radio turns off, Garmin and Driver continue to run...)

If you want to try it, please do, and report.

If you try it then don't cry.
[Windows Mobile Apps and Games] tcchuin:
i done it,and now starting questub will launch garmin mobile xt,but even if i choose using com port 1?it will change to gps intermediate driver too.
[Windows Mobile Apps and Games] Mach2003:
When this happens, GpsModDriver is not sending data to Garmin.

Try soft reset first.

Try another gps application like HTCGpsTool to see if you can see data on GpsModDriver's port (COM1).

Then Try Garmin Mobile XT.

You are not supposed to run QueStub, but rename QueStub to Que.exe, and then run the normal Garmin Mobile XT.exe.
[Windows Mobile Apps and Games] tcchuin:
the result is still same after softresetting and by launching "old.exe"

how do i change port to com1 at htcgpstools?

my htcgpstools showing it's using com port 4,but at the log there,,there's something unusual

it's showing "gps position result...a lot of data here"
[Windows Mobile Apps and Games] Huck33:
someone has the opportunity to test the drivers on Blackstone?

regards
[Windows Mobile Apps and Games] L_o_k_i:
@Huck33

I've tested it on my blackstone (with the latest Laurentius ROM). It's working!
[Windows Mobile Apps and Games] Huck33:
thanks :)

will try with dutty's leo rom
[Windows Mobile Apps and Games] slypher:
Just installed this last night. I am going to test to see if it works using iGO 8 on my Touch Pro. Last night (before installing) i definitely saw the typical GPS lag that plagues this phone.

Today, we will see if the new driver helps :-)

I'll report back with my results!

-s