Friday, June 3, 2016

How "Proprietary" is NMEA 2000?

On Panbo.com there was a discussion back in February about how "open" vs "proprietary" NMEA 2000 and Signal-K are (scroll down to the end to see the comments).  I just read it yesterday and posted a comment saying I though NMEA 2000 was about as proprietary as proprietary gets.  This drew some rather snippy comments from Ben Ellison (Panbo site owner) about my "twisted" logic (Yuk, yuk, yuk.  My username there and several other places is Twistedtree).  I was then asked to take the discussion elsewhere.  This same thing happened about a year ago when I made another comment that was critical of NMEA 2000, so I guess I've hit a nerve.

So I'm bringing the discussion over here where I can say my piece and others can chime in as they wish.  Here's what it's all about.

Of course the terms "open", "free",  and "proprietary" are used in many different ways with different meanings, so you really need to dig a little deeper to make any meaningful comparisons.  All of these get wrapped up in various forms of intellectual property law and its various forms like copyright, patents, trade secrets, licenses, confidentiality agreements, etc.  But I'll try to keep it at a more general level.

At one point in the discussion, Ben characterized "proprietary" as "a standard that no one can use unless allowed to by a certain company or institution".  I would agree with that definition.  And elsewhere he characterized NMEA 2000 as "open".  That I didn't agree with, so I posted this comment:

I'm a little late to the discussion, but to me, N2K is a proprietary standard in every way. Even using Ben's definition in the following supports this notion:

Ben said "The problem with lumping together "Open" with "Open and Free" seems obvious to me. It also lumps together "Proprietary" -- a standard that no one can use unless allowed to by a certain company or institution -- with "Open" to anyone though including reasonable fees needed to maintain and grow the standard."

N2K is "owned" by a single entity, NMEA

N2K is confidential and not accessible to anyone who does not hold a license.  Anyone wanting to see the standard has to purchase a license. But then the licensee of N2K is obliged to hold the standard and all associated documentation confidential.

That's about as proprietary as proprietary gets. Heck, even patents, which are all owned and licensed, are published for anyone to read.

NMEA is non-discriminatory about who they will license to, but there is nothing open about contents of the standard. It's not like any of the IP protocols, all of which are published and accessible to anyone without a fee. And all the 802 standards are similarly accessible to anyone, though one needs to purchase the book(s).

I'll spare you the snarky replies that I got, but instead elaborate on what I mean.

Yes, anyone who wants access to the N2K specs can get - that's what I meant when I said NMEA was non-discriminatory about who they license too.   But access is by way of a license, and that license has a bunch of restrictions.  In particular, you can't disseminate any of the contents of the spec to anyone else.  It's for your eyes only.  So the spec is like a secret society.  Nobody knows what goes on inside, and as a contingency for being let in on the secret, you have to agree to maintain the secret.

Below is the exact text from the NMEA 2000 License Agreement which can be found in it's entirety here:

Restrictions. Except as expressly specified in this Agreement, licensee may not: (a) copy (except in the course of loading or installing) or modify the NMEA 2000® Standard, including but not limited to adding new features or otherwise making adaptations that alter the functioning of the NMEA 2000® Standard; (b) transfer, sublicense, lease, lend, rent or otherwise distribute the NMEA 2000® Standard to any third party; or (c) make the functionality of the NMEA 2000® Standard available to third parties through any means, including but not limited to uploading the NMEA 2000® Standard to a file-sharing service or through any hosting, application services provider, service bureau, software-as-a-service (SaaS) or any other type of services. Licensee acknowledges and agrees that portions of the NMEA 2000® Standard, including but not limited to the source code and the specific design and structure of individual modules or programs, constitute or contain trade secrets of NMEA and its licensors. Accordingly, licensee agrees to not disassemble, decompile or reverse engineer the NMEA 2000® Standard, in whole or in part, or permit or authorize a third party to do so, except to the extent such activities are expressly permitted by law notwithstanding this prohibition.

This, by the way, is a very common way for companies to license use of a proprietary technology.  In some cases, companies are very selective about who they license to.  Mercury Smartcraft was offered as an example of such a proprietary technology.  Others license more widely, like NMEA.  But it doesn't change the level of restrictions imposed on the licensee, and I would certainly characterize both as proprietary.

It's nothing like buying a book which is how most standards are published.   IEC, NEC, CE, UL, are all available to anyone who wants to buy the publications.  There is no restrictive license and no secrecy about the contents of the book/standard.  To the contrary, it is meant to inform people.  Anyone can reference the material, discuss it, write books about how to interpret it, discuss and write about ambiguities, etc.  The book can be loaned, placed in a library, etc.   It is covered by Copyright law, but that protects the specific embodiment of the info in the book.   So you can't reproduce it in whole or in part, and you can't lift text and use it elsewhere.  But the concepts are free to be used and built upon.  This I would consider to be "Open".

Somebody else chimed into the discussion thinking I was complaining about having to pay for standards, but I wasn't.  I have no problem paying for books, standards, or other publications.  It's a well established practice and helps fund the costs of producing and publishing standards.

