A free data field for Garmin running watches designed to help runners keep pace with a customisable goal. You can set a custom goal distance and time in the app settings to see a prediction of your finish time which takes account of both your current pace and average pace for the distance completed so far. It will also show you remaining distance to your goal, and colour the pace and finish time text red or green to indicate whether you are on target.
Pacemaker has five display fields, each of which can be customised to show one of the following metrics:
- Heart rate
- Cadence
- Power (including from Stryd, if connected as a power meter)
- Pace
- Pace delta (+/- difference from target)
- Calories
- Elapsed distance
- Remaining distance
- Predicted finish time
- Predicted finish time delta (+/- difference from target)
- Elapsed time
You can also independently customise how heart rate, cadence, power and pace are calculated, using either current values, average from start or average over the previous 3 / 5 / 10 / 30 / 60 seconds.
Pacemaker is aware of and supports device settings for distance units (KM or miles) and background colours (black or white).
Pacemaker is currently in BETA. I am in the process of testing it on my own runs and intend to release it in the Garmin app store when I am confident that it is reasonably stable. For anyone stumbling across this repository, feel free to download and try it out, but be warned - it has had insufficient real world testing yet so if it crashes your watch during a race, don't blame me.
- Some devices such as vivoactive 3 do not provide a running power value (it looks like it should do so when paired with an external power meter device like Stryd, but I can't tell for sure). On unsupported devices, the power value will show as zero.
- Approach S60
- D2 Charlie
- fenix 5 / 5S / 5X Chronos
- Forerunner 645 / 645 Music / 735xt / 935
- vivoactive 3
Note: Only tested in on a real fenix 5X in the field, all other watches tested only in the SDK device simulator.
I have made every reasonable effort to support as many devices as I can with the initial release of this data field. Supporting multiple devices in the Garmin SDK is hard work due to screen size variations and severe limitations on memory usage in the less powerful devices in the range.
I have not supported the Descent MK1 device because the current SDK won't let me test it with Connect IQ 2.4, which is the miminum version I support. If this changes, I will support the Descent MK1 in a future release. I have not supported the vivoactive HR because it's screen is too small for my layout.
I will never be able to support older Connect IQ 1.x devices like the Forerunner 235. Those devices have a limitation of 16KB memory for data fields, and it is almost impossible to work within that limit without abandoning all principles of maintainable object-oriented programming, and dropping down to a procedural coding style which I have no interest in doing. As it is, most of the devices I am supporting have a memory limit of 28.6KB which is pretty challenging.
Pacemaker is open source (MIT license) and it's code resides on GitHub at https://github.com/wwarby/pacemaker
This project borrows code and ideas from RunnersField by kpaumann. Thanks kpaumann for open sourcing your project and giving me a leg up in writing for the Garmin SDK.
- Icons by Freepic from www.flaticon.com
- Chequered flag icon by Vaadin from www.flaticon.com
- Flame icon by Those Icons from www.flaticon.com
- 0.5.1
- Tweak goal metric calculation when target time is not set
- 0.5.0
- Add support for displaying 6th metric
- Select between 3 and 6 metrics for display
- Enable all metrics to be shown in top and bottom positions
- Reposition icons on round devices to increase space for value text
- 0.4.1
- Use mm:ss format for goal target time setting
- 0.4.0
- Support reversed icons
- Add calories metric
- Add pace delta metric
- Add finish time delta metric
- Reduce memory footprint
- 0.3.3
- Fix crash in pace average calculation, change settings defaults
- 0.3.2
- Fix power value stuck at zero
- 0.3.1
- Fix startup crash
- 0.3.0
- Concept redesign
- 0.2.0
- Concept redesign
- 0.1.1
- Tweak settings layout
- 0.1.0
- Initial release