DashT Race Mark

DashT Race Mark provides numerical and graphical racing functions as an overlay on the OpenCPN chart plotter. It allows you and your team to optimize both windward and leeward race legs by increasing the team’s situation awareness and by helping the tactician in the decision making.

DashT Race Mark is intended to be used in conjuction with DashT Race Start.

The racing functions are mostly applicable both in keel boat and dinghy racing: DashT Race Mark can be used also in the class room: please see OpenCPN supplementary software documentation.

DISCLAIMER: This software is for educational purposes only. By using it you accept the conditions presented at the first usage of the application, and being equally available in the Introduction section of this document. The usage for any other purpose is under your entire responsibility and the liability of the author(s) of this software is not engaged. Please respect Convention on the International Regulations for Preventing Collisions at Sea, 1972 (COLREGs) and race’s rules at all times.

Introduction

DashT Race Mark helps you and your team to climb ladder rungs of a windward leg or to descent those of a leeward leg in the most efficient way. It provides you the numerical true wind information about the upcoming legs which allow you to plan well ahead and prepare the most efficient head sail to use for each leg.

The race marks are defined and managed using OpenCPN Route Manager. It would be useful to get familiar with it before using DashT Race Mark. The skills needed are adding, naming and moving waypoints. Of course, one needs to be able to make route between those waypoints, activate/deactivate and modify the route which presents the race course.

TIP: Learn to use Layers feature of OpenCPN Route Manager. “Layers” are presented by GPX-files. Provided that you can get your race marks from the organizer as a GPX-files, import it as a “layer”, either a temporary or a permanent one. You can also include only the wanted marks before importing to avoid congestion. Briefly, “layers” are a great way to keep your race marks separated from the navigation data.

Without pretending to be able to present all the world’s race courses, we concentrate here to explain an example based on simple windward/leeward race with a spreader. The distances are reduced in sake of the presentation on a single screenshot.

Define Race Course

We continue this example from where we left with DashT Race Start, i.e. we have just passed the start line and we have a windward leg ahead of us, then a spreader mark which we can get to on reaching starboard tack. The leeward leg will bring us back down below the start line, which we have to reach in the final windward leg. We could make a second tour but for the needs of this example the finish line is on the start line.

DashtT Race Mark - an example windward/leeward race with a spreader(zoom)

To make the race course depicted above there is no need for anything else but the OpenCPN Route Manager.

NOTE: Please note that we do not close the route in a loop even if the race is for more than one round. There is no such a notion in the OpenCPN Route Manager. For this reason we leave a good distance between the Start and Finish marks - it gives us time to re-activate the route for the second round. The Route Manager automatically deactivates the route once you have passed the Finish mark.

Supposing that the race documentation gives you the names and exact locations of the marks you can enter them in advance into the waypoint list of the OpenCPN Route Manager. It is worthwhile to make them containing ordinal numbers if you already know in which order they have to be passed. This can be done by selecting their icons from the OpenCPN icon library which contains enumerated marker symbols:

DashtT Race Mark - Make waypoints pretty(zoom)

NOTE: It is very important to give unique names for each waypoint. Normally this would not be necessary, but since there is a bug in the way OpenCPN (v5.2) communicates us the next waypoint’s unique identifier we cannot use that method for now. Therefore DashT Race Mark must rely on you to define a unique name for each of your waypoints representing a race mark.

TIP: While you are here in this dialog, it is a good idea to reduce the default arrival radius set by the OpenCPN Route Manager for each of your race course waypoints by going to Properties -> Extended -> Arrival Radius. Suggested value is 0.025 nautical miles which reduces the chance for a misinterpretation of your intentions by the Route Manager. There is a way to change the Waypoint Arrival Circle Radius permanently for each new route point in OpenCPN’s Options - Ships - Routes/Points. (This is racing, not cruising!)

Simply create a route between each of the waypoints representing the race course using OpenCPN Route Manager. The name of the route is free, DashT Race Mark will be searching for an active route, and there can be only one active route at a time.

