Author: dhershen

team status report 4/25

Our team did a lot of work on our project since our last check in, across various areas of the project. We made progress in our app, mainly on adding stuff to improve the user experience:  gamifying components that include, challenges, progress trackers, and some comparisons between users (i.e. competition with friends/club). We began working on incorporating an LLM to give specific feedback of player’s swings. We also improved our ML model to classify different levels of players. We also improved our hardware design a lot so now it won’t come off at all and we can start recording data with ball impacts, which we previously could not do because our device could come off if you swang the racket fast enough or just pulled it off. We worked on some microcontroller code to collect different windows (used to be time based) so that now it detects ball impacts. 

 

Our biggest effort for the remainder of this project is to collect a ton of data and use it to train our models and improve our swing path visualization. We haven’t made any significant changes to our product or schedule. 

 

We have no blockers apart from some rain in the forecast which prevents us from collecting data (if the courts are wet).

David status report 4/25

This week I spent time improving the 3d printed hardware design, previously it could come off if you swang the racket too fast. We didn’t test with actually hitting the ball because of this, we were afraid it could fall off. I made a new design that has a two part base that grips the racket better and screws together horizontally such that it doesn’t move around at all and shouldn’t fall off of the racket. I also resoldered all of the connections with solid core wire and much shorter wires. Previously our design had braided wires that were much flimsier and had poorer connections with the actual board, a few times they actually fell out and I needed to resolder them. I haven’t had that issue yet since the change, and I am hoping it doesn’t come up. 

 

We are now in the final stages of the project, I will be working super hard with my team to get the final bits of work done. The main thing I will be working on is capturing data, as this is the biggest blocker for getting all of our work to show effectively.

david status report apr 18

Since the last status report I have made a new prototype for us that is much smaller than the previous version. Previously both of the dev boards were just hot glued to an attachment that stuck out from the bottom of the racket, both boards had header pins and wires connecting those. There was also no battery. In the new design each component (battery, IMU, microcontroller) has its own “compartment”. This took a lot of iteration to get all of the things to fit together well, and then even after I thought I had finished and I went to solder the boards together with wires and then it messed up the fit of the components in the 3d printed parts so I had to iterate further, The current design also has wires that are longer than necessary, I did this as an intermediate step so that if/when I need to iterate I don’t need to fully get new wires I can just trim the current ones and re solder them. I have already learned some ways I can make the design better and I should have a final version by the design presentation on Monday.

 

I also spent a ton of time this week working on our project as a startup, we have submitted to two pitch competitions and will be presenting on Wednesday at one of them. I have done stuff like making a final BOM and calculating all the parts in that down to the material and printing cost of the user guide that would be placed in the box the product comes in. I also looked at unit economics, did lots of market research, logo design work, and tons of work on the script for the competition.

I am behind on the PCB design which is bad, I wish I had that more under way and ready for fab. I am going to try and make that happen by the design presentation, but I have a lot on my plate preparing for the competition on Wednesday, so I am not sure I will be able to finish it. I do want it done by the time the final poster board demo happens though.

 

I have really been enjoying the project this week, we have met up every day for at least a few hours to work which has been great.

 

In the next week my main focus will be preparing for the competition, and working on final hardware design.

old design:

new design:

there is a video that makes the new design much clearer but I can’t upload a video here. I showed it in person to Qing during our mtg on Monday

David Status Report Apr 4

This week I supported our efforts on getting the demo running. I worked on calibration and filtering. I made a script to run calibration of the accelerometer, but ultimately determined that the bias set from calibration at the factory was actually good enough for us. So I didn’t end up using the data I got from this work, which was a little frustrating I suppose, but still good learning. I did implement a real time gyro visualization which showed us that we needed to add filtering. Previously we had a visualization with matplotlib which was good, but it had a lot of delay so it was hard to really tell how accurate the visualization was to the actual movement of the IMU. I made a new visualization using pyqtgraph which had much much less delay, which was super helpful. It showed us that the gyro needed some filtering: we noticed some issues such as after moving the IMU quickly the following data would be inaccurate and it would fail to return to the same position (after holding it in one place, then moving it a bunch, then putting it back to original position, the visualization would show that it was off from the original orientation). I implemented this simple Mahony filter I got from a library, and it worked great. This was a huge step for us in helping us get more accurate data.

