AutoTrackRaymarine Evo

Purpose

Will provide remote control of a Raymarine Evolution autopilot from OpenCPN and route following for complex routes from start to finish, but requires Actisense NGT-1 to connect to the Raymarine Raytalk-ng network, which is an nmea 2000 network with proprietary pgn’s

Operation from the Evo

  1. Make your route in OpenCPN.

  2. Activate it. Cast off.

  3. Put the ship on course.

  4. Press Auto on the Raymarine P70 pilot head.

  5. Pilot takes over as usual.

  6. Press auto again.

  7. Plugin takes control of the autopilot and will steer your ship along the activated route to your destination, and follows the route with a margin (XTE) normally less than 2 meters, independent of cross currents and compass errors.

  8. Caution: Only thing to do is keep a lookout for obstacles and traffic.

  9. As soon as you press Standby the autopilot returns to standby and you can steer manually again.

  10. When you press one of the buttons +/- 1 or 10, pilot will switch to regular auto on the last heading plus the button you pressed.

  11. Auto button when pilot is in auto activates the tracking again.

Operation from OpenCPN Plugin Interface

Alternatively this may be handled from the plugin window on the OpenCPN screen, see attached image.

  1. The Auto, Standby and +/- buttons work as usual with your Evolution pilot.

  2. On top of this comes the Tracking button which is enabled only when a route is active.

  3. It will make you follow the active route as described below.

  4. Buttons are large for easy use on touch screens.

To use the plugin you need an Actisense NGT-1 to connect to the Raymarine Raytalk-ng network, which is an nmea 2000 network with lots of proprietary pgn’s. Some of these are decoded to get access to the required functions. The current code (Windows only) can be found at https://github.com/douwefokkema/AutoTrackRaymarine_pi . This version works fine with OpenCPN version 5.2 and later.

If you want to use this plugin, at https://www.dropbox.com/s/kh87usvy1otrrlp/AutoTrackRaymarine_pi-0.0.0-ov50-win32.exe?dl=0 you will find the installer for AutoTrackRaymarine_pi.

Actisense NGT-1

In preferences, set the serial port number of your Actisense NGT-1. You may forget about the rest. For the technically interested, the plugin is using a PID based steering function that calculates corrections on the Bearing to Waypoint (BTW) based on the XTE as received from OpenCPN.

It normally sticks to the route within 2 meters, on heading changes at waypoints it may overshoot a little. With large compass errors or strong cross currents, it may take a minute or so to settle down on the track.

This plugin was inspired by and may use code from autopilot_route_pi, Autopilot-Plugin and Canboat (for controlling the Actisense NGT-1).

Warning: this plugin may take full control of your autopilot. In case of system or software errors be ready to switch the autopilot off (never happened).

Remote Control

This plugin also function as a remote control with the possibility to set the autopilot to Auto/Standby and to adjust the heading set.

The wireless remote control that Raymarine provides is too expensive and rather old fashioned, connected through the old Seatalk with a converter that caused all kinds of problems.

Track Function with Opencpn

The Track function on the autopilot is difficult or impossible to use with OpenCPN. It needs data from O, but whatever you send it, after some time it switches off with a “No data” message. I have the impression it requires a Raymarine display to function.

When the Raymarine track function does work, it behaves very erratically at startup, steering crazy headings for some minutes, then stabilizing on the right track. Further it requires confirmation at every waypoint, which is not practical when you have routes with hundreds of waypoints often very close together.

Programming Details

To do a better job one needs to control the autopilot for at least the following functions: set heading, set auto/standby. I have decoded the communication of the autopilot with the pilot head and deciphered the proprietary pgn’s that perform these functions.

With this I have build a plugin for OpenCPN that provides a remote control for the autopilot and a route following function.

The plugin is using a Actisense NGT-1 for the communication with the NMEA2000 network of Raymarine. The plugin is also monitoring the keystrokes on the Raymarine P70 pilot head and acts on that to activate the route following. When the plugin observes that the auto is pressed while the pilot is on auto already, the plugin activates the route following.

Note: The PGN’s I am using to control the Raymarine pilot are proprietary and don’t have nmea183 equivalents. So I do not see how a SignalK server can do a conversion. Further I have no need of a conversion, my plugin is working and tested during a full sailing season. To follow a route I do not need the full route in the plugin. I just use the DTW, BTW and XTE for the current leg, that is sufficient to steer on track.

Note: Reason I needed an update in O is that the accuracy of the XTE in the nmea183 message lacks precision. I want to steer within meters from the track, limited only by the accuracy provided by the GPS