Monday, November 12, 2012

GPS Tracking

Misc information about GPS tracking devices and solutions.

What I'm looking for is a solution to track ultra runners during races lasting up to 30 hours or more.
Requirements on tracking device (the thing the runner will carry along, this could as well be a smartphone app):
  • Very Long Battery Life >30h (while almost continuously send GPS data)
  • Optional: replaceable batteries or at least ability to charge device while on the run. Or external battery connector ...
  • Send position data via GPRS connection to any computer on the internet
  • Configurable time interval for sending data (continuously vs. 10-20min. intervals)
  • Sleep mode (power-off GPS/GSM while not sending data)
  • Optional: Multiple Geo-fences (e.g. Alert when running through aid station)
  • ...
In addition a web portal is required to visualize the runners along a given course.

Currently I think only two types of hardware tracker would make sense:
  • GPS (or in the future other satellite system) / GSM tracker:
    • gets location via satellite and transmit position data via mobile phone network (GPRS)
    • advantage is relative low cost for data transmission
    • disadvantage are roaming costs if used across different countries, mobile network coverage sometimes not available.
  • GPS / Satellite communication tracker"
    • this is what e.g. SPOT tracker do. You receive GPS position and transmit via satellite communication network  
    • disadvantage relative high cost almost always you need to subscribe for monthly or yearly provider plan and pay in advance.
    • advantage is depending on area and satellite communication provider usually good coverage.

This page is work in progress!!

List of Tracking Devices:

Tracking Portal:

GPS CatTrack Live 3

Information about CatTrack Live 3 Tracker can be found here.

Battery Testing

In the chart below I thought I had configured an 10 minute time interval for sending data via GPRS, however the server receives this only about every 20 minutes ?!?
The device was running already for almost a day before I started recording the data (battery at about 75%) but I missed the data.
It looks similar to a typical discharge curve of Lithium Ion Cell.

Second chart, configured CatTrack Live device to send data in 5 minutes intervals which resulted in tcp connections to the server roughly every 10 minutes (??!)
First data shot was received at 11/13/07:28:18 (battery at 100%) and the last one at 11/15/10:10:23 (with battery indication of 10%).
This means a good 50 hours operating time with GPS positions transmitted in an interval good enough for ultra trail races (like a 100 miler or so).

Here the GPS data is shown:

JUNUT 2013

Jurasteig Nonstop Ultratrail

Friday, October 26, 2012

Ultra-Trail Watch?

I sold my 910XT since it does not fit my type of (ultra trail) running, I was long struggling if either Ambit or Fenix would be the way to go ...

I recently came along this gear review comparing Suuntos Ambit against Garmins new Fenix:

But still ... for now I decided to buy an eTrex 30 and keep my FR305. For the casual training runs the FR305 is totally sufficient.
For ultra runs (>24h) the eTrex has enough battery power, the batteries can be replaced, map support (even OSM), ANT+, compass, barometer, and everything for a reasonable price (currently almost half the price of the Ambit)

So going for an eTrex or similar device might be an option for ultra runners too.

Here's a link to an article in german language about the Garmin eTrex compared a some other handheld navigation devices:

Thursday, August 23, 2012

Ambit or Fenix as Ultra-Trail watch

This is not intended as a review for either one of the two GPS watches the Suunto Ambit and the Garmin Fenix but rather my personal pro and con list how well they are suited for me as an ultra runner.

For review and more stuff about GPS watches a good place to look for is at

My requirements:

  • very long battery life
  • option to charge the device while using it
  • GPS track log (option to customize GPS acquire/recording interval)
  • GPS course navigation
  • Altimeter/Barometer, Temperature, Compass
  • Along with GPS comes the basic sport or training watch functions like stopwatch, pace, distance, etc.
  • Connection to PC usb, serial, wireless? Ability to get tracks off the watch from Linux computer
  • Option for HR monitor (optional training effect, RR interval recording)
  • Multiple customizable screens to display any information required
  • Durable, Waterresistant,  ...

As of today (2012-08-23) the Fenix is not yet available and an announced but crucial update for the Ambit is still to be released.
The original Ambit does not allow for course navigation as it is known from the Forerunner series. That was one reason for me not to buy an Ambit so far. In my following list of pros and cons on the two watches I take into account the fact that Suunto announced an update that will get this feature (breadcrum course navigation) into the Ambit (together with support for ANT+ devices so one could use Garmins HR belt). It is yet unknown how many trackpoints would be supported for any given course. The Forerunners as well as the Fenix allow up to 10.000 trackpoints (yes this is important to know).

Lets step through the important features ....

Battery Life

