The Leikr Multi-Sport GPS Watch

The year was 2012 and I was using a Garmin Foretrex 401:

The GPS market at the time was dominated by Garmin – with one or two exceptions. These were your choices in 2012:

Needless to stay that most devices on the market were fairly crap; they had black and white displays (that weren’t hugely power efficient), poor satellite reception, they were bulky, used USB connectors (as opposed to WiFi and/or Bluetooth), etc.

Separately, in September 2010, a man called Stephen Elop became Nokia’s new CEO. Elop was a former influential Microsoft employee – and the move was seen as preparation for Microsoft to take over Nokia (of course the spin tried to dispell this). Elop essentially wiped out Nokia’s value and by the end of his tenure at the company shareholders were more than happy to sell Nokia’s remaining assets to Microsoft. This naturally pissed off a lot of Nokia employees.

Enter Leikr…

Leikr, the “Danish designed GPS sports watch”, burst onto the Kickstarter platform with a fresh look and huge promise. Compared to what was around at the time (and even now?!) the Leikr was revolutionary; it had a big colour display, it had a great battery life, it had free maps (thanks OpenStreetMap), it was compatible with a variety of Bluetooth LE and ANT+ sensors, it didn’t look crap, it had WiFi connectivity to a variety of platforms (most devices required manual uploading using USB), it had a fast interface and it wasn’t anywhere nearly as bulky as anything else on the market.

The Leikr was also partially configured using a web interface on Leikr’s platform. This was incredible stuff, no one came close and even now the Leikr is compelling. It’s been 7 years and this is what has followed (only the Fenixes have wifi here, the Fenix 3 doesn’t have maps):

So yes, Nokia had some smart people working for them.

I wanted a Leikr when it was anounced, but the price tag ($599 retail) was a bit steep and also Kickstarter… but a few months back I managed to get one off eBay for $50.

There are several issues with the Leikr in 2019 – one being that the creators of the device have moved on. In terms of software issues no new functionality has been added to the device in several years, no new posts on their forums – integrations with other platforms will be broken at some point (if not already), etc. In terms of hardware there’s one big looming issue: the battery. The device has been glued shut and so replacing the battery and maintaining the water-tight integrity of the device isn’t really feasible. In comparison the the Garmin Fenix 3 and 5, the Fenixes have metal enclosures and battery replacement is feasible.

With this all in mind and a slew of modern devices to choose from, I decided it was time to take apart my Leikr:

Front of the powered off Leikr.
Leikr # 10126 – you can see the glue seams.
Leikr back cover removed – the battery and USB contacts are visible as well as the Bluetooth/GPS/ANT+ antennas and vibrator motor.
The inside of the rear cover of the Leikr – USB pogo-pin contactors visible (they are spring-loaded). Also visible is, what I’d imagine is, a ground-plane to improve RF/GPS performance.
I suspect this is the GPS antenna (it is longer than the other antenna).
Lifting out the PCB we can see two of the four tactile switches in the device, as well as a microSD card.
The Leikr’s MicroSD card.
GParted representation of the card’s partition map.
boot partition

updfs contains a standard Linux rootfs.

maps
├── cache
│   ├── 10_564_613
│   │   └── 10
│   │   └── 564
│   │   └── 613.png
│   ├── 10_564_614
│   │   ├── 10
│   │   │   └── 564
│   │   │   └── 614.png
│   │   └── 16
│   │   ├── 36155
│   │   │   ├── 39318.png
│   │   │   ├── 39319.png
│   │   │   ├── 39320.png
│   │   │   └── 39321.png
│   │   ├── 36156
│   │   │   ├── 39318.png
│   │   │   ├── 39319.png
│   │   │   ├── 39320.png
│   │   │   └── 39321.png
│   │   ├── 36157
│   │   │   ├── 39317.png
│   │   │   ├── 39318.png
│   │   │   ├── 39319.png
│   │   │   ├── 39320.png
│   │   │   └── 39321.png
│   │   ├── 36158
│   │   │   ├── 39317.png
│   │   │   ├── 39318.png
│   │   │   ├── 39319.png
│   │   │   ├── 39320.png
│   │   │   └── 39321.png
│   │   └── 36159
│   │   ├── 39317.png
│   │   ├── 39318.png
│   │   ├── 39319.png
│   │   ├── 39320.png
│   │   └── 39321.png
│   ├── 10_564_615
│   │   └── 10
│   │   └── 564
│   │   └── 615.png
│   └── 10_565_614
│   └── 16
│   ├── 36165
│   │   ├── 39322.png
│   │   ├── 39323.png
│   │   └── 39324.png
│   ├── 36166
│   │   ├── 39322.png
│   │   ├── 39323.png
│   │   └── 39324.png
│   └── 36167
│   ├── 39322.png
│   ├── 39323.png
│   └── 39324.png
├── defaultMap.png
├── lastmapfetch.txt
├── mapsareas.txt
└── tar
├── 10_562_609.tar
├── 10_562_610.tar
├── 10_562_611.tar
├── 10_562_612.tar
├── 10_562_613.tar
├── 10_562_614.tar
├── 10_563_609.tar
├── 10_563_610.tar
├── 10_563_611.tar
├── 10_563_612.tar
├── 10_563_613.tar
├── 10_563_614.tar
├── 10_563_615.tar
├── 10_563_616.tar
├── 10_563_617.tar
├── 10_564_609.tar
├── 10_564_610.tar
├── 10_564_611.tar
├── 10_564_612.tar
├── 10_564_613.tar
├── 10_564_614.tar
├── 10_564_615.tar
├── 10_564_616.tar
├── 10_564_617.tar
├── 10_565_609.tar
├── 10_565_610.tar
├── 10_565_611.tar
├── 10_565_612.tar
├── 10_565_613.tar
├── 10_565_614.tar
├── 10_565_615.tar
├── 10_565_616.tar
├── 10_565_617.tar
├── 10_565_618.tar
├── 10_566_609.tar
├── 10_566_610.tar
├── 10_566_611.tar
├── 10_566_612.tar
├── 10_566_613.tar
├── 10_566_614.tar
├── 10_566_615.tar
├── 10_566_616.tar
├── 10_566_617.tar
├── 10_566_618.tar
├── 10_567_609.tar
├── 10_567_610.tar
├── 10_567_611.tar
├── 10_567_612.tar
├── 10_567_613.tar
├── 10_567_614.tar
├── 10_567_615.tar
├── 10_567_616.tar
├── 10_567_617.tar
├── 10_567_618.tar
├── 10_568_609.tar
├── 10_568_610.tar
├── 10_568_611.tar
├── 10_568_612.tar
├── 10_568_613.tar
├── 10_568_614.tar
├── 10_568_615.tar
├── 10_568_616.tar
├── 10_568_617.tar
├── 10_568_618.tar
├── 10_569_609.tar
├── 10_569_610.tar
├── 10_569_611.tar
├── 10_569_612.tar
├── 10_569_613.tar
├── 10_569_614.tar
├── 10_569_615.tar
├── 10_569_616.tar
├── 10_569_617.tar
├── 10_569_618.tar
├── 10_570_609.tar
├── 10_570_610.tar
├── 10_570_611.tar
├── 10_570_612.tar
├── 10_570_613.tar
├── 10_570_614.tar
├── 10_570_615.tar
├── 10_570_616.tar
├── 10_570_617.tar
├── 10_570_618.tar
├── 10_571_609.tar
├── 10_571_610.tar
├── 10_571_611.tar
├── 10_571_612.tar
├── 10_571_613.tar
├── 10_571_614.tar
├── 10_571_615.tar
├── 10_571_616.tar
├── 10_571_617.tar
└── 10_571_618.tar

