Yesterday I ordered a Garmin vívoactive 3. At ¥15200 it was hard to not get one. As Garmin has an app store for their watches and there’s also a developer forum and of course an SDK, the next obvious step was to install that SDK.
Installing the ConnectIQ SDK
Get it from here. It seems to be slightly buggy. Details only though. On a recent Ubuntu build you run into several issues, but they are easy to fix (this was a great start):
$ cd ~ $ mkdir connectiq $ cd connectiq/ $ unzip ../Downloads/connectiq-sdk-lin-3.1.7-2020-01-23-a3869d977.zip $ cd /var/tmp/ $ wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/15108504/+files/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1.1_amd64.deb $ sudo apt-get install libwebkitgtk-1.0 $ tr -d '\r' < bin/monkeygraph >/tmp/monkeygraph && cp /tmp/monkeygraph bin/monkeygraph
Also have OpenJDK 8 installed. 11 does not work and is not supported by Garmin.
Now waiting for the watch to arrive…
Creating a Developer Key
The first problem trying out the samples in the SDK was that a developer key was required. While the instructions are here, it took me way longer than needed to find them:
$ openssl genrsa -out developer_key.pem 4096 $ openssl pkcs8 -topk8 -inform PEM -outform DER -in developer_key.pem -out developer_key.der -nocrypt
Testing the Examples
Make sure you use Java 8 (not Java 11). Start the simulator, compile a program and run it in the simulator:
$ simulator & $ cd samples/Timer $ monkeyc -f monkey.jungle -y ~/connectiq/developer_key.der -o Timer.prg -d vivoactive3 $ monkeydo Timer.prg vivoactive3
Not sure how realistic the simulation is, but it’s certainly ok to ensure it might work in real life.
Links to Working Examples
- Nice watch face: https://github.com/warmsound/crystal-face
- In case you prefer Makefiles: https://github.com/danielsiwiec/garmin-connect-seed