Table of Contents

SmartSole

Introduction

Description

SmartSole provides means of recongnizing the pressure points' patterns of the feet in different activities, such as walking, running, skiing, and so on. Equipped with an intelligent foot sole that monitors the pressure of three main points of contact, and a visualization mobile application, it provides an accurate description of the way the foot moves in different scenarios.

Motivation

Being a solution that tracks patterns in user's feet movement, it has a large variety of applications. On one hand, it can be used by athletes for performance tracking and technique monitoring, helping them to constantly improve. On the other hand, it can be used as a tool to detect issues related to foot motion that lead to other problems (an example would be knee pain caused by poor foot placement and motion). It is designed for a large category of uses, the main goal being to help the user regarding his activities.

Hardware

Embedded device

The embedded device is one of the two main components of the solution. Its purpose is to collect data from three pressure sensitive sensors carefully placed on the main contact points of the foot, process it accordingly, and then, send it to the mobile application for visualization and statistics. The components used for making the mentioned device are the following:

The below image presents the schematic of the embedded device. The ESP32 module acts a the logic unit, taking care of RF communication and data processing. The Li-Ion battery charging module powers the control board via USB, having the possibility to charge the battery as well from another port. It also has an ON/OFF switch giving flexibility of usage. Moving to the sensing portion, we can observe that each sensor is part of a voltage divider, one if its pins being connected to the board 3.3V output and another one to the 10K pull-down resistor and the input pin. In this occasion, each of them act like a potentiometer, changing resistance when pressed.

 Embedded device schematic

Mobile Application

The mobile application acts as a visualizations tool, for the user to check the measurements in a friendly and easy-to-use manner. We will run our application on a Samsung Galaxy S6 Egde, using Android Nougat (API 24).

Software

The main service used for this application is Bluetooth Low Energy. One of the main reasons for this choice is that it provides a way of constant communication between the two parts, not having such a drastic impact on the battery usage as other services might.

Another reason why we chose Bluetooth LE is the fact that the user might find oneself in a restricted area from WiFi, therefore using that technology would not make sense. Not to mention the fact that is has a big impact on battery life.

The application will follow the classic Bluetooth Low Energy model, using services, characteristics and descriptors for communication. Below we can see an overview of such model.

 Bluetooth Low Energy GATT model

Embedded Device

The embedded device acts as a server. It advertises until a nearby device connects to it, and just then it proceeds to start reading measurements and send them to the app. The communication between the two devices is one-way, from server to client. For each measurement, the device sends a notification with the processed data to the mobile app, without expecting any acknowledgement in return. The flow of the device application can be seen in the below image.

 SmartSole device flowchart

Mobile Application

The mobile application is complementary to the device, meaning that it is a BLE client. First, it is required to connect to a device. After the connection is established, the app enables notifications on the configured characteristics, one for every point of contact. On its side, the device start sending data, the client receiving it via notifications on the common service. The measurements are then displayed on one of the app layouts, with indications.

The user can also check the connected device on another layout of the application and has the option to voluntarily disconnect, returning to the scanning layout accordingly. The application will return to the scanning layout if the connection is terminated unexpectedly. The flowchart can be observed in the below image.

Results

Demo: https://youtu.be/6X2mqN7ok3k

Source files: https://github.com/nicolaeandreivasile/SmartSole

Conclusion & Future Work

SmartSole is a versatile solution, with applications in various domains, from athletes who want the best performance out of what they do, to means of monitoring foot patterns for medical purposes.

In this article we have described the motivation, implementation and results of such solution, yet still a lot of research and effort are in place to make this project truly significant. There are many improvements to be made, such as developing a foot sole with the capability of monitoring the foot with much greater precision and accuracy, such as integrated fabric matrix sensors. A better UI and more functionalities for the mobile application are just a few more improvements that could be done. But one interesting aspect is processing the patterns at much larger scales using the cloud.

Bibliography

https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf

https://www.adafruit.com/product/1361

https://www.sciencedirect.com/science/article/pii/S2590007222000375

https://www.youtube.com/watch?v=4JBSHqUcaG4&ab_channel=MarcoReps

https://www.youtube.com/watch?v=0uPZwMg5B3k&t=313s&ab_channel=MarcoReps

https://developer.android.com/

https://punchthrough.com/android-ble-guide/

https://getcarv.com/