Garmin Integration

JTrack Social supports compatible Garmin wearables through the Garmin Health Standard SDK on Android and iOS. The phone communicates directly with the watch over Bluetooth; the Garmin Connect app and a participant-owned Garmin account are not required for the JTrack study workflow.

The study configuration determines which wearable signals are requested and at which supported sampling interval. Availability still depends on the watch model, firmware, SDK support, and the Garmin features licensed for the JTrack deployment.

The Garmin integration currently supports:

  • pairing and study-specific watch configuration;

  • automatic background synchronization where the operating system permits it;

  • foreground synchronization whenever JTrack Social becomes active;

  • manual watch-to-phone synchronization and server upload;

  • local FIT-file processing and downsampling; and

  • device status, firmware, configuration, and diagnostic tools for administrators.

Wearable Sensors include:

  • Actigraphy

  • BBI

  • Calories

  • Enhanced BBI

  • Heart Rate

  • PPG (only on supported and licensed devices)

  • Respiration

  • Skin Temperature

  • SpO2

  • Steps

  • Stress

  • Wrist Status

  • Zero Crossing

Note

Garmin wearable functionality is shown only when Garmin sensors are enabled by the study administrator. A signal listed here is not a guarantee that every Garmin model exposes it.

Collection and Processing Architecture

Garmin records data on the watch and transfers archived FIT files to JTrack Social. JTrack then processes those files into the common JTrack HealthSensor format before upload.

On iOS, the Garmin SDK is configured to persist FIT files while JTrack performs the data processing itself. Two input paths are handled:

  • Custom Logging FIT: high-resolution signals such as heart rate, BBI, Enhanced BBI, respiration, SpO2, stress, steps, actigraphy, wrist status, and other configured custom-logging fields.

  • Wellness FIT: Garmin wellness records that are mapped through the corresponding Garmin wellness sensor definitions.

Samples are downsampled before Core Data objects are created. They are grouped into timestamp buckets and inserted in batches, which avoids creating millions of temporary database objects for high-frequency recordings.

Supported configured intervals currently include 1 s, 10 s, 30 s, 1 min, 5 min, 10 min, and 15 min. The chosen interval is applied per configured wearable signal. High-resolution values present in a FIT file, such as BBI or Enhanced BBI, are retained according to their signal-specific processing rather than being interpreted as a continuous 64 Hz waveform.

Passive and Active Measurements

Normal Garmin monitoring uses the signals and intervals configured in JDash. Active Labeling can additionally associate wearable data with a defined task window, but it does not automatically unlock raw signals that the Garmin SDK, watch model, or license does not expose.

Raw PPG and other experimental high-frequency cardio streams are therefore device- and license-dependent. Administrators can use the experimental Garmin diagnostic view to test the maximum available mode, including the explicit case where PPG is not licensed. These tests are diagnostic tools and are not part of the standard passive-monitoring protocol.


Getting Started (JDash Study Setup)

To enable Garmin support in a study, Garmin wearable sensors must first be configured in the JDash study editor.

Example configuration:

_images/JDash_Garmin.png

The wearable configuration is downloaded after enrollment and stored on the phone. Each configured entry can specify the wearable, signal name, sampling rate, and unit. JTrack Social exposes the effective wearable configuration in its information and administration views.


Configure on the Phone (JTrack Social)

Pairing after Enrollment

After successful enrollment into a Garmin-enabled study, participants can pair their Garmin smartwatch directly inside the JTrack Social app by either responding to the popup or going to the Garmin Dashboard and clicking Pair. The popup will guide the user through the process.

Step 1
Step 2
Step 3
Step 4
Pairing process

After pairing, JTrack Social configures the Garmin device according to the study settings defined in JDash.

This includes:

  • Enabled sensors

  • Sampling intervals

  • Supported collection settings

The configuration process may take several seconds.


Configure the Watch

When starting a Garmin watch for the first time information about the user is being asked by the watch (age, gender, weight, height, etc.). This is required by Garmin for internal Watch algorithms to function properly. Occasionally, e.g. if a watch has not been set-up by a participant, an additional configuration of user settings on the watch is needed. Therefore a configuration dialogue appears that asks for relevant information after a successful pairing. These get passed straight to the watch.

