Tuesday, May 12, 2015

Signal K FAQ's

Much has been going on behind the scenes with the Signal K project which has culminated with NMEA's formal recognition of Signal K that appeared on their website yesterday,  and the most excellent article about all of this by Ben Ellison on Panbo.

So I thought I would post some FAQ's about the project and provide a glimpse of what a system would look like on a boat. There are three pieces to the system. In this beta installation I'm using a Raspberry Pi-2 as the interim server. It has a Ethernet connection to the Netgear router, four USB ports, a SD card slot and will be powered by a dual USB charging port. The yet to come NMEA 2000 Signal K gateway will be installed behind the panel. The router power is going to be reconnected behind the panel. The SS clam shell will be painted black so it doesn't stick out like a sore thumb.

The point is a Signal K installation doesn't require much space, doesn't have to be ugly, won't cost much and the bonus is you get a wireless access point on your boat. I'm finishing a piece on this install which will pop out shortly.


Signal K FAQ's

What is Signal K?

Signal K is a project to extend marine information onto the internet in a standardized way. Its goal is to simplify access to marine data over the internet for app and service providers, enabling the development of new marine applications in the same way that has happened in the wider mobile market.

Its primarily an open protocol specification, with freely available software implementations to aid in easy adoption.

Why does Signal K exist?

The fundamental reason Signal K exists is because internet access to your boat's NMEA data is currently very limited. This is in part due to the fact that NMEA 2000 was designed prior to widespread wireless Internet access and its data format is not well suited for mobile apps. There is also the need to protect NMEA's standards and intellectual property from becoming public.

Because of these issues there are currently only a small number of NMEA data over wireless apps available. The few mobile app solutions that use NMEA data work well, but are all unique with disparate hardware and software solutions with complex implementations. From a mobile app developer's viewpoint none of the existing solutions offers a market share large enough to entice most mobile app developers into investing in the development of boating apps that use NMEA derived data. 

Signal K solves these problems by making a boat's NMEA data easily accessible to all mobile app developers world-wide. With Signal K mobile app developers have no upfront costs, and easy access to your boat's data using flexible Internet protocols and tools they deal with on a daily basis. 

Look at the iPhone. Because it was designed to be developer friendly in just six years there are over a million apps available in iTunes. For boaters there are currently only about 25 apps available that use data from your boat. Signal K's ease of data access will change this.

Who will benefit from Signal K?

With Signal K boaters will quickly have a much wider choice of creative mobile apps available that use all of your boat's data and more. The NMEA community will have a new and potentially huge market for NMEA certified Signal K enabled gateways, instruments, sensors and complete Signal K packages. NMEA benefits because Signal K solidifies and enhances their role as the primary source of a boat's data to the world. App developers benefit because existing hurdles to access NMEA based boat data will be eliminated.

Does Signal K software cost anything?

The protocol and software are freely available. 

The customer must provide a Signal K NMEA 2000 certified gateway,  low-cost server hardware, and WiFi router. All of Signal K's software is Apache 2 licensed making it available for commercialization and it's free. Like Oracle's Open Office software being used to write this, it's fully open source software. NMEA hardware manufacturers are encouraged to participate.

Can Signal K replace a Multifunction display?

The answer is both a limited yes and mostly a no. It's yes in the sense that Signal K provides the same data that allows current mobile apps such as iNavX, Navionics, and the myriad of other inexpensive or free mobile boating apps to work. The difference is instead of using the built-in mobile device's sensors like the GPS for position information, the Signal K based app is instead receiving the same data directly from the boat's NMEA 2000 system. With the growth in mobile devices its inevitable that they will continue to displace simple MFD functionality.

MFD's also provide complex marine centric functionality like radar processing, 3-D depth, etc. These are very specialized and unlikely to be replaced by apps on mobile devices. In short Signal K does not replace the capabilities of current multi-function display technology, and in reality benefits from the presence of MFD's to provide additional information that is not available from stand alone NMEA 2000 instruments.

Could a Signal K app provide technical support diagnostics and marketing information of value to NMEA based manufacturers?

In the Internet Of Things world of Signal K this ability already possible to some extent with current NMEA PGN's and this functionality could easily be enhanced. A Signal K app could query a NMEA 2000 network to determine what devices are present on the network, the manufacturer, serial numbers, software versions, system voltage levels and other related information. This information could be used for both trouble shooting, and advising of  any needed or available software upgrades.

PGN's could be created to look deeper into MFD's if desired by manufacturers. CPU loading, internal temperatures, detect back lighting issues, and reading out of error logs are a just a few examples. By making this information available in real-time it could dramatically reduce the time needed to diagnosis many system issues by both technical support groups and field technicians. For example the GPS is not seen as a device in the network, but we see other devices so the network power is okay. Check the GPS N2K cable connections first, and we recommend a software upgrade. Apps could gather and supply valuable service life and use data that is difficult to acquire once equipment leaves the factory.  

