Signal K, a true game changer?

32 Responses

  1. Ben Ellison Ben Ellison says:

    I know Bill lives in south Florida and now I wonder if he got bitten by a weird spider!
    Seriously, I’m skeptical about open source projects in the tiny but complex and fragmented world of marine electronics. It’s been talked about for a long time but I’ve seen no viable results. On the other hand, the situation today is ripe, the Signal K core team looks strong, and I understand that there are some very interesting possible partners in the wings. I hope it goes well and look forward to Bill’s next report.

  2. Bill Bishop says:

    Ben, The spiders in Florida are big enough to eat birds and I’m still wondering where the cat went. It’s a nice warm place where everything is trying to kill you. (Thanks RHYS)
    I forgot to mention that Signal K is usable commercially and only requires attribution to do so. This is a huge plus in its favor.

  3. Allan Seymour says:

    Ben, I only hope I live long enough! Seriously it would be a boon to marinas that have a large mooring field like Wayfarer in Camden ME to be able to send a mooring position to a boat entering the harbor. This is something I have been trying to figure out for years!

  4. Ben Ellison Ben Ellison says:

    Coincidentally I’ve just been testing products from Chetco, Alba, and Maretron that all offer some of the connectedness that Bill writes about regarding Signal K. None are without issues — Maretron’s the least — but progress is being made. Check out my new BoatLogger page with boat data automatically supplied from Chetco’s HelmSmart cloud where it’s automatically collected thanks to a SeaSmart NMEA2000 to Ethernet bridge and marina WiFi. I’ll have to shut it down later today — finally going home! — but it’s live now:
    http://www.boatlogger.com/gizmo?mode=Public#seasmart

  5. Richard C says:

    Bill, Does this mean I can pull out most of the NMEA 2000 cabling once Signal K is part of all the devices onboard?
    Also, I have one other concern with “wireless” and that is RFI from strong transmitters like SSB or outside signals. I’m sure developers have thought of this, but it would not be good if Signal K dropped out because of some signal interference just as I was threading through a dicey shoal. I’m looking forward to the wireless days on the horizon.

  6. Bill Bishop says:

    Richard, the N2K cabling still needs to stay in place. This is the data source from the sensors. The gateway/server is just another device hanging on the network. Signal K is designed to take the data and provide easy access for mobile devices, connection to other routers (land or other boat based) and the internet. The thing that makes Signal K’s design unique is that NMEA data, although very important, is just a subset of the totality of the schema’s data. The schema is designed to hold other important information about your boat such as other non-NMEA derived sensor data, cruising notes charts, photos, MMSI directories, physical vessel info (draft, length, position of the GPS on the vessel) and more.
    WiFi, Bluetooth, ANT and other similar wireless technologies can all be affected by interference depending on the electronics onboard any given boat. In my personal experience I don’t encounter it very often. As an old, meaning not bold navigator I would always have a back up navigation system on board.

  7. Don Joyce says:

    The Signal K team seems to have a few nice things already under their belt as evidenced by the team “bio on their wiki page. Nonetheless, they are quite geeky in the sense that what they have produced is by and large for other geeky types to admire….as evidenced by multi-step processes using make files to build and install things. The average person is lucky to spell “make” much less know how to use make. Even windows programmers have gotten used to having the build process buried by Visual C++ etc.
    Presumably someone with compassion for the rest of us will “build” the product.
    Cheers
    Don

  8. Ben Ellison Ben Ellison says:

    Panbo was not the only website down this morning:
    http://www.cnbc.com/id/102177717#.
    Which wouldn’t be relevant except that it’s a timely reminder about the Internet’s fragility.

  9. Rob says:

    I spent maybe 15 minutes looking at the protocol. General thoughts (that I’m posting here because a way to post it on their site doesn’t exist!):
    1) It’s the right overall approach. JSON and HTTP is the right architecture.
    2) They need to develop/standardized a very simple listen/subscribe protocol on top of this. So a client can tell a source it wants to subscribe to a certain type of update. The available things to subscribe to should be done through introspection, and supporting it should be optional. Example: client asks source “can i subscribe to you” if no reply then nope, if reply tell me what types of things i can subscribe to (e.g. wind speed updates). You don’t want to have to poll. Maybe this is already in Signal K, but i didn’t find it in 15 minutes.
    3) binary data – easy to add, but you want to be able to get it – either as encoded text string or a post message.
    Just my 2 cents.

  10. Bill Bishop says:

    Rob, if you go to the Signal K Website (link is above in the story) you will find a link to their Signal K Google groups forum. Join the group, introduce yourself, post any questions and the team would be pleased to chat with you and answer any questions you might have. There is also a lot of info in the existing topics.

  11. Bill Bishop says:

    Don, good comment, and the group is keenly aware that in order to be successful and effective Signal K must be accessible in both use, and installation to the average boater. This subject has been discussed in great detail. They do have compassion for the rest of us.

  12. outbackgary says:

    Maybe this is a dumb question but it’s not clear to me where Signal K resides and how to connect to it from a vessel data point of view on the hardware side and a human point of view on the other.
    It would be good to see a complete end to end implementation example. The block diagram at the top doesn’t make sense at the moment.

  13. rob42 says:

    Don,
    Yes we are a bit geeky, but we do some serious sailing too, so we can speak normal english too 🙂
    The code on github is definitely for other geeks. Its both working examples and basic building blocks to get developers going with their own apps.
    All this gets bundled into products or software app which a user will load onto their device.
    From a user point of view SignalK is a language that devices and software use to speak to each other. The difference is that its designed around the needs of the 21st century and the connected world.

  14. rob42 says:

    outbackgary,
    Signalk is a protocol for devices and software to communicate. Like a common langauge between people.
    It will be built into software or devices in the same way as NMEA is.
    So you will load an app onto your tablet/phone/pc and it will happily talk to the NMEA devices via a Signal K gateway (a hardware device) and to anything else that speaks signalk.
    That could include your mates boat, marina, service agent, social sites, coast guard, race committee, or what have you. All with your permission of course.

  15. Don Joyce says:

    Thanks for the response rob42. I have no doubt you speak and write English based on the SignalK info I’ve read. Perhaps “geeky” too poorly defined a term to be useful, and I apologize.
    What I look for now is whether your abilities to conceptualize, abstract, and produce can be organized and managed and maintained to realize the promise of the SignalK proposition as a “standard” protocol and language. To me, this is when you start talking to the rest of us. Only then would I feel that there is compassion for the rest of us.
    I certainly wish you the best
    Don

  16. Kees says:

    The conundrum is that if the Signal K developers asked people like Bill not to be enthousiastic about what are doing and we refused publicity until we were all done then we will never get other developers on board. And we need those to help out both with the specification and in writing code. Maybe even a simple first end-user product?
    So for non-developers, read Bill’s article as “Pie in the Sky” that shows you what could happen in the near future. Sort of like how you read about Google Glass. Ever seen one, let alone wearing one yet?
    For developers and manufacturers, please come round our site, check out our preliminary specification and help us get this off the ground by joining our Google Group.

  17. Don Joyce says:

    Kees,
    Can I assume you are aware of the numerous open source inter-device communications protocols already in draft or better — actually implemented — that anticipate a superset of Signal K ambitions? Quite a few never took off simply because there were lots of “indians”, but no “chiefs.” These open-source efforts are a good place to recruit volunteers for Signal K. Also a good place to identify a “volunteer” project manager to capture the full and rigorous requirements set to task the other volunteers.
    Cheers
    Don

  18. Bace says:

    I find the ability to receive NMEA data through IP protocol very interesting especially if we can extend the data from the WLAN on the boat to the Internet in a simple maner.
    What I haven’t understood just yet is how this differ from eg. Maretron solutions?
    Or is the news here simply that signal K is an open protocol that other developers can design applications/appliance boxes for ?
    Thanks
    Mikkel

  19. rob42 says:

    Don,
    No need to apologise, no offence was taken. I’m quite comfortable being geeky 🙂
    And you are quite right, its a long road, with many broken dreams along the way. But some succeed, and change the world.
    Like sailing, you start by pulling anchor and setting course. We believe we have a sound vessel, with a solid crew, a good chart, and a star to follow. Who knows where that leads?
    Rob

  20. rob42 says:

    Mikkel,
    There are a number of alternatives, like Maretron, Simrad GoFree etc. But they are owned by those companies, so Simrad is not going to commit to Maretron, and vice versa.
    So the app developer or service provider is always left implementing multiple protocols. Plus you have little influence to get your own extensions.
    NMEA is successful because its common to all, and not owned by any. But its still aclosed shop for the rst of us, and its boat-only data.
    So Signal K is a community owned (open source) solution, where any-one can participate, and anyone can use without licence/cost etc
    So a gateway to NMEA already exists, gateways to Simrad and Maretron will appear no doubt, leaving the app or service provider with jusst one simple protocol to deal with.
    Rob

  21. Sparky says:

    I’d recommend the signal K folks try to connect with Navico. Of the big 4, they seem the most forward looking re: opening up external APIs for app development (via their GoFree program).

  22. T Kurki says:

    I am aware of a multitude of different os software projects in this area and in fact the whole Signal K started on the open source nmea thread here: https://panbo.com/forum/2010/09/nmea-open-source-project.html
    Don, is there something specific in your mind that you think we should consider or embrace? Please, spread the word or tell us who we should talk to.
    Then again this is in no way a “must win support” case for me. I already had a working setup on my boat, but sharing the fruits of my labor (and the pain I felt!) seemed like the right thing to do.
    Teppo

  23. Jason Taylor says:

    I think the most interesting part of this is the ability for anyone to extend the information that is passed with Signal K. NMEA is great for passing boat-specific data across a local boat network. But defining what information is included is closed and is governed by the NMEA. SignalK pushes the intelligence to the endpoints — sensors and consumers.
    An earlier poster hinted at it, but one thing useful to many would be for marinas to support buoy assignment through signalK. Busy harbours with lots of marinas would make it even more interesting. A navigator could solicit the marinas in an area for mooring information and have available spots appear on their PC. For this to work would require software development for the boat side and the marina side, but all the data elements would be shared using SignalK. It’s like MarineTraffic for buoys, where and AIS message consolidation is replaced by SignalK message consolidation.
    Another creative use:
    Fume/vapor detectors that stream volatile vapor data over SignalK. So instead of a simple on/off alarm sounding, you get a continuous data stream.
    An upward trend in concentration of explosive fumes could lead to the boat closing all fuel/gas/propane solenoids, tripping the main panel breaker, and notifying a predefined list of contacts by email/twitter/carrier-pigeon. Perhaps even broadcasting it so that nearby boats could pick up on the alarm and react. Would you like to know if your neighbor’s bilge is full of propane gas?
    The exact same process could be used for monitoring stray currents in marina waters.
    The central idea being that if the sensors relatively cheap and readily available, the data they produce should be even more readily available. Then you see what the market comes up with. This requires our mindset to shift from thinking of instruments and alarms to environmental sensors and data streams.
    A very important step in this will be managing the data streams. How much of what information do you share outside of your boat? Who has requested what kind of information from your boat? I see the boat-router/access-point being ideally suited to this role, so more boats will install a wifi access point and router. I could see implementing a SignalK message gateway in OpenWRT and providing a nice GUI / control panel to manage the information flows. This is like the early days of the web — nobody really knew what to do with it yet, but it was the users that were inventing the applications, not the vendors. Back in 1994, people laughed at the uselessness of the idea of an internet connected vending machine that could tell you how much of what soft drinks were available, and what temperature they were at. Today, we think of this as an important tool in a proper supply chain management process.
    Cheers,
    /Jason

  24. Don Joyce says:

    I’m glad you asked and I will be as brief as possible and then will bow out since further discussion would mean I would be obligated to start working on Signal K instead of sailing for the winter.
    First, I assume something being published in Panbo is a big deal. Something “designed around the needs of the 21st century and the connected world,” to quote Rob42, is to me an extra exciting big deal. The box diagram looked like a lot of others I’ve seen, but having the all-time cynic- Bill Bishop — jumping up and down made me take notice. Mention of specifications, protocols, open source licensing, etc. sound like real substance. So…..one asks, why open source? I like open source and yet would never personally commit myself to open source if I felt compelled to change the world on this.
    Second, at least to me, mention of “the 21st century and the connected world” in the context of marine electronics and software together with HTTP/JSON means what is commonly called the “internet of devices” or similar which people have based their careers on developing for both the open source community and private/commercial use. That’s why I asked how aware the Signal K community is of these efforts. Mention of the Panbo reference is insufficient. It would seem that a startup group of volunteers would seek a stable abstraction of the Signal K effort to provide a skeleton framework intended to support “the 21st century and the connected world that others have already produced and are actively maintaining and improving as a foundation for Signal K. Why reinvent the wheel. Think about how would one go about this if one were the NMEA team looking to the future?
    Third, “the 21st century and the connected world” sound like a “deliverance from evil.” While this might prove to be true and I find myself praying on its behalf, I also find myself shuddering thinking about security. Admittedly, I’ve been a security “freak” since I first hacked (for demonstration purposes only) a dual port printer shared by an ultra-high security facility (yes I would kill you) and a public facility in the 70’s (fast printers were not cheap). How is one going to address this? Hacking is especially easy with HTTP/JSON. Defending against it is 24/7. One should address this before writing any code for the connected world. How is one going to ensure that the code one distributes via open source is clean? How will one become the de-facto standard for marine devices without demonstrating one has crossed all the security T’s and dotted all the I’s? How do successful open source communities such as Mozilla go about this?
    Fourth, how is one going to organize such that the open source product survives the interest of the initial developers? What environment should one have that allows new developers to join and contribute, while maintaining code security, scope and schedule?
    Fifth, how should one validate code? Should there be test protocols before code is written? How else can one intercept unintended results? I ask anticipating that my life could depend on it. Is the current collaboration platform rigorous? Does one need to check code out and in? Are test protocols valid?
    While I anticipate the above items are thought provoking, and I could go on and on and on…., I’m not being fair since I have nothing to lose regarding Signal K. so, ultimately, the only fair question which I would ask is how much skin does the team have in the game? Is one a mutual admiration society or is one truly viewing this as a “do or die”. In the former case, I apologize for raising the issue. In the latter case, keep us posted.
    You are all wonderful individuals and you have to decide.

  25. rob42 says:

    Spot on Jason!
    Another one that interests me is harbours with bar entrances. If each vessel pushes its type, draft and track with depths to a local server using signal k, then when you approach an unfamiliar bar you can grab an overlay of recent tracks and display that on your chartplotter.
    Thats a lot more useful than a chart or cruising guide as they date so fast because the sand on the bar shifts with every storm.
    There are a number of interesting anchorages here that are little used because no-one is sure about the entrance.
    Rob

  26. SheltieJim says:

    My day job is international standardization of database query languages and a whole bunch of stuff in that arena. I don’t disagree wit the statement that JSON and HTTP are the right tools (although my personal preference would have been XML over JSON simply because the toolset for working with XML is much larger and more mature).
    The principal concern I have with JSON is the belief by so many of its fans that “we don’t need no stinkin’ schemas”, which fans of so many other data representation protocols have learned is a path to chaos and failure.
    In particular, looking at the “Schema Data Format Example”, it’s obvious that we’re looking at a portion of a JSON object. What is less obvious to many people is that the name of that object “headingMagnetic” MUST BE NORMATIVE in order for anybody else to know how to find and use the object. The same is true of the numbers, names, and data types of the fields in that object. If other projects using Signal K just make up names and structures “on the fly”, then others will not be able to use the information.
    I’m sure that the Signal K people understand this, but they must also make sure that their potential audience understand it as well.

  27. T Kurki says:

    But we do need a fabulous schema and indeed there is one, like Bill’s article already mentions.
    For humans:
    http://signalk.org/specification/index.html#schemas/signalk.json
    For machines:
    https://github.com/SignalK/specification/tree/master/schemas
    Validation tools:
    https://github.com/SignalK/specification#validation
    and for example the n2k-signalk converter tests assert that the output must be valid SignalK according to the schema.

  28. Dan Corcoran (b393capt) says:

    Interesting.
    Is it two directional, can you write information back also, for example configure your boat sensors?
    If a component manufactured allow it, does the specificatoin provide for updating the firmware in sensor, displays, and other devices ?

  29. rob42 says:

    Dan,
    Definitely 2 way. Its designed to be fully peer-to-peer, although in practice a lot of sensors will be tied to a small shared server, as many sensors wont have the ‘brains’ to be a full peer.
    Updates to firmware or software in general are technically feasible but we have not looked into the matter yet. Since every device is likely to have a different process to upgrade it would likely be some sort of command to upgrade, with custom info on how. There are a number of precedents in the software world (eg android apps).
    We would also need to consider the security – I dont want my devices upgraded except by explicit permission, and from an authentic source. But again thats been done in a number of environments already, so its certainly feasible.
    BTW I’m adding the idea as a ‘user requirement’ in the forum.
    Rob

  30. Ben Ellison Ben Ellison says:

    Nice! NMEA’s relatively new President & Executive Director Mark Reedenauer just posted “a friendly hello from NMEA” on the Signal K forum along with the offer of “technical resources if NMEA 0183 or NMEA 2000 questions arise during the development of Signal K.”
    https://groups.google.com/forum/#!forum/signalk

  31. Sparky says:

    A positive step. Next questions from Signal K likely to include … can we have access to the NMEA 2K specs.

  32. Kees says:

    Sparky, I guess we’re pretty predictable.
    We also have an interesting HW partner that’s hopefully going public soon…

Join the conversation

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