Wednesday, February 28, 2007

Open Phone: Tim Wu Exposes Carriers Lockdown

When I first tried to understand and use a cell phone it didn't make much sense to me that I had first to pick a carrier, a service and then a particular phone model.

That didn't make sense at all.

What if the phone model I wanted wasn't supported, accepted, certified or in whatever glorified form of restriction imposed by a given carrier regulated for use in my area?

I ended up getting an apparently more expensive but with no strings attached, pay-as-you-go service provided by Nextel (Boost Mobile) because I wanted to use their GPS (true one) models.

Tim Wu's paper ("Wireless Net Neutrality: Cellular Carterphone and Consumer choice in Mobile Broadband") puts this whole craziness in perspective with a blow of fresh air that exposes how far the telecomm industry went in its control over choice and innovation.

Tim exposes the lock down imposed by wireless carriers over the market. Finally a voice synthesizes the vital need of innovation in a market that had its growth and development blocked for way too long.

First on EETimes.

Mobile GMaps

When I got the Motorola i415 about a year or so ago I remember trying out Mobile GMaps and not being too excited about it. Not sure which version it was, but it didn't have GPS support at that time.

Recently MGMaps caught my attention again. The current version (1.32.02) includes lots of new features and GPS support so I decided to try it out.

The i415 didn't like any of the available versions (full, minimal) and my guess is that the class verifier while checking its .jar failed while hitting the Java Location API classes (JSR 179) used to provide GPS support.

Wireless Toolkit

MGMaps is a MIDlet (application developed in Java using J2ME). Sun has an environment for test of midlets called Wireless Tookit (or WTK currently on its version 2.5). It includes support for the Location API (JSR 179). With it you can actually run pretty much any .jar/.jad combination.

There are some limitations though, you can only set serial ports COM1 and COM2 and a BlueTooth connection can only be simulated within the WTK itself. I decided to run the included GPS simulator to try MGMaps with it.

Simulating

If you want to try this path first grab the .jar/.jad file for MGMaps, then download (free registration required) and install the WTK from Sun's website. One of the demo apps included in the WTK is called CityGuide and it has a XML file with waypoints that you can use to simulate a GPS track.

Launch the WTK and select File | Create Project from Jad/Jar File and then browse to the location of the downloaded mgmaps.jad file. Now you should be able to select Open Project and see a new entry added to the included demo apps.

In the WTK select Edit | Preferences. Hit the Security tab and select "manufacturer" under Security Domain, this way you won't be asked to allow data transfers everytime the app tries to connect to a server. (Or set security.domain: manufacturer at the wtklib\emulator.properties file).

When you select Run Project an emulator window will come up. Select MIDlet | External events and under Location browse to the location apps/CityGuide to load the citywalk.xml file. Push the play button to start simulating the corresponding GPS events.

Where Am I?

Now launch the MGMaps in the Emulator as you would in a regular phone (you have a choice of four different models/skins). Open the Menu and select Settings | GPS. Under "Select Device", pick Internal. Open the Menu again and select GPS | Where Am I?

MGmaps supports internal GPS receivers and external devices through Bluetooth, Serial ports and also Navizon.

By default you will be taken to your current location (as simulated by the WTK) with Google Maps. You can select zoom levels under Search | Preferences. There you can set the desired level of zoom while loading map images.

Maps + Layers

MGMaps let you select map images from a variety of sources. Check under Go To | Map Types. You can use Google, Yahoo, MSN and Ask map data in several flavors.

You can also add more layers of data by selecting under Services options like Subway Maps (NYC, Boston, Washington DC, London and Berlin), WikiMapia (location tags), Fon (wi-fi hotspots) and Traffic Info.

MGMaps will grab data from these services and add them to the map image you have selected. You can also provide the URL for a KML file that will then be parsed and have its locations shown over a map.

The newest version will also let you get directions from your current GPS position or a given location. Search results can be stored.

