J/92s

= Autopilot research using an open source CAN bus =

Goulven Guillou (LabSTICC) started working on sailing competition autopilots for his PhD thesis (PDF, in French language). He is now porting his algorithms to a J/92s sailing yacht (French language). The open-source character of Splashelec electronics makes it a perfect candidate for this research project.

In a first stage, a series of CANinterfacers will constitute a modular and very flexible CAN bus system to concentrate sensor data from existing marine electronics. We will add later power electronics to control the steering ram, in order to complete the hardware necessary for an autopilot.

For now, we realized 2 optocoupled NMEA183 inputs, one optocoupled input interface for a proprietary bus (SeaTalk (TM)), and a box containing an UM6 orientation sensor.

The NMEA inputs use an optocoupling interface PCB, from which a TTL level wire goes to the RX pin of the CANinterfacer (Serial1). An Arduino sketch can read the NMEA data and send it over the CAN bus.

All the boxes have been waterproofed using IP68 cable glands.

The interface to read from the proprietary bus (SeaTalk) uses the same optocoupled NMEA183 input PCB, with an additional 3.3 kOhm resistor to limit the current draw. The A+ entry is connected to the red (12V) SeaTalk line, the B- entry to the yellow data line, the black wire stays unconnected. The Arduino sketch can read from Serial1 to get raw SeaTalk data.

François Gautrais has developped code to parse SeaTalk data, his code is available at Github.

One other box contains a CANinterfacer and the UM6 orientation sensor, which is connected to RX and TX lines (Serial1).

And finally, the host interface connects RX and TX to a cable containing a FTDI USB interface (read and write Serial1 from the Arduino sketch). We decided to use the external FTDI cable as an alternative connection to USB, because it is difficult to connect to the existing USB port with the limited space in the box, and because we feel that the FTDI connection is more reliable than Arduino Leonardo's CAN emulation through the AtMega32U4 micro-controller. The left free USB port can so still serve for sketch programming and debugging, while the case is not closed and this is not done through the CAN bus.