Both offer up to 50 hours operating time with GPS enabled. On both watches it seems there's only two settings for the recording interval (something in the range of 1sec and 60sec). This of course will effect total time of operation ranging from about 15-16 hours with max numbers of GPS locations recorded or the before mentioned 50h at 1 minute intervals.
For me I would like to see that this setting is further customizable by the user e.g. in the range from 1sec up to 5 min. in lets say 10sec increments. With this I can decide myself on track accuracy vs. battery life.
 Ambit +1
 Fenix  +1

Course Navigation

Only time will tell. From the specs and reviews it might look the same or at least very similar. I just have some awkward feeling about this when I think about my Forerunner 910XT. Some readers are probably aware of the fact that Garmin just screwed up on that feature with the 910xt and still have no fix for it. I find this particularly bad because this just works on the FR305 and I really don't  understand what the heck they tried to improve here!
Anyways to me another standoff.
 Ambit +1
 Fenix  +1


One of the features that I really wanted was a barometric altimeter. If you look at the elevation profile recorded by an FR 305 you know what I mean.
And in addition I wanted to have the accumulated ascent at hand. This is again something the 910XT is suppose to have ... but again this does not work as expected. As the Fenix is not yet out it's difficult to make a statement here. But dcrainmaker who actually has a unit for testing reported that Garmin is still doing hardware changes (and a lot of firmware updates). One hardware issues was related to barometer function. So let's just hope they do it right this time.
Suunto on the other side is very well know for very accurate elevation measurements on their watches (even without any GPS calibration options...maybe that's the reason?).
So In terms of barometer and at this stage I would include compass and temperature as well I would think that Suunto might do a better job.
 Ambit +1
 Fenix  +0.5

Sport Watch features

The Fenix is announced as an outdoor watch that should combine functions from their GPS navigation devices (like Dakota, eTrex, or Oregon) and stuff you find on a Forerunner (without multisport support). The Ambit offers a good set of functions including the training effect algorithm and ability to store RR-intervals (used to further analyze how good your training is, how well you are recovered, ...). This is the same thing as the 910XT has but it is said that the Fenix will miss quite some of this functionality. This means the Fenix would have very limited options to support a certain form of training but it does support heartreate monitoring in general.
 Ambit +1
 Fenix  +0.5


I'm a Linux user. It's like that ... I do have one harddisk where I can boot some Windows XP but it's slow and outdated. And besides putting courses or firmware updates on the 910XT I really do not have any need for it at the moment.
So it is very important to me that I can have any kind of tool available to at least do basic stuff like downloading my runs from the watch.
This works with FR305 and FR910XT (yeah with 910xt there are still limitations)
So here the information that the Fenix offers USB connection is very promising. As long as the watch would act as e.g. a mass storage device or something under linux. So it would simply be a matter of mount and copy to get activities from or to the watch. However it is not yet confirmed that it will work this way. I know there's an option to store tracks as FIT files or GPX.
Suunto afaik requires a windows application and movescout account. But there're also stand-alone tools that can download tracks from the Ambit but again Windos or Mac only ...
With the Suunto update coming along at least it should be able to use any kind of ANT+ devices to connect to it. Not sure if that would help in track downloading.
The Fenix, in addition to ANT+, has BT 4.0 (Bluetooth low energy). Not sure yet what features initially will exploit the BT stack but the options seem endless. Just consider the ability to use it as a bluetooth GPS mouse and connect to PC/Laptop or any mobile device not yet equipped with GPS, I think this is rather cool.
 Ambit +1
 Fenix  +2


Ambit:  5
Fenix:   5
This currently matches my feelings about those two devices. If I had to choose one now I really do not know which one to go for. So far I was very happy with Garmin and the FR305. The 305 had issues and I had it replaced twice and got a brand new device. But with the 910xt disaster (yes that's what it is to me) my opinion on Garmin slightly changed.
But I would like to at least wait for the in-depth review of it from dcrainmaker and probably wait until there's some feedback in the forums.
Same holds true for the Ambit. I have to wait for feedback from users how well the announced update really works and if the course navigation is comparable to the one on the Fenix.

I'll probably update this once I have further information ...

Forerunner 305 Range Extender

How to extend FR 305s battery life

What do you need?
  • Battery pack e.g. Power Bank 5600mAh (I bought mine at Amazon)
  • Forerunner 305 with the extended (long) strap
  • The charging cradle. NOTE: the charger has a metal plate inside to give it a proper weight (it's meant to stay on the table), remove the three tiny recessed head screws from the bottom of the charger (they are covered by the rubber foam for scratch protection) take out the metal and re-assemble the stuff
  • USB cable
  • some MP3 or phone arm holder

This is how it would look like ...






Other options?

I just stumbled across this link:
This seems pretty cool, so you basically can replace the complete battery and insert some with higher capacity.
Once I have found adequate successor for my Forerunner 305 I might give it a try ;)
Another link describing on how to replace the battery on the 305 (in German):

NOTE: would rather not remove the protection circuit from an Li-Ion battery (if it fits the housing)! This does prevent the battery getting destroyed if voltage drops below 3V or so. If you intend to replace the battery to increase runtime, which means you install a battery that has a better capacity then the installed 720 mAh then it's likely you would run with the watch until it turns off because of an empty battery. In this case you should not remove the little circuit from the battery (Only do this if you're able to recharge before the battery is completely drained)!
Note 2: I think there's no Li-Ion cell with attached charging circuit (looking at the bare cell)? So in any case charging is done by the device, so it holds true that this circuit is not required for proper charging of the battery when put inside the Forerunner.

Sunday, August 12, 2012

Minimus vs. "Maximus"

Let's get ready to ruuuuuumble ...


This is the battle between my new Hoka One One - Bondi B Low and the New Balance - Minimus Trail 00.
First off there's already reviews out there e.g. on For the Hoka you may want to read this or for the NB Minimus this.

Hoka Bondi B

As for the Hoka, now after two runs with them (25k road only and 30k including roads and single-trails of different surface) I think this pretty much matches what was said by in his video review.
After getting more and more into minimalist running I had my doubts about such bulky and high shoe. But after a lot of positive reactions from other ultra runners I felt I give it a try (In my area Boeblingen, Germany you can get them at Kona Sports, Gaertringen). Again, watch the video review, I can only repeat what was said. I do had the feel that they are a bit too high and less stable because of that. But I think I got used to it. I ran a few downhill trails with some roots, rocks, and such and felt good. I cannot tell anything how good they are on mud but I think they will have their limits. At least Hoka is coming with a Trail version of this shoe. And I do think they do aid recovery. That was two runs within three days and I do not feel the distance. This is different if I do this in "barefoot" shoes.
And I want to add that I personally feel that this is not a "fast" shoe but a "go far" shoe. This probably comes from the big amount of cushioning of the shoe such that if you try to run very fast your force is simply absorbed by the shoe instead of bringing it in the ground and brining you forward. So I think I would not wear the Hoka in order to beat my PB in a city Marathon but maybe I should give it a try ;)

