A quick revision of opensource outdoor options
(as 202304, more info and pictures are coming soon)
Index:
bangle.js smartwatch
bangle.js2 smartwatch
Bluetooth Heart Rate Monitor (bangle.js2)
Bluetooth Heart Rate Monitor (Lite)(bthrmlite)
BLE GATT HRM Service (bangle.js, 2)
GPS recorder (bangle.js, 2)
Bangle run (bangle.js, 2)
Route viewer (bangle.js)
Fitotrack (android)
Opentracks (android)
OSMand (android)
Runnerup (android)
AAT(android)
Strava(android/web - commercial)
Wikiloc (android/web - commercial)
OruxMaps (android/web - commercial)
bangle.js (smartwatch)
Unfortunately there are not many smartwatches focused in opensource apps, and less having GPS functions.
So if you want to use opensource in your watch during your activities you have to assume some limitations and wait or help for community improvements.
- Heat rate function, is really unreliable, and it seems a problem of the sensor hardware, so even if software can reject weird measures there is not much hope.
- GPS, seems reliable enough, and battery last long with it tracking
- Apps, there are couple of good apps that are receiving support, see below.
- Support, besides other you can be part of the community and the solution.
bangle.js2 (smartwatch)
- GPS and a Heat
rate sensor more acqurate than bangle.js1 one.
Bluetooth Heart Rate Monitor (bangle.js2)
App id: bthrm
Overrides the usage of the internal HR sensor with an external Bluetooth
Settings:
1) Mode=Default - Replaces internal HRM with BT HRM and falls back to internal HRM if no valid measurements received.
2) Search for sensor
3) Open app?
4) see values on widget (widhrm,...
Not compatible with "Heart Rate Monitor(hrm)"
Bluetooth Heart Rate Monitor (Lite)(bthrmlite)
Old version, and lightweight without configuration and the recommended for Bangle.js1
BLE GATT HRM Service (bootgatthrm)
A GATT HRM Service to advertise the measured HRM over BLE. Compatible with Opentracks and Fitotrack. Detected but not working with Runnerup and AAT
GPS recorder (bangle.js, 2)
Opinion: It is a very reliable app+widget that can work in background, so you can use other functions during the activity, and when completed the track can be exported in a standard format to other apps.
The look and feel is very old school, just text without icons, and the menus can be managed only through buttons.
Tips:
Using OpenStreetMap from web apploader you can upload a map/tiles and this map can be displayed in the background of the track.
As getting a valid GPS signal takes quite long, and you require it to start tracking, from web apploader use the app "Assisted GPS Update (AGPS)" to download satellite info for a day (8kB) or a week (46kB).
Missing functions:
- Follow a track. I mean functions to import a track, display the track in screen and track a new one over it (in a different color)
- Use of touch screen, i.e change of screen by sliding movement
- A Graphical dashboard, showing summary and enabling pause in friendly and quickly way.
Import/export:
internal file format:
timestamp,latitude,longitude,altitude (but more attributes can be added to be logged , such as HR, HR(bluetooth) ,HR int or steps.
Export format: (from apps loader page): .KML , .GPX
Tip: exporting from Android's Chrome, then the downloaded track file can be open with some apps.
RUN (bangle.js) RUN+
Opinion: the user interface is based in a single screen managed only by buttons, and it can track your activity including lot of precision and heart rate
But the worst (hopefully it will be corrected soon)is that the apps is not available as widget so can't work on background and the tracking has too much precision (and not necessary) so the output file grows too much.
As curiosity this app is not written in basic Javascript but TypeScript that after "compiled" generates a obfuscated Javascript, for developers maybe it is not important but for other can be an additional step.
Missing functions:
- Run in background
- A parameter to define the time between tracking points
- Display a track or statistics
- Use of touch screen, i.e change of screen by sliding movement
Import/export:
internal file format:
timestamp,latitude,longitude,altitude,duration,distance,heartrate,steps
1602954919045,38.418089,-0.x09480,36.88,0,0.65,104,1
Export format (from apps loader page): .KML , .GPX
Route viewer (bangle.js)
Opinion: it allows to display map and/or a track in the screen and your current GPS position over it. Also it shows distance an a direction arrow.
Is not a standard Javascript app, but a realtime generated app+map track. From the apps loader web you load a .KML and the result is uploaded as bangle.js app
Missing functions:
- zoom function is missing
- a single a app able to open different tracks/maps
- Direct access to track files in memory from banglerun or GPSrecorder
Import/export: import .KML
Fitotrack (android, FOSS)
Opinion: A good app for sports and well supported, has voice notifications to inform about pace, etc...
Supports external heart rate sensor(fails with decathlon BLE and not paired devices?) and can display sections/intervals, elevation/speed graphs
Missing functions: - Text notifications that other apps can process and send to smartbands/watches
Import/export:
Export: GPX
Opentracks (android, FOSS)
"+OSM Dashboard por Opentracks"
Opinion: a good tracking app with a easy an intuitive and complete dashboard.
To be able display the activity in a map it requires to install "OSM Dashboard por Opentracks" (another small opensource app) and from opentracks "show on map" and select "OpenTracks Dashboard API", and button "Always".
Advanced functions, as voice notifications, Interoperability with BLE devices: Heart rate (chest strap or watch), cadence, power, speed, and wheel size
It shows intervals, elevation/speed graphs and has voice
The Dashboard with the default layout shows many information fields, and can be customized.
Missing/Concerns:
-Permission: "Location always", is not being used, so it can stop tracking with saving mode or lossing the foreground
Import/export:
Export: GPX, KML,KMZ, KMZ(inc photos)
@fdroid
OSMand (android, FOSS)
Opinion: though focused in navigation, it has tracking function and many options and features, such as following a previous track.
Require more learning and adaptation than other tracking apps, but the potential is incredible.
Import/export: .GPX
@fdroid
Runnerup (android, FOSS)
Functions: Workouts and intervals, audio notifications, Laps, Map(using version from Play), sensors (ANT+, BLE), upload activity to some social networks
There are versions that can run in old in Android4(usually lighter and smaller)
Missing functions:
- Display the map during the exercise tracking.
- Text notifications that other apps can process and send to smartbands/watches
Import/export:
Export to: database, .GPX .TCX
Import: only from database
@fdroid
AAT (android)
An activity tracker, with a good UI but that can require more time to get used, for example the dashboard is called "Cockpit"
Activity: preconfiguration (autopause, recording filter, backlight,..)
cockpitA: fullscreen stats (HR in a smaller font size),map, graph
cockpitB: splited screen stats/map, stats are in a smaller font size)
Advanced functions, through touch on topleft/bottom (cockpitB screen) or bottom(cockpitA map screen)
Support/Functions: online Maps(several ones)/offline maps, BLE sensors,...
Import/export: .GPX
@fdroid
Missing functions:
- HR limits and warning notifications
Strava(android/web - commercial)
It is not opensource but if you want share your activities with friends probably they use it.
Fortunately you can use other apps during the activity and just upload to share with others.
Import/export:
Import/Export: .TCX, .FIT or .GPX
Import from http://www.strava.com/upload/select
Wikiloc (android/web - commercial)
An app/web especially useful to find and share tracks for different sports (like mountain paths), sometimes well described, classified and with pictures
The app can be used to track or follow a previously downloaded track, supports offline maps and has basic statistics for the activity.
Negative points, besides being commercial it has some dependencies on Google services, that is specially bad for devices without Play services (such as BlackBerry10 android runtime)
Import/export: app exports to .GPX
OruxMaps (android/web - commercial)
Powerful GPS app with plenty of functions, requires time to learn and get the best of it. Supports loading a track and tracking/following over it.
Import/export: import .KML and .GPX
Export to .GPX, .KML, .KMZ, .FIT, TCX, .CSV
Upload to: Strava and other services ...