Back to All
Project

Phone Fall Detection

 

Skill Level Area of Focus Operating System Platform/Hardware
Intermediate Healthcare, IoT, Sensors Linux DragonBoard 410c

This project is a system service designed to detect phone drops and falls, and report data from an accelerometer back to a central server. This data could be used by phone manufacturers to develop a profile of how often and when users drop their phones, thus facilitating future improvements in phone design. The data can also be used to identify when elderly individuals have fallen and initiate the response of medical professionals.

Objective

This project aims to use sensor technology in a unique and practical way. Collecting fall data to be recorded on an external server seemed to both fit this condition and use the skillsets of each member of our team.

Materials Required / Parts List / Tools

Source Code / Source Examples / Application Executable

Build / Assembly Instructions

  • Connect the sensor mezzanine to the DragonBoard 410c through the 40-pin connector.
  • Connect the accelerometer to the ATMEGA I2C Grove Connector on the sensor mezzanine.
  • Power up the DragonBoard 410c and connect it to the internet using Wi-Fi.
  • Clone the project from the above GitHub repository, and navigate to the project directory.
  • Copy BMP180.cpp, BMP180.h, I2Cdev.cpp, I2Cdev.h, MPU9250.cpp, and MPU9250.h into the libraries/ directory in the path of the Arduino IDE.
  • After copying is finished, open IMU_10DOF_Test.ino in the Arduino IDE and click Upload. Once successfully uploaded, run make to build all targets.
  • If desired, make clean can then be used to remove all generated executable and object files.

Usage Instructions

After running make, there should be two executables produced:

  1. evil-server and
  2. f_track.

Running ./evil-server on the DragonBoard 410c or any machine on the local network will start a process that listens for connections on port 8000.

Running ./f_track <server IP address> will start a process that will detect falls using accelerometer data, and write accelerometer readings and timestamps to the file status.log whenever a fall occurs. If the process can connect to the server, it will then send the same data to the server, which then writes it to the file srv-status.log on the server host. Connection issues may occur when trying to connect to a server running on another system. If this happens, the server can always be run on the DragonBoard 410c itself, with localhost IP address 127.0.0.1 used as the command line argument to f_track.

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries ("Qualcomm"). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.

Project Authors
Qualcomm Technologies, Inc.
Dylan HatchIntern
Dhaval Vilas WaghuldeIntern
Merin SanthoshIntern
Zachary ZhouIntern

Sign up for the Developer Newsletter.

Get software and hardware tool resources to help optimize your development delivered to your inbox weekly.

Qualcomm relentlessly innovates to deliver intelligent computing everywhere, helping the world tackle some of its most important challenges. Our leading-edge AI, high performance, low-power computing, and unrivaled connectivity deliver proven solutions that transform major industries. At Qualcomm, we are engineering human progress.

Stay connected

Get the latest Qualcomm and industry information delivered to your inbox.

Subscribe
Manage your subscription

© Qualcomm Technologies, Inc. and/or its affiliated companies.

Snapdragon and Qualcomm branded products are products of Qualcomm Technologies, Inc. and/or its subsidiaries. Qualcomm patented technologies are licensed by Qualcomm Incorporated.

Note: Certain services and materials may require you to accept additional terms and conditions before accessing or using those items.

References to "Qualcomm" may mean Qualcomm Incorporated, or subsidiaries or business units within the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes our licensing business, QTL, and the vast majority of our patent portfolio. Qualcomm Technologies, Inc., a subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of our engineering, research and development functions, and substantially all of our products and services businesses, including our QCT semiconductor business.

Materials that are as of a specific date, including but not limited to press releases, presentations, blog posts and webcasts, may have been superseded by subsequent events or disclosures.

Nothing in these materials is an offer to sell or license any of the services or materials referenced herein.