Opinionated comments on mobile phone industry news

All entries are written by Anders Borg, CEO and Consultant of Abiro, that has a long experience in strategic planning, developing embedded and Java software, usability aspects, and the mobile phone industry in general.

You can also read the latest Mobile News entries on your phone via wap.abiro.com, and we provide many News Feeds from popular news services.

For advertising and contribution queries, please use the feedback form.

News feed (local)        FeedBurner Feed
View Anders Borg's profile on LinkedIn

Tuesday, April 10, 2007

 
Practical use of the Nokia LD-3W GPS module
Here are some of my findings from developing a MIDlet for accessing location info from the Nokia LD-3W and sending it to a service. I can't go into detail about what the service does, as that's still work in progress and under wraps. Other GPS modules should be compatible, and I will do testing with more modules later.

The basic functionality of the MIDlet is:
  • Discover suitable Bluetooth devices and let the user select one of them. The selection is saved for later sessions, so normally further use requires no user intervention.
  • Provide configuration of intervals, coordinate thresholds, service login, etc. This is also saved persistently for the same reason as above.
  • Hook up to the GPS module via Bluetooth Serial Port profile.
  • Parse and convert the incoming NMEA-formatted GPS info.
  • Convert coordinates to decimal values (no minutes and seconds anymore) for easy use later.
  • Convert all else to metric units for consistency.
  • At given intervals and given conditions (enough satellites, enough movement from previous place, etc) send GPS information to a user's account at the backend service.
  • Inform the phone user of what's been sent etc. This might be removed later.

I noted that discovering Bluetooth devices can take a long time on some phones (sometimes 15 seconds). Yet, this is only needed once if the same module is used all the time.

On the three phones I had access to I noted different Bluetooth behavior on all of them, and in one case I couldn't find a workaround at all, as the Bluetooth implementation simply couldn't handle the streamed traffic from the GPS module. It was an older phone, but many still have that model. On another phone the transfer simply stopped after a while, and I spent a long time figuring this out. This is a clear sign the testing of Java implementations is not adequate.

Right now the application requires CLDC 1.1, as I use floating point. It also requires MIDP 2.0. Most phones with Bluetooth have support for CLDC 1.1 and MIDP 2.0 as well, but not all. There's really nothing stopping me from stepping down to CLDC 1.0 and MIDP 1.0, by using a floating or fixed point class. I could even send the raw GPS info and do no numeric processing at all in the MIDlet, but then I wouldn't be able to handle e.g. position thresholding. The generic GPS class I developed would then also be less useful for other applications.


Comments: Post a Comment

Links to this post:

Create a Link



<< Home

This page is powered by Blogger. Isn't yours?