Home

Mario’s Status Report 03/21

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. 

Geronimo’s Status Report 3/14

I spent this week continuing general work on the UI of the app and some general clean up so that the data we receive will be better organized and easy to work with. Towards the end of the week we got a JSON of some fake data so I started integrating that into the app so that it can read the JSON’s properly.

I am currently on schedule, but I want to start really pushing fro data collection to be a priority

For next week I hope to do at least one session of live testing after integrating the app.

David Status report 3/14

I spent this week working some on the physical holder for the dev boards/handle attachment. I worked on making a new design that is more user friendly. I made it have a better fit so that it doesn’t move around on the handle. This allowed us to collect data without needing to use tape to secure our dev boards to the racket. The dev boards are currently just hot glued onto the 3d printed part, this is working much better than the previous method which was sub-par double sided tape. Next I will begin working on a design that does not need to use hot glue and instead just has mounting holes and press fit solutions. I have begun testing this in parts (fit holds for the IMU dev board), but there is still additional work to be done on this. I expect to finish this next week. I also worked on making visualizations of the swing path. I wrote some code using matplot lib that visualized the IMU movement in a 3d graph. I also spent a bit of time getting the battery to work, I wrote some simple code that reads out the battery voltage level and also had to change the pins in the battery header as they were incorrect.

My progress is on schedule, but the data collection needs to be moving at a faster rate. We were able to collect some initial data, but need to spend more time collecting data so we can train our model.

Next week I hope to finish the physical holder for the dev boards and also start looking into bare component & PCB fab.

Team Status Report 03/14

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.

Mario’s Status Report 03/14

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.

Team Status Report 03/07

Our team continues to make steady progress toward our MVP and currently sees no major risks to completion. This week we continued progress on hardware development, embedded systems, and the application. We had a couple iterations on the hardware attachment that attaches the device to the tennis racket. On the embedded side, we updated the controller code to use SPI instead of I2C and successfully read IMU data packets at 500 Hz while transmitting data via BLE. On the software side, we began integrating the IMU data stream into the app and started implementing calculations to approximate ball velocity.

One potential challenge that carried on from last week is finalizing the physical hardware design. The attachment must be securely mounted to the racket while avoiding movement during play. When we begin collecting real swing data, we may also need to adjust parts of the data pipeline or processing steps to ensure the data is reliable and can be used for our specific use cases consistently.

To mitigate hardware risk, we will continue iterating on the attachment design and finalize the prototype so we can begin collecting swing data. We will also finalize component selection and place an order for a PCB.

To mitigate data and ML risks, we first need to establish a working end-to-end pipeline before focusing on model accuracy. We will collect sensor data via BLE, run basic analytics on the laptop, and begin preparing the dataset for model training. We will also continue adapting the app so it can interpret the incoming IMU data and compute metrics accordingly.

We do not have an updated schedule.

Our focus next week will be continuing to work on the physical prototype, collecting initial swing data, integrating the IMU data pipeline into the app, and beginning early model training for stroke classification.

Mario’s Status Report 03/07

This week I have adapted our existing embedded controller code to use SPI instead of the slower I2C. I additionally created and tested code that allowed for BLE transfer of data from the controller to the laptop. I tested and confirmed that we were able to read a data packet from the IMU at 500 hz.

Progress is continuing smoothly.

My goal for this coming week is to implement code to collect data packets via bluetooth on the laptop to begin basic data analytics and machine learning. I want to clean up our existing code. Lastly, I want to make a test suite for  bluetooth transmission to determine our maximum rates of sending data.

Geronimo’s Status Report 03/07

This week I have begun adapting to the app to be able to use and interpret the data being streamed in from the device according to the format of the data. I have also begun working on the calculations for the approximated ball velocity. And finally have started to think about how we should be storing the users data, locally and a little at a time in compressed files, or in an AWS Bucket.

Progress seems to continue to be steady.

My goal for this coming week is to continue the integration with the IMU and calculations of ball speed so that next week I can focus on training the model to interpret different types of swings. I do have to leave early this week to New York so I am hoping that does not set me back.

 

David Status report march 7

Over this week I focused on developing the prototyping hardware, I spent time doing the CAD of a simple attachment to hold the dev boards to the racket. I iterated through some designs to get the right tolerance so that the holder could slide over the butt of the tennis racket without too much difficulty and not move around too much. I did the CAD in SolidWorks and did the 3D printing on my personal 3D printer. Having my own 3d printer was super helpful for the development of the part because I could rapidly iterate the design. 

 

My progress is sort of on schedule, but I think I need to break up the tasks into smaller items on the gaant chart. For instance I have physical prototyping as a task that spans over multiple weeks, but I think I should break it up into smaller more specific tasks that I can accomplish part by part. Also last week I wrote that I wanted to be collecting some initial tennis swing data by now, but some unexpected travel plans got in the way of that. I should be able to completely catch up the first week back at school by finalizing the prototype hardware and then hooking up a small battery. 

 

The next week will be big, I have some CAD ready to go and want to finish the physical prototype and start collecting data. We are planning to start collecting initial data during the first week back from break and use that to start training our model for stroke classification and other data metrics. 

 

During the next week I also want to finalize bare component selection and place an order for a PCB. 

david status report feb 21

This week I brought up the IMU and microcontroller: I soldered on the pin headers and the jumpers on the IMU, got them all wired up and then tried to get them to talk to each other. Getting this all to work took a bit of debugging, but I was able to read data from the IMU onto the microcontroller. I have it working over USB, no bluetooth yet. It currently prints out the acceleration in x, y, and z as well as the gyroscope data in x, y, and z. I was very happy once I was able to actually see the IMU data printed out over serial.

 

I also spent time working on the prototype version of the buttcap attachment. It is currently just a prototype and much larger and bulkier than the final version will be, we just wanted to get something working with the dev boards so that we can start collecting data as quickly as possible. The size is heavily constrained by the dev boards vs having just the bare components. The most important design constraint to determine is how we actually attach our device to a tennis racket in the least intrusive way possible and also make it adaptable to a variety of tennis rackets. I plan to visit a tennis store to look at a bunch of rackets and hopefully talk to a worker there who can tell me some of their ideas.

 

My progress is currently on schedule but I foresee challenges adhering to the planned items this week. In our schedule I am supposed to finish the hardware design next week, but I think this will take multiple iterations and not be done until we have the bare components. Our team is meeting tomorrow to revise our schedule and adjust. I do not think we planned enough time for hardware design iterations. We have physical prototyping as a multiple week item and I think we can adhere to that but the final enclosure design task should be broken down into more tasks and better scheduled.

 

In the next week I hope to get a more polished version of the prototype hardware done, and start collecting some initial data from the IMU while it is attached to the tennis racket. Part of this involves ironing out the specifics of the data flow, which Mario is doing. It is important for me to sit down and go through the design process of our hardware design with higher fidelity next week. I want to have a clear actionable design that I can work on some over spring break, and do PCB board design, etc. other CAD as needed.