[GPS for EarthMate] GemGlobal - on-line moving maps

February 2010  –  Again, it was time for some updates to the program to accomodate changes in GoogleMaps' URL syntax. Please download version 1.4.

What is it

In 2001 I bought an EarthMate GPS from DeLorme. A small yellow unit, smaller than a pack of cigarettes, connecting to the serial port of your PC. When I bought my EarthMate it was a serial interface (RS232) unit, today's EarthMate's are connected through USB. More about that later.

Because the mapping software coming with the EarthMate is very US centric, I developed a Win32 program called "Gem", later "GemQuest", then "GoogleGem" and now "GemGlobal". It reads a position from the GPS unit, gets a map for that location from the Internet and displays it showing you your postion on the map. As simple as that. The program caches the downloaded maps on disk and will use them lateron, when a location gets "revisited".

Over the years, most mapping sites have moved away from a system based on single images to a structure based on smaller tiles of 256 x 256 pixels. This made it feasible to make a single program that uses different mapping sources side by side. For those that retrieved maps in the past using any of the Gem programs, unfortunately you will have to start from scratch, because I revised the directory structure in .\Maps into a hierarchical tree. Which makes it for a human much easier to trace a tile, but it isn't compatible with the previous system.

[download GemGlobal]

How does it work

First step is to install the program. That is rather simple, download GemGlobal and unzip it in a suitable directory, like "C:\Program Files\GemGlobal\". The first time you run the program, a few configuration files are created in the same directory, with reasonable defaults for some parameters you can customize. Also at startup, a subdirectory with the name "Maps" is created to store the maps you download. It is probably a good idea to create on your desktop a shortcut to the application.

When you run the program for the first time, you should be connected to the Internet. Also connect your GPS to your serial port or through a converter to your USB. In case of the latter, use Control Panel to find out which COM-port is used, in my case COM5.

(click to enlarge) (click to enlarge)

After your first start you should give the newly created gem_ini.txt file a good look. In case you connect trough a proxy-server you have to edit the "prxy=" parameter, like "prxy=webproxy.domain.com:8080".

The program is preconfigured for NMEA, using COM1 and the gem_pos.txt file points to Helsinki. Reason for the latter is that without a license key you can still freely browse maps north of 60° latitude. However you can browse any 'World' scale maps. And now we're on that topic, Etopo2 digital elevation maps are only available for 'World' scale. Zoom-in doesn't exist.

Start the program (you were still on-line ?!) and then it is very important to be patient. GemGlobal will load the necessary maps and will then try to connect to your GPS device. If your GPS is not an NMEA device and/or not on COM1, choose "File -> Disconnect", "Device -> EarthMate" (or one of the others), then "Options -> Settings COM", select your COM-port (between COM1 and COM9) and again "File - Connect". The device type and port-number will be saved in gem_set.txt, so you will have to do this only once.

In case of trouble with connecting to your GPS, there are two monitoring utilities that shows you the traffic (if there is any :-) between your PC and the GPS. Download TtyRock.exe when your GPS is an Earthmate (using the Rockwell protocol) or use TtyNmea.exe when your GPS uses the NMEA protocol, like the old Tripmate. For both, start the program, select your COM port with Options -> Settings and start the monitoring with Gps -> Connect.

When GemGlobal can connect to the GPS, within a minute you will see the GPS-time (maybe in GMT) appearing in the title-bar of the main window. Next the GPS tries to find enough satelites for a fix and when it succeeds you will see your location in the title-bar. This can take couple of minutes. The good news is that the next time you start the program all these settings are loaded from disk and initialization happens in 10-30 seconds.

The moment the program finds its position, it will also download a map for your area and replace the Helsinki map. You are in business!!!

If you're not so lucky and you're wondering what your GPS is doing "behind the scenes", check "Device -> GPS Monitor". This will show you the traffic going on between the program and the GPS.

(click to enlarge)


Special features

Gem on a desktop allows you to track a mobile (PDA) unit running PocketGem, as long as that PDA has a wireless TCP/IP connection. I think this is pretty cool and gives a whole range of new applications to GemGlobal.

GemGlobal is working with the new EarthMate-USB. The new Earthmate uses the NMEA protocol over an emulation of RS232. Therefore you have to install the serial drivers, supplied by DeLorme, After that use the "EarthMate USB" device option.

Using the "zone=" parameter in gem_ini.txt you can take care that the GPS time in the window bar is displayed in local time instead of GMT/UTC. The format of that parameter is like "Zone=-5 EST".

You can run GemGlobal on your Linux box. Based on a tip of a user, I tested running GemGlobal under the Wine subsystem on Redhat with Gnome. Some other folks have reported success using SuSE with KDE.


The big picture

GemGlobal runs in two very different modes: on-line and off-line. The former is to plan your trip and download the required maps. The second is for use on-the-road. The program supports five different zoom-levels. For each you have to download maps, but it is important that you have a set of maps for a sufficient area, while zoomed out completely. So, press the "World" button and download maps, using the N/E/S/W buttons or with your cursor keys.