I just ran a 100 miler which is mostly forest roads, paths, or ways and trails. And it did again prove right on what was already said, this is a long distance shoe! And you definitely have less pain in the lower legs an even keens during and after the run. I mean don't get me wrong 100 miles do hurt no matter what but I felt fresh for a longer period of time. And not too crappy on the next morning(s).

NB Minimus Trail Zero

Honestly I did not had real chance to test them out. However they fit well, the outsole seems to have some good grip. A little bit of walking through the city was an interesting feeling. They do not have the same contact to the ground as for example the Vivobarefoot Evo, that probably comes from the outsole having some "bigger" tread pattern. So they to some extend still have a little bit of cushioning. But you definitely have to wear them on trails and not on any road.
Now I did some easy runs including trails any can say that they just work.
This means you get what you pay for a good, light, and minimal trail shoe. I will not put it on to go for an 100 miler (at least not at this point in time) but it has some good grip on terrain with loose gravel for example. Could not test on mud as there's now rain here for a while ;)
I will update this once I have used them and have the time to do so.

Wednesday, July 18, 2012

Nathan HPL #759

The Kalenji Pack has been sent back to Decathlon store. Still feel a bit sad about it.

Now I own a HPL #759 from Nathan. Even though this pack is from around 2007 and the version I have now was redesigned in 2009 I have not yet come across this one (neither on the web nor on a race). Of course so far I was not really looking for something that would allow for some self-supported long run ... very long run. Now this pack is not really available anymore and even though it is old I was able to purchase one at


  • Two-way propulsion harness
  • Dual molded Rocket Holster offer two bottle position options: angled for quick, one-handed bottle access, or horizontal for storage
  • Two 22 oz. Hydration Bottles
  • Zippered main compartment with 1200 cubic inch gear capacity
  • Compression Wings stabilize load and provides storage for hiking poles
  • Dual front pockets, one mesh holster, one zippered
  • Power Stretch Mesh back pocket for jacket or gloves
  • Vertically adjustable sternum strap with tube clip
  • Honeycomb Mesh shoulder straps and back panel add comfort, prevent chafing, and dissipate heat
  • Honeycomb Mesh padded wraparound waistbelt with dual dimensional, Power Stretch Mesh pockets
  • Lightweight, breathable Wall Mesh with soft perimeter binding that feels great against skin and won't damage technical appareal
  • Hydration Bladder-compatible (bladder not included)
  • Weight: 28.0 oz.
Actually I have not yet figured out what is meant by the two bottle holder positions and how to adjust or change respectively them. Also need to get used to the "Compression Wings".