It can also answer marketing questions like what boats (types, sizes and ownership) have what equipment installed and where they are being used.

Is Signal K doing the same thing as NMEA's new OneNet protocol?

No. OneNet is designed to transport NMEA 2000® network messages on Ethernet in a standardized manner and to support high band width applications. Signal K is using NMEA 2000 parsed data coming from a NMEA certified gateway and storing it in a developer friendly database along with other vessel related information. In the future there could be a possible version of Signal K that would work with the OneNet protocol if there was a need.

What else can be done with a Signal K system?

Signal K accommodates the addition of Arduino hardware with existing software that outputs Signal K. This will allow collection of data not currently included within the NMEA 2000 PGN's and device control via Signal K. These opportunities are endless. Measure wave height and wave period, research vessel data collection needs such as seawater Ph levels. Sail sheet pressure readings from a load cell for racers, freezer temperature monitoring and more.

Signal K makes crowd sourcing of water depths and other information easier and Signal K provided data will require less post processing. The features needed to do this are being implemented in the Signal K design.

The capability to do social sharing along with layers of security to protect the users data is inherently part Signal K's approach. In Signal K's world if allowed, you could see the depth from the boat in front of you on your boat. Share the route being used for the yacht club trip among all of the boats. Be recognized by a marina when you approach and have the docking information automatically sent to you. Live in Chicago, and see all of your boat's data in Sarasota.

When will Signal K become available.

