Inspiration
According to a 2021 study published in the Journal of Sport and Health Science, about 40% to 60% of the 50 million runners in the United States suffer a running-related injury each year. Annually, this accounts for 20 to 30 million Americans taking time off or even ending up in the ER due to extremely avoidable injuries related to a seemingly simple physical activity.
A large percentage of these injuries are due to poor form and biomechanical weaknesses. It's possible for a runner to overcome these factors, but general advice will likely not apply to runners with unique body types or circumstances. For that reason, they would likely turn to solutions such as specialized treatments or personal training programs, which can often be prohibitively expensive to access.
We're introducing Cadence, a wearable device which leverages hardware integration to provide an affordable and personalized experience for runners to fix issues with their form and run pain-free!
What it does
Cadence is a wearable device, meaning the user interacts with it by wearing it as they would a normal shirt. An accompanying app contains a setup guide for the user to easily start tracking their form. Sensors and a microcontroller integrated onto the shirt collect and process data from user movements, collecting and storing sensor data from each user run session locally.
How we built it
Since we were planning for several peripherals to be supported by a single ESP32, we elected to plan the space for the hardware first. We were able to successfully assemble a customized perf board containing the microcontroller and all connection points needed to interface with the sensors we needed.
We then built a placeholder mobile app in react and a script to generate dummy sensor data in order to test the Bluetooth capabilities of the ESP32. After some trial and error related to flashing the board, we were able to transmit and receive data with Bluetooth and see the real-time data on our mobile app. Once complete, we proceeded to write the actual firmware for all of our sensors using C++ and PlatformIO support.
With the firmware written, we assembled the shirt with all of our components corresponding to appropriate locations on a sample user's torso to collect movement data. We initially used an approach of connecting everything with conductive thread sewn into the shirt, but had to pivot away from this approach. Meanwhile, we developed the mobile app further for a better user experience and added visual elements such as an interactive "mannequin" model (made in Blender) to intuitively guide user setup of our project. We were able to successfully collect user run data and store it locally.
Challenges we ran into
In the later stages of development, we realized that the approach of using conductive thread to connect all of the peripherals to the ESP32 was untenable. There was simply not enough space to feasibly route everything in the given time frame. Given this, we pivoted to using a more traditional set of jumper wires and soldered pads, and also had to scrap a few peripherals that we initially wanted.
Accomplishments that we're proud of
- We developed an extremely complex hardware interface with a large number of peripherals and were able to produce a working circuit on a wearable.
- We successfully used an expansive tech stack we had never worked with before to provide an intuitive as well as aesthetically and functionally pleasing user experience at every level of interaction.
- We overcame a major forced pivot from a very difficult approach to still finish Cadence on time with much of the critical functionality.
What we learned
From the conductive thread challenge we faced, we learned that it is extremely important to identify potential issues with a solution path early and come up with plans B or C in the event that plan A becomes untenable. It also took us far longer than was appropriate to make that call since we had already invested so much time in implementing our first approach, and our development cycle would have been much less chaotic from the extra practicality.
What's next for Cadence
In our initial vision, we wanted machine learning to be central to our device so that it could train off of compiled run data. We were not able to do this, though we got very close with being able to successfully store actual run data. Along with future changes to improve the physical stability of the build, it would be much more feasible to implement our machine learning related features such as form suggestions.
It is also imperative that we look into solutions to integrate our hardware more seamlessly into the wearable, as the prototype's implementation is fairly unreliable and fragile compared to similar products on the market which integrate electronics directly into the fabric. Further, we would like to train the project on much more user data to potentially make new versions of Cadence for different sizes and body types.



Log in or sign up for Devpost to join the conversation.