Latest versions,

the changes

Version 4.1.0 of 16 November 2022

· During Replay of a raw NMEA log, SPD can now, if so requested, send its own NMEA0183 records via COM or TTY.

This can be useful during the testing of NMEA output on your instruments on board. You can now debug your system (multiplexer, cabling, instruments) with recorded data in Replay mode. No need to have live data for such test.

It requires a new keyword in your (replay) boatspecifics file:

[NMEAoutput]

During Replay = Y

The Section [NMEAoutput] is already there to define which NMEA messages SPD will send.

The NMEA output records will come via the port as defined with [Serial] in the boatspecifics file.

Version 4.0.6 of 4 October 2022

· Some small errors in 2 PD post processors corrected.

· A new Post Processor is added: it calculates the difference between the Target Heel (from the Speed Guide) and the actual heel. This is done for a range of TWA’s and TWS’s and also it shows separate results for Port and Starboard tack. Quite useful to get insight (after sailing) in the amount of sail used. This PD post processor is to be started with the keyword

[General]

activity = targetheelcheck

in a boatspecifics file.

Version 4.0.5 of 24 September 2022

· Instruments can not display negative values in many cases. So a negative VMG (downwind) or a negative Closing Speed to a WP (sailing away from it) does not show.

These values are now made positive, in order to display them on a NMEA instrument.

If they are not available (no active WP), N/A is shown on the SPD screen and 0 will show up in all other outputs.

· Bestangle when going downwind is now bestangle minus 100 in the NMEA output records. This way, display of a 3 digits angle is possible on NMEA displays. F.i a DA of 160,5 will display as 60,5 on a NMEA display. You will know what to do when going downwind!

· Calculation of current impact on course is improved. It shows the actual impact of the current on the direction of the boat, without the leeway component.

· The current component is no longer part of the calculated actual leeway displayed on the SPD screen: the value of the total actual leeway (including current) is still calculated as before but the current component is now removed from that value.

· When doing a Replay, a copy of all NMEA coming in (from file) was created when the boat specifics stated NMEAin copy = Y . This is not useful, as a file with all that NMEA already exists (the one that is replayed). So, in Replay mode, no more NMEAin copy is created.


Version 4.0.4 of 2 September 2022

· When no water speed data were available in NMEA0183, SPD still tried to calculate current (direction and speed). With the default for water speed set at 0 kts, this resulted in a current equal to SOG, straight ahead. As a result, some performance data gave unreliable results.

This is now corrected. When no water speed data are available, current kts and direction are set to 0.

In such case, speed STWc and performance STWc-water will show N/A.

In the PDlog, the values will still be0, to accomodate some of the PD post processors.

· When no waypoint was active, performance VMG to WP and speed VMGwp showed 0. That is now changed to N/A.


· No changes to the manual, 4.0.3 is still current.


Version 4.0.3 of 21 August 2022

Both PD postprocessors for the PDlog that create Deviation tables (with and without heel) now take tLEEWAY from the PDlog to correct COG for target LEEWAY. HDG is without leeway anyway, so to find the difference between HDG and COG (the deviation), tLEEWAY has to be taken out of the equation.


Version 4.0.2 of 15 August 2022

· TWA to WP gave a TWA value even when no waypoint was active, it showed the GEOwind direction. Now it will show N/A if there is no waypoint

· In a situation with no SOG and COG = 0 (i.e., when completely stationairy) the GEOwind could be from a direction greater than 360. This is now corrected.


Version 4.0.1 of 8 August 2022

· The calculation of Upwash, using Arvel Gentry’s formulas, delivered a high Upwash value of 7 or 8 degrees in very light air, leading to an unrealistic TWA. This is influenced by 2 keys in processlist.ini,

[Upwash control]

Gentry S0 = 2.5

Gentry S1 = 3

The default value for S1 is now set to 3, it was 8 earlier.


· SPD corrects Apparent wind (angle and speed) for a number of factors. Apparent Wind Angle AWA is corrected for heel, for upwash, for leeway and for wind-change along the height of the mast. More wind up high, so wider AWA there. But 10 meter high is the reference height.

