December 12, 2023 Update for YDWR-02 and YDWN-02
Substring replacement, checksum correction, outgoing connections, new Web Gauges and Wi-Fi channel selection.
Figure 1. Substrings replacement and checksum correction
Four years ago we added support of Silicon Marine SM010 sensor to our NMEA 0183 Gateway, it had a missed talker ID at the beginning of XDR sentence. It is enough rare case, but from time to time we receive requests to fix something similar or to add missing checksum to sentences to connect very old equipment.
Now it can be done easy in our NMEA 0183 Wi-Fi Gateway or NMEA 0183 Wi-Fi Router. We added the substrings replacement, which is performed before the received sentence is processed or routed to other port. It can be used to add or replace the Talker ID, rename sensors in XDR sentence and so on. The checksum of modified sentence will be corrected or added if it is absent.
The second new feature at "NMEA Settings" page at settings is checksum adding or correction. It is intended for very old equipment or for lazy developers and testes who type sentences manually. New features can be applied to all inputs or to selected port or server.
In January we plan to release Yacht Devices Python Gateway, which has NMEA 0183, NMEA 2000 and USB ports. And we push it to every publication, not only to promote it, but because it is really the magic stick for hard cases. And can easily make the same, what two features described above do.
n0183.talker('YD') # set talker id to transmit from
n0183.check(False) # allow reception of NMEA0183 messages with invalid checksum
# Called upon reception of 'XDR' message
def rx_xdr(n0183, line):
n0183.send(line) # retransmit XDR message in correct format
# return False, because message retransmitted manually, no need to send it again
return False
# Register callback on receive of 'XDR' messages. E.g. '$SMXDR', 'XDR', '!--XDR'
n0183.rxcallback(0, rx_xdr, 'XDR', check=False)
The code above fix the malformed sentences like
$XDR,C,25.5,C,SM010A
by adding missed talker ID and adding the checksum. All magic is in the line n0183.check(False) which allows to process incorrect sentences and in the n0183.send(line) which automatically fix the line by adding talker ID and the checksum.
But we can do all this magic manually, just go down from NMEA 0183 to UART level:
# called upon reception of '\n' character
def rx_line(uart, line):
if line.startswith(b'$XDR'): # check for incorrect XDR sentence
line = line.replace(b'XDR', b'SMXDR') # replace incorrect sentence id
line = line.split(b'*')[0].rstrip() # remove old checksum
chk = checksum(line[1:]) # calculate checksum for new payload
line += b'*{:0=2X}\r\n'.format(chk) # add back and new checksum
uart_tx.write(line) # send result to UART TX
uart_rx.linecallback(rx_line) # register callback on receive of '\n' character
So, if you have the hard problem with NMEA 0183, we'll supply you with the solution soon!
Both products, Gateway and Router are got updated Web Gauges, and it is especially great for NMEA 0183 Wi-Fi Router, because it can control Raymarine autopilots connected by SeaTalk 1 in the same way, as pilot head. To learn more about this feature, please, read the previous news article.
Figure 2. Wi-Fi channel selection
Both devices also have Wi-Fi channel selection for access point mode. This allows you to select a less crowded channel in large marinas and get better signal quality. Changing channels doesn't require you to change anything on your phone, tablet or laptop. But you may need one of them to scan the networks around you and find the best channel for your location. Read this article to find out how to do this for all operating systems. This feature has already been added to all of our other Wi-Fi products.
Figure 3. Outgoing connection
The final feature in this release is outgoing connection (TCP or UDP), which has only been added to the NMEA 0183 Wi-Fi Router and is also available on the NMEA 2000 Wi-Fi Router and Ethernet Gateway. Modern plotters may not have physical NMEA 0183 ports, but they usually have Wi-Fi. NMEA 0183 data over Wi-Fi allows easy connection of mobile phones or laptops and use of marine data in software.
Unfortunately, only Navico products can send/receive 0183 data over Wi-Fi (we tested it with Simrad GO XSR, you can check the details here). So you can install new Simrad and connect old NMEA 0183 over Wi-Fi using YDWN-02 or, if you also have SeaTalk 1 equipment, YDWR-02.
Raymarine and Garmin do not allow NMEA 0183 data to be sent or received over Wi-Fi, and this is just a policy decision. But thanks to politics we will sell more NMEA 0183 to NMEA 2000 gateways.
Figure 4. Layline app for Android
If you are a racer and have an Android smartphone, check out the new free Layline app designed specifically for racing. It has been created with our YDWR-02, but will work with any of our gateways or routers. It will help you start, tack and choose the best strategy. You can read the manual here or install it from Google Play.
The firmware updates 1.71 for the NMEA 0183 Wi-Fi Router and NMEA 0183 Wi-Fi Gateway are available in the Downloads section.
Next articles:
- SeaTalk 1 Autopilots Control / December 4, 2023
- The Autopilot is released / October 18, 2023
- How to get Axiom to work with old Raymarine autopilots / October 4, 2023
Previous articles:
- Merry Christmas and Happy New Year / December 21, 2023
- Meet our dealer Matthias Busse at boot Dusseldorf / January 24, 2024
- New product: Python Gateway / March 27, 2024
See also: recent news, all news...