So after some miles of more serious trail running with the HPL #759 I know that the angled position is indeed easier to access but if the pack is really loaded to its limit including the 3L hydration bladder the top of the bottles really rub and hurt my back because the lower part of the holster tend to point more to the outside of the pack.
So coming back from the run I tried to figure how the horizontal position should look like and if that would cause less pain...
Since I got also other stuff to do I gave up not before writing an email to Nathan asking for help.
Et voilà ... here's the answer, thanks to Andy from Nathan:

photo by andy choi

Bottle in "horizontal" position. This is where you could add a few more items into the other opening of the holster.
It is indeed difficult to get the bottles in and out while running but it does work and in this position the bottles can't bounce on your back.

photo by andy choi

This is the more obvious way to insert the bottles and called the "angled" position. It's easier to get bottles in and out while running ... but its still not too easy ;)

So this one has plenty of space for all kind of stuff. I particularly like the shoulder strap pockets (well I'm used to those from the HPL #008).
The 3l Platypus Hoser which I originally purchased for the Kalenji does fit nicely into the #759.

Besides the bottle holster issue I personally dislike that the pack (at least if fully loaded) sits a bit to low on the back. Will see how to works for really long runs.

Q: So why do I buy an basically outdated pack?
A: Because it seems just the right pack for me and my current needs and I'm satisfied with Nathans products and its quality.
Q: Alternatives?
A: The closest match to this one now seems to be the Fastpack from UltrAspire which is not too surprising since Bryce Thatcher has designed both of them or at least was involved.
Another alternative would be the  Salomon Advanced Skin Slab 12 (needs extra shoulder strap bottle holders and has small bladder  1.5l).
Q: Why didn't I go with the Fastpack then?
A: It seems not yet available and its not yet clear to me how the support for hydration bladder looks like.

I now have a confirmation from UltrAspire that the Fastpack  has hydration bladder support and a 3l reservoir will fit into it.
The Fastpack should be available in Europe/Germany about end of August 2012.

I think I would really like to get my hands on one of those once it's available.

Sunday, July 1, 2012

Review: Kalenji Water Bag Large

The motivation for this review is basically based on the need for a new hydration backpack. So far I could get along with the somewhat minimal HPL #008 from Nathan. It has a 1.5 liter bladder and two front pockets which I find very useful and would not wanna miss on any future replacement. Basically it's kind of a replacement for a waist belt since it does not offer very much space for additional items to carry but it is much more convenient to wear, especially for long runs such as 100k or even 100miles.

So what I was looking for is a similar lightweight pack that can hold at least 3 liter or more of water, has shoulder strap bottle holders, front pockets, and around 10l-20l of space for my stuff (food, phone, first aid, some cloths).

At some point I came across the "Water Bag Large" from Kalenji which I bought from Decathlon.


  • Weight about 390g
  • Cargo capacity about 10l-12l 
  • 2 liter bladder included
  • Size 26cm x 48cm
  • Two front bottle holder (fixed)
  • Four small front mesh zipper pocket
  • Vest style with zipper
  • signaling whistle


The fit of this vest-style pack is quite comfortable, even with two filled 700ml water bottles and the 2l bladder it does not bounce too much.
It could be a little bit bigger in size to hold a few more items and maybe a bigger bladder. I will try if it can hold a 2.5l or 3l water bladder without loosing too much space elsewhere.
The pack features some compression system which might not really be necessary given its size. But this can be useful to attach some stuff like a light rain jacket or other stuff on the outside of the pack.

Underneath each bottle holder are two zipper pockets to hold some gel or alike. I find those zippers a bit difficult to open and close. Especially if you have a bottle inside the holder it is also a bit tricky to get stuff in and out of those pockets but they are still very good to have.

What I'm not sure about the the large front zipper to open and close the vest if you put the pack on. In general this works well but somehow it looks like it would not last too long but I could be wrong.

The bladder is located right next to your back and this bladder pocket has a Velcro strap. Besides this pocket there's two more, one which you open at the side of the pack with a zipper. This one actually has a hole for a bladder hose as well. And there is another pocket at the back of the pack also with a zipper. Last but not least this back pocket contains a small "waterproof" pocket e.g. for a phone.


As a replacement for the  2l hydration bladder that comes with the pack I now bought the 3l version of the Platypus Hoser.


  • lightweight 109g
  • size 18cm x 42cm
  • fits well into the Kalenji
  • bite valve works pretty well


  • difficult to refill due to its small closing
  • difficult to clean for the same reason 
As  for me those two cons are not too important as I would only fill in water anyways and I would most likely not use it in any event where the time to refill the bladder really matters  ;)


Looks that this product does fade (lose color). I noticed this on one light rain jacket and yesterday on my shirt:

Saturday, June 23, 2012


Record and Analyze HRV from 910XT