In a sailing race like this you will be sure not to follow the route line. Set the line as discrete as possible, by narrow width, dotted line and gray color:

DashtT Race Mark - Make route discrete(zoom)

TIP: Maybe you will find that the organizer’s announced positions of markers are outright wrong when you make your first race. Supposing that there are other races coming up, you can quickly drop a memorandum mark for the actual position of each mark when you pass them. Between the two races you will have time to snag the actual race marks over your memorandum marks and this way increase the accuracy of your sailing in the next race!

Open application

DashT Race Mark - add application(zoom)

NOTE: Albeit there is no need for any database services or such, please see the corresponding chapter, InfluxDB / Docker anyway, for the easiest possible way to get all network based services of DashT available with a simple push-button start (Windows) or by a simple command (Linux). Of course, you can have your own way to set the required service, something like how it is done in EngineDJG script. But if nothing is set to retrieve the DashT Race Mark over the network, local or other, nothing explained below will take place!

As usual with complex applications with big tables and buttons, requiring a large real-estate area, it is better to keep them alone in a dedicated DashT instrument window.

For the first time initialization, you are requested to acknowledge and accept the free software license and limitations of liabilibity. By continuing you give your acceptance. If a new application of the same type is created the acceptance is asked again. For this one, this screen will not reappear unless the ID of the instrument is changed in the ini/conf-file.

DashT Race Mark - accept license(zoom)

The DashT Race Mark will enter the standby state, leaving you time to verify with the other DashT instruments that it can receive all data it needs. If you have successfully used DashT Race Start you already have got it all. Otherwise a warning message will pop up for missing data.

DashT Race Mark - standby(zoom)

Start The Course

If you can (make your best that you can) activate the race route before you pass the Start mark of the race course. Simply right click on the route line.

DashT Race Mark - Activate Route(zoom)

If and when you pass within a reasonable distance to the Start mark, OpenCPN Route Manager will put on the first leg, which is a windward leg.

NOTE: If the route paths are very close to each other and if you do not pass next to the Start mark’s arrival radius, it may well happen that OpenCPN route manager puts on a wrong leg because you are closer to it than to the first leg. In this case it is very difficult to recover from that situation by other means than by deactivating the route and then waiting until you cross the next time the first leg’s route path, and only then activating again the race course route. Well, you have certainly other things to do, so plan your route carefully so that this cannot happen easily.

Windward leg

Again, like with DashT Race Start a huge quantity of information will be presented both on the chart canvas as an overlay and on the DashT Race Mark numerical display dashboard. They are best explained in the logical order, referring to the numbers on the below screenshot of a windward leg:

DashT Race Mark - Windward leg with ladders(zoom)

  1. The Median Wind direction, provided by the Tactics background process and displayed using the Average Wind instrument is depicted with a dotted line which starts from the next waypoint

  2. The short term average wind direction is shown in a unique ladder rung line, always passing through the boat. It can be used to determine if you are on a lift or on a header. In the case you suspect the latter it helps you to take the decision should you continue without tacking, nevertheless - it can be also a short drop on your speed due to wind force change, not only the direction: with this auxiliary line you can estimate if you continue to still climb on the ladder towards the waypoint, or not and this way perhaps you can avoid an unnecessary tack.

  3. Starboard layline and…

  4. Port layline are based on the Median Wind. Their purpose is to warn you about getting into a dead end situation which may occur if there is a sudden but permanent wind change. It is better to stay closer to the Median Wind center line.

  5. Ladder Rungs are equally based on the Median Wind. Their interval can be adjusted in the ini/conf-file. They allow you to stay on the effective side of climbing towards the windward mark. Controlling your opponents by tacking with them but always higher on the ladder is also helped by these visual aids.

  6. Chart Off button allows to toggle the chart overlay if you find it to be too much. Please note that the ini/conf-file allows you to select the elements which are shown on the chart overlay

  7. Peek data on next legs - DashT Race Mark continuously calculates some key values for the upcoming legs based on the actual, measured data in order to help in the selection of the sails, such as gennakers:

  8. TWA on next legs is shown for actual, measured value from your boat’s system and for the time integrated values, both for the Median Wind and for the short term average wind.

  9. Route bearing back is a useful help when one is on conditions where the tide or other current is strong. On a leeward leg, one can keep an eye on not getting continuously away from the theoretical route by watching the previous mark’s actual bearing.

  10. Current “true angle” is not repeating the current direction which is already shown by the Tactics instruments - the value is the angle the current would hit the boat if it would follow the theoretical route of the next leg. The values lesser than 90 degrees and around it would slow down the boat and would perhaps increase the leeway. Values closer to 180 degrees would push the boat and thus give it a speed advantage. Of course, if the tide is turning and the race course is long, the measured/calculated value has not that much of interest compared to some static data tables with time corrections but it would work well enough on a short race course.

  11. Route Manager dashboard - is something you cannot turn off which is annoying. In particular, do not get fooled with the “VMG”, it is for the route not for the wind! Better not look at it…

