Swimming Stroke Path Tracker

I found this device online ( https://www.eolab.com/swimbetter ).

I wonder people's thoughts on replicating some or all features of the device using Arduino. I found the below thread about a similar project and a post suggesting Accelerometers + Gyro. I wonder how hard and expensive adding the 2 force sensors are on the SwimBetter device? The stroke path aspect interests me most and maybe not having the force sensors would reduce complexity a lot.

I am strongest in software, and I know there is a lot of work there. Looking for advice from anyone on the hardware difficulty (and cost).

3D tracking of movements will be vital in evaluating how a stroke deteriorates over time, and how movements in certain dimensions impact overall speed. Gyros on the same $1 or less module would add a lot more detail. All components can be easily made waterproof, they are small, and even powering can be kept watertight with inductive charging
All of this in a super-tiny package, powered by something like a tiny 600mAh LiPo, dipped in anything from silicone to epoxy to resin, etc. would rival any super-expensive professional rig.
These could be used for any sports application, or any place in harsh environments where measuring motion/speed/Gs in 3 dimensions is vital.

I was a USN NavET when we used actual gyros and ESGMs to measure velocity. Inertial navigation is your accurate, waterproof, and cheap friend!

Hi fellow USN NavET (real ETs)! SSBN 654... SINS, so gyros, too, and ESGM.

I can't figure out from the link what the commercial product does or how it works. But I can tell you that my trials with accelerometers on the Arduino platform has nothing to do with accuracy r sample rates, but rather that they are I guess you could say too sensitive.

Even minor shakes r twitches that are any kind of deviation from a linear smooth movement cause all kinds of erratic output. The sensors, and I'm not using $100 sensors either, are doing their job, but raw output is made for generic things, which might include vibration of some sort. You will have to dampen the output of these pretty severely if they're going to be in a highly active environment like on a swimmer in a pool, in order to get some actual readings that are not only repeatable but also are useful.

The damping is something that will actually vary in necessity based on what part of the movements and actions of a swimmer that it is responding to. For this reason, I would build in from day one the ability to have an automatic dampening function that you can then adjust the sensitivity and oversampling of whatever situation it is in.

You want it to be sensitive when it's hardly doing anything, or maybe even off below some sort of squelch threshold, but then when the inputs are going crazy, you have to be able to not only dampen and oversample the output of the sensor, but deal with situations where these very tiny sensors are overloaded or at their maximum.

If a sensor is experiencing something 20 or 30% stronger in any axis then it can give you a measurement for, then you don't have valuable data to work with. You only know that it was maxed out, and not whether it was exactly 100% maxed out, or 400% maxed out in reality.

This is why the automatic gain control r adjustable threshold, or generic dampening would be so important. As long as you are keeping track of the damping factor that you are using, whether you're using a stepped scale or infinitely variable, you can recreate from a sensor's range of say from 0 to 1024, an actual reading that maybe would have required a sensor that had more than 10-bit, like 16 or 24-bit resolution.

You don't necessarily want a higher resolution sensor either, because higher resolution or significant bits, takes more processing power, and likely you don't need that kind of precision, just accuracy and repeatable at that.

These are just suggestions, but I envy this project.

I think a module with inclinometer data ( 3 axis ) would be usefull ( to understand the hand posture too ).

This is the screenshot of the phone's accelerometer and gyroscope while 'swimming' ( used phyphox app ), on an arduino/microcontroller board acquisition will be similar.
As already said, oversampling is a good way to reduce noise, but some sort of 'good filtering' will be required