Technical Details

NMEA Messages

Many nautical instruments generate messages in an NMEA 0183 or NMEA 2000 (N2k) format. These messages might give the boat speed or water depth. OpenSkipper is designed to process and display the data contained in these messages. OpenSkipper can also process AIS messages which give information about other vessels; these messages might be received by your VHF radio or AIS receiver, and then transmitted via an NMEA 0183 or NMEA 2000 connection to a PC.

Incoming Streams

OpenSkipper can receive NMEA 0183, NMEA 2000 (N2k) and AIS messages and decode (some of) them to extract the data in the messages. NMEA 0183 and AIS messages can be received via a COM port or the internet (via UDB or TCP/IP). NMEA 2000 messages can be received using the Actisense NGT1-USB NMEA-to-USB converter or over the internet. We describe each of the message sources as a stream. OpenSkipper can also process log files (in various formats) that have been recorded from NMEA instruments.

Out-going Streams

As well as processing incoming streams, OpenSkipper can forward messages (or generate new messages) into outgoing streams. For example, N2k messages might be forwarded to another computer using a TCP/IP connection, or broadcast over a network using UDP. This allows scenarios such as a yacht relaying its N2k data to a chase boat to give the chase boat’s crew a real time display of the yacht’s performance. Streams can also be recorded to (and replayed) from log files.

Decoding Message

OpenSkipper provides editors (called ‘explorers’) for displaying and editting the XML definition files used to describe how an N2k, AIS or 0183 message should be decoded. For NMEA 2000, these XML files will can be produced using the Canboat software.  (See the Canboat pgn.h file for the latest CanBoat PGN information.) The definition files are not yet complete; we welcome more definition details and corrections. Note that OpenSkipper has default definition files built in to the executable. You can edit and save these to disk, and then use them as your default definitions.

Parameters

The user can define ‘Parameters’ such as speed that automatically update their values when the appropriate N2k or 0183 message arrives. A parameter such as ‘speed’ can be updated by either N2k or 0183 messages. The parameter definitions define the named fields given in the N2k, AIS and 0183 definitions that should be used to update the value for each parameter.

Data Display

The user can design their own screen displays that are used to graphically display values of parameters. As of April 2014, these are defined using a ‘Displays.xml’ file. Any standard C# control can be added, with an ‘extender’ being provided to add NMEA properties specifying which Open Skipper parameter should be displayed, and the name of the control’s property that should be used to do this. More sophisticated custom controls can also be built that directly interpret the messages.

Web Server

OpenSkipper has a simple built in Web server. (You need admin privileges to run this under Vista.) This lets you serve up a selection of parameters which get updated in real time. Using an ad-hoc wireless network, you can now view your boat instruments on your WiFi cell phone or tablet.

Good luck!

There is still lots to do. As always, we hope to expand the code and its documentation over time, but we hope this is a useful first step. Andrew Mason

PS: We are not experienced C# programmers; this is our first experiment with C# and so there will be mistakes that we would love to have corrected. All feedback welcome.

All copyrighted terms, including NMEA, NMEA 018, NMEA 2000, Actisense, and NGT1, are the property of their respective owners. Everything provided in Open Skipper is available in the public domain, and has not been obtained as the result of signing any non-disclosure agreements with Actisense or NMEA.

