First of all, a few important notes that you should definitely pay attention to.

Fig .: PyPilot components

Video: PyPilot in action

pyPilot is an open-source autopilot (hard- and software) written by Sean D'Epagnier.

  • automatic sensor calibration
  • steering modes
    • compass
    • GPS
    • apparent wind
    • true wind
  • signalK und nmea0183 communication protocol
  • OpenCPN integration
  • low power consumption

user experience:
IBT-2 based motor controller:

Andreas (german sailing-forum) set up an easy-build, made of these 3 modules:

  • compass and gyroscope
    • MPU9260 / 6500
  • main PCB
    • Raspi Zero W.
    • Arduino Uno (motor controller)
    • double BTS7960B H-bridge IBT-2 (motor-driver)
  • keyboard and display
    • 8 touch-buttons TTP223
    • LCD display JLX12864

All parts (except pcb) are widely available standard components.
Extensive manual (EN and DE)

German sailing-forum thread:

A comprehensive workbook in English can be found here:

Fig .: Test setup

Fig .: Test setup

Fig .: Main board unequipped

Fig .: Main board fitted

Fig .: 9-axis AHRS

Fig .: Control unit with waterproof touch buttons

Fig .: LCD display in the control unit (the sprue nozzle still disturbs a little)

Fig .: Ready-to-install controller unit with power driver, Arduino Uno and Raspberry Zero

Fig .: Controller unit, operating unit, gyro and actuator from pcnautic

Fig .: Built-in PyPilot

If you don't want to set up the PyPilot yourself, you can also go to pcnautic buy a fully assembled and programmed system. The Raspberry Pi and the 9-axis motion sensor are located in the control housing. This therefore requires a fixed installation of the control unit in order to ensure a fixed alignment of the motion sensor to the boat. On the back of the control unit there is a USB socket via which a NMEA0183 bus can be connected via an RS485 / USB adapter. Course data from a plotter, GPS or wind data can then be fed in, which can then be incorporated into the course calculation. SeaTalk and NMEA2000 can also be connected via corresponding USB gateway modules, which can also be obtained from pcnautic.

Fig .: PyPilot components from pcnautic


Fig .: Actuator, operating and controller unit and power driver from pcnautic

Fig .: Rear of the operating and controller unit with USB port and connection for the control cable to the power unit

If you only bought the linear actuator from pcnautic to use it on the PyPilot and have problems with the rudder position sensor, you will find repair instructions from Michael here: Repair instructions rudder position sensor

The rudder angle is internally 10kOhm 10-turn potentiometer used. If it is connected incorrectly, the potentiometer can burn out in the end positions, because then the resistance becomes too small and the high current thermally destroys the potentiometer. You can prevent the whole thing by installing a 1kOhm resistor in series at the center connection, which limits the current. Here's another one  Data sheet for the linear actuator.