Read-only archive of the All About Symbian forum (2001–2013) · About this archive

GPS patch development ideas.

18 replies · 9,185 views · Started 14 August 2007

Please dont post unhelpful stuff, like 'whens it ready' or 'this will be ace' etc etc.

What is needed is the creation of a symbian application that does the following:

Forward the various bits of information from the internal GPS, to a made up bluetooth port.

UTC, Longitude, Latitude, Direction, Speed and HDOP (horizontal dilution of precision). Is the information thats needed.

We also need someone who can make symbian apps too. Anyone volenteering would be appriciated.

Stuff I posted in the other thread..


I had a quick go using S60 Python. Initially, I produced a bluetooth server socket which would stream fake GPS data to any incoming requests. This worked to some extent but would not allow me to listen on port 1 (symbian restriction?) which is where I believe tomtom looks.


I was attempting, initially at least, to run my Python app on one phone (N73), with TomTom running on my N95 trying to connect to it. Only once this was working, was I going to try running it on the same device (once running on the same device and TomTom picks it up, then implementing the internal GPS stream would be relatively trivial).

So hacking tomtom to look at a different port may work in terms of getting it to pick up the stream from the python app on my other phone... then that may or may not work once on the same phone

Hacking tomtom though - no idea how one would approach that!

Trying to directly stream into the bluetooth stack on the N95 (as suggested by bchliu in post 203) is an alternative approach to using a socket and listening. This (if possible) may require lower level access only provided by C++.

By bchliu

I have a few ideas on what can/cant be done - and can do technical research to see if there is any feasibility in it. However, I havent really got the C+ dev skills that is required for the SDK. Like you Dez, I am more of a VB man myself.. AKA lazy programmer..

Anyone interested in pairing up to do this (that has experience with S60S3 SDK?)

** Technical bit **

http://wiki.forum.nokia.com/index.ph...60_3rd_Edition

http://gagravarr.livejournal.com/126871.html

Just from initial research shows that the API is pretty simple to manipulate. You just have to load the API libraries, call the class and then return the Lat/Long of current position. (someone has also already done it in Python already from the second URL)

so the program will go something like this (running in the background as a low level service)

launch Location API
Pass query to API
returns values
convert values to NMEA based code
Send off to Bluetooth Stack
repeat until end

TomTom or any other GPS App will be running in the foreground and will be "tricked" into talking to the BT stack (I believe the app only queries the NMEA codes in the stack buffer since there is no direct intervention to the GPS dongle itself). Since NMEA is only running as 4800/9600 baud, the app shouldnt require too much resources to get it to an acceptable speed.

Of course, the other alternative is to (illegally) hack the TT6 code to stop using the BT stack buffer and run the API instead. This involves recompilation of the code to do this and reregistering the file in the S60 OS as well to be able to "execute".

Very high level views here - but I think it really can be done... They have GPSGate for the Pocket PC which works very well (for my old HP6965/6515) so I cant see why you cant do the same on S60 platforms..

heres what I said before:

That is something I suggested quite a while back - to create a "wrapper" for the Location API that can be pumped back into the BT. This is also good as you can further evolve it into a GPS gateway app that can push out NMEA signals via the phone BT to go into a PC say.

The challenge here is the use of BT mechanism. I am not sure if you can trick the phone to loop back onto itself whilst filling up the buffers using converted info (Location API to NMEA). It will be quite interesting project I must say.

How much you guys think you'd pay for an Internal GPS Wrapper/Loopback app so that you can run TT6 or any other BT based GPS app off?

then on post 203

I have a few ideas on what can/cant be done - and can do technical research to see if there is any feasibility in it. However, I havent really got the C+ dev skills that is required for the SDK. Like you Dez, I am more of a VB man myself.. AKA lazy programmer..

Anyone interested in pairing up to do this (that has experience with S60S3 SDK?)

** Technical bit **

http://wiki.forum.nokia.com/index.ph...60_3rd_Edition

http://gagravarr.livejournal.com/126871.html

Just from initial research shows that the API is pretty simple to manipulate. You just have to load the API libraries, call the class and then return the Lat/Long of current position. (someone has also already done it in Python already from the second URL)

so the program will go something like this (running in the background as a low level service)

launch Location API
Pass query to API
returns values
convert values to NMEA based code
Send off to Bluetooth Stack
repeat until end

TomTom or any other GPS App will be running in the foreground and will be "tricked" into talking to the BT stack (I believe the app only queries the NMEA codes in the stack buffer since there is no direct intervention to the GPS dongle itself). Since NMEA is only running as 4800/9600 baud, the app shouldnt require too much resources to get it to an acceptable speed.

Of course, the other alternative is to (illegally) hack the TT6 code to stop using the BT stack buffer and run the API instead. This involves recompilation of the code to do this and reregistering the file in the S60 OS as well to be able to "execute".

