Win CE 6.0 SDK: FakeGPS

MS makes available with its new SDK for Windows CE a way to simulate a NMEA data stream for GPS development on the Mobile PC. Check this blog, which says that:

“FakeGPS will set the GPS Intermediate Driver to read the NMEA strings from a text file instead of using a real GPS device.”

[Update: Windows Mobile 6 SDK to be exact, which is based on Win CE 5. Just helping to mess it a bit more.]

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. 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.”

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.

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.

Rfid says Hi, MoSoSo

Five hundred feet away from a Billboard when you drive by it on your Mini Cooper (about US$22K with few optionals). You broadcast where you are and gets a Hi back.

Mososo translates to Mobile Social Software or connecting the dots. The implementation I would like to see had this scenario:

Tag yourself with the best shows, videos, songs, books, movies and the best match will trigger the corresponding songtrack while he, she goes by your side while you were dreaming on the street.

MoSoSo is about how to connect everybody that wants to connect. Check Wikipedia for a pretty up-to-date list of projects and implementations.

The article on the Mini appeared on the MercuryNews today.

Trolltech Greephone

Want to code your own phone?

Check out the picture at News.com of a Open Source Linux cell phone running Qtopia interface and readily available for developers.

Not free, you will need to fork a considerable amount ($695 for the Community version). GSM, GPRS, mini-USB, Bluetooth, check the specs.

But according to News “there are currently no plans to include GPS”. Hum… but you can use one through its BlueTooth interface, so that’s not a biggy.

Geotagging with the Magellan Explorist

If you read back when I start writing on GPS about a year and half ago, I didn’t have in my mind the two basic functions one should look for in a GPS unit (back then I was distracted by moving maps, color and high res screens). Now I would look for:

  • battery longevity and
  • tracking capabilities

That’s it.

I told myself (and you) that I wasn’t going to learn another UI, I wanted to hang to some sort of common interface, for me at least. PocketPC and Windows Mobile seemed like a good platform at the time.

Power Hunger
PDA hardware sucks juice at an enourmous rate. I did try the 1,500mA battery extender for the Toshiba e755, but stuff as usual won’t perform if built with materials costing below a certain price point.I tried to replicate that with software on a power hungry platform and failed miserably.
I will start making use of GPS now on a dedicated gadget, a dedicated tool instead of multiple options of none.

Explorist

The Magellan Explorist 210 is (Thales/Magellan cheapest model) currently selling for about $150 (S&H included) at RedOrbit. Simple, B&W, low-res but it has everything one needs for navigation. Period.

It has no expansion for SD Card but has 22Mbytes of internal memory, from which about 20% gets used by its firmware. It can hold 2,000 waypoints, 1,500 more than the cheapest Garmin (old entries get replaced by new ones if you ran out of space). It has a rugged body in live colors.

I already let it drop from the bike (yes, they do sell a bike holder for about $40 bucks) and just got a barely visible scratch. Thales got bought recently by Shah Capital Partners which hopefully knows what they got on their hands. It is good stuff.

With this I’m giving up color, resolution, screen size and a “common” user interface for 18 hours of use on 2 AA.

The Explorist is a well designed product (still missing dedicated Mac packages) that includes a Geocaching Manager and a software package to read/transfer data from its own MapSend topographical and street level maps.
You get a basic map data with the model itself. I can see highways, city names and where the water should be. For another 75$ or so you can get a CD with 3D Topo images of the whole US (or unlock the DVD with maps that ships with the product). You can zoom down to 100 feet on its US BaseMap.I like the response time of the digital compass, because I never got anything even close with any combination of GPS card and software on the PDA. It obviously uses the GPS data to tell time and it has a very basic and easy to follow sequence of commands.

By plugging its USB cable to a PC running Windows you see its internal memory as a directory structure from where you can drag and drop text files ready for use by any ASCII editor.

GeoTagging

After riding for a while in Capitola for some pictures during its Art & Wine Festival I could grab the .loc file from the the current tracking session or Active Trace log. The plan was to geotag the pictures I was taking with the location data from my track.

Software can batch process a whole image directory looking for pictures taken within a given time interval. You need to convert the original .loc file to .gpx format/file with GpsBabel.
The minimalist Grazer then will edit the EXIF headers of the matching pictures with their corresponding latitude, longitude and altitude. You can see the results with the freeware Exifer (the author asks for a postcard for registration).

Now I can upload those images to Flickr or some other site with geotagging capabilities and a map interface.
[Update: According to this post, you can turn on “Read GPS data from Exif header” on Flickr by going to this link, after that new photos while uploaded should have their location info extracted and used. I can see the Exif data for a particular photo including GPS data. So far I haven’t been able to use that data to place a photo on their map.]

[Update 2: A workaround involves providing GpsTagr with the corresponding .gpx file based on which your Flickr photos should be geotagged, that did the trick of setting up the location for each picture and displaying them on a map.]
The search is over. Let the real work begin.