GithubHelp home page GithubHelp logo

signalk-autopilot's Introduction

signalk-autopilot

signalk-autopilot is composed of 2 modules:

This currently only supports Raymarine NMEA 2000 and Raymarine Seatalk 1 Autopilots, but I'll be adding support for other autopilots as needed.

For Seatalk 1 Autopilots to work, a device that can translate Seatalk datagrams back and forth within an NMEA0183 sentence is required. They may be purchased from Digital Yacht, Shipmodul (Miniplex 3) or gadgetpool. For an example guide, see TinyNMEA-USB.md

Also, signalk-to-nmea0183 plugin with APB (for route control) and MWV (for wind steer) should be enabled.

Current State

The current state of the autopilot can be found at the following paths:

  • steering.autopilot.target.headingMagnetic
  • steering.autopilot.target.windAngleApparent
  • steering.autopilot.state (standby, wind, route, or auto)

API

All messages to plugin are done using PUT requests. These can be done via HTTP or over WebSockets.

Detailed info on PUT and Request/Response

Http:

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/target/headingMagnetic
{
  "value": 1.52,
}

WebSockets:

{
  "context": "vessels.self",
  "requestId": "184743-434373-348483",
  "put": {
    "path": "steering.autopilot.target.headingMagnetic",
    "value": 1.52
  }
}

Advance Waypoint

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/actions/advanceWaypoint
{
  "value": 1,
}

Set Autopilot State

The value can be auto, wind, route, or standby

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/state
{
  "value": "auto",
}

Change Target Heading or Wind Angle

The value is in degrees and is the amount to change. So when in auto at a heading of 180, a value of -10 will change the target heading would be changed to 170

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/actions/adjustHeading
{
  "value": -10,
}

Tack to port or starboard

The value is port or starboard.

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/actions/tack
{
  "value": "port",
}

Target Heading

The value is the heading in radians.

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/target/headingMagnetic
{
  "value": 1.52,
}

Target Wind Angle

The value is the wind angle in radians.

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/target/windAngleApparent
{
  "value": 1.52,
}

signalk-autopilot's People

Contributors

chacal avatar cmotelet avatar dependabot[bot] avatar godind avatar joabakk avatar sbender9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signalk-autopilot's Issues

How to best get started

Wow...first, what you guys have built is simply out of this world! I am stunned. I decided I'd put my spare time and passion for tech and sailing to use and contribute around using a Pi as a chart table instrument package instead of the traditional marine hardware displays. My ultimate goal is operating my autopilot from the cabin and NOT buying a second control head (p70s).

FYI - I am really new to this, all aspects of it: TS, Node, SignalK, git, you name it, so please bare with me a bit.

I've decided on Kip Dashboard; added a theme, added new gauges, and reached out to repo owner and figure out Git what-is/how-to (commit/push/pull and such) as a learning process. Now tackling step 2 - autopilot.

Goal
Build a Kip AP GUI widget. Keep it simple.

Questions

  1. How do I get started on the right track and best leverage/fork the incredible work you have done?
  2. I see sbender9/signalk-raymarine-autopilot and SignalK/signalk-autopilot. Which one to use?
  3. Can I simply do a spin off of the UI Module and not touch the back-end API or, create a new repo and import the back-end API?
  4. What's the best way to simulate SignalK n2k autopilot for development purposes? I found a few SignalK n2k stream files that people shared. Do you recommend an approach? Note Kip connects to the Signalk demo site stream. It's super practical but I don't see AP data on this stream.

Advice on the best approach will be much appreciated!

Support for Raymarine Seatalk Autopilots

Hi, I have my Raymarine (Autohelm )ST7000 autopilot connected to SignalK with NMEA2000 through a Seatalk/SeatalkNG converter.

I believe the autopilots Seatalk messages is translated to NMEA2000 using program 126720. Is this the same program used to communicate with Raymarine SeatalkNG autopilots?

/Magnus

Auto/Stby not working

Hello,

