Why does dwMap not have, well, a “map”?

dynamicWatch
3 min readSep 25, 2016

--

(Update Apr 16th 2018 — as time has moved on, new features have been added to the Garmin watches, and we do now offer a “background maps” feature on select watches! Read all about it in the dwMap Background Maps help page and in the Medium article dwMap Background Maps)

One common misconception about our dwMap route map app for Garmin Connect IQ GPS watches (such as the Vivoactive, Fenix 3 and Forerunner 235) is that it will show a detailed street map on the screen with a route line overlaid on top.

We’d love for this to be the case, but the watch platform has a number of limitations that make this impractical or inconvenient. In order to deliver a fast, reliable, responsive user experience we decided that dwMap would show your planned route as a line, viewable at four zoom levels, together with an arrow showing your current position and direction of motion, and a “breadcrumbs” track of where you have been.

In the Premium version we also added the display of user-defined waypoints.

Watch Memory

The biggest limitation is memory. The Garmin watch platform only offers 64kB of memory to each app. That’s kB, not the MB, or even GB that phone apps or desktop programs allow, and both program code and data have to fit into that. As we described in dwMap — After the Launch, this means we have to be careful at all steps in choosing and implementing new features, and even with that discipline the amount of memory left over for map data is limited. We use an implementation of the Douglas-Peucker algorithm to reduce the size of routes by eliminating the least important points.

Even with all these approaches we are running only just below the memory ceiling, and adding street map data is not possible.

Network Communication Speed

The watches use the low power Bluetooth (BLE, sometimes called Bluetooth Smart) wireless protocol to connect to a smartphone. This uses very low power, and helps the Garmin watches get stellar battery life compared to other smartwatches, but is much slower than regular Bluetooth or other wireless data protocols. 10kb/s is a commonly seen speed.

By keeping our route maps data size as small as possible, the app can typically download a new map in a few seconds. This would be substantially longer if we were trying to download detailed street map information.

Watch CPU Speed

Another reason that the Garmin watch achieve such great battery life is that they have much less powerful processors than other smartwatches. As we added more features to the dwMap app we realized that the processor simply could not keep up. If we get a new GPS point every second, and it takes us 2.5 seconds to redraw the screen, for example, then the user is going to see the app as sluggish, especially when responding to screen taps and button pushes.

Hence we test all new features to make sure they do not exceed our targets for “per-GPS-point” processing time, and we know for sure that trying to display a detailed street map network or map “image tile” would not be a responsive user experience.

Watch Screen Limitations

Finally, the number of different colors available on the screen of the watch is limited to only 16 or 64, depending on the model. With just 16 colors to work with, it would be very difficult to show the rich color experience users see on web-based maps, and on the 16 color watches, the contrast between even those limited colors is not always good.

We use a simple palette of basic colors to maximize legibility in the real world, that varies from screen glare on a sunny day to the backlit illumination on a dark evening.

--

--

dynamicWatch

Send routes to Garmin Vivoactive, Fenix 3/5, Forerunner, Edge GPS with dwMap & routeCourse https://dynamic.watch