If you are concerned with data transfer check under Help for the Download Meter (you can also see the actual URL's used to grab map data from the Debug Log window).

Version 1.28 seems to support serial ports on a PDA running J9. But I couldn't get it to read from COM2 (Custom setting).

All in all

It is pleasing to see how much a free app like MGMaps evolved in such a short time and how much you get from it. Its developer, Cristian Streng is active in the message board helping users getting up to speed and is continually adding features to it.

Check the website for supported phone models, user guide and lots of great material at the users forum. Including directions on how to get it working with locked down Sprint phones.

Friday, February 23, 2007

Smart2Go: Free Maps & POI's

Nokia bought gate5 and made its products available not only for Nokia phone users but also for anyone running Windows Mobile. It has a different look & feel but the functionality seems to be exactly the same as its Symbian counterpart reviewed by GpsPassion.

If you have a Smartphone running Windows Mobile, like the Palm Treo 650 (thanks again LT!) grab the .cab file at the download site and try it out. It is not required by this package but a GPS receiver will make things easier.

Check the post on Google Maps for tips on how to set up a Bluetooth partnership with a GPS receiver. Smart2go will pick that up and after the initial startup it will zoom into your current location much like Google Earth showing a 3D image of the Earth and going down into a detailed map of your surroundings.

If you don't want to pay for data transfer to obtain maps you can try the MapLoader covered on this other post. It works with a memory card used at least once by Smart2Go and with Nokia phones.

You can choose between 2D or 3D view, search for POI (point-of-interest) like hotels, restaurants, gas stations, hospitals, etc. You will be presented with a list of the pretty up-to-date results and detailed information as address and telephone.

For navigation with voice directions you will need to choose the preferred language and pay between 11.67 US$ for a 7-day license and 129.77 US$ for a 3-year license. You can also pay 12.97 US$ for a month of use or 116.79 US$ for a year license.

Smart2go also sells city guides for 7.99 Euros each.

Check these demos of Smart2go on the Nokia N95 at YouTube (demo1, demo2).

Thursday, February 22, 2007

Windows CE, Mobile, Embedded

I have been trying to figure out how Windows CE, Windows Mobile and Windows Embedded and their respective SDK's work. A while ago I did similar research, this time the need came up after trying some of the development tools offered by MS.

Found a couple of good articles at WindowsForDevices that might shed a good chunk of light on this mess. Notice that these articles are about version 5 of CE/Mobile. A newer version of Windows Mobile, the 6.0 (still based on Windows CE 5.0) just came out.

But there is also a newer version of Windows CE, the 6.0. Confused already?

There aren't many choices out there so Visual Studio 2005 (minus SP1) seems like the best bet, from WindowsForDevices:

"Windows CE's platform-level development tools have converted into plug-ins for Visual Studio 2005 [also known as Platform Builder], resulting in a single tool that can be used for configuring, building, downloading, debugging, and testing the operating system, as well as for writing both native (Win32, MFC, ATL, WTL, STL) and managed (C#/VB) applications."

Back to basics


But before you get your hands dirty the best place to start to understand the territory better is this comparison between Windows CE and Windows Mobile, article by Mike Hall. Then following the thread this other post, where Mike differentiates between .NET MicroFramework and Windows CE.

Notice it says Micro, not Compact Framework. MicroFramework started as .NET Embedded with its TinyCLR, work developed originally by the SPOT (from Smart Personal Objects Technology) initiative.

If you got hardware skills on the side, check this development board from SJJ Embedded Micro Solutions and Emac Inc.

About CE Mike says:
"The O/S exposes Win32, MFC/ATL, and managed application development (C#/VB) models."

.NET MicroFramework


On the other hand, the .NET MicroFramework runs on ARM CPU's. The MSN Direct Watches also known as SPOT are good examples of the .NET MicroFramework use.

From WindowsForDevices:
".NET MicroFramework contains a tinyCLR (a stripped down Common Language Runtime) that acts as a mini kernel to run managed [developed only with C#] code applications. It supports low-end embedded processors [like ARM7's], does not require an MMU (memory management unit), and only requires around 300KB of RAM to run."
Check this article from Sys-Con about development for the MicroFramework. It highlights some of the unsupported features found at the .NET CompactFramework:
"TinyCLR has no support for WinForms, database access, files, or XML"
But in the other hand, to write code to handle hardware interrupts seems quite easy in this environment as showed in the initial post from Mike referred above.

Back to the SDK question

At this point it is possible to make sense of this article about the different SDK's from last year. And this most recent one about available tools for Windows CE 6.

And why this now? Well, GPS and LBS support and a communication layer (MSN Direct Networks) were recently added to the .NET MicroFramework with hardware developed in conjunction with GPS maker, Pharos.

A UMPC or even a dedicated PDA-based unit might be too much for simple requirements of a PND (or Personal Navigation Device) or as GPS units, plus its map and POI search packages runnings in cars are usually referred.

Daylight Savings on Windows Mobile devices

If you run Mobile 5 (which is based on Windows CE 5) and depends on the shift to happen as usual beware that according to this post:
"Windows CE 5.0 changes the time on the first or last Sunday of the month. Windows CE 5.0 does not change the time on the second or third Sunday of the month."
There, the Y2K7 bug.

Monday, February 12, 2007

Google Maps on Windows Mobile

I had a chance to play with a Palm Treo 750 running Windows Mobile 5 (Thanks LT!). It supports Bluetooth so you can connect it to a GPS receiver (no, the Treo does not include one).

After installing Google Maps for Mobile you need to establish a partnership through Bluetooth with the GPS receiver, it should list Serial Port under the available services. Determine which COM port will be used by the receiver.

Now under System | Settings | GPS select the same COM port under Hardware. Notice that there is a different COM port selection that you need to make for applications under GPS | Programs. The idea is to use a different COM port than the one the receiver is connected to.

GMM installation is pretty straight forward: just transfer the .cab file through either ActiveSync, a SD card, or maybe Bluetooth and run it.

To use it you will obviously need to be connected to the Net in some form, thru Cingular you can use GPRS/Edge and Google Maps will let you know how much data is being transferred each time you hit a button.

The UI isn't much different than what is already available for other phones with the main difference being the support for GPS data. Just select the Tracking GPS Location from the menu and see it connecting to your receiver.

Don't worry about setting the COM port for GMM itself, you already set it up earlier on.

If you have a good fix you should get maps for the corresponding area you are in. Select View | Satellite to switch view (no hybrid available). A little blinking green circle will point to your current location in the map if you have a good fix from the GPS receiver.

Search for pizza, gas or anything else and you will get the little icons with corresponding names and addresses. You can also search for locations.

Check traffic conditions for areas where this data is available. Green lines show that things are running freely at that time.

All in all, perfect app with the perfect price. And GPS support just makes it even better.

If you got a SmartPhone running Windows Mobile 5 go get the .CAB file and check GpsPassion Forum. Also available for Palm.

Saturday, February 10, 2007

Circuit Cellar: DIY Tracking Device

Two projects for tracking devices were published by Circuit Cellar on its February issue. One of them uses a Sirf chip and includes a digital compass. Source code included.

[Open] Phone Future

Koen from OpenMoko has an active blog describing his current plans.

Real nice series of articles by RoughlyDrafted from iPhone to the history of Symbian and why Nokia will drop it by 2010 or so.

TearDown (published by EETimes) focus on e-mail capable handhelds like the Rim 8700, Nokia E61 and Motorola Q.

DIY Cell: GPE Phone Edition

LinuxToGo is hosting the GPE Phone Edition project.

"(G(PE)²) is meant to develop and deploy a GTK / GPE based implementation of a LIPS compliant software stack. It contains a set of applications, libraries and documentation to build software to be used for mobile phones and similar devices [...]"
And more at this about page: plus screenshots. Among them one of GpsDrive running in a regular (non-restricted) platform. That is the one app that would make GPS easier at these platforms asking here to be ported.

[Update: And according to Dr.Dobbs this effort is being supported by Orange/France Telecom in Beijing.

Friday, February 09, 2007

Nokia free maps with MapLoader

Nokia will soon make available for download maps for its phones, smart2go is up and running and you can even download its MapLoader utility on Windows.

It requires your phone or memory card to be connected to the PC for an actual download.


MapLoader requires .Net 2.0 to run.

First at MobileChoice.

Toyota: Map On Demand

If you got a GPS unit with your car depending on the deal you made probably two or maybe more yearly updates will be made available with new maps on CDs.

Toyota came up with an obvious (now) idea:

"Map on Demand focuses only on updates for areas specified by users."
And the whole infrastructure needed for that to happen (in Japan next spring) with week old updates.

Check Toyota's page in English on its Japanese site.

First at JCN. Via FarEastGizmos.

Sirf, OpenWave, Nec & A-GPS, LBS at 3GSM

With an opening salvo for the 3GSM World Congress 2007 in Barcelona, Spain Sirf shot a round of PR's where it first announced in partnership with NEC the:

"[...] successful completion of assisted-GPS (A-GPS) interoperability testing in London on a commercial GPRS/WCDMA [UMTS] network"
Then, in a second PR Sirf announces that OpenWave will now license and sell its SirfLoc Location Server for Assisted-GPS based networks. This will help the integration of
"Openwave's Location Manager with SiRF's SiRFLoc Multimode location server"
It also announced a partnership with SkyHook where it offers a "hybrid GPS/Wi-Fi location technology" covered in a third PR. Also in GigaOm a while ago.

For lack of PR's a fourth one gives you the whole enchilada plus OpenWave shows what it came for on its own PR.

Wednesday, February 07, 2007

Delphi: You Are Here

I put together a little Delphi app (my first) that will show where you are in Google Maps. The position is taken from GPS data from a serial port. The code for the serial port I found here. This version modifies the way errors are handled and its code flow.

No object thinking at all, just procedural steps to get the job done quickly.

The idea is to read from a COM port (serial transfer protocol) a valid flow of NMEA sentences. You can obtain current latitude and longitude from the $GPRMC sentence if your receiver provides one.

In this example I have the COM port hardcoded to COM2 (will need to scan COM ports initially to find which one has valid data), you can change it by providing a new value at the command-line, like "YouAreHere COM6" (code download link below) .

You can simulate a GPS receiver using Franson's GpsGate NMEA Logger. Give it a cut & paste log from somewhere else and you can loop through the flow of $GPxxx sentences while developing.

Delphi can be downloaded and used for free from CodeGear's website. And DelphiBasics is a great starting point and reference site for the language and its libraries.

BTW, CodeGear is a spin-off of the original developers of Delphi, C++Builder, JBuilder and InterBase, NDatastore among other development tools from Borland which now handles the ALM (Applications Lifecycle Management) side of the business.

YouAreHere original project and source files can be downloaded from this link.

Monday, February 05, 2007

Franson GpsGate

A while ago if you had to run two programs that feed of NMEA sentences you would be in trouble. The fast answer nowadays would be go check Franson GpsGate so you can open the GPS with a COM port and share it among one of more virtual ports.

Now GpsGate means more than just that. In fact there will be soon even a GpsGate Server. Franson is expanding its territory in a pretty interesting fashion.

Are you looking into adding yours or somebody, something else’s position to your blog or website? If that’s the case, you might be interesting in taking a peek at its latest incarnation.

GpsGate 2.5

Grab the download after proving a valid email address at the main download page. [Sidenote: Franson’s website might be a bit loopsided, it is easy to end up back where you started].

Anyhow, on a Windows box Franson GpsGate installer will look for Garmin USB and Serial devices, Bluetooth and NMEA compatile units and spend quite sometime updating USB drivers to provide Virtual ports to your system.

To add a bit more of setup time I had to re-install activesync for its current version 4.2. It asked to reboot obviously but it did connected to PDA and sync’ed normally anyhow, even without rebooting. I also had to recharge the PDA, re-install wireless and install the GpsGate for the PocketPC package itself.

The idea behind GpsGate is that you configure an input and output connections. For example, a Bluetooth Serial Port providing NMEA data and Google Earth KLM generation as output.


GpsGate 2.5 while running either on a PDA and notebook will allow you to combine inputs and outputs in a pretty large way.

But this has been available for a while now, what is new if the ability to output and input data to or from a server. The server keeps track of location data which can happen automatically if you setup it up to provide your respective position back to a server at Franson.

You do that by adding a new entry in the Settings, Output dialog. But at that point you will need to have an account set up with Franson. Beware that you can also register to the Forum’s website with its own registration page. While back at the PDA, provide your username and password and test the connection.

If you got a working wireless connection, you are done. Thing is you will only be able to update your position if you are connected, otherwise you can’t be seen. You can also run GpsGate as a service.

GpsGate Server

At the Forum you can find out where Franson is taking its product:

"Embed Google Map on my webpage for live tracking without them having to log on to a GpsGate website. With the ability to display multiple buddies on that same map."
But the bottleneck will again be found inside carriers. If you want to provide your location continuosly while in movement, be connect over say GPRS would make your life easier and good news, bad news:

"With this release of GpsGate.com and the extra PlugIn you install on your Pocket PC, GpsGate does support position sharing over GPRS / Internet."

But even with support provided by Franson, Cingular seems to be blocking this type of traffic to servers not blessed by them.

Still from the forum:
"Check gprs.htm where it seems customers asked for the update location to work over GPRS but it seems that Cingular blocks or won’t let Franson’s server to be connected to. Again, blocked by the giant paw."
GpsGate Plugin

You can track yourself at Google Earth and/or Google Maps but even though GpsGate 2.5 is supposed to have the necessary support, I still had to install a Plugin to add support for this functionality. This will also add a toolbar to Firefox. As mentioned somewhere at Franson’s site:
"For tracking using Google Earth you will need to install the GpsGate PlugIn Pack 1.3."
Franson sells GpsGate to end-users to run their GPS packages sharing the data from a single receiver. The same package is also packaged as a SDK with development libraries for .Net, ActiveX and C++ for both Windows and PocketPC platforms so that others can write software with the same capabilities and now with live tracking support.

Soon Franson will make available GpsGate Servers so that you can host your own tracking software.

Sunday, February 04, 2007

Garmin Kills Maps

Dressed in a National Kid costume in its SuperBowl XLI commercial. I vote it for the “best wasted money” prize if such contest comes up somewhere.