Sail-by-wire

From wiki.bastelbude.grade.de
Revision as of 09:28, 3 January 2021 by Kannix (talk | contribs) (ADC)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

aim

retrofit propulsion (engine, gearbox) and steering (rudder) with controller based on Sean's work

hardware

  • ESP32 fully featured Microcontroller (< EUR 10,-)
  • IBT-2 BTS7960 based Double-H-Bridge (< EUR 10,-)
  • sensors:
    • angular:
      • 10k Ohm linear pot (as suggested by Sean)
      • off-the-shelf rudder angle sensor 0-190 Ohm
      • rotary encoder
    • position switches:
      • end stop
      • forward/ neutral / reverse
    • current sense:
      • BTS7960 feature
    • over temprature:
      • BTS7960 feature
    • voltage sense
  • power-drive:
    • windshield wiper motor
    • hydraulic pump
    • linear drive
    • ...

commercial products

  • ZF Pod Drives
    • DeviceNet ?
  • Volvo† IPS und Volvo Aquamatic
    • J1939 ?
  • Teleflex Optimus 360 Systems
    • DeviceNet ?
  • Yanmar VC10 und JC10 (Joystick) Control Systeme)
    • DebiceNet ?

toDo

  • explore communication protocols

communication

channels

remote control via

physical layer

  • on-device via web-server
  • wifi
  • ethernet
  • can-bus
    • nmea2000
    • ...
  • serial
    • Sean's pyPilot
  • bluetooth
  • infrared
  • radio 10kHz

protocol layer

[...] = proposed feature

signalK

  • rudder
    • control
      • /vessels/<RegExp>/steering/rudderAngleTarget
    • feedback
      • /vessels/<RegExp>/steering/rudderAngle
  • autopilot
    • control
      • /vessels/<RegExp>/steering/autopilot/target/windAngleApparent
      • /vessels/<RegExp>/steering/autopilot/target/headingTrue
      • /vessels/<RegExp>/steering/autopilot/target/headingMagnetic
    • feedback
      • /vessels/<RegExp>/steering/autopilot/state
        • [overTemp]
        • [overCurrent]
        • [underVoltage]
        • ....
      • /vessels/<RegExp>/steering/autopilot/mode
      • /vessels/<RegExp>/steering/autopilot/deadZone
      • /vessels/<RegExp>/steering/autopilot/backlash
      • /vessels/<RegExp>/steering/autopilot/gain
      • /vessels/<RegExp>/steering/autopilot/maxDriveCurrent
      • ...
  • gear
    • control
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear[Target]
    • feedback
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/[controllerState]
        • ...
  • engine
    • control
      • /vessels/<RegExp>/propulsion/<RegExp>/revolutions[Target]
      • /vessels/<RegExp>/propulsion/<RegExp>/engineLoad[Target]
    • feedback
      • /vessels/<RegExp>/propulsion/<RegExp>/revolutions
      • /vessels/<RegExp>/propulsion/<RegExp>/engineLoad
      • /vessels/<RegExp>/propulsion/<RegExp>/[controllerState]
        • ...

nmea2000

  • rudder
    • control
      • pgn 127237 Heading/Track Control
    • feedback
      • pgn 127245 Rudder
  • gear
    • control
      • NONE
    • feedback
      • pgn 127493 Transmission Parameters, Dynamic
  • engine
    • control
      • NONE
    • feedback
      • pgn 127488 Engine Parameters, Rapid Update
      • pgn 127489 Engine Parameters, Dynamic

Sean's serial

(just a quick shot, details pending ...)

  • rudder
    • rudder_angle_sense
    • port_endstop_pin
    • starboard_endstop_pin
    • controller_temperature
    • motor_temperature
    • voltage_sense
    • shunt_sense_pin
    • low_current_pin
    • clutch_pin
    • led_pin
    • pwm_style_pin
    • ...

roadmap

angular measurement

  • 3-wire 10k Ohm linear pot / 2-wire 190 Ohm stock rudder-angle-sensor

schematics

  • ...

code

  • ...

position switch readout

  • endstops / forward / neutral / reverse

schematics

  • ...

code

  • ...

battery voltage measurement

  • 12V/ 24V

schematics

  • ...

code

  • ...

BTS7960 fault reading

  • ...

schematics

  • ...

code

  • ...

IBT-2 PWM control

  • ...

schematics

  • ...

code

  • ...

ESP32 web-interface

  • gauges
  • control-buttons

code

  • ...

discussion

see also

IBT-2

ADC

protocol