When you disconnect from the Internet you better switch to off-line mode. If you are in autopan-mode, the window will refresh maps, when you are driving off the map.

Another possibility is that you would like to browse the maps, without owning a GPS, or just without having it connected. In that case edit gem_com.txt and make the port COM0. GemGlobal will now work without connecting to the GPS unit. In this scenario, it is of course a good idea to put some well chosen start values in gem_pos.txt.

Zoomed Out (click to enlarge) Zoomed In (click to enlarge)


The little details

Let's go through the menu, item by item.

  • Gps -> Reload Map - If for any reason you have a map downloaded and stored, but the map-image and filename are not matching, you can get a fresh copy from the Internet using this function. You must of course be on-line to use this.
  • Gps -> Online - In this mode maps are searched first on the local harddisk, but when not found are downloaded from the Internet.
  • Gps -> Offline - This mode will only use maps previously downloaded. After starting the program the connection with the Internet is checked and when not present, the mode is automatically switched to off-line. This will happen roughly half a minute after start-up.
  • Gps -> Connect - Try to make a connection with your GPS unit.
  • Gps -> Disconnect - Break the link with the GPS. This will reset the GPS, which can sometimes help in reestablishing communication with the unit.
  • Gps -> Exit - What's in a name ...

  • Edit -> Copy - Will copy all maps in the window as one large image to the clipboard.

  • Maps -> Xxxx - Select your mapping Internet site. Etopo2 maps are only available in World zoom-level.

  • Device -> NMEA - To use an NMEA supporting GPS. Garmins can also use this interface. The COM-port will be set to 4800,n,8,1.
  • Device -> EarthMate USB - To use the new EarthMate USB as your GPS. The COM-port will be set to 4800,n,8,1.
  • Device -> EarthMate - To use the old serial EarthMate as your GPS. The COM-port will be set to 9600,n,8,1.
  • Device -> TripMate - To use a DeLorme TripMate, which uses the NMEA protocol. The COM-port will be set to 4800,n,8,1.
  • Device -> Garmin - To use a Garmin GPS and the native Garmin protocol. The COM-port will be set to 9600,n,8,1.
  • Device -> Remote - In this mode, GemGlobal will wait for a PocketGem on a PDA with GPS, to send it's position over the Internet.
  • Options -> Settings COM - Main purpose here is to change the COM-port number. For this you must be disconnected. The defaults for the other options should be OK, when your GPS is still using factory settings.
  • Device -> GPS Monitor - When selected, another window opens that shows the raw data received from the GPS and gives a table with data about each satellite.

  • Options -> Auto Pan - This mode (default selected) will try to "pan" the displayed map, when the GPS unit is moved. When on-line at the same time, a new map is downloaded when required. You can select Auto Pan also by clicking the toolbar button "Gps".
  • Options -> Auto Zoom - When on-line and with this mode selected, the program will try every 20 seconds to zoom in to get more detail. An important reason to implement this function was that the program will always automatically zoom out, when a map can not be found. This mode will compensate for that when you get into an area where again a detailed map is available.
  • Options -> Track - In this mode (default off) the old GPS markers will not be deleted, to allow you to follow your tracks. This function could be implemented more extensively, storing a tracking log to disk.
  • Options -> Big Maps - When selected, a larger size maps will be used: 600x500.
  • Options -> Map Coordinates - Show the coordinates of the mouse pointer instead of the GPS current position.
  • Options -> Aerial Maps - Toggle between maps and satellite images.

  • Help -> Keys - How to navigate using shift, ctrl, etc.
  • Help -> Support - Read all about it.....
  • Help -> About - Shows the version number of the program.

Further, there are some features that can only be set using the configuration files. The most important one is gem_ini.txt.

  • The zoom=# parameter controls which zoom level you want to start with (0 to 4).
  • The maps=path entry can be used if you want to store the downloaded maps in a different drive or directory.
  • With the option hair=#, a cross-hair will be added to mark the current position. You can choose a line-thickness between 0 and 9.
  • Then there is a dash=km/h (or mile, or m/s) parameter that will draw a little window with your speed and direction. This only appears when you are moving.
  • When you specify a zone= parameter (format is like Zone=-5 EST), the time in the title bar will be shown in local time and not in GMT/UTC.
  • With the option file=logfile.txt, GemGlobal will regulary write positions to the specified logfile. In the menu, you will have to enable tracking as well and it is your responsibility to empty this file from time to time.
  • If you specify plot=yes all tracks in the logfile will be plotted on the map
  • With the base=host.domain:port you take care that the remote GPS/PDA knows the address of the GemGlobal basestation and the port it will listen on.



And finally, please have a look at the support box under the menu Help -> Support or you can register straight-away.

[GPS] [GPS for EarthMate] [Gem for Windows Mobile] [Gem for Pocket PC] [Gem for Canada]

  Willem van Schaik, Calgary, August 2009     http://www.schaik.com/wwwillem.html