The project is publicly accessible ( http://signalk.org/ ) and development versions are available now. There are still many things left to do so it's difficult to say exactly when a definitive version will be announced, but it is hopefully expected to be released late this year. There are operating beta systems and more are being added to expedite testing. The project is continuing to add skilled professional programmers with boating backgrounds to the project.

Who is Signal K?

Signal K is a consortium of boaters who are also professional software developers from around the world who are donating their time to this effort. The Signal K's not for profit entity is in the process of being created in the Netherlands.

Technical FAQ's

What is Signal K (technically)?

Signal K is implementated as software consisting of two primary open source software elements. The first is a generic software translation module that takes NMEA 2000 PGN's, parses the PGN's into its individual data elements inside the NMEA certified gateway, and sends the data to the separate Signal K server. This software requires access to the NMEA standards to be functional, and will be provided free of charge to the NMEA community. The gateway/MFD manufacturer adds their PGN standards information to this software and packages it within their own hardware products. This approach creates a solid firewall that protects NMEA's valuable intellectual property from public disclosure.

The second part of Signal K is the server. This is usually run on a Linux-based inexpensive SBC (Single Board Computer) with Ethernet, serial, and USB ports along with a SD card slot. It receives the parsed data from the gateway and stores it a  hierarchical database (JSON schema) in a human readable form like:
“vessel.[mmsi].navigation.courseOverGround.”

Think of this as a tree. The trunk is like a hard drive, 'vessel' and 'navigation' represent folders, and the files are data (courseOverGround). Each piece of data has a unique address that does not change. The tree is able to be extended as required, but even as new data is added to the schema existing apps still continue to function. The Signal K server can therefore also store other vessel related data not contemplated by NMEA.

The server software is being written by a team of IT professionals specifically for mobile app software developers. Signal K  has been designed to make it easy for mobile app developers to use your boat's data in new and creative ways. The system is flexible and supports a broad range of protocols and software tools native to the internet.

The server connects to a WiFi router with an antenna for internet and mobile device access. The router is also usable as a WiFi hotspot for the vessel.

What is ”Metadata” and why is Signal K using it?

We use gauges to view much of our boat's data. Fuel gauges, RPM's, engine temperatures, and bar graphs for trim tab position are all examples. Signal K is designed to be a universal marine database, and metadata is an important part of this.

Metadata is the critical underling information needed by digital gauges. For example let's look at a digital water pressure gauge used by an app. It would have to created, labeled as “Water Pressure” with a scale, the measurement units you want to use, and alarm ranges. This approach makes it difficult for app developers to anticipate every gauge variant that exists on a boat.

With Signal K an app developer can use a simple digital gauge. The server then tells the app this is a Water Pressure gauge. It's measured in these units (pounds/sq inch (PSI)  or kilopascals (KPA...)), it has a scale from 20 to 80, and alarm set-points are 30 low, and 70 high. This simplifies app programming development and efficiently deals with the huge array of differing units and scales used worldwide.

What kind of hardware is needed for a Signal K system?

A typical Signal K system will requires a NMEA certified gateway that outputs Signal K, a single board Linux-based processor with Ethernet, USB and serial ports, SD card reader, and a WiFi router for internet access. The hardware is estimated to cost in the neighborhood of $500. A Signal K system also acts as the boats WiFi hotspot.

Will Signal K support iPhone and Android apps?

Yes, and Signal K's developer friendly interface also supports many other application programming environments including use on Windows and Apple iOS based computers.

Where is the Signal K work done?

Day to-day the Signal K group is using Slack.com to coordinate the software development activities. Slack provides a quiet environment for group interaction and holds the activity archives for reference. There have been over 10,000 Signal K interactions on Slack.com to date. Trello.com is used to coordinate overall macro level project activities.  The software is published on Github.com where it is accessible by the public.

How can I learn more about Signal K?

Signal K's has a current website  ( http://signalk.org ) and a new more far more comprehensive site is under construction and will be completed in the next few weeks. 

The Project has an active public forum:  https://groups.google.com/forum/#!forum/signalk 

The Signal K software repository is at:  https://github.com/signalk

For specific technical inquires about Signal K's capabilities you can contact the developer group directly by email:  info@signalk.org

For media and general  information about Signal K contact Bill Bishop at: ipsbishop@aol.com

9 comments:

  1. Great introduction - the best I've seen. Gentlemen, start your Raspberry Pi's...

    ReplyDelete
  2. "A typical Signal K system will requires a NMEA certified gateway that outputs Signal K, a single board Linux-based processor with Ethernet, USB and serial ports, SD card reader, and a WiFi router for internet access. The hardware is estimated to cost in the neighborhood of $500. A Signal K system also acts as the boats WiFi hotspot."

    $35 Raspberry Pi
    $10 SD card
    $35 Router
    $420 NMEA CERTIFIED GATEWAY

    What's wrong with this equation ?

    ReplyDelete
  3. JM, thanks for the comment. The gateway won't cost anywhere near $420. The number is just a general estimate. Every boat is different from large yacht to small day sailor. I bought the case for the Pi. Marine grade outlets to power the Pi, router and POI injector are being installed. There is a Rouge Wave access point and antenna to improve WiFi reception/transmission, with a SS mount on the hardtop. Wiring to power the stuff, a N2K cable to feed the gateway, a tee to support it, make it look attractive and so on. It just depends on what your needs are, the environment it will be used in, and your budget.

    ReplyDelete
  4. Hi Bill

    Nice writeup. A couple clarifying technical questions...

    1. Firewall. Do you mean this term generically or specifically as a rules based security function?

    2. "The first is a generic software translation module that takes NMEA 2000 PGN's, parses the PGN's into its individual data elements inside the NMEA certified gateway, and sends the data to the separate Signal K server. This software requires access to the NMEA standards to be functional, and will be provided free of charge to the NMEA community."

    Does this mean the SignalK team has been granted access to the 2K specs?

    And "provided free" to any NMEA member or just licensees of the 2K specs?

    ReplyDelete
  5. JM, thanks for the comment. The gateway won't cost anywhere near $420. The number is just a general estimate. Every boat is different from large yacht to small day sailor. I bought the case for the Pi. Marine grade outlets to power the Pi, router and POI injector are being installed. There is a Rouge Wave access point and antenna to improve WiFi reception/transmission, with a SS mount on the hardtop. Wiring to power the stuff, a N2K cable to feed the gateway, a tee to support it, make it look attractive and so on. It just depends on what your needs are, the environment it will be used in, and your budget.

    ReplyDelete
  6. There are at least 2 very reasonable interfaces for generic connectivity:

    N2K-to-Serial:
    http://www.blueheronmarine.com/actisense-ngt-1-nmea-2000-serial-interface/

    N2K-to-USB:
    http://www.blueheronmarine.com/actisense-ngt-1-usb-nmea-2000-usb-interface/

    Those are official gateways costing under $200 quantity 1. It's quite likely that there will be opensource code that will be available to do the connectivity as well. It can't be sold and it will be somewhat risky to use, but it'll be out there.

    ReplyDelete
  7. Nice write-up, thanks. Is there any chance hardware manufacturers will adopt Signal K as a protocol instead of N2k? Not a fan of proprietary protocols, nor the cost they add to every device that uses them (like the $199 adapter mentioned above, which is likely only $100 or less in hardware.)

    ReplyDelete
  8. Hi David, as time goes by there will be some development of sensors that speak Signal K, and Signal K contemplates this to a degree. The issue is a matter of the number of devices and how you get the data to the server. One sure, two sure, but really much more than that and a network starts to become becomes necessary. The server design does expect and will support via devices such as Arduino's and the ilk to provide specialty sensor inputs. I think that over time there will be more gateway manufacturers and that competition will drive the prices down. Digital Yacht has already pre-sold over $100,000 worth of N2K to Signal K gateways.

    ReplyDelete
  9. Got my iKommunicate gateway from Digital Yachts, and it's up and running smoothly. Wrote it up on my site at https://www.sailbits.com/blog/2016/07/ikommunicate-unboxing-install/ including pictures, screen shots, and more. Can't wait for more apps for SignalK!

    ReplyDelete