iOS
Android

Note

These profile values are passed to the watch so Garmin’s internal algorithms can operate correctly. JTrack does not use them as research measurements or upload them as participant sensor records.


Garmin Dashboard

The Garmin Dashboard is accessible from the main menu:

iOS
Android

It provides an overview of:

  • Paired devices

  • Battery level

  • Connection state

  • Last synchronization

  • Local wearable data status

  • Synchronization and upload progress

The dashboard also provides manual synchronization and device management functionality.

iOS
Android

Pair / Unpair Devices

Participants can pair or unpair Garmin devices directly inside the Garmin Dashboard. Pairing works in the same way as explained in Pairing after Enrollment.

Unpairing disables future JTrack collection from that watch and removes the app-side device association and watch-side study configuration.

Before unpairing, use the available synchronization controls to retrieve and upload pending records. Unpairing removes:

  • Device association

  • Active synchronization

  • Watch-side study configuration

Warning

Unpairing a device stops future wearable data collection for the study.

Unpair
Status after unpair

Note

The app cannot override iOS Bluetooth settings. To remove the system-level Bluetooth association, open Settings -> Bluetooth on the iPhone and remove the Garmin watch manually.


Sync to Phone

Wearable data is first synchronized locally from the Garmin watch to the participant phone and then ingested from FIT into Core Data.

Synchronization can occur:

  • Automatically in the background

  • Whenever the app becomes active

  • Manually using Sync to Phone

The synchronization process downloads new recordings, processes both custom-logging and wellness FIT files, downsamples configured signals, and inserts the resulting records in batches. iOS may limit background execution time; JTrack therefore also retries this work in the foreground.

_images/GarminSave.png

Send to Server

After synchronization and local FIT ingestion, Garmin records are sent sequentially by sensor to the study server.

Uploads occur automatically when all of these conditions are met:

  • Wi-Fi is connected

  • Internet access is available

  • The server is reachable

  • Background processing is permitted

Wearable transfer is Wi-Fi-only. Participants and administrators may also trigger synchronization and upload from the Garmin Dashboard. General manual phone-data synchronization does not duplicate Garmin transfer because the wearable dashboard owns this workflow.

Important

When the study duration has ended, JTrack stops starting new Garmin collection and does not fetch additional wearable data during the 48-hour final SensorKit waiting period. The final verified study-leave workflow handles data that was already stored locally.

_images/GarminSend.png

Firmware Update

The Garmin Dashboard can detect and perform firmware updates made available through Garmin device services.

Participants may be prompted to update the watch firmware. Study staff should schedule updates so they do not interrupt an active measurement or synchronization.

Note

Firmware updates are handled through Garmin device services and may require several minutes.

_images/GarminFirmwareUpdate.png

Features for Study Administrators

Overwrite Watch Configuration

Administrators can overwrite the active Garmin watch configuration directly from the app via Settings -> Garmin Dashboard -> Config.

This allows updated user settings (age, gender, weight, height, etc.) for improved accuracy of Garmin measurements.

iOS
Android

Note

It may take some time for these changes to be properly applied to the Garmin watch.


Advanced SDK Status

The Garmin Dashboard includes advanced SDK status information for debugging and monitoring via the Advanced tab. These controls are available independently of the normal participant workflow.

Available information includes:

  • SDK initialization state

  • Bluetooth connection state

  • Device readiness

  • FIT ingestion and local-data state

  • Effective study configuration

iOS
Android

Console Logging for Debugging

Garmin SDK and JTrack processing messages can be inspected through the Console tab. Logging covers the watch-to-phone, FIT-processing, and upload stages so administrators can distinguish connection problems from ingestion or server-transfer problems.

Logs may include:

  • Pairing events

  • Synchronization progress

  • Device communication

  • Sensor configuration

  • Snippets of logged data

  • FIT-file processing and downsampling

  • Upload operations

Warning

Beware that the possible actions here are only for debugging purposes and can temporarily interfere with the participant workflow.

For phone-sensor debugging and the other protected iOS tools, see Administrator Tools. For general connection and reporting checks, see Troubleshooting.

iOS
Android