NMEA 2000, hail the first hobbyist!

Luminary Micro can board

All the well-informed feedback I’m getting to my marine electronics maintenance query reminded that a fellow named Joseph Howard wrote last week about the NMEA 2000 hobby project he’s pursuing, and also documenting over the MarinetteBoat forums. “It will be a ARM7 based fuel gauge reading PGN 127505 using Luminary Micro’s LM3S8962 evaluation board, 89 bucks from Digi-Key. I am hand coding the stack extensions for address claims. (Wish I’d used a PIC 18 CanBus as they have a free J1939 stack). Quite a bit of C coding.”


Now stack extensions and address claims are way, way over my head, but I’m darn sure that good things will evolve from “hobby” involvement in NMEA 2000. “MarinetteJoe” just got started and already there’s some valuable information posted, and a few fellow hobbyists and developers are gathering. Joe has even contacted NMEA itself, hoping to set up a NMEA 2000 hobby contest sponsored by Marinette and possibly Nuts & Volts magazine. I hope NMEA will go for it. I also hope NMEA will cool it with the copy protection that’s restricting what hobbyists and just plain boaters can learn about just what “open standard” N2K PGN messages mean and how they’re structured. Our man Russ has been lobbying about this behind the scenes, and a call to arms may be called for. In the meantime, here’s a tip of the soldering iron—I really do have one, somewhere—to MarinetteJoe!



Ben Ellison

Ben Ellison

Panbo editor, publisher & chief bottlewasher from 4/2005 until 8/2018, and now pleased to have Ben Stein as a very able publisher, webmaster, and editing colleague. Please don't regard him as an "expert"; he's getting quite old and thinks that "fadiddling fumble-putz" is a more accurate description.

