Hi, my name is Niko Dittmar and I am a junior at Bishop O'Dowd High School. This is my submission for the Stem Warrior Hacks (Winter) Hackathon.

Background

I would consider myself to be an avid mountain biker. I am a part of my school's mountain bike team and have competed in many different races over the past several years. As a mountain biker, I find myself out on rides throughout my local trail systems all the time. Spending so much time in these local parks has given me a deep sense of appreciation for them and I have always wanted to contribute to them in some way—especially before I leave for college next year. Because of this, last summer I decided to start planning my own mountain bike race to act as a fundraiser for my local trail systems. The race is coming up in a couple months and while planning I came to realize the lack of a good method to time the participants of my event. This issue is what I hope to solve with this project.

The Problem

Timing a mountain bike race like the one I plan on hosting in a couple months is a unique challenge. This is because my race is going to be an "enduro-style" mountain bike race which is a type of race that involves racers competing on a number of timed trail-segments called stages. Each of these stages requires a recording of when every racer started the stage and one for when they finished the stage. There are currently two main methods of timing these enduro mountain bike races. The first, known as the old fashioned method, is where a person is stationed at the beginning and another person at the end of each stage. These people carry a clipboard and stopwatch and they write down all the start/end times by hand. Unfortunately, this method of timing has many issues. For example, let’s say that there was a race with one hundred participants and three stages. Each of these stages require a recording of when every single racer started the stage and when they finished the stage. Two recordings per stage times three stages and one hundred racers comes out to six hundred datapoints! There are bound to be errors with the final race results considering the fact that not only does a human being need to accurately write down all the recordings but also because doing the math at the end to tally the results is extremely tedious and prone to error. To solve this, many race organizers decide to buy expensive timing equipment. These systems work by giving each of the race participants a timing chip and by having gates at the start/end of each stage. These gates detect when a chip passes through it and the system uses the information collected at all the gates to calculate the race results. Unfortunately, despite its near one hundred percent accuracy, Investing in a chip timing system can cost upwards of five figures making it unattainable for most race organizers. This is where my race timer comes in. My race timer combines the accessibility of the old fashioned method with the precision of a chip timing system.

The Solution

Timing a mountain bike race with the Full Send MTB Racing Race Timer consists of three parts.

1) creation of the race configuration: The race timing system makes it incredibly easy to create a race profile. All a user has to really do is paste in a link to a google sheet containing each racer’s race plate number, name, and race category. After putting in the link, the app will use the google sheets API to read the data off of it. Once they create the race configuration, the config is immediately uploaded to a Firestore database in the cloud where it can be accessed by other devices. This makes it just as easy to host a one stage race as it is to host a one hundred stage race as the user is not required to reenter the data over and over again, they can just use the config stored in the cloud.

2) recording of race results: One challenge with designing a system for timing these races is that typically, they happen out in the wild where there is no internet. This is not a problem for part one and three of the Full Send MTB Racing Race Timer process, but it presents a challenge for the actual recording of the race results as they happen. Not having the internet means that each timing device must act independently. The devices cannot coordinate with each other during the actual race. To solve this issue the timer acts essentially as a digital version of the pen and paper used by the old fashioned method of timing mountain bike races. At the start/finish of every stage there will be a person with a phone recording when each racer starts or finishes a stage. The real magic of this system comes in part three.

3) consolidating the race recordings: The benefit of the Full Send MTB Racing Race Timer really shows during the consolidation of race recordings and the tallying of race results. For the old fashioned method, what would normally be hours of inputting data into a spreadsheet or calculating the time manually is shortened down to less than a minute. Because all of the data is born digital, once the devices are reconnected to the internet, they can all immediately upload their recordings. Once everything is uploaded, the race results can be calculated in less than an instant. Having all the math done by a computer not only saves on time, but it also is much more accurate. Manually putting hundreds of recordings into a sheet is always prone to human error making it suboptimal.

In conclusion, my race timer presents a “best of both worlds” solution to the issue of having to time a mountain bike race. The Full Send MTB Racing Race Timer combines the accuracy of a computer with the ease of access of the old-fashioned method.

Challenges we ran into

The biggest challenge I ran into during the creation of my race timer was my lack of knowledge. Everything in this experience has been a first for me. Before this, I had never worked with an API, I had never used Xcode, I had never written a single line of Swift, and I had never used gitHub. Although I had fun learning all of these things, they did present a big challenge for this project.

What's next for Full Send MTB Racing - Race Timer

I plan on continuing this project over the next couple weeks. I believe that having a system like this out in the world can create a lot of value. I plan on releasing it for free for other race organizers to use if they want. I know of many events put on by my local high school teams that could have directly benefited from having access to an app like this. Having an easy system for scoring mountain bike races also reduces the barrier to entry for hosting them. Finally, this app will also reduce the cost of hosting my own mountain bike race by thousands of dollars which would have otherwise gone to an expensive timing system but could now be donated to charity.

Thanks for reading this, Niko

Further Reading: More on what an enduro is -> link

Built With

Share this project:

Updates