| title | Installation |
|---|---|
| layout | rsidebar |
| installation | active |
| sidebar | installation-sb.html |
| description | Follow these instructions to get started with Signal K. Please don't hesitate to ask the community for help if you run in to trouble. |
If you have questions or run in to any issues following these instructions, please be sure to ask on the Signal K mailing list (signalk@googlegroups.com) and someone in the community will be sure to help you out.
While it is pretty likely that all of the Signal K software will run on Windows and OS X just as well as Linux, we have really only tested on Linux and the instructions below will assume that you are working on a Linux platform as well.
If you just want to see how Signal K works and aren't interested in connecting to real hardware you can skip down to installing the server, otherwise continue on to learn how to interface your computer with your instrument system.
NMEA 0183 is specified as an RS-422 simplex network, however RS-232 (standard serial ports) work just as well for connecting to an NMEA 0183 network. It is recommended that you use an opto-isolated interface between your computer and the 0183 network to avoid damanging either your computer or instruments. A good option for this is the Actisense USG-1 as it provides 1500V of isolation to protect your equipment and proper differential signalling.
The USG-1 should be recognized as a serial device when it is connected to your computer and you should see a device
called /dev/ttyUSB0 (the number could be different if there are multiple USB-to-serial adapters connected). Linux
assigns these device names automatically when the device is connected, so it could change. If you want to ensure that
the device always has the same name, you will need to write a UDEV rule to specify an alias. See creating UDEV
rules for details.
To verify that you have a working connection, you can use picocom or another terminal emulator to see if you are receiving data. The default baud rate for NMEA 0183 is 4800.
$ picocom -b 4800 /dev/ttyUSB0
You should see NMEA 0183 sentences scrolling off the screen. To exit picocom press Ctrl-a followed by Ctrl-x.
For NMEA 2000, you will need a NMEA 2000 gateway device such as the Actisense NGT-1 which connects your NMEA 2000 bus to your server's USB port. Much like the USG-1, Linux should recognize the NGT-1 as a serial device and create the appropriate entry in /dev. However some distributions do not do this. You will need to create a UDEV rule and a simple startup script to get this device working. See creating UDEV rules for details.
While Signal K data can be sent over any digital medium, it is designed primarily for Ethernet networks, so it makes sense to have a network on your boat, either wired or wireless. It is possible to set up your Linux computer as a WiFi access point, but that is outside the scope of this article. Here is an example of configuring a Raspberry Pi as a WiFi access point.
If you already have your instrument data available on your boat's WiFi please drop us a note on the mailing list – we are always looking for new interfaces to support.
There are two options currently for serving Signal K data. The first is signalk-server-node and the second is signalk-server-java. All of the examples below are written assuming you are using Debian or a derivatve (Ubuntu, Raspbian, etc). If you are using a different Linux distribution, adjust the commands accordingly.
First, the prerequisites.
$ sudo apt-get update
$ sudo apt-get install curl git build-essential
$ curl -sL https://deb.nodesource.com/setup | sudo bash -
$ sudo apt-get install nodejs
See this blog post by nodesource for details about the above.
Now that those are installed, you will need the Signal K server itself.
$ git clone https://github.com/SignalK/signalk-server-node.git
$ cd signalk-server-node
$ npm install
$ bin/nmea-from-file
This will start the server with a sample configuration file. See the README for more details.
All of these user interfaces can be installed with bower to the Node SignalK server. Run bower in the root directory
of your Node SignalK server:
bower install https://github.com/SignalK/instrumentpanel.git
bower install https://github.com/SignalK/sailgauge.git
bower install https://github.com/SignalK/maptracker.git
bower install https://github.com/SignalK/simplegauges.git
After the installation you can access these with urls like http://localhost:3000/instrumentpanel. Your SignalK server must be running to serve the html files and provide the data stream.