What I take issue with are the licensing terms, in particular the secrecy requirement.  I think it does a great disservice to people trying to get products to work on boats by keeping us all in the dark about how they are supposed to work.  When something is not working correctly, we can't look at a trace, compare it to the standard, figure out which device is miss-behaving, and call that vendor with an informed opinion.  We can only guess.  And when we do call a vendor, they will invariably tell us they are doing things right and the other guy is doing it wrong.  But we have no basis to agree or disagree, so we call the other vendor.  And they of course tell us they are doing things correctly and the other guy is wrong.  So vendors have a game of monkey in the middle with us as their play toy.  And nobody can write a book about how N2K is supposed to work, point out common problems and work arounds, or do anything to improve interoperability and stability of the technology.  It would be a violation of the license agreement.  If the technology were open, i.e. not a mandated secret, then I expect resources like these would be available, and N2K would work a lot better than it does.  It has so much potential, but just isn't living up to it.

6 comments:

  1. I agree with your perspective. N2K is as closed as closed gets and I don't think it's a stretch to say that many if not most of the N2K implementation issues are due to the lockdown on communication the NMEA imposes.

    Ben is very cozy with the electronics manufacturers, which shouldn't be too surprising. I'm not cynical enough to say it's because they give him free stuff, but he does rely on them for early access to information and gear so he can't bite the hand. What's surprising to me is that some of the most ardent promoters of Signal K seem to give the NMEA a pass on N2K.

    Anyway, I think the writing is on the wall. With the proliferation of WiFi as a secondary and even primary physical layer in a lot of the new gear, it's just a baby step to power over ethernet once the power requirements come down. With Signal K or something similar on top, N2K will rapidly become obsolete.

    ReplyDelete
  2. "This, by the way, is a very common way for companies to license use of a proprietary technology. In some cases, companies are very selective about who they license to. Mercury Smartcraft was offered as an example of such a proprietary technology. Others license more widely, like NMEA. But it doesn't change the level of restrictions imposed on the licensee, and I would certainly characterize both as proprietary."

    Peter, you've completely fudged over the fundamental aspect of an open standard: that it be open to use by anyone. NMEA 2000, as you admit; Mercury Smartcraft is not. It's a big, big difference.

    What's more, you or anyone else can join NMEA and be part of the standards making process. Another big, big difference from Mercury. (Not that's there any wrong with a company building its own standard and sharing it exactly as it pleases.)

    As for NMEA being different from ABYC and other open standards organizations, I don't see it. For instance, I'd really like to study the ABYC recommendations for marine battery installations, but the document expense doesn't really make sense given the level of my project. Those are safety standards but to my knowledge they're not any more available than info on N2K.

    ReplyDelete
  3. This is where we slip into semantics and an individual's or company's definition of an "Open standard". That's why I've tried to focus on the specifics of what you can and can't do with the information once you buy the standard.

    For all the other "open standards" that we have been discussing, buying the standard is the same as buying a book. Both are copyright and can't be copied or redistributed. And there are accepted limits on quoting copyright material, etc. But the contents are not a secret, and the buyer of a book isn't sworn to secrecy about it's contents.

    I'm free, for example, to write an article about the nuances of an ABYC standard, talk about ways to comply and things that will not comply. I can talk about situations that are not addressed in the spec, and talk about ways it could be covered. I can summarize the requirements, and even describe them in my own words.

    Purchasing the N2K spec is very different as can be seen in the license agreement. Once you have access, you are sworn to secrecy about it's contents. So none of the above would be possible. I think I outlined examples in the article, so won't repeat myself.

    The "what you can do with the information" difference is what I find to be significantly less "open" than all the other standards we have been discussing. In fact, I don't know of any "open standard" that carries a similar muzzle order.

    Can you acknowledge this difference in what can be done with the information once someone purchases the standard?

    ReplyDelete
  4. Here is a comment from one manufacturer's support forum that remarks on how they are bound to not tell their customers about NMEA-2000.

    --begin excerpt--

    Regarding the following PGNs that NovAtel receivers output:

    PGN 129029 GNSSPositionData,
    PGN 129025 GNSSPositionRapidUpdate,
    PGN 129026 COGandSOGRapidUpdate.

    The message formats for the CAN PGNs are part of NMEA 2000 Standard. NMEA does not give this information for free. You need to purchase decoding information NMEA 2000® ...
    Although NovAtel strives to openly provide as much information as possible from our receivers, we are bound by NMEA 2000s copyright on this standard.

    Cf.: http://www.novatel.com/support/known-solutions/why-is-there-no-decoding-information-on-the-can-pgns/

    ReplyDelete
  5. The Maretron manuals -- Airmar's too, I think -- give more detail on PGNs:

    http://www.maretron.com/support/manuals/GPS200UM_1.3.html#_Toc425938258

    ReplyDelete
  6. Not only is NMEA 2000 proprietary but products designed by different manufacturers don’t interwork despite being “certified”
    for example
    you cannot operate DC switches made by Oceanic Systems using switch icons from a Maretron N2k display
    Maretron decided to embed the switch command PGN inside the generic NMEA 2000 command PGN (excuses exist for this methedology) but it blows a big hole in the concept of a “certified product” written to an agreed “standard”

    My boat has
    3 Actisense EMU-1
    1 Oceanic Systems water sender
    1 Albacombi engine monitor
    1 Maretron DCR100 - after trying to use the Oceanic Systems relay module
    1 Maretron IPG
    1 Maretron MBB300C
    1 Actisense NGW-1
    1 Actisense NGT-1

    and now it also has, and will have several more, Arduino due boards programmed by me using libraries from github
    the Arduino due board has native CAN bus capability
    one does need to understand software and electronics to make use of this method - but the savings are huge and one has total control of the implementation

    ReplyDelete

Make comments here