Free, Open Source tools to Alert Carers if someone suffers an Epileptic Seizure
New users: If you do not already own a Garmin watch, consider trying the low-cost (approx. £35) PineTime watch first — it is cheaper and much easier to set up. See the PineTime setup guide for details. The main reason to prefer a Garmin watch is if you need the heart rate alarm functionality, because Garmin’s HR sensors are significantly more reliable than PineTime’s during vigorous movement.
This guide walks you through setting up OpenSeizureDetector using a Garmin smartwatch. A Garmin watch provides reliable tonic-clonic seizure detection and, unlike the PineTime, also delivers accurate continuous heart rate monitoring.
OpenSeizureDetector works on Garmin smartwatches that support ConnectIQ apps. It monitors the movement of the wearer’s arm and raises an alarm if shaking similar to a tonic-clonic seizure is detected for more than 10 seconds. It can also raise an alarm if the measured heart rate goes outside specified limits.
The watch sends raw acceleration and heart rate data to the phone, which analyses it and generates alarms locally (the phone beeps), via Wi-Fi to another device in the house, or by sending an SMS text message with the user’s location.
OpenSeizureDetector works with Garmin smartwatches that support ConnectIQ SDK level 2.3 or higher. Garmin’s Compatible Devices page lists which watches support which SDK level.
A list of devices known to work is maintained at: openseizuredetector.org.uk — Compatible Devices
Known issues with specific models:
If you are buying a watch specifically for OpenSeizureDetector, purchase from a retailer that accepts returns in case it does not work as expected.
Phone requirements: The phone must run the Garmin Connect app (requires Android 7 or higher, full Android — not the ‘Go’ edition). Avoid Huawei and Xiaomi phones due to known security feature incompatibilities.
You will need:
Important: The Garmin watch app file must be copied to the watch via a USB connection from a computer — this step cannot be done on a phone alone.
When you first install and launch OpenSeizureDetector, the setup wizard starts automatically.
The wizard guides you through:
Press Next to continue, or Skip to configure manually via Settings later.
On the Choose Data Source screen, select Garmin Watch.
| Option | Description |
|---|---|
| Phone (Demo Mode) | Uses the phone accelerometer - for testing only, not real seizure detection |
| PineTime Watch (Recommended) | Low-cost wrist watch - reliable seizure detection |
| Garmin Watch | Garmin smart watch - seizure detection plus heart rate monitoring |
| Network (Remote Monitoring) | Receives alarms from another OSD device on your Wi-Fi |
Press Next to continue.
The Garmin configuration screen summarises the steps needed to set up your watch.
Work through each sub-step below before pressing Next.
Pair your Garmin watch with your Android phone using the Garmin Connect app, following Garmin’s standard pairing instructions for your watch model. This establishes the Bluetooth link between the phone and watch that OpenSeizureDetector uses.
Once paired, verify that Garmin Connect is successfully receiving data from the watch before continuing.
Disable watch notifications: Garmin Connect forwards phone notifications (emails, SMS, etc.) to the watch. This interferes with seizure detection data transfer and should be disabled. In the Garmin Connect app, go to Settings → Notifications → App Notifications and disable all app notifications.
If you have not already done so, install the latest version of the OpenSeizureDetector Android app from Google Play.
Important battery setting: On your phone, search for “Optimise Battery Usage” in Settings and make sure OpenSeizureDetector is set to Not optimised — otherwise the Android system may shut it down to save power.
Also open Garmin Connect and go to Settings → Notifications → App Notifications and ensure that notifications from OpenSeizureDetector are disabled in Garmin Connect (to prevent watch buzzing that interferes with data transfer).
There is a video walkthrough on YouTube of the steps below (note: it is slightly out of date, so read the steps here too):
GarminSD.prg file
from the GarminSD releases page
on GitHub.
v2.0.7x variant (compiled
with newer Garmin tools; works on newer watches but not some older models).Connect the watch to the computer via its charging/data USB cable. The watch appears as a removable drive.
GarminSD.prg into
the GARMIN/APPS folder. Create the folder if it does not exist.
GarminSD.prg (i.e.
remove any version number from the filename) or it will not appear in the apps list.Safely eject the watch and disconnect the USB cable.
Verify the app is present — on the watch, navigate to the full apps list. You should see GarminSD in the list.
Press Next in the phone app once the GarminSD watch app is confirmed running.
Choose which seizure detection algorithms to enable. You can select more than one.
| Algorithm | Description |
|---|---|
| ML Algorithm (Recommended) | Machine Learning / AI detection. Good sensitivity, fewer false alarms. Improves over time via community data sharing. |
| Heart Rate Alerts | Detects abnormal heart rate patterns. Garmin provides reliable continuous HR - highly recommended with a Garmin watch. |
| OSD Algorithm | Original proven algorithm. Good for overnight use; may false-alarm on repetitive movements (brushing teeth, washing dishes etc.). |
| OSD with Flap Detection | Enhanced OSD that also detects arm flapping for maximum night-time tonic-clonic detection. |
At least one algorithm must be selected before Next is enabled.
Recommended choice for Garmin:
After pressing Next, a short confirmation dialog appears for each enabled algorithm:
The final screen confirms your configuration.
The summary shows:
Press Get Started to launch the main monitoring screen.
All settings can be changed at any time from the Settings menu - you do not need to re-run the wizard.
Because Garmin provides reliable heart rate data, review the default HR alert thresholds in Settings after setup:
| Setting | Default | Description |
|---|---|---|
| Max Heart Rate | 120 bpm | Alert if HR exceeds this value |
| Min Heart Rate | 40 bpm | Alert if HR drops below this value |
Adjust these to suit the person being monitored, based on advice from their medical team.
The exact button layout varies by Garmin model. The instructions below are for the Vivoactive 3 — adapt as needed for your watch.
Once GarminSD.prg is installed and the watch is disconnected from the computer:
When the app starts, it displays the version number for the first 5–10 seconds, then switches to showing the seizure detector status (OK / WARNING / ALARM / FAULT) and a live heart rate reading updated every second.
To make the app easier to start each day, add it to your favourites list:
GarminSD will now appear directly in the favourites list with a single button press.
| Problem | Solution |
|---|---|
| Watch app not found on USB drive | Navigate to the GARMIN/APPS folder on the watch drive; create it if it does not exist |
| GarminSD does not appear in watch app list | Rename the file to exactly GarminSD.prg (remove any version number) and re-copy |
App shows FAULT status |
Ensure GarminSD is actively running on the watch, then restart OSD on the phone |
| Phone shows Connecting indefinitely | Re-launch GarminSD on the watch; restart OSD on the phone |
| Heart rate not displayed | Wear the watch snugly; ensure the HR sensor window on the back is clean |
| Garmin Connect pairing fails | Follow Garmin’s official pairing instructions for your specific watch model |
| Watch keeps buzzing with notifications | Disable App Notifications for OpenSeizureDetector in Garmin Connect Settings |
| OSD shut down by Android in background | Set OSD to Not optimised in your phone’s Battery Optimisation settings |
| Watch appears to work then stops after hours | Avoid VenuSQ / VenuSQ2 models; try a different compatible Garmin model |
For the full troubleshooting procedure and FAQ (including watch error codes) see: openseizuredetector.org.uk
Please report issues or successes to graham@openseizuredetector.org.uk or the OpenSeizureDetector Facebook page.