20 comments to Technical Details

  • Ties

    Hi Guys,

    Is it possible to use Openskipper to send custom NMEA 0183 commands (strings) to NMEA instruments? if not, are you aware of a PC program that can?

    Kind regards,

  • admin

    Yes, OpenSkipper can generate custom NMEA 0183 commands, and has been used for doing this. I’d have to remind myself how this works, but you should be able to find it. Andrew

  • andre huizing

    Hello, I’m looking for software that can convert n2k actisense stream into nmea0183 stream simulating a com port towards programs like opencpn. Does This exist?

    Thanks very much in advance.

  • admin

    OpenSkipper can generate 0183 messages, and so you could configure it to do this (but it would be tedious for all the possible messages). It would be a very useful feature to have…

  • TroyC

    Can OpenSkipper Generate NMEA 2000 messages? either AIS or DSC message?

    Thanks

  • admin

    OpenSkipper is designed to do this in the future, but at the moment the only way to write to the N2K instruments is using the Actisense NGT-1, and our interface for this is read-only at the moment. What were you wanting to achieve?

  • TroyC

    I want to be able to display Custom AIS information on my Display, such as Crab pots for example, fitted with a wireless transmitter that transmits its GPS locations, I want a build a device that can receive the wifi signals, decode the location and send it to my boats chart plotter using NMEA 2000 bus and the AIS message.

    Thanks

  • admin

    What a great application. Do you have any C# expertise? It would be great if you wanted to extend OpenSkipper to transmit onto the NMEA bus – it is not a big job.OpenSkipper would be a good platform for this. We already have support for working with AIS messages…

  • TroyC

    Sure I know a little bit of C#, enough to get myself into trouble, but I prefer C++,

    of course the biggest hill to climb is just getting my head around the frame work, point me in the right directions and I will see what I can do.

    Troy

  • admin

    I have been glancing at the code; the comments suggest it should be able to write to the N2K bus, but this has not been tested (and I have only a vague memory now of where we got to with this.) I suggest you look at CANReaders.cs and CANSenders.cs. Note that you need to enable your Actisense device for writing using the Actisense software before you try to write with OpenSkipper. Please let us know how you get on. Andrew

  • Tim

    I have several custom nmea183 sentences that I would like to display. I believe I understand how to add them to the 183 definitions and parameter explorer, but whenever I try to update the XML files to add a field, I get a system.collections.arraylist error. I get this error even if I modify a text field in an existing XML.

    I’m not a programmer (but used to be). Is there a way to edit the forms to display other fields? It looks like this was your intent.

  • admin

    The intent was indeed that OpenSkipper provide the building blocks to create your own displays. It is now some time since I looked at this code, and so am too rusty to be of much help. Timo has been doing development more recently, and so may be able to help… Andrew

  • Al

    I wish to use NMEA Simulator as an N2K simulator but am not clear if it sends System Time and Date. Would you please let me know if it does so?

    Thanks
    Al

  • Timo Lappalainen

    Hi,

    NMEA Simulator sends only those messages, which exists and has been checked on Options page. Date/time did not exist, so I added that functionality and you can download newest version from http://www.kave.fi/Apps/index.html.

  • Ivo

    Hi,
    I really get stuck, trying to make OpenSkipper sent custom NMEA message for heading. First I tryed with NMEA Simulator (great App!!!), but the output is HDG, not HDT.
    And I only need to sent via com port message looks like this: $–HDT,x.x,T. Is there any link I can read about and find what I’m doing wrong?

  • JD Perth

    Hi all, I realise I am going over old ground for some but I am yet to find out if anyone solved the issue.
    I am looking for a way to read the data from my Mercruiser Smartcraft sensors on a PC.

    My Mercruiser 350 Mag MPi has a NavBus Smartcraft gateway which feeds data from the Merc to a Navman Tracker 5507 GPS Plotter.

    Unfortunately that Navman unit is dead and Navman / Northstar as a manufacturer of chartplotters that read this data are also dead.

    I can’t seem to find a second hand 5507 to fill the spot on my Maxum 2600SE, so I was hoping to display data such as fuel sensor info, tacho, pressures and temps from the motor on a tablet along with chartplotting software.

    I can’t find the exact information I am looking for, so I am really guessing that the data coming from the NavBus Smartcraft gateway is not NMEA (0183 or 2000) but likely NavMan Proprietary data.
    Anyone have anymore information or been down this path before?

    I don’t want to have to fork out for a Smartcraft to NMEA2000 gateway, or have to buy a bunch of Mercruiser Smartcraft Gauges just because NavMan are no longer around.

    Thanks in anticipation of your help.

  • admin

    I have not worked with Mercruiser, and so cannot help, sorry. Anyone else got any ideas? Andrew

  • Harry

    I am attempting to install OpenSkipper on a laptop running Win XP 32-bit. It responds with “not a valid Win32 application.” I’ve tried several versions (at least 1.5 and 1.6, with the same result. I’ve also run it without issue on a Win10 x64 machine, and then copied that same executable to the XP machine. I’m thinking it is compiled as a x64 executable. Is there a 32-bit version available?

    Thanks!

  • Timo Lappalainen

    Hi,

    I think the problem is the XP. I tested application on 32-bit Windows 7 and it started without problems.

    Timo

  • Harry

    Well, rats. My machine is a bit old for win7. Thanks for the answer, and for the efforts.

    Harry

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>