Overview

A little background...

When I turned 60 (and I finally gave up ice hockey), my wife asked me what I would like for my birthday. As we reside near Ferry Meadows, 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 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, 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 :o)

This is where I got introduced to the LSC manual recording system , which is based on the RYA guidelines for running races, which like most:

  • Records who is competing, including their boats class PYN (handicap)
  • Timings capture for laps and finish (usually record at mm:ss as they are copied straight from a stopwatch)
  • Manual calculations of average lap where required, corrected finish time (using finish time convert to seconds and PYN applied)
  • 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 spec... turn the manual method of recording, to entries in an app, which could:

  • Hold all the competitor information i.e. Helm name, Boat (class), Sail number, and PYN, as a 'fleet'
  • Be able to select who from the 'fleet' was taking part in the next race
  • Perform Start sequence timings (for LSC that's 5mim, 4min, 1min, Go)
  • Capture the lap times against each boat taking part (and undo timing if incorrectly entered against the wrong boat)
  • At end of race, calculate corrected time, and assign finishing positions
  • Have some way of displaying the results for club members to review (initially via a plain text file)

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 hold was fixed (initially just 20 boats), and although it was increased in stages up to 160, it was still storage inflexible
  • Only allowed a single mixed fleet starts
  • Only covered start timings of 5, 4. 1. 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 (hopefully).

The result is the Dinghy Sailing Race Control (DSRC) app (Android only I'm afraid), 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 :o)
  • Import different fleets as required
  • Has configurable start countdowns of 5, 4, 1, Go, 3, 2, 1, Go, Custom, and RC spoken (via an editable text file)
  • Run Single start races, Multi-Fleet rolling starts races, and now also Pursuit and RC (Radio Controlled) races
  • Export results in Postscript (.pdf), Sailwave compatible (.csv), and HAL compatible spreadsheet (.xls)
  • Share competitor and results file externally, to other compatible apps, or sent over network (including Sailwave series file)
  • It can drive a Bluetooth or WiFi remote relay module, to enable synchronised external 'horn' signals
  • Also drive, via WiFi 4 relay module, horn and three signal lights (Class A, Class B, and Prep)
  • Experimentally, it can drive a NeoPixel style 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 :o)


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 :o( (although I do use an iMac to develop and maintain the code :o)
  • Android devices are relatively cheap, so more clubs would be able to try (and hopefully use) the app without a large initial outlay :o)
  • I have a few Android devices of different sizes and OS versions which allow for a limited amount of physical testing