Free navigation software

There is quite a lot of free navigation software based on OpenStreetMap, but it’s somewhat difficult to find something that actually works for the given purpose. I feel like I need to document for myself what to use. And why not share the documentation? Hence this blog post.

It’s easy on Android – there’s OsmAnd there. OsmAnd is somewhat difficult to use but otherwise it’s nice, working well and providing a lot of useful features.

It’s less easy on desktop. After some searching I got amazed by BRouter, which is a navigation backend capable of offline OpenStreetMap based navigation. That’s a killer feature itself, but BRouter also provides another outstanding feature. You can create complex BRouter profiles describing your navigational preferences, which is especially useful for bike navigation. BRouter can’t be used without reading its documentation first and it takes some effort to make it running. But it’s not too difficult and once BRouter is up, it’s amazing.

BRouter can be used on both desktop and Android, but it’s just a backend server. You need some frontend to actually use it. You can use OsmAnd on Android. There is a very plain BRouter application to set up the server and then BRouter can be chosen as the navigation backend in OsmAnd preferences. As for desktop, you can use Web client for BRouter. It can be used locally or as an online Web application, with your selected set of profiles. There is also an online demo for testing BRouter with its included profiles (there are more profiles available from third parties, see documentation).

For simpler planning, especially for making simple sequences of track points used e.g. by some Garmin devices, FoxtrotGPS is well usable. Unfortunately FoxtrotGPS seems incapable of displaying complex GPX tracks. But then there is GPX Viewer, which is nice for viewing GPX tracks.

Using Polar M460 on GNU/Linux

In short: Use Garmin if you can afford it.

The problem with Polar devices is that they are not only proprietary themselves but you can’t operate them without using additional proprietary software. If you don’t like the default Polar M460 sport profiles and screens (and no, you won’t like them), you must find someone with Windows (or Apple) computer. You must install Polar software on the computer and use it twice: First to register the device at Polar and upgrade its firmware and then, after you prepare your setup in the Polar Web application, to change the device settings.

Good news is that then you won’t need Windows anymore, unless you want to change device profiles and screens or to upgrade firmware again. But you’ll still want to retrieve data from your device regularly. You can do that using the Windows application, using a proprietary Polar Android application or (fortunately!) you can do that even on GNU/Linux.

Thanks to the authors of bipolar and v800_downloader it’s possible to download and convert data from some Polar devices. It’s also the only way to get the data without sharing it with Polar. To download and convert data from Polar M460 you need a slightly modified version of v800_downloader (v800_downloader is unfortunately abandoned, so the changes can’t be integrated into the original version). It works for me and I can get complete recorded data: time, GPS position, GPS altitude, barometric altitude, temperature, distance, speed, cadence, heart rate, heart rate variability, and some summary data. There are sometimes problems such as that stored sessions can’t be listed or the downloaded data is incomplete. Reconnecting and/or restarting v800_downloader helps in such cases.

To use online and other features such as syncing data to Polar Web, mobile notifications, Strava segments, or route upload, you still need Polar Android or Windows proprietary applications (so no luck if you have a free software OS without Google Play on your mobile phone). All you can do with Polar M460 without using additional proprietary software is to use its built-in display functions and to download logged data. But that’s already quite a lot, especially for those who don’t race, don’t want to upload their private data anywhere and don’t need proprietary fitness analysis functions.

Why do I think that using Garmin devices instead of Polar or other vendors’ devices might be a better idea? As far as I know Garmin devices still expose logged data via USB mass storage protocol and it’s possible to set up most of their functionality without using external software. So there is no trouble with their basic usage, Garmin allows at least using the basic device functions. You also get navigation functions and ANT+ support with most devices.

Is there still any reason to use Polar M460 then? Well, Polar M460 is a nice device equipped with all the common sensors, either internal or external. Up until recently, only very expensive Garmin devices supported Bluetooth (which matters if you want to use devices such as Polar OH1). You can buy Polar M460 for a good price today, Garmin is much more expensive and since Garmin devices are still proprietary (although with less need to use additional proprietary software) you waste your money on a proprietary device. But the price difference may be erased with the new Garmin Edge 130, which looks interesting (I don’t know whether it works with GNU/Linux though).

BTW, very similar problems are with Polar OH1. You need a Windows computer to initialize the device and to upgrade its firmware. If you are interested in using it as an independent device, there is still some chance to download logged heart rate from it.