Since last status report, I have gotten more data for swing categorization and gotten feedback from professional tennis coaches to get better insights into what feedback we can give to players. I also worked on creating two different versions of micro controller code. One that activates data detection after a swing without contact with the ball and one that does with the ball, for live play. I have not worked much on visualization yet but I will finish off this last week by focusing on visualization, and continuing to get more swing data.
Progress was a bit more stalled this week. Final projects and presentations have staggered my ability to work this past week.
My goal for this coming week is to get visualization to be more accurate and collect more data for swing categorization.
Since last status report, I have updated our microcontroller firmware to be as consistent and robust as possible. I moved bluetooth transmission to after IMU sampling in order to keep the data collection as in tact as possible despite bluetooth blips. I also finished a script for cleanly collecting swing data and have spent several hours collecting hundreds of swings from at least a dozen players. I have worked on the visualization of the tennis swing as well and that will continue to be a focus this week.
Progress was good this week. I do not have any significant blockers this week.
My goal for this coming week is to get visualization to be more accurate, collect more data for swing categorization, and get feedback from tennis coaches to get better insights into future work.
This week I have been working on the visualization and validation of our IMU data.
Progress was okay this week. We are getting good visualizations but not very consistent. I have been very busy elsewhere this week so progress hasn’t been as much as I would have liked. But it should pick back up soon.
My goal for this coming week is do to start accumulating data for model training and assisting in visualization technology.
As of now our team sees a few potential risks/blockers for achieving MVP. Firstly is the design of the case for our embedded system. We are currently iterating on different approaches for attaching our system to the handle of the racket without impeding on the user’s experience. This may or may not take longer than 3 weeks to get in an acceptable range. Secondly is designing the ML pipeline for this system. We have done substantial outside research to give us confidence that our design can succeed. However, we will undoubtedly need to make changes to some parameters as is reasonable with our own hardware and data flow. Lastly and newly, we are a bit concerned with how often we may need to be calibrating our IMU to have it work consistently for as long as possible.
In order to mitigate risk 1: we will be constantly iterating our design to minimize user impact. We will be reaching out to collegiate tennis players that we know in order to get feedback on our ideas and implementation as we go.
In order to mitigate risk 2: we will be working on creating a baseline pipeline that works structurally the same but with less expected accuracy. We want to uncover unexpected issues as quickly as possible to make needed changes. We will additionally be doing testing and verification of our data flow to ensure data integrity as it goes through our ML pipeline. This will be pivotal in ensuring accurate results when testing the ML.
In order to mitigate risk 3: we will be working with filters and doing our best to calibrate the IMU to the fullest before making decisions as to integrate more sensors or change up our approach.
We have made successful transition from collecting data to the computer via bluetooth to actually being able to use the IOS application to collect data. This is great for the demo and great for our future progress. We have also made improvements to the IMU gyroscope and accelerometer readings by applying filtering to the sample data.
This week I have been working on integrating bluetooth communication between the iphone and the microcontroller with Geronimo. I also worked on calibrating the Gyro scope and Accelerometer with David before he took that over.
Progress was good this week. We have been preparing for the demo and we believe to have hit our target goals.
My goal for this coming week is do a successful demo and continue to clean up IMU data using filtering and other techniques so that we can start to collect data for our models.
As of now our team sees no greatly significant risks to achieving our MVP, having not really changed since last week. We still have a couple potential blockers or issues to tackle in the next weeks. Firstly is the design of the case for our embedded system. We are currently iterating on different approaches for attaching our system to the handle of the racket without impeding on the user’s experience. This may or may not take longer than 3 weeks to get in an acceptable range. Secondly is designing the ML pipeline for this system. We have done substantial outside research to give us confidence that our design can succeed. However, we will undoubtedly need to make changes to some parameters as is reasonable with our own hardware and data flow.
In order to mitigate risk 1: we will be constantly iterating our design to minimize user impact. We will be reaching out to collegiate tennis players that we know in order to get feedback on our ideas and implementation as we go.
In order to mitigate risk 2: we will be working on creating a baseline pipeline that works structurally the same but with less expected accuracy. We want to uncover unexpected issues as quickly as possible to make needed changes. We will additionally be doing testing and verification of our data flow to ensure data integrity as it goes through our ML pipeline. This will be pivotal in ensuring accurate results when testing the ML.
We made successful improvements to the application to make the user experience better. This weeks work largely involved continuing to improve the things we started last week. We further streamlined data capture this week for example. Next week we will be connecting all parts of the system including the application to be ready for interim demo. We should have surface level data analytics ready and swing path visualization for the demo, including our 3rd iteration of the physical attachment.
This week I have been working on allowing for data capture completely through bluetooth transmission and ensuring that we can do so within the appropriate time constraints. Last week I had an issue acquiring data via bluetooth at a reasonable speed. Leveraging some bluefruit library functionality and using troubleshooting tests to analyze the issue, I was able to get past some initial handshake issues. Now we can successfully trigger and read 3 seconds of data collection from the IMU via bluetooth.
Progress was good this week. We have begun preliminary data collection as we intended.
My goal for this coming week is to get a full bluetooth testing suite to know what our capabilities are. Additionally, I want to get the IMU calibrated and add an option to trigger gyroscope calibration via bluetooth. Accelerometer calibration is only needed once and not again, while gyroscope calibration may be needed multiple times a session. So I will do the accelerometer calibration myself and write code to support gyroscope calibration.
As of now our team sees no greatly significant risks to achieving our MVP. However we have compiled a few potential blockers or issues to tackle in the next couple weeks. Firstly is ensuring that our bluetooth transmission works effectively. We hit a blocker this week with getting bluetooth transmission to work when using SPI and interrupts. This shouldn’t be a long term issue. Secondly is the design of the case for our embedded system. We are currently iterating on different approaches for attaching our system to the handle of the racket without impeding on the user’s experience. This may or may not take longer than 3 weeks to get in an acceptable range. 3rd is designing the ML pipeline for this system. We have done substantial outside research to give us confidence that our design can succeed. However, we will undoubtedly need to make changes to some parameters as is reasonable with our own hardware and data flow.
In order to mitigate risk 1: we will be building slowly up from sending simple messages via bluetooth to reaching the high performance transmission throughput we need. At some point in trying to integrate bluetooth with our overall system it stopped working completely. We will need to build, test, and validate incrementally this time around to be able to debug more effectively.
In order to mitigate risk 2: we will be constantly iterating our design to minimize user impact. We will be reaching out to collegiate tennis players that we know in order to get feedback on our ideas and implementation as we go.
In order to mitigate risk 3: we will be working on creating a baseline pipeline that works structurally the same but with less expected accuracy. We want to uncover unexpected issues as quickly as possible to make needed changes. We will additionally be doing testing and verification of our data flow to ensure data integrity as it goes through our ML pipeline. This will be pivotal in ensuring accurate results when testing the ML.
We made successful improvements to the application to make the user experience better. We also successfully recorded our first swing. We created a new attachment for the prototyping boards that fits the handle better and moves doesn’t move around at all and then hot glued the boards on for prototyping. We also wrote some code to visualize the swing path.


This week I have been working on integrating bluetooth with the existing code and organizing data flowing serially into json formatted data compatible for ML use. I have written code that communicates with the embedded controller to signal the start of a 3 second window for data capture, prompting it to start sampling the IMU. It then formats the data it receives into json.
Progress was slower this week due to issues using bluetooth. It seemed that connecting to a central device via bluetooth would cause the device to reboot or something. Our priority is collecting data as soon as possible so I decided to pivot to ensuring that we could collect data and we were successful in doing so.
My goal for this coming week is to get bluetooth transmission working at full capacity and reliably. I additionally want to implement code that will allow us to trigger a data transmission event by relying on accelerometer values that should correlate to a swing.