Sail-by-wire
Contents
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
- angular:
- 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
conceptual layer
remote control via
- autopilot
- pyPilot
- Raymarine EV-2 https://www.raymarine.de/view/index-id=7686.html
- Garmin Steer-by-wire
- remote controller
- Android, iOS, Windows, Linux, ...
- buttons, joysticks, levers, ...
physical layer
- on-device via web-server
- wifi
- ethernet
- can-bus
- nmea2000
- ...
- serial
- Sean's pyPilot
- bluetooth
- infrared
- radio 10kHz
protocol layer
[...] = porposed feature
signalK
- rudder
- control
- /vessels/<RegExp>/steering/rudderAngleTarget
- feedback
- /vessels/<RegExp>/steering/rudderAngle
- /vessels/<RegExp>/steering/[controllerState]
- [overTemp]
- [overCurrent]
- [underVoltage]
- ....
- control
- gear
- control
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear[Target]
- feedback
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/[controllerState]
- ...
- control
- 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]
- ...
- control
nmea2000
- rudder
- control
- pgn 127237 Heading/Track Control
- feedback
- pgn 127245 Rudder
- control
- gear
- control
- NONE
- feedback
- pgn 127493 Transmission Parameters, Dynamic
- control
- engine
- control
- NONE
- feedback
- pgn 127488 Engine Parameters, Rapid Update
- pgn 127489 Engine Parameters, Dynamic
- control
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
- ...
discussion
- https://www.segeln-forum.de/board194-boot-technik/board35-elektrik-und-elektronik/board195-open-boat-projects-org/75477-sail-by-wire-esp32-und-ibt-2/ (german)
- https://signalk-dev.slack.com/archives/C02EU366Y/p1586759016008500 (english)
- https://www.facebook.com/groups/1666364153609573/permalink/2634203136825665/ (english)
see also
- https://github.com/custom-build-robots/Motor-Driver-BTS7960B-H-Bridge (Raspi)
- https://pypilot.org/store/index.php?rt=product/product&path=72&product_id=131 (Arduino)
- https://github.com/pypilot/pypilot/tree/master/arduino/motor (Arduino)
- https://electronics.stackexchange.com/questions/458722/how-to-get-right-voltage-output-with-bts7960b-h-bridge (esp32)
- http://wiki.ardumower.de/index.php?title=Ardumower_Gasoline (Arduino)
- http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/ (Arduino)
- https://forum.allaboutcircuits.com/threads/how-to-connect-h-bridge-for-its-protection-features.141724/ (current sense)
- https://www.arduinoforum.de/arduino-Thread-Messen-der-eigenen-Betriebsspannung-mit-dem-Arduino
- https://esp32.com/viewtopic.php?f=2&t=4354
- https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html