I try to use the plugin with a Raymarine SPX 30, NMEA2000 compatible ( I choose NMEA2000 in the plugin's config).
When I push AUTO, or STBY, or WIND or TRACK. Nothing happens but I can see the heading showed by the AP.

If I put the AP into AUTO (directly with the autopilot display) I'm able to change the heading, or wind angle with the pugin (using +1, +10, ...)

What should I try to make it fully work?

Nicolas

PUT 405: not supported for steering.autopilot.state

Hi there!
I connect with success my raymarine Autohelm st4000+ to signalk and i can see the status in the api and via socket. I don't understand why, however, when I try to do a PUT (with authenticated user) I get this answer:

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/state


{
"value": "auto"
}


I receive a 405:
{
"state": "COMPLETED",
"requestId": "622a7e3b-e263-4581-a552-3b55bf1fb80a",
"statusCode": 405,
"message": "PUT not supported for steering.autopilot.state",
"href": "/signalk/v1/requests/622a7e3b-e263-4581-a552-3b55bf1fb80a",
"user": "1234-45653-3434533"
}


Thank you very much for all the amazing work that you are doing!
T

COdeLock

Hi, I've installed the module on my Raspberry, but now when I switch on my Autopilot St6001+, it ask me the CODE to enter, I've tried 0000 1234 ecc but nothing....
Anyone can help me?
Is there a code to unlock the Autopilot or reset it?
Many thanks.

Simrad TP-32

I'm using a B&G Vulcan, Simrad TP-32 and SignalK to the same N2K network. I'm able to remotely adjust the TP32 from the B&G Vulcan via the N2K network, so there is N2K support on the TP32.

Would you be interested in adding Simrad TP-22/32 support to your autopilot module? And if so, how can I help?

Raymarine Autopilot stNG not working

Hi All,

I have connected an Shipmodul-3-N2K connected through usb to signalK. This part is working fine. However if i connect the evo1 compss and a n2k raymarine autopilot the autopilot is not detected to the gui. How can i troubleshoot this or do i need extra components like an i70?

thanks in advance,
Patrick

questions about specification

Set Autopilot State
The value can be auto, wind, route, or standby

There needs to be other states possible

PUT http://localhost:3000/signalk/v1/api/vessels/self/steering/autopilot/actions/adjustHeading
I suggest you don't do incremental heading changes. It is better the commanded heading set absolute.

Target Heading
Target Wind Angle

These are redundant from above.

pypilot already defines everything needed in a tree form you could use the same paths and it would be compatible already with the smallest translation layer, but maybe Is the intention for this only to work with n2k autopilots?

ST1 via ShipModul, GUI shows "No Pilot" but AP does go into 'Auto'

Situation:
RaspBerry with SignalK -- WiFi -- ShipModul -- ST1 to RayMarine ST7000+

Problem:
The buttons in the GUI do put the AP into 'Auto' and back to 'Standby' but the display only shows "No Pilot". And the four steering-buttons do not work at all.

I noticed the plugin sends $PSMDST which is "Proprietary ShipModul", so I was hoping this plugin supports the ShipModul. That is also what is in the plugin's readme.
Using this $PSMDST is why my AP goes into 'Auto' just fine, but why does the GUI stay on "No Pilot"? I guess it is waiting for the status? How should that sentence look like? Or what else do I need to configure to get the status updated?

Is something wrong with seatalk 1 ap for track follow?

Hello,
I'm not sure, if this is due to my mistake or a kinf of bug.
System: SignalK version 2.3; autopilot plugin :latest version with Raymarine seatalk 1 AP and wilhelmSK and freeboard.
Issue: When I set WSK to auto works, set to wind works, set to standby works, but when set to Track, my autopilot controller st-6001 gives error of :"NO DATA" and alarm beeps, even if with freeboard "navigate to here" point activated and data shown for courseApi and course-provider. ( That is valid for autopilot web application also)

$PSMDST,86,11,03,FC*05 seems a seatalk1 command but not starting with $STALK at serial streams, maybe related?

Any comments, appreciated?

Some log data:

for autopilot plugin:
Oct 31 15:19:15 2023-10-31T12:19:15.773Z @signalk/signalk-autopilot datagram: 86,11,03,FC
Oct 31 15:19:15 ::ffff:10.10.10.16 - - [31/Oct/2023:12:19:15 +0000] "PUT /signalk/v1/api/vessels/self/steering/autopilot/state HTTP/1.1" 200 177 "-" "WilhelmSK/133 CFNetwork/978.0.7 Darwin/18.7.0"
Oct 31 15:19:15 ::ffff:10.10.10.16 - - [31/Oct/2023:12:19:15 +0000] "GET /signalk/v1/api/vessels/self/steering/autopilot/state HTTP/1.1" 200 138 "-" "WilhelmSK/133 CFNetwork/978.0.7 Darwin/18.7.0"
for streams-seria:
Oct 31 15:36:55 2023-10-31T12:36:55.393Z signalk:streams:serialport Writing:$STALK,54,31,93,0C3B
Oct 31 15:36:55 2023-10-31T12:36:55.396Z signalk:streams:serialport Writing:$STALK,56,A1,1F,17
43
Oct 31 15:36:57 2023-10-31T12:36:57.144Z signalk:streams:serialport Writing:$STALK,50,02,28,C1,1615
Oct 31 15:36:57 2023-10-31T12:36:57.146Z signalk:streams:serialport Writing:$STALK,51,02,1D,DC,80
11
Oct 31 15:36:57 2023-10-31T12:36:57.169Z signalk:streams:serialport Writing:$STALK,52,01,00,0047
Oct 31 15:36:57 2023-10-31T12:36:57.654Z signalk:streams:serialport Writing:$STALK,85,06,00,0B,74,00,96,00,69
17
Oct 31 15:36:57 2023-10-31T12:36:57.657Z signalk:streams:serialport Writing:$STALK,85,06,00,0B,74,00,96,00,6917
Oct 31 15:36:57 2023-10-31T12:36:57.659Z signalk:streams:serialport Writing:$STALK,85,06,00,0B,74,00,96,00,69
17
Oct 31 15:36:59 2023-10-31T12:36:59.627Z signalk:streams:serialport Writing:$STALK,86,11,03,FC49
Oct 31 15:36:59 2023-10-31T12:36:59.629Z signalk:streams:serialport Writing:**$PSMDST,86,11,03,FC
05**
Oct 31 15:36:59 ::ffff:10.10.10.16 - - [31/Oct/2023:12:36:59 +0000] "PUT /signalk/v1/api/vessels/self/steering/autopilot/state HTTP/1.1" 200 177 "-" "WilhelmSK/133 CFNetwork/978.0.7 Darwin/18.7.0"
Oct 31 15:36:59 ::ffff:10.10.10.16 - - [31/Oct/2023:12:36:59 +0000] "GET /signalk/v1/api/vessels/self/steering/autopilot/state HTTP/1.1" 200 138 "-" "WilhelmSK/133 CFNetwork/978.0.7 Darwin/18.7.0"l

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.