Enable RR recording

Turn on the FR910XT and go into the menu screen. Press UP then DOWN and repeat 10 times (if you count up-down as one cycle then this is 5 cycles).
You should now have entered the "diagnostic menu". From here select HRV on the top and press Enter. Now you can enable the hrv recording.

Getting RR values from FIT

For now I used fitdump and awk/sed to get rr values from the fit file into another file.

fitdump |grep -A1 hrv | grep time|awk '{print $4}'|sed 's/(\([0-9]*\)),/\1/g'

If there's values much too high you could filter them e.g.
awk '$1<1500'



You can use the hrv toolkit.
 plt_rrs -m -R hrv_values1

get_hrv -m -S -R 2012-06-24_08-08-32-80-97354.hrv

Or there is the HRV Analysis which is a windows application but works under wine:

Or for some less sophisticated plot try this, use the above output and filter again with awk:
awk ' { OFS="\t"}{total=total+$1; print total,$1}'  > hrv_values

gnuplot> plot "hrv_values" using 1:2 title 'HRV' with impulse

Saturday, June 9, 2012

BRT Cuesheets

How to parse cue-sheets from bikeroutetoaster (in order to prepare an aid-station summary)

Consider this, you are using (brt) to create a running course where you want to provide aid stations. In brt you do this by adding course-points (other points are track-points). When you add a new course-point or convert any existing track-point to a course-point you are asked to give it a name, type, and directions (or general description). For aid stations set type to Food.
brt then generates xml code which you can download on the cuesheet page. The xml looks something like this:

    <directions>Parkplatz Kohltor (Hildrizhausen)</directions>  
    <name />  
    <directions />  

So what I wanted from this was a listing that shows all points marked as Food (aid stations), at which mile/kilometer they are reached and the delta distance. In addition I output transit times for aid stations given estimated min/max finisher times. This gives some idea how long each aid station should be available.

The perl code to do this is printed here (download link below).
To run this script just provide the xml cuesheet filename as an argument on the commandline. $min_h and $max_h specify the expected minimum and maximum finisher times in hours.

