Seatalk and the ST2000+ autopilot

I’ve been looking at interfacing my Raymarine ST2000+ tiller auto pilot with the other sensors onboard.

The perceived upside of this is that it will steer based on wind angle instead of compass angle. This is nice on longer distance sailing since you don’t have to adjust the sails all the time.

Of course I don’t do much distance sailing, so it may just be an excuse to go digging into another arcane marine electronics protocol. Would be nice to have it working, though!

The Raymarine autopilots are about as old as the Internet is. Seriously. They came in different forms under the names Autohelm, Raytheon and Raymarine, and seem to have looked the same since the seventies.

Interface wise, it can read selected NMEA0183 messages and it also has a Seatalk bus. Course updates and track can be received over NMEA0183, for remote controlling it you need Seatalk.

Seatalk, or Seatalk1 since there is a later incompatible one called Seatalk NG, is a one-wire
bus with binary messaging. The messages (some) and the electrical characteristics have for a long time been reverse engineered and can be found on

Over the years there have been many small electronics projects to create protocol bridges.
Some of them can only read, some can only write, they only support a subset of the messages and they all have their own bugs. Firmware updates are done through a PIC or Atmel design tool that nobody has. After a few years the author loses interest and they disappear or go out of stock. I’m generalising here, but I think there is a grain of truth to it.

How about we take the following practical approach; 1) get the electrical interfacing documented in updated reference designs, and 2) do all of the message translation in software on a real computer.

Laptops are cheap, and they can easily run on battery for the 2-4 hours a normal can race lasts. Since you have the code, any bug that really annoys you is possible to fix, and over time the shared code base should mature nicely.

When it comes to running it without a laptop for cruising or distance races, a generic small x86 or arm computer can be bought cheaply and can run on 90mA (Intel Edison) to 200mA (older Raspberry Pi). This is in the region of the power usage of a navigational light, so most sailing boats should have the power budget for it.

Getting back to the auto pilot, one of the other sweet possibilities of having direct Seatalk bus access is that the autopilot can (I hope) be configured remotely. See the “88 03” message type on Knauf’s site. This means that gain and wind response can be set from a reasonable user interface on the laptop! I’m pretty good with technical gadgets, but I always have to look up in the manual how to adjust gain if its been more than a month since last time.

You can also send key presses directly over the bus, so when it rains you can change course without getting wet in the rain. From here the path to remote control from your apple/android/pebble watch is pretty short, if you’re into that.

All in all there are significant cool stuff to be had. Now we just need the Seatalk USB transciever design that does collision management, line coding (9 bits to the byte!) and data coding.


This entry was posted in sailing and tagged , , . Bookmark the permalink.

4 Responses to Seatalk and the ST2000+ autopilot

  1. Martin says:

    Hi Lasse, thanks for sharing this. I was wondering- have you gotten any results? I now have an old ST2000+ to play with and would like to try communicating with it.. Love to learn more!

    • Hi Martin.

      Haha, I’m afraid I haven’t made much tangible progress.

      I ran into data corruption issues when reading/writing 9 bit serial on the atmega uarts, and got stuck there. I think it is a software issue, most likely my arduino core changes, but I can’t say for sure. I was hoping someone would just make a 9bit serial package with write support that worked out of the box. If you know of anything like that, I’d love to hear about it.


  2. michael hines says:

    There’s a library for aruduino now that handles 9 bit serial.

    Did you make any progress on the hardware side? I’ve been having trouble troubleshooting the write side out to the autopilot. I have the knauf circut and from RS232 to TTL on the arduino, but can’t seem to get the autopilot to respond. And since it is black box, and don”t know how to troubleshoot.

    • Hi.

      I’ve also read that there are now 9bit serial interfaces that work nicely on Arduino, but I haven’t had time/energy to work on this for a while.

      Perhaps you can find a friend/hackerspace with a digital oscilloscope, and see what you put out on the wire? Should help narrow things down.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s