Inspiration

We wanted to turn smartwatch data into something actionable: a warning that helps a driver recognize rising drowsiness risk and take a break. Our idea was to combine wearable signals with a simple alert delivered directly on the wrist.

What it does

DrowsyAlert is a Garmin smartwatch prototype designed to estimate drowsiness risk from heart rate and wrist movement. The interface is intended to display basic vitals and a risk rating, with an amber warning state and a flashing red alert accompanied by sound and vibration when risk crosses the alert threshold.

How we built it

We divided the project into wearable-data preparation, machine-learning development, and the Garmin app. Our core inputs are heart rate and acceleration. Beat-to-beat intervals and blood oxygen are optional inputs, depending on their availability. We excluded camera and facial features from this version.

We developed the watch app in Monkey C using Garmin’s Connect IQ SDK and VS Code, targeting the Forerunner 970. We established a working starter app in the simulator while developing the model separately.

Challenges we faced

The main challenge is matching the model’s training inputs to signals the watch can actually provide. Sampling rates, units, missing readings, and feature calculations must agree across both systems.

We also worked through SDK configuration, Java setup, signing, and the build process to get the app running.

What we learned

Building a wearable machine-learning application requires more than training a model. Sensor quality, consistent preprocessing, readable graphics, and reliable alert behavior all affect whether the result is useful.

We also learned to separate model predictions from simulated alerts so we can test the interface without presenting demonstration scores as real detection.

What’s next

Complete the model integration, compare watch predictions against reference examples, and test the full alert sequence on the physical watch. We also want to evaluate the trade-off between missed drowsiness events and false alarms.

Built With

Share this project:

Updates

Submission history