npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

signalk-ac42-autopilot

v1.1.0

Published

Control a Simrad AC42 autopilot over NMEA 2000 from SignalK, with a clean mobile web app (heading & wind steering, live compass, rudder and wind data).

Readme

AC42 Pilot — SignalK Plugin

Control a Simrad AC42 autopilot (and likely other Simrad/B&G NAC-2 / NAC-3 / AC12 calculators) directly over NMEA 2000, from a mobile-friendly web app.

Built for real sailing conditions: big buttons, wet fingers, glanceable at a distance.

screenshot placeholder

Features

  • Auto (heading hold), Wind (apparent wind angle hold), Standby
  • Course corrections ±1° / ±10°
  • Tack, with a long-press confirmation to avoid accidental triggers
  • NFU (non-follow-up / direct helm) in Standby
  • Animated wind rose
  • 1-hour TWD history strip
  • SOG / COG / TWS / AWS / TWA instrument tiles

Compatibility

  • Confirmed: Simrad AC42
  • Likely (untested — feedback welcome): NAC-2, NAC-3, AC12, and other Simrad/B&G NMEA2000 autopilot computers using the same "Simnet" command set
  • Requires SignalK with NMEA2000 access over SocketCAN (can0), plus the canboat tools (candump, candump2analyzer, analyzer) and can-utils (cansend) installed on the host. This is standard on OpenPlotter.

If you run this on a different autopilot brand/model, PGN 130850 commands will simply be ignored — it's harmless, but it won't do anything either. Please open an issue with your results either way.

How it works

The AC42 only accepts NMEA2000 command frames (PGN 130850, "Simnet: AP Command") when they're sent from the CAN source address of a currently active B&G controller (a physical MFD or autopilot head that's emitting the PGN 65305 heartbeat). Commands sent from an arbitrary or fixed address are silently ignored.

This plugin detects the currently active controller address on the bus and emits commands "on its behalf" — the real controller head keeps working normally in parallel, nothing is spoofed or disabled. This detection is fully automatic and adapts to your boat's setup (see Configuration below).

Installation

Via SignalK App Store (recommended): in the SignalK admin UI, go to the Appstore tab and search for AC42 Pilot.

Via npm:

cd ~/.signalk
npm install signalk-ac42-autopilot

Then restart SignalK.

Configuration

All settings are optional — the plugin auto-detects everything needed on a standard setup.

| Option | Default | Description | |---|---|---| | canInterface | can0 | SocketCAN interface name | | apAddress | auto-detected | NMEA2000 source address of the autopilot computer. Override only if auto-detection picks the wrong device. | | windDirectionSource | auto-detected | SignalK source for True Wind Direction shown in the app. Falls back to any available source if the preferred one is silent for >8s. | | fixedControllerAddress | auto-detected | Force a specific active-controller address instead of dynamic detection. | | staleMs | — | Timeout before considering a source "stale" for fallback purposes. |

Security / Disclaimer

  • This plugin sends real autopilot commands over your NMEA2000 bus. Test at the dock before relying on it underway.
  • It does not replace proper watchkeeping. You remain responsible for the safe operation of your vessel at all times.
  • If SignalK security is enabled, the API and web app require a logged-in session.
  • Use at your own risk. See LICENSE for the full disclaimer of warranty.

Known limitations

  • Nav mode (route following) is not implemented.
  • Compatibility beyond the AC42 is unconfirmed — feedback from other Simrad/B&G setups welcome.
  • TWD history is client-side only (resets on page reload, no server-side persistence).
  • Tack: heading target flips with the tack; expect a small rounding gap (±1°) vs. the physical pilot.

Credits

Protocol reverse-engineered from scratch by capturing and decoding NMEA2000 traffic on a real boat. Thanks to the canboat and SignalK projects and communities.

License

Apache-2.0 — see LICENSE.