I also spent some time this week working on the physical prototype. It took me longer than expected to get the right dimensions and tolerances for making press fit holds for each part, each one took multiple iterations. I now have the right dimensions for each individual component (battery, IMU, and microcontroller). I don’t have access to the right size screws unfortunately since the techspark machine shop is closed on weekends, so I will need to wait until Monday to put it all together.

I am still lacking on the PCB design, it seems I may not be able to get the finished PCB in hand by demo day, but I will have the design for it finished and a model to show for it. I am hoping to have the final design done by EOD Tuesday.

david status report 3/28

 

This week was a bit of a mess in terms of progress, I should have gotten more done on the hardware side but instead was drawn into working with Mario on the calibration. We have been having some issues with getting the calibration and motion tracking down. I said last week that my goal for this week was to do the PCB work (I wanted to place an order), but I am far from being ready to do that unfortunately. I have been focusing my efforts on IMU calibration work. 

 

We are fighting issues with bias and drift of the IMU. I made a script to visualize the movement of the IMU, but the path it drew was a bit weird and so that led us to investigate the gyroscope and accelerometer data individually. We have a working live visualization of the gyroscope and are working on setting up the same thing but for the accelerometer. We want to then record on our phone the IMU moving 10cm and then track that against what our code predicts and use that to calibrate the IMU. This was something we did not foresee being a big challenge, but it has ended up being a good bit of work. 

I am falling behind on the PCB development. The plan is to focus on getting the calibration and motion tracking working well for the demo on monday and then once that is going well I will leave Mario to carry that on and do more of the other metrics we wanted to track and I can go back to working on the PCB.

I don’t have any blockers right now apart from dealing with the IMU calibration issues.

David status report march 21

This week I spent some time talking to users about the product we are building, which was super useful. We did this some when we were initially getting started, but now I am doing more of it and finding it very useful as I start to think about this as a product and not just an engineering project. I also spent a good chunk of time looking into other similar products/projects on the market. I looked into products in the tennis space, pickle ball, and also golf. Golf is the most developed of the three, and although it is a bit different I was still able to learn some valuable things from looking into golf trackers/sensors. One anecdotal takeaway I had from this was potentially designing our sensor to screw into the tennis rackets instead of just press fit (this was taken from Arccos golf product). 

 

On the engineering side, I spent some time looking into IMU calibration with mario, and also started taking some steps to work on the bare component design. I have found bare components for the IMU and the microcontroller and I have started making a schematic to connect the two. I have also identified two manufacturing houses we could use for PCB assembly. I am not behind yet, but next week it is crucial that I place the order to manufacturer PCBs. 

 

My main goal next week is to place that PCB order which involved finishing the layout etc. I think I can complete this next week as well as help with data collection and adhere to the planned schedule. I do not think there should be anything that will impede my progress.

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.

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.

David Status report 2/13

This week I finalized our (prototyping) component selection, I ordered an IMU and a microcontroller. I did some work to make sure these would be compatible, and that initial prototyping would be viable with these components. I ordered dev boards for easy set up and prototyping ease and I made sure that we could also get just the bare  components as well. It was a bit of work to narrow my list of components down to options that had both dev boards and bare components available. I looked for parts with significant quantities available on digikey to ensure that once we had the prototype working, we could order a bare component of the same device. Although the dev boards may be too large and heavy to fit some of our weight and size constraints we set for our final product, they will allow us to set up prototyping and data collection quickly which is the most important thing for us in our stage of the project right now. I have begun doing CAD for 3d printing a test rig that will attach the two boards to the tennis racket for initial data flow and testing 

 

Our progress is still on schedule; I submitted in the order to pay for two day shipping for the parts I ordered so that we would get them in time to use them over the weekend but unfortunately I was not notified to pick them up yet which is unfortunate. This has slowed our expected progress a bit but it is okay, we are not behind our planned schedule. 

 

If the parts aren’t available for pickup on monday we may have to think of other ideas to simulate our data flow to keep progress moving. This coming week I hope to have a physical prototype to test our data flow and data collection process.