I have been trying to get get a bluetooth GPS device hooked up to various computers from mobile phones, Asus EEE PC to a Vista desktop. I thought it would be fairly easy but boy was I wrong.
Starting out on Linux with the Asus EEE PC the idea that Linux has is a daemon called gpsd which handles the commication between the computer and GPS. The clever idea for this is so that you can have multiple programs which “asks” the daemon for GPS information so not one program hogs the device. Also once you configured the daemon, it keeps all the settings from port to NEMA specification so all of this does not have to be repeated.
The first problem I had was establishing a connection between the GPS and computer using bluetooth. Ubuntu kept on saying the device would not accept an OBEX connection. Further investigation and I had to install gnome-bluetooth and bluez-utils. Using apt-get this was easy but it still wouldn’t let me. So I did it via command line:
hcitool scan
This picked it up and I used sdptool to get the serial profile for the device which my GPS supports.
sdptool browse xx:xx:xx:xx:xx:xx
Replace the ‘xx’ with the MAC address of the bluetooth GPS device which is displayed when you use the hcitool scan command.
This was where I got stuck. The sdptool didn’t create a serial profile and I stopped there.
I then went on to try and get it working with the Mac. There wasn’t a lot of native GPS software for the Mac (that was free) but using port you could install gpsd. For port to run you need to have Xcode installed because it needs a c compiler. Xcode was over 1GB to download so it slowed my progress down. I created a bond between my MacBook Pro and the bluetooth GPS and that was fine. The cool thing was it even tells you the serial port it was on. I tried using KisMac with the GPS module but it didn’t work and also used GPSylon, a java open source GPS software.
After Xcode was downloaded and installed I had fetched gpsd but got confused to how to set up and lauch the daemon on the Mac.
For XP i used my bootcamp partition and Vista is my normal desktop computer. It was kind of pointless setting up GPS with the desktop because I won’t be able to move it about with me but it was worth a try. I used GPSylon but had trouble with the serial port because GPSylon was designed with *nix in mind and Windows used COM ports. Later on I found I had to jus change the line:
/dev/tty
to the COM port but I have yet to try it.
The best luck I have had was on my Motorola Ming(A1200). Technically it is and it is not a computer but it worked best here. I used GPS Track which was really good. JavaME has JSR179 built into the framework specification for location based devices. I would have thought these specification should be ported to the Java SE so that it too can make available the API’s needed for any mobile stuff but they weren’t. Also JavaME isn’t as easy to code for once you are use to version 1.5 and upwards.