The problem
Falls are the leading cause of injury for the elderly living alone, and the critical window is the minutes after the fall — when the person may be unable to reach a phone. Camera-based monitoring invades privacy and cloud-connected pendants fail when Wi-Fi drops. This project puts the intelligence on the body: a waist-worn ESP32 device reads its IMU at 100 Hz and classifies every 2-second window with a TinyML model small enough for the microcontroller's RAM. A real fall triggers a local buzzer (so a conscious wearer can cancel a false alarm within 15 seconds) and then sends a BLE alert with the fall timestamp to the caregiver's phone. Nothing is recorded or streamed; the device only keeps an event log. Because on-device inference replaces the cloud round-trip, detection-to-alert latency stays under a second even with no network at all.
How it works
- The MPU6050 streams 3-axis acceleration and gyroscope data to the ESP32 at 100 Hz while worn at the waist.
- Firmware maintains a sliding 2-second window and computes the signal magnitude vector plus statistical and spectral features.
- A rule stage checks the fall signature: weightlessness dip below 0.5 g, impact spike above 2.5 g, then abnormal stillness.
- Windows passing the signature go to the quantized 1D-CNN, which outputs the fall-vs-ADL probability.
- On a confirmed fall, the buzzer sounds for the 15-second cancel window; if not cancelled, the BLE alert fires to the caregiver phone.
- Every classified event is timestamped into the on-device log, viewable on the OLED.
- The buyer-run drop-test procedure (cushioned dummy falls plus scripted ADLs) measures the achieved sensitivity/false-alarm rate for the report.
Tech stack:
- ESP32 (dual-core Xtensa, 520 KB SRAM)
- MPU6050 6-axis IMU, 100 Hz sampling
- TensorFlow Lite Micro, INT8 quantized 1D-CNN
- SisFall dataset (Sucerquia et al., 2017)
- BLE caregiver alert + companion phone app
- 0.96" SSD1306 OLED, buzzer, 3.7 V LiPo
- Python training pipeline (NumPy, TensorFlow)
Dataset & model details
- Dataset: SisFall (Fall and Movement Dataset) — 4,505 labeled recordings (2,707 ADL / 1,798 falls), 19 ADL types + 15 fall types, 38 subjects (23 young adults 19–30, 15 elderly 60–75), waist-worn device with two accelerometers + gyroscope sampled at 200 Hz (downsampled to 100 Hz in the pipeline), released by Sucerquia, López and Vargas-Bonilla (Sensors, 2017), available via PhysioNet.
- Task: 2-second motion-window binary classification (fall vs ADL); input = 6-channel IMU time series (200 samples × 6), output = fall probability per window.
- Model: 1D-CNN (~24 KB after INT8 quantization), TensorFlow Lite Micro on ESP32; rule-based fall-signature prefilter (free-fall/impact/stillness) before the network.
- Metrics: Sensitivity (fall recall) design target 94%, specificity design target 96%, false alarms per day design target below 1 — reported as design targets in the build notes, with the actual measured figures recorded during the buyer-run drop-test procedure. No accuracy is claimed as measured until that run. Not a medical device; no clinical claims are made.
| Parameter | Value |
|---|---|
| MCU | ESP32, 240 MHz dual-core, 520 KB SRAM |
| IMU | MPU6050, 100 Hz, ±8 g accel / ±1000 °/s gyro |
| Model | 1D-CNN, INT8 TFLite Micro, ~24 KB (design target) |
| Window | 2 s sliding, SMV + spectral features |
| Signature | Free-fall < 0.5 g → impact > 2.5 g → stillness |
| Cancel window | 15 s audible, then BLE caregiver alert |
| Display | 0.96" OLED 128×64 (status + event log) |
| Battery | 3.7 V LiPo, ~10 h target per charge (design target) |
| Medical status | Safety/educational prototype — NOT a medical device |
Project features
- [On-device TinyML inference] A ~24 KB quantized 1D-CNN classifies 2-second IMU windows on the ESP32 itself — no phone, no cloud, works with zero network.
- [6-axis IMU front-end] MPU6050 accelerometer + gyroscope sampled at 100 Hz with signal-magnitude-vector features computed in firmware.
- [Fall signature pipeline] Free-fall dip, impact spike and post-fall stillness checks precede the CNN, cutting false alarms from sitting or bending.
- [Cancel window + buzzer] A 15-second audible cancel window lets a conscious wearer dismiss false alarms before the caregiver alert fires.
- [BLE caregiver alert] Fall event with timestamp is pushed over BLE to the caregiver's phone app (included).
- [Event log on OLED] The 0.96-inch OLED shows live status plus the recent fall/ADL event history.
- [Training pipeline included] Python scripts for SisFall preprocessing, model training and TFLite Micro conversion ship with the project.
What is included
- Assembled wearable: ESP32 + IMU + buzzer + OLED + battery in 3D-printed waist case
- Complete firmware (IMU pipeline, signature checks, inference, BLE alerts, power management)
- Quantized TFLite Micro model + Python training/conversion pipeline
- Caregiver phone app (BLE alert receiver) source
- Wiring diagram and case assembly guide
- Project report PDF (TinyML background, SisFall methodology, drop-test procedure, results, medical disclaimer)
- PPT presentation for final review
- Viva Q&A preparation document (1D-CNN, quantization, SMV, sensitivity/specificity)
Limitations & prerequisites
- Sensitivity 94% is a design target until the buyer-run drop test — real falls vary in mechanics and the report documents this honestly.
- This is a safety/educational prototype, NOT a medical device — it does not replace emergency response or medical supervision, stated plainly in the report.
- Slow, controlled collapses (e.g. sliding down a wall) produce weak impact signatures and are the known hard case.
- Must be worn at the waist as documented; wrist or pocket placement changes the signal and is out of scope.
- ~10-hour battery is a design target; BLE alert range is room-scale (expected ~10 m).
- The device detects falls; it cannot prevent them or assess injury.
Frequently Asked Questions
Which dataset is used and why?
SisFall — 4,505 labeled waist-worn IMU recordings (19 ADL types, 15 fall types) from 38 subjects including 15 elderly participants (Sucerquia et al., 2017). It is the standard public benchmark for wearable fall detection, and the elderly-subject subset matches this project's users.
How does it tell a fall from sitting down fast?
Two stages: a rule-based signature check (weightlessness dip, impact spike, post-fall stillness) that sitting rarely produces, then the 1D-CNN classifies the window. Plus a 15-second cancel window so the wearer can dismiss any false alarm.
Does it need Wi-Fi or a phone nearby?
No for detection — everything runs on the ESP32. The caregiver alert goes over BLE to the companion phone app, so the phone needs to be within BLE range, not on the internet.
How accurate is it?
Sensitivity 94% and specificity 96% are design targets. The report includes a cushioned drop-test procedure you run yourself with scripted ADLs, and the achieved figures are recorded there — nothing is claimed as measured before that run.
Is it a medical device?
No. It is an educational safety prototype that raises an alert on detected falls. It does not diagnose, treat, or replace emergency response — the report states this boundary explicitly.
Is this project suitable for a final-year project?
Yes — for AI & Machine Learning and Electronics programs. It demonstrates TinyML end-to-end: sensor interfacing, signal processing, model quantization, on-device inference and a real safety application. Suitable for B.E./B.Tech final-year projects in AI & Machine Learning and Electronics.
Components & software requirements
- ESP32 (dual-core Xtensa, 520 KB SRAM)
- MPU6050 6-axis IMU, 100 Hz sampling
- TensorFlow Lite Micro, INT8 quantized 1D-CNN
- SisFall dataset (Sucerquia et al., 2017)
- BLE caregiver alert + companion phone app
- 0.96" SSD1306 OLED, buzzer, 3.7 V LiPo
- Python training pipeline (NumPy, TensorFlow)
Dataset & model details
- Dataset: SisFall (Fall and Movement Dataset) — 4,505 labeled recordings (2,707 ADL / 1,798 falls), 19 ADL types + 15 fall types, 38 subjects (23 young adults 19–30, 15 elderly 60–75), waist-worn device with two accelerometers + gyroscope sampled at 200 Hz (downsampled to 100 Hz in the pipeline), released by Sucerquia, López and Vargas-Bonilla (Sensors, 2017), available via PhysioNet.
- Task: 2-second motion-window binary classification (fall vs ADL); input = 6-channel IMU time series (200 samples × 6), output = fall probability per window.
- Model: 1D-CNN (~24 KB after INT8 quantization), TensorFlow Lite Micro on ESP32; rule-based fall-signature prefilter (free-fall/impact/stillness) before the network.
- Metrics: Sensitivity (fall recall) design target 94%, specificity design target 96%, false alarms per day design target below 1 — reported as design targets in the build notes, with the actual measured figures recorded during the buyer-run drop-test procedure. No accuracy is claimed as measured until that run. Not a medical device; no clinical claims are made.
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.