Roll Your Own Garmin Smart Watch App

from Roll Your Own Garmin Smart Watch App
by Mikey Sklar

garmin-sdk-5

Garmin provides a free SDK (Software Development Kit) to make extending the functionality of their devices accessible to everyone. Garmin produces a lot of wrist based fitness trackers that include a GPS, accelerometer, gyro, temperature and optical heart rate sensor. Today there are limited options for sending real-time biometric data over to a Raspberry Pi or an Arduino, but with the provided development tools things are looking up.

garmin-sdk-3

Garmin’s SDK installs easily on OS/X and Windows and can even be emulated using Wine on Linux. It is easy to get lost in the weeds following the developers site instructions as they spend a lot of time setting up Eclipse or Xcode environments. The CLI tools are easy enough to interface with directly. These are the steps I used to install the SDK on OS/X, build sample code, execute the sample code in a simulator and run natively on a Garmin Vivoactive HR watch.

garmin-sdk-2

Downlaod the 2.2.0 Beta SDK 

  • $ mkdir garmin-sdk-beta-2.2.0
  • $ mv connectiq-sdk-mac-2.2.0.zip garmin-sdk-beta-2.2.0/
  • $ cd garmin-sdk-beta-2.2.0/
  • $ unzip connectiq-sdk-mac-2.2.0.zip
  • $ export PATH=$PATH:$HOME/Downloads/garmin-sdk-beta-2.2.0/bin

Generate a Key

  • $ cd ~/Downloads/garmin-sdk-beta-2.2.0
  • $ openssl genrsa -out developer_key.pem 4096
  • $ openssl pkcs8 -topk8 -inform PEM -outform DER -in developer_key.pem -out developer_key.der -nocrypt

Build Sensor Example

  • $ monkeyc -o Sensor.prg -y ~/Downloads/garmin-sdk-beta-2.2.0/developer_key.der -m ../manifest.xml -z ../resources/resources.xml -z ../resources/strings.xml -z ../resources/bitmaps.xml Sensor.mc Graph.mc

Simulate Code

  • $ connectiq &
  • $ monkeydo Sensor.prg vivoactive_hr

Copy to Garmin

  • connect watch via USB
  • drop PRG file into /Volumes/GARMIN/GARMIN/APPS

Comments