A little background...
When I turned 60 back in 2015 and finally gave up playing ice hockey, my wife asked me what I would like for my birthday. As we live near Ferry Meadows in Peterborough and I'd never sailed, I suggested a RYA level 1 sailing course.
Liked it so much, I completed RYA level 2 the following weekend and have been sailing ever since :o)
Although I then sailed Challengers trimarans as a volunteer 'buddy' with Peterborough Sailability (which is a great organisation btw), I wanted to continue sailing monohulls as well, so I invested in a cheap Solo dinghy and joined the Lakeside Sailing Club (LSC) which is based at Ferry Meadows , and shortly after started joining in the racing (at the back of fleet of course)
This is where I was introduced to the LSC manual recording system based on the RYA guidelines for running races, which like most:
Records who is competing, including their boats class handicap (PYN)
Records manually captured timings for laps and finishes which are recorded in mm:ss, as they are copied straight from a stopwatch
Involves manual calculations of average lap where required, corrected finish time (using finish time convert to seconds and handicap then applied)
Involves manual assignment of final positions based on the lowest corrected time
All good, but as I like programming I thought. Why not capture the timings via an app, and perform the conversions and calculations automatically.
So that's was my original design specification i.e. turn the manual method of recording, into entries in an app, which could:
Hold all the competitor information i.e. Helm name, Boat (class), Sail number, and PYN, as a 'fleet'
Allow selection who from the 'fleet' was taking part in the next race
Perform Start sequence timings i.e. 5mim, 4min, 1min, and Go
Capture the lap times against each boat taking part, and undo timings if incorrectly entered against the wrong boat
Calculate corrected time and assign finishing positions
Display results for club members to review post racing
This was how the original LSC - Race Control came into being, and to be fair it did the job, but had a few drawbacks:
The size of the fleet it could handle was fixed (initially just 20 boats), and although it was increased in stages up to 160, it was still storage inflexible
Only addressed single mixed fleet starts
Only covered start timings of 5min, 4min, 1min, and Go
So during the winter (2018 - 2019) I undertook a major redesign of the app to address the storage limitations and to make the app more useful to more clubs.
The result is the Dinghy Sailing Race Control (DSRC) Android app , which:
Has no theoretical fleet size limit, although your device will run out of memory eventually, and I guess the app response time would slow down
Imports different fleets as required
Has configurable start countdowns of 5, 4, 1, Go, 3, 2, 1, Go, Custom, and RC (Radio Controlled) spoken (via an editable text file)
Runs Single start races, Multi-Fleet rolling starts races, Pursuit races, and RC races
Exports race results in Postscript (.pdf), Sailwave compatible (.csv), and HAL compatible spreadsheet (.xls)
Can share competitors and results files externally, to other compatible apps, or sent over network (including Sailwave series file)
Can drive Bluetooth or WiFi remote single relay modules, to enable synchronised external 'horn' signals
Can drive, via WiFi 4 relay modules horn and three signal lights (Class A, Class B, and Prep)
Experimentally, it can drive a 7 segment LED race timer (note - you would need to construct the display yourself)
So there you have it... it may be useful to you, it may not... but it's been fun for me creating it and continuing to expand it's capabilities (see Current Development).
One other thing - I chose Android as the platform for DSRC because:
I'm retired and can't afford to keep paying Apple every year (although I do use an iMac to develop and maintain the app)
Android devices are relatively cheap, so more clubs would be able to try (and hopefully use) the app without a large initial outlay
I have a few Android devices of different screen sizes and OS versions which allow for a limited amount of physical testing