Apparent Wind Speed AWS is corrected for heel: many wind sensors will measure less when heeled.

In the documentation of the ORC for measurement certificates, it is assumed that Upwash and Leeway effects on AWA cancel each other out, net effect zero degrees.

SPD makes an attempt to really correct AWA for heel (using target or measured heel), for upwash (using Arvel Gentry’s formulas), for leeway (using target leeway from ORC K-formula), and for mast height above 10 meter (using a formula from The Art and Science of Sails by Tom Whidden).

The AWS correction for heel could already be fine-tuned by users by changing processfile.ini:

[Wind corrections]

AWSheelcorrection = 0.4

which stands for 0.4 % more real wind per degree of heel). Setting it to 0 eliminates this correction, f.i. for ultrasonic wind sensors.

Now, the AWA corrections can also be switched off by the user, so that the raw measured AWA is used in SPD. In processlist.ini:

[Wind corrections]

AW raw = Y

Will make SPD skip all corrections for heel, mast height, upwash and leeway.

· The calculation of actual leeway is improved. That is a complex calculation, based on Geowind TWS, Boat TWS, current speed and current angle, boat speed and on TWA.

Some of these variables and the underlying ones are noisy in nature. Hence, actual leeway can be noisy also. It should be seen as an indication. The actual leeway is not used in any other calculation in SPD. It is available on screen and in the webserver output.

Version 4.0.0 of 5 August 2022

· SPD after startup first reads a few records from the NMEA source (serial, network, replay). This is done to see if the records really needed (RMC and wind) are available. Also, SPD then checks which other useful record types are in the data stream. Sometimes there are very many AIS records in the data stream, and reading a few 100 records is then not enough to identify all useful types. This has now been improved: !AI records are ignored during this NMEA test, and 100 NMEA $-records are read. This improves the chances that all record types are found immediately.

· The variable NMEAHz (from processlist.ini) is also taken into account for this record-test. SPD will try to identify NMEAHz * 100 records at the start. This way, 10 Hz GPS records will not overshadow less frequent wind records, etc.

· The key Printnetworkrecords (in processlist.ini) to see what is coming in when live now also works with a serial connection, not just with a network connection (UDP or TCP).

· The handling of incoming NMEA via Network, over UDP and TCP, has been greatly improved. Chances of NMEA records being missed are now drastically reduced. Also, thruput of NMEA over Network, especially over TCP, is much improved. A lot of changes!

· In the log, the DATE and TIME columns are now always taken from the GPS RMC record, so this is always GPS date and time from live NMEA or from replayed NMEA records. Earlier, during live running of SPD, these 2 were taken from the computer’s date and time. Now they are in UTC.

· Also in the PDlog, 2 new columns (the first 2) are available with the local date and time of the computer when running SPD. Column names are locDATE en locTIME. If no info is availabe, N/A is logged.

· In Boatspecifics, a new key to get spoken windshift messages:

[Trimadvice]

shiftmsg = Y

Every time a windshift is detected (the size of which you can adjust with a button) SPD will tell you so. Header or lifter, preceded by V for velocity and R for a real one.


Version 3.7.6 of 27 July 2022

· In the PDlog, 2 colums were added, for raw AWA and raw AWS. In these, the values of AWA and AWS are logged before any corrections for heel, upwash, leeway and mast height are applied, and before any filtering. This is the data as they come in from your wind sensor.

Column names are AWSraw and AWAraw.

· Some additional testing added in the reading of CSV files for Deviation and STW correction. These files can be simple, without heel, or with 9 rows for 9 heel angles (0, 4 SB and 4 Port heel)

When (new) users of SPD are not sure how to use these options, the error messages were not optimal. A lot has been improved now to help new users getting started.


Version 3.7.5 of 25 July 2022

· Creating a polar.csv from the Jieter ORC database suddenly delivered a polar with decimal dots. May be something has changed there?

Now corrected: if your CSV Separator is a semicolon the polar will be created with a comma for decimals. With a comma as CSV separator, the decimal dot is used in the polar.

