GPS Forwarder english

Deutsch

Problem

In the last years I used the lifetracking functionality of Oruxmaps for my Brevets: Oruxmaps sent the data directly to my home page where it was received and displayed by the WordPress Plugin Trackserver. However this turned out to not be be very reliable, I think the problems are mainly on the smartphone side.

  • Especially after long network outages lifetracking often never started again
  • For long tracks, the GPS time went back 24 hours into the past. I do not yet know if this bug is in Oruxmaps or in Android. HOwever I can reproduce it running Android in an emulation, so it cannot be hardware or firmware
  • After network outages Oruxmaps only sends about 50 point for the entire untransmitted range, making it less exact
  • Sometimes Oruxmaps (v7.3.7) sends messages in the wrong order. For example, the last position might be transferred after tracking has already stopped. See  Oruxmaps Forum

Solution

So now I wrote my own App for Android. It does not fix locations by itself. But whenever any other App does, GPS Forwarder will notice and forward the position to a lifetracking server like Trackserver.

GPS Forwarder shows log messages explaining exactly the reasons why it might not work – and there are many possible reasons! It is getting more and more difficult to write an App such that it can still work reasonably while running in the background – Google makes it more and more difficulty to „waste“ battery power.

GPS Forwarder uses the transmission protocol defined by  MapMyTracks.

Installation

  • Android 6.0 „Marshmallow“ or later is required
  • Here you can download the current version. Offering installation with F-Droid is on the TODO list.
  • In GPS Forwarder define those settings:
    1. Url: The server address. If it starts with https://, the transmission will be encrypted. You can define a specific port with a colon like in https:/myhomepage.de:3456
    2. User name on the server
    3. the corresponding Password
    4. All other settings can be done later. Normally their default should already be quite usable.

Support

If you find a bug or if you have a wish, please open an issue

Development

GPS Forwarder is published under the open source license Apache 2.0.

The source code is on gitlab.

Server software

This will normally be the mentioned Trackserver or mapmytracks.com. But I also wrote something for the server: Gpxity. This contains a server script. Below you can find an example: It will receive the data and forward them to two targets: A local directory /var/lib/gpxity_server and the WordPress Plugin Trackserver, directly writing into its data base. There is a separate configuration file for account credentials and for fences: positions within defined ranges will not be forwarded to the respective target. You can define any number of different targets like mailing the entire track every X minutes.

This way the phone only needs to transmit the data once. On the server side, Gpxity forwards it to the final destinations.

gpxity_server --certfile=/var/lib/gpxity_server/cert.pem --keyfile=/var/lib/gpxity_server/key.pem --timeout=5 --servername rohdewald.de --loglevel debug /var/lib/gpxity_server wptrackserver:wolfgang