Golf Birdie: A simple Garmin IQ Golf app for the Garmin Fenix 3 smartwatch
Currently and also for the future, only the Fenix 3 will be supported. As a hobby programmer, I neither can afford to buy several other devices for test purposes, nor can I spend the time to extend the support to other Garmin devices. I am sorry for that, I hope you understand.
In 2015 Garmin announced a new ecosystem for their line-up of GPS smartwatches: the Garmin IQ store. Apps, watch faces, data fields and widgets can be coded in Monkey C and distributed through Garmin’s IQ store. In spring 2015 Garmin presented the new Fenix 3 (F3) smartwatch: a really nice, solid and round (!) watch with a colour display. Unfortunately, the F3 came without a Golf app, while the Vivoactive, living in the same ecosystem, comes with a (simplistic) Golf app. Because I didn’t like the rectangular and cheap looking Vivoactive, I started to code my own little Golf app.
Here is the user manual for the second main version – currently still in beta.
Please bear in mind that I am a hobby programmer and not a professional developer. I am sure that there will be bugs. I am sure that features are missing. I am sure that the implementation is a bit rough.
Playing a round with Golf birdie
Let’s go through the features and explain the buttons and menus by going on a small golf round. But before we even start, let me briefly tell you how to terminate the app, because it is not done in the usual way by pressing the ESC button. You can exit the app only via the menu, which is invoked by pressing and holding the up button. “Exit app” is at the very end of the menu. That means that you reach it either by pressing “down” a hundred times, or by pressing “up” once, and then the “start/enter” button. OK, now we’ve got that out of the way. Let’s play golf.
Before you grab your driver on the first tee, start the app. You will be greeted by a green screen, offering 4 options. Note that the text is written next to the button you need to press to activate the option:
Reset Scorecard: the app saves the scorecard and reloads it each time you start the app. This is useful or necessary when the app is being interrupted because you want to check some widgets, or because of a crash. It also comes in handy when you’ve reached hole 19 and want to review your last round, e.g. to cross-check with your paper scorecard. However, if you want to start a new round, you should reset the scorecard now (i.e. delete it and start with 0 strokes). Press the up button to do so. (You may later at any time reset the scorecard from the menu, but once you clicked “reset”, the data is deleted once and forever. See below.)
Load Course: this feature is clearly in beta. The philosophy of saved courses is explained below. For the moment, since this is your very first round with this app, you won’t have a course yet to load. Later, however, you may want to load a course that you’ve saved when you played it last time. Press the down button to do so.
Start Round: this will start to record your golf round in a similar way as other apps would record a hike or run. It also activates the GPS system (you will need it). Once you have completed the round, you can stop the recording via the menu. The recorded data will be uploaded to Garmin Connect and show up as an unspecified activity. At least you have a record of the distance you walked and the time you spent. Press the “Start” button.
X: close this screen. Press the ESC button.
Now you see the main screen of the app. It is quite crowded, if not messy. If you haven’t done so, it shows little green bubbles next to the four buttons, helping you to remember which button does what. Later, once you’ve memorized it, I would suggest that you open the menu (by pressing and holding the up button) and hide the button help. You will get a less crowded display and on top of it an analog watch with dark red minute and hour hands that run below all other screen elements and let you keep an eye on the time.
If you have started a round by activating the recording and with it the GPS sensor, there is a small bright red dot next to the 3 o’clock position.
Topmost on the screen is the hole you are currently playing (should be 1 if you started a new round), and just below is the number of strokes on this hole.
For each stroke you press the Up-button. Ideally you press it immediately after the stroke and at the position where you made the stroke. The app will now display the distance that you walk away from that position as it changes. It is shown in the same units as the F3’s general settings. I can only hope for you that it is the metric system. Otherwise you have my deepest compassion, and the app will show distances in yards. Anyway – the distance is shown behind the “> – – ?” in the topmost of the three white lines of text in the lower half of the screen.
Once you enter the next stroke, the shot distance of the previous one will be frozen and displayed in the second white line of text right behind the “> – – <“. Thus you can check the length of that last shot while you are walking away to the next one.
Once you have reached the green, press the ESC button. The little green open circle next to the ESC button will now turn into a filled green dot, indicating that you are on the green. Subsequent strokes are considered to be putts (makes sense, doesn’t it?). The number of putts on this hole is displayed by a pattern of small whote dots just behind the stroke count: 1 = . 2 = : 3 = :. 4 = :: 5 = ::. and 6 or more = ::: (shame on you).
Now, after completion of the hole, there is some magic at work behind the scenes. The app remembers the coordinates of the last putt you entered. It is therefore important that you enter the last putt as close as possible to the pin. Because the pin position changes anyway, I would consider a meter or two close enough. And while you are working through all 9 or 18 holes, you will collect a complete set of coordinates for the course you are currently playing… and this all happens without any additional effort from your side. Lovely, isn’t it?
Before we advance to the next tee, there is one more trick you should learn: just press the down button for once. The screen now offers four options:
Mark lap: marks a lap in the FIT file. You can see those laps later on Garmin Connect. The app itself does nothing with it. So you may or may not add laps whenever you want.
Mark pin pos.: You will never need this because the app simply assumes that your last putt was made or entered at the pin position. However, if that was not the case, for whatever reason, you can manually mark the pin position by pressing the Up-button.
Delete stroke: Does exactly that. You may need this occasionally if you entered a stroke too much. Note that you can delete a stroke easily and without much finger acrobatic by simply pressing the down button twice. First press brings up this screen, second press deletes the stroke and closes the screen. So convenient…
Important: if the green indicator is on, the stroke is also deleted from the number of putts. That means that, if you recognize on the green that you entered a fairway shot too much, you should first press the Esc button to deactivate the “on green” indicator, then bring up this screen with the down button, press down again to delete the stroke, close the screen, and finally activate the “green” mode again. Unfortunately strokes are deleted only from the app’s scorecard and not in real life. You can’t make shabby shots undone.
X: close this screen. Press the ESC button.
Now it is time to advance to the next hole. Press the start button once. You will see the scorecard:
It shows the total number of strokes on top, then holes 1 to 9 and 10 to 18, with strokes and putts per hole. The yellow V indicated the hole you will play on when you close this screen. Finally, below the scorecard, the distance and the elapsed time of the round is shown (alternating; one at a time). These values are only available if you actually started a round and activated the recording (also indicated by a small bright red dot at the very bottom).
Note that the V that indicates the hole you will play on next is already on the next hole when the scorecard is activated. This makes it ultra-convenient because a second press of the start button returns to the main screen on the next hole. In short: press the start button twice to proceed one hole. Should you not want to play on that hole, you can return to the main screen on the current hole with the ESC button, or you can use the up/down buttons to navigate from hole to hole.
Now it’s time to talk a bit about courses. This is a new feature, and it still might be a bit shaky and bumpy. Remember this is the first beta of the new version. The concept is the following: while you are playing, the app collects and stores the position of the pins of all holes on the course. It does that by assuming that the last put was made at the pin, or by explicitly marking the pin position (see above). The app maintains this set of coordinates as “course 0”, and it always manipulates only this course 0.
It also uses this course 0 to display the distance to the pin if the coordinate for that hole is known from the last time you played here. (And this was, ultimately, the goal: show the distance to the pin to help you selecting the right club.
However, the app keeps an inventory of 5 additional courses, named course 1 to course 5. That means that, after you have played your favourite golf course once, you can store the coordinates (currently still in course 0) as one of the remaining 5 courses. You have to do this by invoking the menu (see below) and select “Save course”.
This will bring up the course selection screen. The up and down buttons cycle through the 5 courses (even when they don’t contain any data yet). The start button selects the course that is currently displayed next to the button. The center of the screen shows the distance from pin 1 of the selected course (course 3 in the screenshot). This is helpful when you load a saved course before you start a new round: if you select and load a course at the first tee, the shown distance to pin 1 should be identical to the information on the sign next to the tee box.
Saving and loading courses make use of the same selection screen, and can be invoked from the menu. However, the “load course” option is also shown on the first screen that is displayed when you start the app – for your convenience.
It is your responsibility to keep record which course number corresponds to which golf course, and to be careful when you save a course: don’t overwrite an existing course while you still have empty slots. If you encounter the 5 course limit, I suggest to overwrite the course that you play less often. You get the idea…
Finally, and because of the limitations described below, I recommend to make a back-up of the app’s settings on your computer and take notes which courses are in that particular backup. You can then later, or if the Fenix for some reason had an issue and lost data, restore a settings file with the courses you plan to play next. In order to do that, you have to connect your Fenix to your computer’s USB port, using the charge cable. It will be mounted like an external drive. Navigate to that drive, then to Garmin/Apps/data, and find the right file. If you have problems to find the right file (they have pretty cryptic file names), I suggest that you start Golf birdie, and close it again, just before you hook it up to USB. This will write the settings to the Fenix 3. Once mounted to your computer, the file will be the one with the newest file date. Copy it to a save place on your computer. And if, for some reason, you want to go back later in time, just copy it back on the Fenix 3.
The App doesn’t know anything about the par of holes. It doesn’t know and use your Handycap. It doesn’t support Stableford scoring. It only helps you to count strokes and putts, to show the distance to the pin and the length of your last shot, and that’s about it. And, yes, it shows the time.
Garmin SDK and API limitations
Currently Garmin limits what developers can do with their apps. For example, I cannot create one file per course (and have as many as I want) – they all end up with all other data and settings in the so-called object storage: one file per app, containing all app data.
It is also not possible to manipulate the contents of this file from the outside world, e.g. using Garmin Connect Mobile or Garmin Express. It is also not possible to define and create am app-specific file format and create course files with, for example, google maps. It is also impossible to read from “normal files”. And it is not possible to export the data from the app – the only data that is created and made available outside of your device is the FIT file that is recorded – but it doesn’t contain any golf-specific data.
What a pity…
The developer, that’s me. I am a project manager for space instruments (seriously, no kidding!). I am neither a golf pro nor a professional developer. Otherwise, there would be the following options:
1) Garmin allows to communicate with iOS or Android partner apps, using an app specific protocol, exchanging all sorts of data. For example, golf course data. However, I am not familiar with iOS or Android development.
2) Garmin IQ apps may contact special web servers and request data in the form of JSON requests. Currently, the implementation in the IQ ecosystem is crude and buggy, and I am not familiar with JSON and servers and other magic.
3) Garmin sells golf specific devices like watches and little devices: the Approach product line. These devices know about 40000 golf courses, can detect on which course you are, can keep track of your strokes, and can upload the results to Garmin connect where all sorts of statistics is done with the data. So nice. However, this door is closed. One would need a Garmin Connect partner license (5000 $ fee!) and most probably additional support from Garmin to access Golf-specific features. I also have doubts that the fee would include access to Garmin’s data base of golf courses.
So because of this my little app is limited and will probably remain limited. It would be great if Garmin would create an Approach-like app for the Fenix, with a complete feature package. I would be happy to pay for it.
The menu is invoked by holding the up/menu button. It contains the following items:
Start Round: this will start to record your golf round in a similar way as other apps would record a hike or run. It also activates the GPS system (you will need it). Once you have completed the round, you can stop the recording via the menu. The recorded data will be uploaded to Garmin Connect and show up as an unspecified activity. At least you have a record of the distance you walked and the time you spent.
End round: If you have started a round, you must also end it in order to close the FIT file and have it uploaded to Garmin connect. Should be called when you are done with your round.
Reset scorecard: the app saves the scorecard and reloads it each time you start the app. This is useful or necessary when the app is being interrupted because you want to check some widgets, or because of a crash. It also comes in handy when you’ve reached hole 19 and want to review your last round, e.g. to cross-check with your paper scorecard. However, if you want to start a new round, you should reset the scorecard now. This option is also offered by the start screen (see above).
Load course: Displays the course selection screen (see above) and finally loads the selected course.
Save course: Displays the course selection screen (see above) and finally saves the coordinates obtained during this round to the selected course. If you played this course for the first time and have a free course slot available (you have 5 in total), you probably should save the course. If you won’t play on this course again, or if the course data you used for this round was correct and the course is saved already from an earlier round, then there is no need to save the course again.
Important: do NOT save ot to Course 0! Course 0 is always the scratch course and is manipulated by the app while course 1 to 5 are save places that are untouched by the app.
Copy 1-9 to 10-18: very useful if you play a 9-hole course twice to get to a full 18-hole round. It copies the coordinates of the first 9 pins to the last 9 pins. You may want to save this course in one of your five slots, but you don’t have to. Remember that, without explicit saving to one of the 5 slots, the app manipulates only course 0, which is considered as a scratch board for immediate use but not for later use.
Reset course 0: You will probably never need this, but if you play on a new course, there might still be course data from the last course you played, and this will lead to irritating and wrong distance data being displayed. So it is suggested to clear the data in Course 0 before you play on a new course.
Show/Hide buttons: The default main screen shows green bubbles next to the buttons with some hint what the buttons do. After a while you won’t need this anymore. This menu item toggles between showing the button bubble help or hinding them, but showing an analog watch instead. The app saves your selection until you change it again (if ever).
Exit app: The only way to terminate and leave the app (unless you crash it!).
The app is designed for the Fenix display. However, I opened it up for the Epix as well – at least for this beta. I don’t own an Epix, so I cannot really test it. If you use it on an Epix, you do son on your own risk.
Because the display is less high, the three displayed distances (from last shot while walking, the total length of the shot before the last one, and the distance to the pin) don’t fit on the Epix screen. For now, where the Epix is not officially supported, I display these 3 lines of text in the upper left part of the screen, running across other elements. Looks pretty messy but let’s take care of cosmetics later.
The app is free. Of course. However, you might WANT to pay for it because you really like it. That’s great. I suggest that you pay a reasonable amount of money (e.g. one green fee?) to an organization that helps people that need our help most. IS and civil war victims, earthquake victims, kids living in countries that use imperial units, just watch the news and you get the picture. Please let me know if you have done so. Makes me feel good as well, and for free.