Since I started working at SensorLogic I’ve been fascinated with the whole machine-to-machine space. I’ve been inspired to connect everything I possibly can to the Internet. A couple of years ago I decided to write a program for my P900 called BlueGPS, which runs on several Symbian devices. BlueGPS allowed my P900 to communicate with a Bluetooth GPS receiver and send location data over the air to the SensorLogic platform. If you look at the diagram below (which I grabbed shamelessly from SL) you’ll see that the GPS receiver is represented as a sensor and my P900 is the access point.

This is a fairly common network topology for M2M communications. I recently retired the Symbian BlueGPS project and am working to make the project open source. The main reason is that I’ve switched phones and haven’t released an update in over a year. I’m hoping developers from the community will pick it up and run with it.
I’m finally getting to the subject of this post. This past weekend I was digging around for some Bluetooth code that would run on my Windows Mobile device (Cingular’s 8125). I stumbled across this article that describes how to do serial communications using the .NET compact framework. The code in the article leverages the OpenNETCF Smart Device Framework, which basically handles most of the communication between my Windows Mobile device and Bluetooth GPS receiver.
So I was able to modify a fair amount of the code to work with my Bluetooth GPS receiver and I can successfully display location information on my phone. The main thing I had to modify was the way the program parsed NMEA sentences. It was parsing the GLL sentence while I wanted to use the GGA sentence, which includes altitude information. You can see an image of the app running on my phone below.

Yes it’s extremely ugly and I hope to design a nice user interface for it in the next week or two. I’m also working on getting the information sent wirelessly to SensorLogic’s platform where the data can be displayed and exported. I’m planning on releasing a version for Windows Mobile users to download once I get everything in order.
[...] I believe Virtual Earth Mobile is compatible with devices that have internal GPS units. At least that’s what I’m assuming. In the meantime I’m planning on experimenting with the Virtual Earth source code and hooking it up to some code I got working over the weekend. This means I should be able to pass these location coordinates off to the Virtual Earth API and have some sort of real-time positioning and routing. It will be an interesting experiment and I’ll post what I find out. If anyone has successfully configured their Bluetooth GPS to work with Virtual Earth Mobile, then I would love to hear about it. [...]
[...] In my recent post about programming my Cingular 8125 to talk to my Bluetooth GPS receiver, I failed to realize one minor detail. Since I was pretty excited about getting longitude, latitude, and altitude to display on my phone I didn’t realize that it wasn’t updating. No matter how long I let it run the values constantly stayed the same. This was strange since I could see that the receiver and phone were paired and communicating. [...]