Requirements
1 Functional Requirements
1.1 Wearable Device
1.1.1 The Teensy microcontroller will be used to collect data.
1.1.2 The microcontroller will be able to connect to force and six-axis motion sensors.
1.1.3 The microcontroller must be able to accept various types of force resistor sensors.
1.1.4 The microcontroller will be able to connect to additional sensors using the I2C bus and/or SPI.
1.1.5 The microcontroller will maintain an accurate timestamp to the millisecond that is synchronized with other nearby devices.
1.1.6 The microcontroller will upload data through a Bluetooth module .
1.1.7 The microcontroller should store historical data in a structured format on a SD card until uploaded.
1.1.8 The data should be structured so that the type of sensor does not matter for storage and upload.
1.1.9 The microcontroller must be able to run on a battery.
1.1.10 The microcontroller must be able to be recharged.
1.1.11 The microcontroller should be extensible with different pluggable sensors.
1.1.12 The microcontroller will have a power-down method that activates on a specified voltage.
1.1.13 The microcontroller should react to commands issued over Bluetooth including power-down, activate/deactivate sensors, status queries and data queries.
1.2 Mobile Application
The Android application will communicate with the microcrontroller using bluetooth.
1.2.1 The Android application will communicate with the server using JSON and HTTP.
1.2.2 The Android application should be able to connect to multiple devices.
1.2.3 The Android application must be able to pair with up to 20 devices containing sensors.
1.2.4 The Android application should be able to provide basic instructions to the subject. These instructions should be dynamic and specified through the web application and database.
The Android application should have a command to identify specific devices by blinking an led.
1.2.5 The Android application should be able to synchronize time with the devices.
1.2.6 The Android application should be able request data from the devices.
1.2.7 The Android application should be able to query the status of devices including battery life, sensor values and time.
1.2.8 The Android application should be able to activate sensors on the device.
1.2.9 The Android application should be able to deactivate sensors on the device.
1.3 Web Server and Database
1.3.1 The database will allow analysis by patient, device or date and time captured.
1.3.2 Data will be stored in its raw form indefinitely in the database.
1.3.3 Patients will be associated with a device in a database table using the web application.
1.3.4 Devices ids will be associated with specific sensor values.
1.3.5 The web server will accept data from the mobile application using JSON and HTTP.
1.3.6 The database and server will be run locally at NAU.
1.3.7 Data will be presented to project investigators through a web application.
1.3.8 The web user will be able to filter data across patient, device and timestamp.
1.3.9 Data will be visible to the web user through graphs and tables.
1.3.10 A basic web authentication system should be in place to protect the data.
1.3.11 The web application should be accessible on the most modern browsers.
1.3.12 The project investigators should be able to share data to others with links to the web application.
1.3.13 A subset of the data should be downloadable through the server in csv format.
1.3.14 The server must send error notices to administrator.
2 Environmental Requirements
2.1 Wearable Device
2.1.1 The wearable devices must be able to operate on AVR or ARM architecture microcontrollers.
2.2 Mobile Application
2.2.1 Mobile device application must be able to operate on Android platform.
2.3 Web Server and Database
2.3.1 The web application and analysis tools must be able to work on any modern browser.
2.3.2 The database can be connected to by Matlab and/or Octave.
3 Non-functional Requirements
3.1 Wearable Device
3.1.1 The wearable device must be able to capture data at a rate greater than 70hz.
3.1.2 The subject should have no interaction with the device other than putting it on.
3.1.3 The wearable device battery must be able to last at least 24 hours, ideally lasting 72 hours.
3.1.4 The wearable device needs be easily repairable.
3.1.5 The wearable device must not impede a person's natural gait.
3.1.6 The wearable device must be reusable and work on varying subjects.
3.1.7 The wearable device must be able to absorb various levels of shock.
3.1.8 The wearable device must be able to operate in a moist environment.
3.1.9 The wearable device must be able to operate in a dusty environment.
3.2 Mobile Application
3.2.1 Aside from initial setup, the subject should not need any interact with the mobile application in order to collect data.
3.3 Web Server
3.3.1 The server must be available 24 hours a day with 95\% reliability.
3.3.2 The server and database must be able to accept data from over 50 different subjects, each with many devices and sensors.