OSM London User Group Meeting

On Wednesday night (27th June, 2006) the OSM London User group met at the Cross Keys pub in Covent Garden.  I think these kind of meet-ups are really important for projects like OSM.  The Internet is an amazing tool, but it doesn’t tend to encourage rapid decision making.  It seems a lot easier to reach a group consensus when meeting in person than when meeting via email or IRC.  Although I’m sure the beer helps too.  All eyes on the then…

This week so far

Over the last few days I’ve been looking at a couple of different areas.  I’ve been continuing with the development of OSM Mobile, although I’ve had to take a bit of time out to figure out how Threads are used in Java,  With the help of this tutorial from Sun, I think I’m on top of them.  Other than that, I’m now really waiting to get my hands on a S60 mobile that I can use to test the program.  Eclipse and the Nokia SDKs don’t seem to support emulation of a bluetooth device, so I’m not sure if the code I have so far is going to run or not.

Other than coding, I’ve been doing a bit of browsing and reading.  The book “Bluetooth Application Programming With the Java APIs” (Kumar et al, 2004) has a great introduction to Bluetooth networking and contains quite a few code samples.

I’ve also been reading up on the technical side of GPS and GPS processing.  ”GPS Satellite Surveying” (Leik, 2004) is a good resource which I’d come accross whilst doing GPS processing coursework last term.  At a staggering £85 it ought to be good.

Success (of sorts)

So now I have an app that runs on an S60 emulator, takes an NMEA sentence as input, parses it, detects the type of string and then writes Altitude, Lat, Long and Time to a text file.  Its taken a while…

And more Java

With emulators working at full power, I managed to get a bit done today.  Very little to report on as I’m still getting the hang of Java.  OO has some funny features when you’re comming from a more procedural (VB) background, but I think I’m getting there.

Not a very productive day

Today has not been a very productive day. After yesterday’s success I was hoping to make some good headway today. But… When I tried to run yesterday’s appplications on the S60 emulators in Eclipse, nothing happened. Something has gone very wrong somewhere. Either the emulators take around 5 minutes to load the app and then stall, or they don’t load it at all, or they just don’t load at all.

So, I tried to update Carbide.j (the Nokia SDK), the updates took about an hour to download and install as they all come in seperate packages. After a lot of restarting and fidling, I’ve decided to uninstall all of the SDKs that I have, hopefully I won’t have to uninstall Eclipse. So all in all, its now 5.30pm and I have made very little progress, as I’m unable to test any of the code. Hope I can successfully re-install the emulators by tomorrow…

NMEA Sentence Structures

I’ve been researching the typical NMEA sentences that are supported by bluetooth GPS units, so OSM Mobile can support as many features as possible. I’m using a Dell Bluetooth Module BT-309, which supports the following protocols:

GGA, GSA, GSV, RMC, VTG, GLL

$GPGSA - GPS DOP and active satellites
$GPGGA - Global Positioning System Fix Data
$GPGSV - GPS Satellites in view
$GPRMC - Recommended minimum specific GPS/Transit data
$GPVTG - Track made good and ground speed
$GPGLL - Geographic position, latitude / longitude

If anyone has anymore common protocols to add to the list, please leave a comment.

Parsing NMEA

Today I’ve written a couple of J2ME classes that parses an NMEA sentence (only $GPGGA at the moment) and spit out some useful info, like Lat, Long, Time, number of satellites, although I don’t yet have the phone talking to the GPS.   The plan for tomorrow is to amend the class to produce GPX and store the GPX to an SD memory card.  Its been a relief to get on with some actual programming, rather than just working thought tutorials.

I found this website to have some quite useful information about NMEA sentence structure.  The whole situation surrounding NMEA sentences is crazy; the NMEA (National Marine Electronics Association) only release the details of their NMEA 0183 standard on payment of around $300, despite the fact that the format was reverse engineered years and years ago and is very much available on the web.

Hit a deadend

Over the last few days I have been working through some tutorials from IBM, which have been pretty useful.  With a bit of knowledge of how J2ME Midlets operate, I want to start work with JSR-82 (the Java bluetooth API).  I have hit a deadend, in that I cant figure out how to use the Bluetooth emulator that comes with the Carbide.j SDK from Nokia.

I want to be able to:

1) Emulate a bluetooth slave device from my laptop, having the S60 emulator as master

2) Use a real bluetooth GPS as slave, with an S60 emulator running on my laptop, communicating with the GPS through a Bluetooth dongle plugged into my laptop’s USB port.

There is a scarcity of information about doing this - a lot of unanswered forum posts.  Anyone got any ideas?

Loki

I’ve just been looking at the new Firefox plugin that Loki have produced, based on Skyhook’s Wi-Fi Positioning Technology (WPS).  The service looks quite cool, and its nice to see that they allow users to select from a range of mapping services and location services from GYM and others.  From the brief look I took this morning, it does seem quite limited.  Because WPS relies on triangulating the position of a Wi-Fi device, the Wi-Fi locator is only currently available in the US.  There is an IP locator service, that worked well for me as I am using UCL’s internet connection.  There are several existing services that geo-locate IP addresses (Geobytes is one example).  The rest of the site so-far seems like a large Mash-up.  With A-GPS on the way, I’m not sure about the future of WPS.  Whilst WPS offers a better locational capabilities in urban areas, it is not ubiquitous and it is not Free.  What would be more interesting is a map created by users who can add locations of any free, open Wi-Fi they come across, alleviating the “update” and expansion problem that Loki is bound to suffer from.  What would of course better would be to embed GPS chips (many now cost less than $10) into wireless routers, allowing the router to position themselves and then register their position, as well as broadcasting their current load and the speed of their connection.

How’s it going to end?

My frustrations over Nokia’s lack of Linux support have lead me to do a bit of digging around to see what is going on.  It seems that the mobile handset and OS market is broadly split between existing OS producer Symbian, new-commers Microsoft, and a consortium of other manurfacturers that includes Motorola, NEC, Panasonic Mobile Communications and Samsung Electronics.  Yesterday (15th June 2006) this consortium announced plans to launch a Linux based mobile OS.  Linux has been around on mobile’s for quite a while, but the launch of a major consortium like this, must be seen as a threat to the established operators, especially with Microsoft investing so heavily in their mobile OS.  So if we are seeing three blocks (Nokia/Symbian, Microsoft, Mobile Linux alliance) form, it seems even stranger to me that Nokia want to totally isolate the Linux (cf Open Source) community by effectively blocking the development of mobile apps for Nokia phones on a Linux platform.  They’d better hope that Symbian comes out on top.