Very high level views here - but I think it really can be done... They have GPSGate for the Pocket PC which works very well (for my old HP6965/6515) so I cant see why you cant do the same on S60 platforms..

Ok, so what do we need?

I can possibly get hold of a C++ developer.

I assume we need someone thats had expirence with S60S3 SDK.

Anything else?

To get the location data from the inbuilt GPS on the N95 you will need the JSR-179 Location API for J2ME which apparently works fine (see quoted conversation below)

You can download that here....and all the docs you need to show how to use it.

http://www.forum.nokia.com/main/resources/technologies/java/documentation/java_jsr.html#jsr179

This is from Twibble's page

luposlip Says:
June 22nd, 2007 at 1:38 pm
Hi Thilo - great work. Just a question - do you use the JSR-179 API to access the built-in GPS of the N95?

thilo Says:
June 23rd, 2007 at 1:05 pm
thanks luposlip. Yes, I�m using JSR-179 which works fine. If JSR-179 is not available you can still use the application but without GPS support

OK....this is even better
This Java MIDP example demonstrates the usage of the Location API for J2ME (JSR-179) by showing the current device coordinates. The MIDlet also shows how to store the current coordinates associated with location information to the device’s landmark store. It also has a working installable jar file to show it working.

http://www.forum.nokia.com/info/sw.nokia.com/id/f7e8ad78-7898-4053-ab83-74c147923866/MIDP_Location_API_Example_Tourist_Route_v1_0.zip.html

Nice one, I am ploughing through all this, but its taking me time. Just to let you know someone is reading the stuff your finding.

guys, J2Me may be possible for prototype or learning, but i bet it will not work in real life, navigation apps
needs many memory, so j2me prog 99% will be killed. Also, J2ME have to much limitations comparing to native.

I would say first thing to do is to investigate, if any app can emulate bluetooth port to feed data for another apps..
May be by looking to API docs etc.

Mmmm....might be right there.

Since I havent actually installed TT on my phone yet, can someone give me the options TT gives you for GPS on symbian60 V3?

bartmanekul wrote:Mmmm....might be right there.

Since I havent actually installed TT on my phone yet, can someone give me the options TT gives you for GPS on symbian60 V3?

2 Options are given, TomTom BT Receiver or Other BT Receiver.
I think TT first needs to Pair with a BT GPS Receiver, so the applet would first need to simulate pairing before the BT stack could be populated with GPS data.

Ok, thanks Dez.

Has anyone ever seen another app faking a bluetooth connection for anything on symbian?

I feel like Im thrashing around in the dark here, not knowing which way to go.

I still think the fastest way to get this done is to hire a symbian developer to do it.....and pay him for his time.

If it's as easy as GPSM claim....then it shouldn't take long and shouldn't cost much.

There would be more than enough donations through this forum to get it done.

Indeed....know of one for hire?

(Serious question btw!)

I have emailed a number of developers about this, although Im not certain some of them are in that area even if they are symbian based.

This brings a problem. Presumably, its going to cost a fair bit of money.

If that happens, its down to 2 options:

We start a fund going on here, and the patch is free for all.

If its within my reach, I pay for it and keep it to myself, and sell it via IMEI or some other lock.

Im going to need requirements from people.

What I can think of is:

It has to allow satnav programs to run as they would normally (i.e. tomtom), no jerking and slowdowns.

It obviously has to be legal - thus not changing any code in copywrited software (i.e. tomtom again).

Any other requirments?

I'm curious if anyone has just taken a look at TomTom itself with an eye towards "hacking" it to work with the internal GPS - like GPScraplands claim to have done earlier.
No wrappers or other programs outside of TT itself.
I'm digging but so far nada...

But the nla_gpspositioner and nla_btgpspsy resource files look interesting.

Hmm. In theory of course, would just adding the port do it? Or is the symbian version lacking the drivers needed?

Just got a reply back from one of the developers I contacted.

Without bringing in my developers I would expect it to be about 8-10K to research to build a prototype that would verify if it can be done(and in a manner that is appropriate for your goals), and then an additional 10K or more to complete the project with proper app signing, installer, and testing. Without the other requirements, such as allowing multiple applications to access the same GPS port (if that was one of the features you are considering) I can�t be much more accurate..

If this sounds of interest to you, I can put together a formal quote and we would need you to send us a target device and 50% deposit. We will send the device back with the prototype implemented and invoice the final 50%.

We can also quote out just the final project but this approach does end up being cheaper in most cases as we don�t need to pad the project with large amounts of risk buffer.

Im not suprised really. I'll await other replies but I cant see them being anything affordable.

> I would expect it to be about 8-10K to research to build a prototype that would verify if it can be done

sorry, does this means you will pay no matter if research will show it can not be done ?

anyway its too much, but as i said once, i guess "usual" symbian programmer cant do this job,
because such peace of software will need big capabilities like TCB or whatever.