Inspiration
Fall-risk individuals - elderly people, or those with mobility impairments - often fall without anyone nearby to help. Most existing solutions require pressing a button after the fall, which is completely useless if the person is unconscious, disoriented, or injured. We wanted to build a passive, automatic system that alerts caretakers instantly.
What it does
FallGuard is a two-part system:
- A wearable waist sensor that streams motion data into a Raspberry Pi to automatically detect the exact physical signature of a real fall.
- A live-syncing companion Progressive Web App (PWA) that allows emergency contacts and caretakers to monitor the wearer's status in real time.
How we built it
We built FallGuard using a Raspberry Pi 4 Model B and a Grove 3-Axis Digital Accelerometer (MMA7660) connected via the I2C protocol. A Python read loop polls the acceleration at ~50Hz.
Instead of using an LLM wrapper, we built a classical rule-based state machine. The logic specifically looks for the distinct two-phase signature of a fall:
- Freefall: Near-zero acceleration for a minimum number of samples.
- Impact: A sharp acceleration spike immediately following the freefall.
When a fall is confirmed, the Pi triggers a physical buzzer and updates our Firebase-hosted backend, which live-syncs the state to the sky-blue, healthcare-themed web app.
Challenges we ran into
Our biggest hardware challenge was safely testing the device! We had to physically daisy-chain male-to-male jumper wires to our Grove cables to create a "sensor leash." This allowed us to drop the accelerometer without smashing our Raspberry Pi.
We also had to calculate the minimum drop height to trigger our 150ms software freefall window using the kinematic freefall equation: $$d = \frac{1}{2}gt^2$$ Meaning we only needed a ~11cm drop to validate the physics safely on the desk!
Accomplishments that we're proud of
We successfully built a functioning hardware system from scratch in 24 hours. We are incredibly proud of our deliberate design choice to make it waist-worn rather than wrist-worn. Wrist sensors pick up normal arm movements (waving, reaching), leading to false positives. The waist moves with the body's center of mass, making our threshold-based detection far more reliable.
What we learned
We learned how to interface hardware sensors using I2C, manage continuous data streams in Python, build classical state machines without relying on AI APIs, and instantly deploy atomic updates to a live Firebase web application.
What's next for FallGuard
We want to miniaturize the hardware into a custom PCB, transition from a local buzzer to Twilio SMS alerts for remote emergency contacts, and refine our threshold values using larger datasets of actual fall telemetry.
Log in or sign up for Devpost to join the conversation.