1:  #!/usr/bin/perl  
2:  # Copyright Andreas Loeffler <>  
3:  # parse cuesheet xml files generated by  
4:  # it will output information about coursepoints that are marked as type "Food"  
5:  # use this to provide information about your aid stations if you plan for  
6:  # some running event  
7:  # Example: $ cuesheet-sut100q2.xml  
8:  use strict;  
9:  use warnings;  
10:  # use module  
11:  use XML::Simple;  
12:  use Data::Dumper;  
13:  use Date::Calc qw(:all);  
14:  my $xmlfile = $ARGV[0];  
15:  die "usage: brt-cuesheet (xml)\n" unless (defined $xmlfile && -s $xmlfile);  
16:  # create object  
17:  my $xml = new XML::Simple (KeyAttr=>[]);  
18:  # read XML file  
19:  my $data = $xml->XMLin($ARGV[0]);  
20:  print "xml file: $ARGV[0]\n";  
21:  my $min_h = 16;  
22:  my $max_h = 30;  
23:  my @start = (2012, 10, 13, 8, 0, 0);  
24:  my @end = Add_Delta_DHMS(@start, 0, $max_h, 0, 0);  
25:  my @now = Today_and_Now();  
26:  my @d_dhms = Delta_DHMS(@now, @start);  
27:  my $days = Delta_Days($now[0], $now[1], $now[2],  
28:             $start[0], $start[1], $start[2]);  
29:  my $vpn = 1;  
30:  my $prev;  
31:  my @d;  
32:  my %vps;  
33:  my $points; # points hashref  
34:  my $units;  
35:  my $pt = 0;  
36:  my $have_point = 0;  
37:  my $total_distance = 0;  
38:  my $toMi = 0.6214;  
39:  my $toKm = 1;  
40:  print "start: @start\n";  
41:  print "end:  @end\n";  
42:  print "now: @now\n";  
43:  print "Noch $d_dhms[0] Tage, $d_dhms[1] Stunden und $d_dhms[2] Minuten bis zum Start\n";  
44:  print "Zielschluss: @end\n\n";  
45:  $units = $data->{distanceUnits};  
46:  print "distanceUnits: $units\n";  
47:  if ($units eq 'miles') {  
48:     $toMi = 1;  
49:     $toKm = 1.6092;  
50:  }  
51:  foreach my $p (@{$data->{points}->{point}})  
52:  {  
53:     next unless ($p->{pointType} eq 'Food');  
54:  #   print $p->{name}, "\n";  
55:  #   print "lat/lng: ", $p->{lat}, "/", $p->{lng}, "\n";  
56:  #   print "total dist: ", $p->{totalDistance}, "\n";  
57:  #   print "point type: ", $p->{pointType}, "\n";  
58:  #   print "\n";  
59:     if (!defined $prev){ $prev = $p->{totalDistance};}  
60:     my $delta = $p->{totalDistance} - $prev;  
61:     $prev = $p->{totalDistance};  
62:     printf "%s:\t%5.1f mi / %5.1f km ", $p->{name}, $p->{totalDistance} * $toMi, $p->{totalDistance} * $toKm;  
63:     printf "delta %5.2f mi / %5.2f km\n", $delta * $toMi, $delta * $toKm;  
64:     push @d, $delta;  
65:     $vps{$p->{name}} = $p->{totalDistance};  
66:     if ($p->{name} eq "ZIEL") { $total_distance = $p->{totalDistance}};  
67:     $vpn++;  
68:  }  
69:  my $avg = 0;  
70:  foreach (@d) {  
71:     $avg += $_;  
72:  }  
73:  printf "avg milage between aid stations: %.2f mi / %.2f km\n", ($avg / $#d) * $toMi, ($avg / $#d) * $toKm;  
74:  print "\n";  
75:  print "Durchgangszeiten:\n";  
76:  printf "total: %.2f km\n", $total_distance * $toKm;  
77:  my $min_pace = ($max_h * 60 * 60) / ($total_distance * $toKm);  
78:  my $max_pace = ($min_h * 60 * 60) / ($total_distance * $toKm);  
79:  printf "min pace (min/km) = %.2d:%.2d\n", $min_pace/60,$min_pace % 60;  
80:  printf "max pace (min/km) = %.2d:%.2d\n", $max_pace/60,$max_pace % 60;  
81:  foreach (sort keys %vps) {  
82:     next unless defined $vps{$_};  
83:     my @first_h_m = (($vps{$_} * $max_pace)/(60*60),  
84:             (($vps{$_} * $max_pace)/60) % 60);  
85:     my @last_h_m = (($vps{$_} * $min_pace)/(60*60),  
86:             (($vps{$_} * $min_pace)/60) % 60);  
87:     my @first_date = Add_Delta_DHMS(@start, 0, @first_h_m, 0);  
88:     my @last_date = Add_Delta_DHMS(@start, 0, @last_h_m, 0);  
89:     my @vp_delta = Delta_DHMS(@first_date, @last_date);  
90:     printf "%s\t%6.2f\t", $_, $vps{$_};  
91:     printf " von %s %.2d:%.2d (%.2d:%.2d)",  
92:       Day_of_Week_Abbreviation(Day_of_Week($first_date[0], $first_date[1], $first_date[2])),  
93:       $first_date[3], $first_date[4], @first_h_m;  
94:     printf " bis %s %.2d:%.2d (%.2d:%.2d)",  
95:       Day_of_Week_Abbreviation(Day_of_Week($last_date[0], $last_date[1], $last_date[2])),  
96:       $last_date[3], $last_date[4], @last_h_m;  
97:     printf " (VP offen fuer %.2d:%.2d Stunden)\n", $vp_delta[1], $vp_delta[2];  
98:     #printf "day %s\n", Day_of_Week_Abbreviation(Day_of_Week($first_date[0], $first_date[1], $first_date[2]));  
99:  }  

Download the perl script here.

Sample output:
xml file: sut100s-cuesheet.xml
start: 2012 10 13 8 0 0
end:   2012 10 14 14 0 0
now: 2012 6 9 21 1 7
Noch 125 Tage, 10 Stunden und 58 Minuten bis zum Start
Zielschluss: 2012 10 14 14 0 0

distanceUnits: kms
VP1:  16.3 mi /  26.3 km  delta  0.00 mi /  0.00 km
VP2:  30.1 mi /  48.5 km  delta 13.81 mi / 22.22 km
VP3:  44.5 mi /  71.6 km  delta 14.35 mi / 23.09 km
VP4:  56.2 mi /  90.4 km  delta 11.69 mi / 18.81 km
VP5:  67.3 mi / 108.3 km  delta 11.17 mi / 17.97 km
VP6:  80.1 mi / 128.8 km  delta 12.73 mi / 20.48 km
VP7:  93.0 mi / 149.7 km  delta 12.96 mi / 20.86 km
ZIEL: 101.0 mi / 162.6 km  delta  8.03 mi / 12.92 km
avg milage between aid stations: 12.10 mi / 19.48 km

total: 162.61 km
min pace (min/km) = 11:04
max pace (min/km) = 05:54
VP1  26.26  von Sat 10:35 (02:35)  bis Sat 12:50 (04:50) (VP offen fuer 02:15 Stunden)
VP2  48.48  von Sat 12:46 (04:46)  bis Sat 16:56 (08:56) (VP offen fuer 04:10 Stunden)
VP3  71.57  von Sat 15:02 (07:02)  bis Sat 21:12 (13:12) (VP offen fuer 06:10 Stunden)
VP4  90.38  von Sat 16:53 (08:53)  bis Sun 00:40 (16:40) (VP offen fuer 07:47 Stunden)
VP5 108.35  von Sat 18:39 (10:39)  bis Sun 03:59 (19:59) (VP offen fuer 09:20 Stunden)
VP6 128.83  von Sat 20:40 (12:40)  bis Sun 07:46 (23:46) (VP offen fuer 11:06 Stunden)
VP7 149.69  von Sat 22:43 (14:43)  bis Sun 11:36 (27:36) (VP offen fuer 12:53 Stunden)
ZIEL 162.61  von Sun 00:00 (16:00)  bis Sun 14:00 (30:00) (VP offen fuer 14:00 Stunden)

Tuesday, May 8, 2012

OSM map

How to create OSM based printable map with including a GPS track (suitable for running/hiking)?

Of course the above mentioned tasks needs to be done under Linux.

List of tools

so far just listing some tools that I had tried out to fulfill this task, more details will follow...
  • Maperative
  • QLandkarte GT
  • Mkgmap
  • Josm + OSMrenderer (
  • Viking



So far MOBAC (Mobile Atlas Creator) looks quite good to me as it's easy to use and supports lots of mapsource already (OSM Hike&Bike rendering for example) and you can easily extend this. Furthermore its easy to use and it does download required map data automatically for a given zoom level. Printable maps can be created as PDF for different zoom levels.
Current limitation ... which renders it useless for my purpose ... it does not yet support a rendered gpx track to be shown and included into the printable PDF.
On the other hand this feature is acknowledged to be missing and some code support already exists. I'll see how good my Java skills will be in order to fix it ...


Viking is basically a GPS data editor and analyzer. But you can also use it to generate a printed map containing your GPS trace (or track). You open a gps file and then add a new "Map Layer". Select map source and then the map tiles should download for your area. Viking allows to save the map as bitmap image file (png or jpeg).

In order to add a OSM hike & bike map rendered map type you can extend viking via a ~/.viking/maps.xml file

<object class="VikSlippyMapSource">
  <property name="label">OSM hike/bike</property>
  <property name="hostname"></property>
  <property name="url">/tiles/hikebike/%d/%d/%d.png</property>
  <property name="id">200</property>

Bitmap to PDF

To convert large image files to PDF (containing multiple pages) you can use PosteRazor.

Do you have a good idea? Please let me know.

Tuesday, April 17, 2012

steine, brunnen, huetten im schoenbuch

Following two links contain information about monuments, stones, wells, huts, and misc other stuff you can find within the Naturpark Schoenbuch:
Note: the sites are in German language.


Why buying the Forerunner 910XT was bad ...

Some time ago (I already had a Garmin Forerunner 305 GPS Watch) I decided to run some ultra-marathon. It's kind of a normal procedure for ultra runners to run longer and climb higher as they pursue their running. Yeah, I would not like to stand out as an exception here. So while I'm still kind of an newbie I managed to finish a 100 mile trail run and even had fun on a 24h run.
So how's this related to the topic and why is it bad I now have the 910XT?
For an (average) ultra runner the main disadvantage of the FR305 and many other GPS enabled watches is their battery life. The FR305 offers 10h (on mine it lasted 13.5h once!) according to the specification. The longest battery life you can get from current Garmin Forerunner devices is about 20 hours (310XT and 910XT). Now SUUNTO claims 50h GPS (with one minute GPS data recording intervall) with its Ambit. AFAIK Polar does not have watches with integrated GPS but rather use external GPS sensor (like some of the other Suunto watches). This is usually good because those external sensor devices have replaceable batteries. It looks most of them lasts for about 10h. I do not know much details about how they record the GPS track and if the track recording continues after replacing the battery. For one of the older Suunto GPS pods I read that it is not intended to get the GPS data out of the device (easily).

So having said all this I may introduce my little project I started about a year ago and which has not really evolved that much since than.

A Texas Instruments MSP430 development kit called TI Chronos-eZ430 was released late 2010 for 50 EUR. This device features on-board 3-axis accelerometer, pressure sensor, temperature sensor, battery voltage sensor, and wireless transceiver.
Besides this hardware features the watch can be full (re-) programmed with your own firmware. One actively maintained firmware project, based on TIs original Sportswatch firmware, is OpenChronos. To compile code under Linux you need to install the msp430-gcc cross compiler.

So what to do with this watch?

I wanted to build my own ultra-trail-running-watch. These are some of the requirements on such a watch:
  • Very long battery life (30h+) with the option to replace batteries on the run
  • Record GPS track (adjustable intervals)
  • Provide accurate elevation data and display accumulated (positive) elevation
  • Provide pace and distance
Additional hardware I purchased in order to built such ultra watch:

  • LiPo Battery  + charger
  • Additional stuff to test certain power supply options

So to at least answer the question why the 910XT buy wasn't so good is that I now have even less motivation (and still no time) to continue building my own watch. But I will definitely continue on this with low priority.

Links to gitorious repositories for chronos and amber code:


Forerunner 910XT

Known Bugs

Unfortunately there's (still?) some bugs in the current firmware version 2.40 of the 910XT watch.

The two problems described there are the fact that the breadcrumb track/line that is usually displayed during course navigation is not visible all of the time. The reason seems some "optimization" feature being added (this works very well with the old Forerunner 305).
In addition it happened to me twice during a run that the device out of the sudden just switched off. I could simply switch it on again and continue as usual but that seems kind of irritating.


Hrmm ... in this reply to one of the threads above it is suggested to add additional trackpoints between two points that are too far away from each other (like a few hundred meters).
However this does not (always) work. Well I assume for large tracks it will most likely never work. As the option on is called "set points evenly" there won't be any additional trackpoints added to a existing track. But this is what you really want add points where the distance is less then a given minimum distance. I do not know what this minimum distance would be (and I have not yet tried this either) but in the forum we talk about meters, probably less then 100meter.
So how to do this?
The solution is to use gpsbabel. You will need to use the interpolation filter as described here.


Check number of trackpoints for a given course:
$ grep LatitudeDegrees sut100foo-eventrkpts.tcx | wc -l
Now add points between every two trackpoints that are less then 90 meters apart:
$  gpsbabel -i gtrnctr -f sut100foo-eventrkpts-withcoursepts.tcx -x interpolate,distance=0.09m -o gtrnctr -F sut100foo-mindist-009m.tcx

check number of trackpoints again:
$ grep LatitudeDegrees sut100foo-mindist-009m.tcx | wc -l

Saturday, April 7, 2012

chicken run

Chicken Run

out and back from home to Mauren ...

... buying some food for tomorrow.

Thursday, April 5, 2012

Forerunner 910XT

Garmin Forerunner 910XT and Linux

The Forerunner 910XT as well as other newer Garmin devices is/are using the wireless ANT+ protocol together with ANT-FS to transfer files from/to a PC. Note: ANT-FS means ANT File Share (not File System).
Garmin make use of so called FIT files, which are part of ANT+. Several FIT file types exists. The ones that bother me the most right now are the so called 'Activity' and 'Course' types.
If you are a runner an Activity file basically contains your run data, i.e. distance, time, laps, heartrate, elevation, position data.
You want Course files in order to follow some track someone else has ran previously or for tracks you create yourself on some kind of digital map e.g. within Google Earth or online tools like or

At this point in time you can use Garmin-Forerunner-610-Extractor hosted on github to download files from a Forerunner 910XT.

Converting fit to tcx for example can be done with Fit-to-Tcx python tool which is also available on github.

Example Usage

Garmin-Forerunner-610-Extractor_Tigge] (167)$ python
Request basic information...
Starting system...
Open channel...
String length:  16
Unit ID:        3843964727
Product name:   Forerunner 910
3  128  144  574  1989-12-31 01:00:00
4  128  208  680  1989-12-31 01:00:00
5  128  208  1159  1989-12-31 01:00:00
6  128  208  317  1989-12-31 01:00:00
7  128  208  1159  1989-12-31 01:00:00
8  128  208  317  1989-12-31 01:00:00
9  128  208  1197  1989-12-31 01:00:00
10  128  176  1397  2012-03-30 20:55:54
11  128  176  1164  2012-03-30 23:30:38
12  128  176  1765  2012-03-30 23:38:56
13  128  176  4052  2012-03-31 22:06:38
14  128  176  7901  2012-04-01 12:19:08
15  128  176  14638  2012-04-01 13:51:24
16  128  176  36932  2012-04-02 13:30:34
17  128  176  5702  2012-04-03 09:13:26
18  128  176  19566  2012-04-03 19:56:56
19  128  176  51949  2012-04-04 13:52:50
20  128  240  31169  2012-04-01 22:30:00
21  128  208  72  1989-12-31 01:00:00
22  128  208  627  1989-12-31 01:00:00
23  128  144  72  1989-12-31 01:00:00
24  128  144  168  1989-12-31 01:00:00
25  128  208  72  1989-12-31 01:00:00
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
Done downloading
$ python ../FIT-to-TCX/ > 19-80-2012-04-04_13-52-50-51949-51949.tcx

You can use the fit file directly for uploading to Garmin Connect for example.

Tuesday, April 3, 2012

Now I have my own blog ... how cool's that?

Well ...maybe it's rather futile.