January 15th, 2006

Two Bluetooth GPS programs for S60 Python

As I haven't managed to get logging of GPS positions working with GETrack yet, I decided to knock up a couple of simple scripts using Python for series 60 to do something similar myself.

Firstly, there's a simple NMEA dumper script, which dumps the NMEA data from the gps to the console. Shows how nicely simple this can be!

Secondly, there's the more advanced NMEA location shower. It demonstrates parsing NMEA data, and extracting the location from those sentences that contain it. For now, it just logs the location to the screen (and optionally also a file every n seconds). That said, I'm hoping to extend it to be a fancy graphical version shortly.

Parsing the NMEA logged output from the second, I've been able to get the route of a walk around here into OpenStreetmap :)

Both of these just need python for series 60 installed to work.

nmea_info.py - a graphical view of a nmea bluetooth gps for s60 python

After many an hour, and I now have a graphical display of nmea data in python for series 60 going:

As you can see, it shows most of the interesting information to the screen, and updates the view as required. It also has two views about satellites (where they are, and what signal strength you have). It has a screen telling you about the OS data for your location (which needs generalising to not be so UK specific). Finally, it can take photos, and geo tag them with where you were (see this for details and requirements).

It does support logging of your position, but you can't configure it properly (just turn it on/off, and change the interval). The device to connect can be hard coded, or can be prompted for, and you have to use another program to offload collected tracks.
Oh, and it can also log your location+gsm cell to the stumblestore log file, so you can contribute to gsmloc.org.

Future features I'd like to add are: a config pane (set logging details, device to use etc), country specific view of data (easting and northing, like the OS data, but not UK specific). That'll be for another sunday afternoon though :)

Oh, and both the source + a handy .sis installer can be downloaded from my code page. You will probably also want this uploader program, which makes it nice and easy to upload tracks you've collected. Those using 3rd edition phones should see this post.

Update: v0.02 is out, with provisional satellite views. Discussion on it is currently happening here.

Update 2: v0.04 is out, which also shows signal strength. A few under the cover changes, with the help of Christopher Schmid

Update 3: v0.05 is out. Fixes a bug in formatting longitude, and allows you to control logging frequency (*=more frequent, #=less frequent, 8=toggle logging on/off).

Update 4: v0.07 is out. Now has another view, where it converts your location into OS co-ordinates (easting and northing)

Update 5: v0.10 is out. You can now download a .sis installer, and a lot of the geo stuff has been refactored to make future work easier

Update 6: v0.11 is out. Thanks to a contribution by Cashman Andrus, reconnection is supported, as is not breaking on being sent crud by the gps.

Update 7: v0.13 is out. It supports logging of location+gsm cell to the stumblestore log file, so you can contribute to gsmloc.org

Update 8: v0.14 is out. You can now see the distance and direction to a waypoint, and may add the current location as a waypoint. Random waypoint entry to follow!

Update 9: v0.16 is out. I've improved the waypoint heading view, and the OS data page now shows speed in mph. Still no 3rd edition .sis files though

Update 10: v0.18 is out. It now supports taking geo-tagged photos, see this post for details. 3rd edition sis files still pending a new py2sisng version.

Update 11: v0.20 is out. A few bug fixes for various edge cases. There's also a new version of upload_track.py, with a sis file. 3rd edition sis files pending someone to test them, and a core s60 python bug fix :(

Update 12: v0.21 is out. Few bug fixes, and the satellite view page now highlights the in-use satellites

Update 13: v0.22 is out. It will now render properly on 3rd edition phones, provided you're using a patched version of python that doesn't suffer the font bug. See this post for details.

Update 14: Python 1.3.22 fixes the font bug for 3rd edition phones. So, 3rd edition users should now use that, rather than the patched python.

Update 15: v0.23 is out. On 3rd edition phones, if you have installed LocationRequestor, it can now talk to the internal GPS.

Update 16: v0.24 is out. A few bug fixes for 3rd edition phones, and a new, simpler front screen (old screen is under details)