Engineering Track

Inspiration

We brainstormed a ton of ideas but the one that stuck with us is something inspired by one of our relatives who has multiple sclerosis or MS. MS is an autoimmune disease where the body attacks the protective coating around its nerves. It can manifest with a variety of symptoms but one we choose to focus on was foot drop or drop foot.

Individuals with foot drop have trouble lifting their foot during walking. It has a variety of causes including MS, stroke, and nerve injury. Treatment for foot drop includes physical therapy, ankle foot orthoses, and functional electrical stimulation. These treatments are prescribed after clinician observation of a patient. However this captures foot drop only at one point in time. Without information about how often foot drop occurs at home, it can be hard for clinicians to know the severity and occurrence of this symptom. Additionally, without tracking foot drop over time, patients do not have the knowledge to assess how various factors in their life are affecting their foot drop. For example, new medication, foot orthoses, or sickness could affect symptoms. Accordingly, there is a need for real-time monitoring of foot drop that can be individualized and longitudinal.

This problem statement resonated with us as graduate researchers working biomedical engineering and specifically in rehabilitation focused projects working with people with spinal cord injury and lower-limb loss. Similarly this project involves using technology and engineering to improve the standard of healthcare.

What it does

The Elevate system monitors foot drop in real-time. It consists of a smart sock with an embedded sensor, Bluetooth transmitter, and companion app. The smart sock counts the instances of foot drop using a thresholding algorithm which is transmitted over Bluetooth to the app to increment a daily count. The companion app enables the user to connect to the smart sock, tune the detection algorithm, see real-time incoming data, visualize past days of foot drop data in a calendar and plot view, tag days with custom information, and export the data. The device can be turned on and off via a switch on the transmitter and the sensor can be removed from the sock allowing for easy cleaning.

How we built it

Hardware

The smart sock utilizes an Adafruit short flex sensor, a mechanical sensor that detects bending. This is seated in a pocket of elastic fabric sewn on the inside of the smart sock. The sensor acts as a variable resistor that increases in resistance as it is deformed, and along with a 10kOhm resistor forms a voltage divider circuit. The voltage divider generates a reference voltage that is read by a Qt Py S3 EPS32 2mb PSRAM board via an analog pin. The 5V load of the voltage divider is output from one of the Qt Py's voltage pins. The Qt Py communicates with the user's phone using Bluetooth Low Energy (BLE).

The Qt Py and flex sensor circuit were soldered to a prototyping board along with a BFF Charger add on board. A 3.7V 2000mAh lithium ion battery was connected to the BFF board. These components were housed in a 3D printed ABS enclosure designed in Onshape that slides onto the top of the user's shoe.

Software

The Qt Py board runs an Arduino script that polls the flex sensor and broadcasts the raw sensor value over Bluetooth low energy.

The Android app scans for Bluetooth low energy devices and connects to the one called "FlexSensor" and parses the incoming data. The foot drop detection algorithm operates using a threshold approach. Foot drop consists of an extended period of plantar flexion during gait so we want to detect when our sensor value reaches a high point and stays there. This requirement is implemented with two tunable values: threshold point and a required number of points over threshold. Once the sensor value crosses the threshold point the algorithm begins counting points that stay above that threshold. If a enough points are counted then the app increments the day's foot drop count. The two tunable values for this algorithm are adjustable in the app allowing the device to detect varying severities of foot drop.

The user can view past days foot drop counts in a calendar view. They can also add custom tags to each day ("sick", "PT", "new AFO") and filter by those days to compare foot drop counts. These longitudinal foot drop counts can also be viewed in a line plot view for the month. Finally the user can export the foot drop counts and tags for a specified data range as a .csv file.

Challenges we ran into

  • Sensor-Sock Integration: The sensor is much stiffer than the sock which caused problems. When we initially attached the sensor to the sock using two anchor points, it would bow out away from the foot during ankle movement. We rectified this issue with an elastic pocket that allowed the sensor to move with the sock's stretch while being secured.
  • Threshold Algorithm: We began with a simple value thresholding that counted a foot drop whenever the sensor value crossed a threshold. This approach was too sensitive and triggered during normal walking. We added a duration component to the detection to only count foot drop as prolonged periods of extreme plantar flexion.

Accomplishments that we're proud of

  • Designing a project to address a real-world problem
  • Srikanth's beautiful soldering job
  • Maddie's CAD model
  • Srikanth's logo design
  • Eileen's first project using Bluetooth
  • Thresholding algorithm
  • Time management: project proof of concept Friday night
  • Component selection: board and sensor did exactly what we needed them to

What we learned

  • Sewing
  • Onshape modeling
  • Bluetooth low energy communication
  • Qt Py board development
  • How an Android app functions

What's next for Elevate

If we were to take this project further...

  • Add additional gait analysis features such as step counts
  • Interview more users with foot drop
  • Develop an improved model / detection algorithm to extract the angle of foot drop as well as its occurrence
  • Develop a companion iOS app
  • Develop companion smart watch apps
Share this project:

Updates