I started as a remote rowing coach about three and a half years ago. During that time, I have been supporting athletes from all over the globe to improve their rowing and reach higher levels of performance.
However, I am always looking for methods and tools to help me improve as a remote rowing coach. For the last six months, I have been working on an app that helps me (and others eventually) provide a higher level of virtual rowing coaching. It is common for me to work with clients remotely and I was experiencing some frustration about not being able to see the metrics on the PM5 monitor in real-time. I looked around for a solution, and short of finding one that I liked, I eventually decided to build my own app to solve the problem.
I had learned a lot from the development of Erg Dude and RowingSTEM. Building on that experience, I have developed an iOS app to allow for the real-time remote observation of data generated by the PM5. This has proved to be invaluable during online real-time sessions. The app functionality allows for an immediate feeback look for my clients to make technical and application changes to their rowing stroke.
As the COVID pandemic started to gather momentum, I quickly built a prototype to see if real-time transmission of data was possible with little delay. Here is the first video that I produced showing my work to that point.
I was pleased with the speed of transmission of data, so proceeded to build out more functionality to include as many metrics as possible. This includes monitoring of the force curve and other metrics associated with this. These are peak force, average force, stroke duration, and the point at which the peak force is reached as a percentage of the stroke that has been rowed so far.
The next step was to test with a client, and I was able to do this one weekend to see if this application was going to work. I also built a web interface so that metrics could be monitored if a coach had a laptop or similar to monitor progress. This functionality allowed me to focus my feedback so that when the athlete achieved a certain technical benchmark they could feel the difference and I could see that reflected in the data I could see.
Data security privacy was an important part of the infrastructure of the application. As a result, the athlete needs to approve a coach to view their data by clicking on their coach’s public username when using the app and before pairing it via Bluetooth to the PM5. In addition to this permission, a session code is generated that needs to be communicated to the coach in order for remote viewing of data. In this way, the system is has a two-step security mechanism in place.
The next stage of development involved the integration of the app with the Concept2 Logbook. So, I went about creating functionality that would allow the user to upload their data to their Concept2 Logbook account and also functionality that would allow the viewing of training that had already been uploaded to their account. I learned a great deal about Rest API functionality and how token-based authentication works in an OAuth scenario.
The settings control panel allows for the setting of a few variables as well as the switching on remote coaching. It is possible to set a max heart rate so that if a user is wearing a heart rate monitor they can see which energy zone UT2, UT1, AT, etc… they are currently working in. At the moment, it uses a simple formula to calculate these zones, for example, UT2 is set at 55% to 70% of max heart rate. Future iterations of the app will probably allow for more detailed customization of these zones if say, for example, if the user knows their lactate thresholds.
The app also has a close my account button. This is important functionality and it is best practice in terms of privacy and data rights.
The next stage of development was integrating split interval recording functionality. At this stage, I don’t have all of the possible scenarios covered as far as all of the different types of training sessions you can do on the Concept2. In all, there are around thirteen different types from single time, to variable intervals which are time, distance, and calories. As I progress with development I hope to be able to work with all of these possibilities.
An important piece of functionality is the ability to export all of the data that the PM5 measures or calculates. I re-used some of the code that I had written for RowingSTEM. Users can export data to a Comma Separated Values (CSV) format. This enables them to examine the data in a number of ways.
It was also important to me that users have the ability to analyze their training. Therefore, I included a screen where any two variables can be plotted against each other on the same axis. (thanks again to RowingSTEM!).
I then went to work building a better web interface, and that is a work in progress. A web interface works most effectively. Mobile device screen size is limited. . It is easier for me to code HTML and CSS than build a user interface (UI) for a mobile app. I still have a way to go when it comes to designing UI for apps. However, that is all part of the journey. My strategy, metaphorically speaking, is to make sure the plumbing works. Then I will decide what color to paint the house.
Here is a video of the app working and the speed at which the coach can receive the information. In the top left of the screen, the app running on the iOS device is displayed. The real-time data in a web browser is in the bottom right.
It is helpful to storyboard an app interface before you actually build one in an integrated development environment (IDE). I used ADOBE XD to plan out a screen displays every force curve. The storyboard for this screen looks like this and the video that demonstrates this functionality follows.
The force curve analysis screen movie is below. This took me about a couple of days of coding, but I have received some positive feedback about this functionality.
In conclusion, I am grateful to share this with you and get the app to this point. I would be remiss if I did not mention how helpful Concept2 has been. The technical team at Concept2 has been great at answering all of my technical questions. I really tried hard not to ask them on the weekend…
My clients are busy working with the app and suggesting ways to improve the functionality of it. I’ve learned not to rush development on technology. Therefore, my current plan is to use this technology to help me coach my clients. I will get to a broader distribution of the software at a later time.
I’m open to suggestions and feedback for improvement on the app. If you are open to becoming a beta tester, please contact me at firstname.lastname@example.org and we can talk.
For now, I hope you are staying well at this difficult time. I look forward to updating you all as I progress.