Reaching leg

You will not need help on this. DashT Race Mark will stay automatically largely silent on the chart canvas.

Leeward leg

On the leeward leg the display remains similar than on the windward leg, only that you have to remember that the logic has changed: this time a lift would push you away from the shortest distance toward the leeward mark and you need to use the short term average “ladder rung” crossing your boat to determine if it necessary to gybe. Maybe it is not worthwhile, at least not immediately if you continue your descent on the ladders inclining on the side of the Median Wind; you could just profit from the boost to the speed.

DashT Race Mark - Leeward leg(zoom)

Final leg

Maybe you do not have time anymore to watch any ladder rungs, but if you will in our use case it is similar to the first leg which was also a windward leg.

Once you have reached or passed the Finish mark of your race course route, the OpenCPN Route Manager will automaticallyh deactivate the route and the DashT Race Mark will put itself in a standby state.

Victory and glory!

Troubleshooting

The most common reason for DashT Race applications not showing anything is that one or more of the input parameters (input data from your boat’s instruments or calculated by Tactics algorithm) is missing.

Missing data

There is a warning message if any of the input parameters is missing but it is shown only once when the application is started. It is easy to forget the warning during the start procedures. When you enter the race course, nothing will be shown. It will be too late to start fixing things at that moment!

Instead, make sure in advance that your boat and Tactics is producing all the necessary data. Please zoom into the above screenshot which depicts the numerical instruments and the graphical Average Wind instrument. When they are all showing some values and not “- - -”, then you can be assured that DashT Race Mark gets also all the data it needs to calculate the graphical overlay and leg predictions.

Route messed up

The second source of trouble is the interaction with the OpenCPN Route Manager. The most common cause is the usage of the default arrival radius of 0.050 nautical miles. This is too big. It can cause, for example that when you activate the route, it gets deactivated immediately. This is because you are too close to the Finish (last point in the route). The remedy is to leave enough space between Finish and Start and to set all routepoints with 0.025 nautical miles arrival radius (not the same as the waypoint “rings”).

Application No Show

The web based (script) application is fetched from a server, which is by default set the same as in InfluxDB / Docker - the nginx http-server on port 8088. If the Docker helper script explained in that chapter fails to set up the InfluxDB or others because of the issues of the application availability (like on arch64/aarch64 - Raspberry - the packages are not necessarily available as on amd64and x86_64 based systems). The http-server may fail as well and even these instrument’s code will not load.

The remedy is simply to switch to another server. For example, as it is explained in and by EngineDGJ engine/energy helper script. It is set to launch the http-service on port 8080. In the ini/conf-file of the OpenCPN you would change all occurrences of 8088 to 8080 to get them from the same server:

instrujsURL=http://127.0.0.1:8080/enginedjg/
[PlugIns/DashT/WebView/RaceStart]
instrujsURL=http://127.0.0.1:8088/racedashstart/
[PlugIns/DashT/WebView/RaceMark]
instrujsURL=http://127.0.0.1:8088/racedashmark/