15 Responses

  1. Mike says:

    Specifications which are not freely available and freely implementable are not “open”. For example, you don’t have to pay anyone to implement Ethernet, or TCP/IP, or SNMP (which NMEA2000 regretably mimicks). *THOSE* are “open standards” in the generally-accepted definition of the term. Until anyone can join the NMEA2000 club, it’s exactly that, an exclusive club. And maintenance of some “sanctifying software” is an utterly bogus excuse. The Internet works just fine without paying an oath of fealty to some 3rd-party protocol police. In fact, almost all the technologies that the Internet beat-out *did* have protocol police, and expensive protocol specifications, and all kinds of hoops to jump through. Coincidence? I think not.
    Harump.

  2. Russ says:

    How did Joe get the necessary information to be able to start his project if N2K’s workings are proprietary?
    We’ll know it’s an open standard when we see lots of hobbyist and kudo’s to Joe for leading the way!

  3. Ben Ellison Ben Ellison says:

    Russ, The standards are not proprietary but the documentation is sold, and redistribution is not permitted. NMEA did at least break out all the parts and I think a hobbyist just needs the electronic database. That’s still $495 (plus NMEA membership).
    I’d guess that’s what Joe bought but I really don’t know. He is clear, though, that he can’t share them. Like Furuno.

  4. Igor says:

    The day someone uploads the standards document and databases to the internet though Emule or Kad network is the day hobbyists are going really to evolve.
    Emule, being really and totally “free and anonymous” is the perfect way of forcing the “exclusive NMEA club” to open the code. N2K will be just public domain, unavoidably.
    That day hobbyist, boaters and industry in general will have gained a good communication standard.

  5. Mike says:

    if the documents necessary to understand the protocol are covered by NDA, expensive, and one cannot implement the protocol *and tell anyone about it* without kissing the sanctifying toad for yet more dollars, i cannot think of a better definition of *proprietary*.

  6. Ben Ellison Ben Ellison says:

    Nah, Mike, I’d say the operational definition of “proprietary” is a protocol that no one else can use or even buy the documentation to. I know you and many others resent NMEA’s restrictions — and I agree that they should be reduced — but if 2000 is “proprietary” then what the heck is SeaTalk, NavNet, MarineNet, etc.?

  7. Mike says:

    They are implementations of a proprietary protocol. This is not that hard to understand. Something can be proprietary but yet practiced by more than one company given the necessary business relationships. They can no more disclose the contents of the protocol documents than anyone else can. You have to sign something that says you won’t disclose it. For a very long time, the source code to Unix was proprietary to Bell Labs – you had to agree to terms and conditions in return for access to it. This continued to be the case in spite of an entire generation of computer scientists reading the code. Technically and legally they were still bound by the agreements to not disclose anything except to other parties who had made the same agreements. The entire SCO lawsuit fiasco is over just this – who owns the copyrights to the code. Just like NMEA owns the copyright to the protocol documents and will not let you have them until you agree to their terms and conditions not to disclose it further.
    THAT is proprietary. To make it easy, compare and contrast with the Internet RFCs – freely available for anyone to read and implement, and in fact reproduce at will, *in spite of the fact* that the copyright is held by the Internet Society.
    The critical characteristic of Open Protocols is that YOU DON’T NEED TO ASK PERMISSION to read or use them! If you do have to ask permission, then it is *proprietary*.
    The fact that NMEA is so uncomfortable with being seen as “proprietary” that they *claim* it’s an open standard when it most definitely is not is telling.
    We have worked examples of things far, far more complex than NMEA2000 being built and interoperating from free and open specifications. In fact, almost all the technology that makes this blog possible is precisely like that. And you know what? That is also why it went from vague idea to widely-embraced in such a short period of time.
    One more example – check out the history of Ethernet, how 10-megabit Ethernet came to be, how three companies pooled their efforts *and their patents*, and released it free to the world for people to build and exploit. Bob Metcalfe, father of Ethernet, has written about this phenomenon, as have others. Turns out that the best way to make something successful is to let people run with it. Imagine that.

  8. Russ says:

    Ben: NavNet, SeaTalk, Garmin MarineNet and FastNet are all proprietary. The only open standard in marine networking is NMEA 0183.
    Sherman, set the wayback machine for …

  9. George says:

    NMEA 2000 is a propriatary standard because non-members of the NMEA consortium can be sued for writing conforming applications or releasing standards information. This approach goes back to the days when IBM sued manufacturers who made accessories that were compatible with IBMs mainframes without obtaining licenses. It does not become an “open” standard merely because multiple companies use it. Seatalk wouldn’t become open if Raymarine licensed the technology to some other company.
    I do not agree that it has to be open source to be an open standard — UNIX(tm) was an open system in the most useful sense of the word. Anybody could write applications that would function on a UNIX system, and there was plenty of documentation provided to make this easy. Microsoft Windows was the same way.
    The manufacturers who conform to NMEA 2000 do not have to publish the source code to their systems in order for NMEA 2000 to be “open” any more than Bell Labs had to publish the source to their ethernet drivers to make Etherenet an open standard.

  10. Ben Ellison Ben Ellison says:

    George,
    Obviously different people have different ideas of what an “open” standard is. But please don’t put NMEA 2000 in the same category as SeaTalk, NavNet, etc. It ain’t so!
    Anyone, repeat anyone, can buy the NMEA docs and a manufacturer code, develop and self certify a product, and sell it. Soon ANY software developer will be able to get inexpensive approval for programs reading and writing N2K strings as long it does so through a certified bridge/firewall.
    As I’m sure you know, none of that is true for SeaTalk, NavNet, etc. or the IBM example you used. Apples and oranges.

  11. Sandy says:

    Garmin released ver 3.0 firmware updates for the network chartplotters, and other network devices, including the XM and Radar modules.
    Version 2.70 to 3.00:
    1. Production released 4×10 and 5×15 software
    2. Added support for new categories of NMEA2000 data, including Navigation, GPS, Fuel, Depth, Water Speed, and Temperature
    3. Added fuel management features
    4. Improved map drawing performance
    5. Added ability to navigate tracks
    6. Increased accessibility of XM audio features
    7. Added XM weather to 3D map.
    8. Numerous product feature improvements

  12. Philipp Drewes says:

    Here is myopen “NMEA2000 stack” that I wrote for Atmel AVR microcontrollers. It’s still under development but you can get a basic idea of how it works looking at the sources.
    http://www.mikrocontroller.net/topic/143234
    All information about PGNs and address claim procedure is taken from freely avaliable documents on the net (especially the matretron datasheets) a book on J1939 and information i gatherd using CANHacker and comparing the data with the information a Maretron USB100 revealed.
    Phili

  13. Alexander Hayman says:

    Philipp,
    Can you please contact me at [email protected]
    I’ve been studying your code, and it is very well written and easy to understand. I am working to develop a NMEA 2000 compatible device for transmitting data and I have a couple questions.
    This code reveals a lot of information about NMEA 2000 and has been very helpful to my understanding of how the data is transmitted/received.
    Alexander

  14. moncler sk says:

    Can you please contact me at [email protected]
    I’ve been studying your code, and it is very well written and easy to understand. moncler ski I am working to develop a NMEA 2000 compatible device for transmitting data and I have a couple questions.

  15. I wonder what phoenix terminal blocks really do. I don’t know much about them. My my tech assistant said I might need one soon. I’d tired to have him explain what it was but I didn’t understand a word he was saying. I need something really simple to grasp.

Join the conversation

Your email address will not be published. Required fields are marked *