· After re-reading the book ‘The Art and Science of Sails’ I could not resist adding a small correction for AWA. As AWA is measured at a different height than the 10 meter standard for an ORC Measurement Certificate, a lot higher in most cases, it is a little bit too wide to calculate a correct 10m TWA: there is more wind above 10 meters, giving a wider AWA.

This is now corrected before TWA is calculated.

The ratio between boat speed and wind speed is also taken into account: the AWA gets even wider up there with heavy air (as we all know).

Version 3.7.4 of 19 July 2022

· Reading of Deviation and stw correction CSV files made more robust against user errors in the CSV (like spaces etc).

· A new HTML file with just 2 performance dials: SPDperfjustdials.html

· Filter lengths can now be adjusted more precisely. Until now, changing a filter (with a button) doubled or halved the length of the list of data in the filter. Now you can also add just one value to the length of the filter list, or remove 1 (oldest) value. Control is via processlist.ini, with a new command:

[Filters changes]

Step = DH

Will double or halve the list of values per button click, or

Step = +-

if you want subtle 1-value changes

This works for all 3 filters (performance, wind, AW).

If not specified, the default is (still) double and halve.

Version 3.7.3 of 11 July 2022

· Added a Transducer name for XDR records for a new device, for roll and for pitch. Transducer names are AS08_ROLL and AS08_PITCH, for the Quark Elec AS08 compass and attitude sensor.

· Users can now specify a transducer name for pitch and for roll in a boatspecifics file. These names were hard coded until now (many still are) but you can add the transducer names that your measuring device or multiplexer uses in the XDR records it creates.

[Inputcontrol]

XDR_roll = yourrolltransducer

XDR_pitch = yourpitchtransducer

For both roll and pitch values, it is assumed the measurement values are in degrees, not radials.

· Error when sending UDP to non-existing socket corrected. Was a rare error only happening during shutdown.


Version 3.7.2 of 16 June 2022

· A new key in boatspecifics allows for logging in the copy-nmea-in file of all !AIS records received.

These were skipped until now; if you want them logged as well, specify, in your boatspecifics:

[Outputfiles]

AISin copy = Y

Of course this only works if you have also selected

[Outputfiles]

NMEAin copy = Y

This way, you can use SPD to create a complete log of all NMEA-records including all AIS records. Nice to replay a race and also see the position of the competition.

Version 3.7.1 of 26 May 2022

· Smileys removed from printing smartwarnings. Some Pi’s could not handle them.

· ThisPC_IP set to “not available” if not possible to get that IP from the OS. Stupid Pi again 😉

· Queue for webserver increased from 8 to 32


Version 3.7.0 of 25 May 2022

· New key in processlist.ini

[Thresholds]

connect_retry = 10

· SPD will now try to repair a lost TCP connection (to your NMEA source) a number of times (connect_retry times) when no more NMEA is coming in over TCP.

This is first noticed by a time out on the connection (hard defined at 10 seconds).

You will be notified of this on-screen, or in print or webserver when headless.

Then every 10 seconds SPD will try to restore the TCP connection, for a maximum of connect_retry times.

When all that fails, SPD will stop.

NB this only applies when setting Run on empty = Y in processlist.ini

With Run on empty = N, SPD will stop after the first time out on the NMEA connection.

· In case of a serial connection, COM or TTY, all the above is also applicable, with the caveat that it is only working for the incoming COM or TTY. If you also use a separate, second COM or TTY for SPD-NMEA-Output, that one will not be restarted.

· For completeness sake:

when using a UDP connection for incoming NMEA and with Run on empty = Y, SPD will wait endlessly untill NMEA is received again over UDP. The UDP socket is not re-started.

· A warning: there can be situations wherein all this restarting will not work. Sometimes COM-ports and TCP-sockets behave not completely as expected (or as they should).

· When operating SPD in headless mode with web output, SPD will now also print every notification message to the standard output file, so not only deliver it via the webserver.

This can it make easier to debug things when you have changed the environment or some SPD settings.