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.


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.

26 Responses to Technical Details

  1. Ties says:

    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,

  2. admin says:

    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

  3. andre huizing says:

    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.

  4. admin says:

    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…

  5. TroyC says:

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


  6. admin says:

    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?

  7. TroyC says:

    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.


  8. admin says:

    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…

  9. TroyC says:

    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.


  10. admin says:

    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

  11. Tim says:

    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.

  12. admin says:

    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

  13. Al says:

    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?


  14. Timo Lappalainen says:


    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

  15. Ivo says:

    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?

  16. JD Perth says:

    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.

  17. admin says:

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

  18. Harry says:

    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?


  19. Timo Lappalainen says:


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


  20. Harry says:

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


  21. Erwin says:


    I installed OpenSkipper (1.6.2016.1217) on a laptop OS Win10. No problem. I am using it on my sailing catamaran “crocodile” with Garmin hardware, NMEA2000 and Actisense NGT-1.
    A big step forward in order to make the flow of data useful.
    As a sailor I want to see wind direction, wind speed, boot heading, speed over ground, etc. over hours in order to be able to make an informed decision which sails to use or to tweak.
    Adjusting OpenSkipper to my personal preferences which software do I need and is this a reasonable undertaking at all? I have some programming expierience using VB and in programming for ORACLE databases.

    Kind reagards
    SY crocodile

  22. Steve says:

    I’m hoping there’s an update to the question about the best way to route SmartCraft messages to N2K that hasn’t made it to this thread.

  23. mark says:

    Is the default for display parameters NMEA 2000. I am connected and see a log file generated from the NMEA 0183, and my TCP connection is good, but with the exception of the Lat and long none of the displays are working for heading, RPM, Compass etc. Am I missing something or do I need to generate a new definition file?

  24. Vince Pelss says:

    If using Win 7, you cannot use the Classic Theme, see Control Panel\Appearance and Personalization\Personalization

    You will get errors like: system.collections.arraylist error

    Just sitch to the Win 7 theme. Ich

  25. Ken Kaye says:

    1. I have Open Skipper on my HP laptop operating on Windows 10. I have a program on my droid called “Share GPS”. It will stream my location from the droid to the laptop. I have been able to do this using Open CPN. I cannot do this with Open Skipper probably because I do not know how to setup Open Skipper properly. Please help.

    2. Can I multi task Open Skipper with navigation software like Open CPN which does not read NMEA 2000?

  26. Timo Lappalainen says:

    1. I did not understood your question. Do you want to read GPS to Open Skipper from android “Share GPS” or do you want to share GPS from Open Skipper?

    For reading NMEA 0183 data from some port on Open Skipper select View-“Data Streams”-“NMEA 0183(com ports)” and press “Add new” Then you can define name, speed and com port. Finally press Connect.

    2. I did not understood this either. Naturally you can run Open Skipper and Open CPN at same time and they can read data from different ports. You can not forward Open Skipper NMEA 2000 data to the Open CPN, since Open Skipper does not do protocol conversion.

    I have published NMEA 2000 library, which you can use e.g. build NMEA 2000 bus device. There is also sample for NMEA 2000 -> NMEA 0183 converter. See.

Leave a Reply

Your email address will not be published.