Seatalk-1 to Openplotter

With support for Seatalk 1 in SignalK interfacing Seatalk 1 to SignalK is now easy. A simple optocoupler connected to a GPIO pin (4 is default) on the RPi and a few simple steps in SignalK will provide all the data from Seatalk 1. This feature and how to connect is discussed in the Openmarine forum. This essentially closes the issue with converting Seatalk 1 to OpenPlotter.

Below is shown how to connect the optocoupler and the SignalK settings (the Invert should be on) and initial testing on board.

Older versions and issues.

A 3 wire cable connect from the cockpit to the converter and is connected to the Raspberry Pi running OpenPlotter and OpenCPN. Quite a simple setup, Seatalk 1 is simple to set up, three wires red for +12V, Black for GND/0V and Yellow for signal. The Seatalk is coded in another way than NMEA (se below) and a small computer is needed to translate from Seatalk to NMEA 183. In addition the protocol is not published and reverse engineering is needed, luckily it's already done (see below).

Having connected all up and drawn a cable you might be rewarded by the displayed data on the dashboard of OpenCPN. See the photo of the OpenCPN on the right below. For me the wind speed and direction was most important. Going out to read the instruments in the cold, show, rain etc when laying at anchor is not pleasant. The added benefit of having the vital data available is a very nice bonus, depth when someone else is at the helm is also a benefit.

Going wireless ?

Drawing a lot of cables around the boat is a pest and it's messy, regardless of how you put them into cable organizers and tubes and label them thorough.

I drawing cables, should I have gone wifi ? - speed is 38400 bits/sec (from my converter), but it should be possible for a ESP32. It should be simple to ask OpenPlotter / OpenCPN to accept these NMEA messages over TCP or UDP, maybe even better directly to SignalK (simulation works).

A small single transistor interface to translate the 12V signal level to level acceptable for ESP32 and then writing a program for the ESP32 to translate from Seatalk to NMEA and subsequently send the sentences to OpenCPN. Could be something along the lines of the Vela, see below. Wireless not only get away with the cables it also provide perfect galvanic isolation.

Getting Seatalk 1 data onto the OpenCPN dashboard

Displaying Seatalk data on the OpenCPN dashboard is quite useful, hence some conversion is needed as Seatalk is not NMEA 183.

Finding a simple small and affordable converter fram Seatalk 1 to NMEA with USB interface for simple integration to the Raspberry Pi and Openplotter was not trivial, most of them are quite costly. After some time I came across an Australian supplier, SEAYAK. I am using this little converter which provide NMEA sentences for OpenPlotter. It would be nice to make one using Arduino nano or something, in the mean time I'll use a commercial one. In addition isolation is very important, the Seatalk 1 signal carry both +12V and 0V/GND which need to be isolated from the computer system. A USB isolator is put in between the ST1-to-NMEA USB converter.

Seatalk 1 to SignalK over wifi

I have initiated this project. So far I have managed to get serial 9-bit support on the ESP8266 module, NodeMCU 12-E. I have tested the wifi connection sending just dummy data to the SignalK server at port 55557 on the OpenPlotter computer.

The software and some more details are at github.


It's possible to make this using Ardunio, the cost would be 1/10th and the satisfaction of making something yourself. This is an example using a single 12V to 5V signal convertion and subsequently an Arduino Nano to do the rest, some surfing will provide Arduino code and essential all you need to decode the Seatalk Hex values into NMEA, and hence using the USB port to connect to the Raspberry. Another commercial wifi based solution is this one from Vela. The Seatalk protocol is decoded by Thomas Knauf, a nice piece of work.