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
$ 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