August 25, 2016  Announce: Yacht Devices NMEA 2000 Bridge

Yacht Devices proudly presents our newest product: a bridge for connecting two segments of a NMEA 2000 network with optional processing of messages between them. This device solves such problems as compatibility among NMEA 2000 devices, configuration and calibration, isolation of devices from others, as well as overcoming the limitation on network length and number of devices for CAN and NMEA 2000 networks.

The product has two NMEA 2000 interfaces and can join two physical networks into a single logical network, with the capability of sending messages between them. One of the interfaces of the device has high-voltage galvanic isolation and can operate at a high supply voltage, up to 30V. This makes it possible to safely connect network equipment that does not meet NMEA 2000 standards.

But the main advantage of the bridge is that you can process NMEA data on the fly. The device is equipped with a MicroSD slot that allows a user to upload a processing program into EEPROM (non-volatile memory) from a simple text file, or, conversely, download a current program for editing. A translator for the program is built into the device, so you do not need a computer for creation or editing, a tablet PC or smartphone with a text editor and a slot for MicroSD cards is enough.

 

Example 1. Depth data should be adjusted by +0.2m


# Processing Water Depth messages (PGN 0x1F50B), received
# from a device on the CAN2 network with any address
onFilterMatch(CAN2, 0x1ffff00, 0x1F50B00)
{
   a = get(DATA+1, uint32)      # extract 32-bit depth from message
   if (a < 0xFFFFFFFF-20)       # check validity of value
   {
     set(DATA+1, uint32,a + 20) # save the corrected value  
   }
   send(CAN1)              # send corrected message to CAN1 network 
}	

The message delay by the device (from the time of reception to transfer of a message by the CAN-controller) with a program which have 20 message filters, is 45 microseconds for mismatched messages.

The total runtime in Example 1 for messages with PGN 0x1F50B was 140 microseconds thanks to translating the program text into byte code at the time of uploading to the device.

So for most scenarios, the device can process data streams from both interfaces without using an internal message queue (transmission time for a single-frame NMEA 2000 message is 500 microseconds).

 

Example 2. Duplicating atmospheric pressure data for old equipment


# Process Actual Pressure messages (PGN 0x1FD0A) and generate
# Environmental Parameters messages (PGN 0x1FD06)
onFilterMatch(CAN2, 0x1ffff00, 0x1FD0A00)
{
   send(CAN1)               # first, send original message
   a = get(DATA+2, uint8)   # extract the data type
   if (a == 0)              # is this atmospheric pressure?
   {		                 
     b = get(DATA+3, int32) # extract pressure value
     if (b != 0x7FFFFFFF)   # check validity of value
     {
       set(2,uint8,6)       # correct PGN from 0x1FD0A to 0x1FD06
       set(DATA+1, uint32, 0xFFFFFFFF) # set unused fields
       set(DATA+5, uint16, b / 1000)   # convert and set pressure 
       send(CAN1)           # send Environmental Parameters
     }
   }
}

In Example 2 we first forwarded an Actual Pressure message, and then correct the PGN stored in the memory messages 0x1FD0A to 0x1FD06 to get an Environmental Parameters message. Set the unused fields of temperature and humidity with a value meaning "no data", transform atmospheric pressure data (in the original message the resolution for pressure value is 1000 times more), and then sent. In this way, old equipment on a CAN1 network can display data from new equipment on a CAN2 network.

The Device and programming language also support:

  • assignment of hardware filters for messages;
  • preliminary "assembly" of selected NMEA 2000 fast messages;
  • creation and sending of fast messages;
  • access from the program to a real time timer;
  • all types of NMEA 2000 data including floating point values;
  • 26 global variables and push/pop buffer for messages;
  • arithmetic, binary and shift operations;
  • sending of messages from the addresses of the NMEA 2000 bridge.

Using this Device does require thorough understanding of the NMEA 2000 protocol. Specialists in our company will help anyone asking for assistance, on the condition that the NMEA 2000 log is provided in any popular format (Raymarine SeaTalk NG log file, ActiSense EBL file, Yacht Devices Voyage Recorder DAT file, CanBoat log file).

The Device will available at September 2016. You can get familiar with it at booth N 411 at the 2016 NMEA International Marine Electronics Conference & Expo to be held September 20 - 22, at the Naples Grande Beach Resort, Naples, Florida.

 

Next articles:

Previous articles:

See also: recent news, all news...