22 directories, 132 files

data
├── almanac
│   ├── converted
│   │   ├── 10.ead
│   │   ├── 11.ead
│   │   ├── 12.ead
│   │   ├── 13.ead
│   │   ├── 14.ead
│   │   ├── 15.ead
│   │   ├── 16.ead
│   │   ├── 17.ead
│   │   ├── 18.ead
│   │   ├── 19.ead
│   │   ├── 1.ead
│   │   ├── 20.ead
│   │   ├── 21.ead
│   │   ├── 22.ead
│   │   ├── 23.ead
│   │   ├── 24.ead
│   │   ├── 25.ead
│   │   ├── 26.ead
│   │   ├── 27.ead
│   │   ├── 28.ead
│   │   ├── 29.ead
│   │   ├── 2.ead
│   │   ├── 30.ead
│   │   ├── 31.ead
│   │   ├── 32.ead
│   │   ├── 3.ead
│   │   ├── 4.ead
│   │   ├── 5.ead
│   │   ├── 6.ead
│   │   ├── 7.ead
│   │   ├── 8.ead
│   │   └── 9.ead
│   └── current.al3
├── datalog
├── db
│   ├── clientData.db
│   └── profiles.db
├── ephemeris
│   ├── converted
│   │   ├── 10.eed
│   │   ├── 11.eed
│   │   ├── 12.eed
│   │   ├── 13.eed
│   │   ├── 14.eed
│   │   ├── 15.eed
│   │   ├── 16.eed
│   │   ├── 17.eed
│   │   ├── 18.eed
│   │   ├── 19.eed
│   │   ├── 1.eed
│   │   ├── 20.eed
│   │   ├── 21.eed
│   │   ├── 22.eed
│   │   ├── 23.eed
│   │   ├── 24.eed
│   │   ├── 25.eed
│   │   ├── 26.eed
│   │   ├── 27.eed
│   │   ├── 28.eed
│   │   ├── 29.eed
│   │   ├── 2.eed
│   │   ├── 30.eed
│   │   ├── 31.eed
│   │   ├── 32.eed
│   │   ├── 3.eed
│   │   ├── 4.eed
│   │   ├── 5.eed
│   │   ├── 6.eed
│   │   ├── 7.eed
│   │   ├── 8.eed
│   │   └── 9.eed
│   └── current.rinex
├── fit
│   ├── 20130918_095250_leikr.fit
│   ├── 20130918_095250_leikr.fit.gz
│   ├── 20180426_120612_leikr.fit
│   ├── 20180426_120612_leikr.fit.gz
│   ├── 20180427_145219_leikr.fit
│   ├── 20180427_145219_leikr.fit.gz
│   ├── 20180429_065728_leikr.fit
│   ├── 20180429_065728_leikr.fit.gz
│   ├── 20180525_133705_leikr.fit
│   ├── 20180525_133705_leikr.fit.gz
│   ├── 20180525_162014_leikr.fit
│   ├── 20180525_162014_leikr.fit.gz
│   ├── 20180707_131314_leikr.fit
│   └── 20180707_131314_leikr.fit.gz
├── freqbias
│   └── freqbias.efb
├── iono
│   └── converted
│   └── iono.eid
├── lost+found [error opening dir]
├── position
│   └── converted
│   └── position.epd
├── utc
│   └── converted
│   └── utc.eud
└── utcleapseconds

16 directories, 86 files