Skip to content
 
 

Repository files navigation

signalk-to-stalk

CI npm

Signal K Node server plugin and read-only WebApp that converts selected Signal K navigation data to SeaTalk1 datagrams wrapped in $STALK NMEA 0183-style sentences. Version 2.1.0 is the stable release for the current architecture.

The implementation follows Signal K SI-unit conventions and Thomas Knauf's SeaTalk Technical Reference.

Features

  • Direct datagram conversions for depth, apparent wind, water speed, trip/total logs, water temperature, position, speed/course over ground, UTC time/date, GNSS quality, and magnetic variation.
  • Passive target waypoint guidance using fresh, coherent mode-5 0x85 calculations and one-time 0x82 waypoint announcements/synchronization.
  • SeaTalk display-unit synchronization using command 0x24.
  • SeaTalk display-light synchronization using command 0x30.
  • Read-only WebApp monitor with runtime status, counters, recent activity, speed/heading estimates, and practical wind calibration advice.

Documentation

Supported conversions

Knauf coverage summary

Current status Knauf commands Policy
Implemented direct conversion 0x10, 0x11, 0x500x54, 0x56, 0x57, 0x99 Independent, validated Signal K data converted at the SeaTalk boundary
Implemented managed feature 0x24, 0x30, 0x82, 0x85 Stateful units, lights, and passive waypoint guidance
Not implemented All other commands listed by Knauf Deferred, redundant, device-owned, insufficiently defined, or outside the safety boundary

The complete Knauf matrix lists every command in revision 3.22 and records the specific reason for implementing or excluding it.

Implemented commands

SeaTalk command Signal K source Meaning
0x10 environment.wind.angleApparent Apparent wind angle
0x11 environment.wind.speedApparent Apparent wind speed
0x50 navigation.position.latitude Latitude
0x51 navigation.position.longitude Longitude
0x52 navigation.speedOverGround Speed over ground
0x53 navigation.courseOverGroundTrue, navigation.magneticVariation Magnetic COG
0x54 navigation.datetime UTC time
0x56 navigation.datetime UTC date
0x57 navigation.gnss.satellites, navigation.gnss.horizontalDilution GNSS satellites and HDOP
0x82 navigation.course.nextPoint and waypoint metadata Four-character target waypoint identifier
0x85 Course calculations or local position geometry XTE, bearing and distance to target
0x99 navigation.magneticVariation Compass variation (whole degrees)

Legacy navigation.courseGreatCircle.* and navigation.courseRhumbline.* paths are accepted as fallbacks for waypoint guidance. Fresh Course API calculations take priority; basic Freeboard direct-to guidance can fall back to vessel and target positions. New targets are emitted coherently as 0x85 followed by 0x82.

Signal K angles are radians, speed is metres per second, distances are metres, and timestamps are UTC-capable ISO-8601 values.

Safety Boundary

Commands 0x82 and 0x85 provide passive route guidance to compatible SeaTalk displays and autopilots. This plugin does not transmit SeaTalk autopilot key commands, engage Track or Auto mode, acknowledge waypoint advances, or alter steering state.

A helmsperson must verify route, bearing, cross-track error, waypoint transitions, and the behavior of the connected Raymarine equipment before relying on the output.

Output events

Every generated sentence is emitted on:

  • stalkout — aggregate output event;
  • stalkout:50, stalkout:82, stalkout:85, etc. — per-command events.

Sentences include a checksum and CR/LF.

WebApp Monitor

After installation and server restart, open Signal K to SeaTalk Monitor from the Signal K WebApps page.

The monitor shows configured features, runtime state, live outgoing datagrams, suppressions, errors, per-command counters, waypoint state, synchronized units, display-light state, speed and heading estimates, and wind calibration guidance. It is read-only.

The WebApps dashboard icon is supplied as a 72×72 PNG through Signal K's signalk.appIcon metadata; the scalable icon remains available to the browser manifest.

Development

npm install
npm run check
npm test

GitHub Actions runs these checks and verifies the npm package contents on pushes and pull requests. Publishing is handled by the npm release workflow after a GitHub release is published and its v<version> tag matches package.json. See Publishing to npm for setup and release details.

Contributors

References

License

Apache-2.0

About

Signal K Node server plugin to convert Signal K to STALK (SeaTalk1 over NMEA 0183). See the code for a list of supported datgrams.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages