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

@meri-imperiumi/signalk-meshtastic

v1.2.3

Published

Signal K plugin for interfacing with the Meshtastic LoRa mesh network

Readme

Signal K integration with Meshtastic

This plugin enables vessels running Signal K to interact with the Meshtastic mesh network. Meshtastic allows radio communications between relatively inexpensive LoRa devices over long distances. The Signal K Meshtastic plugin allows seeing telemetry and receiving alerts from your vessel while ashore. It can also control vessel features like digital switching over text message.

If desired, telemetry and position information can also be shared between multiple Meshtastic-using vessels, making it effectively a "pseudo-AIS" system.

Basic Meshtastic communications

Being a mesh network, there is no need for external telecommunications infrastructure or monthly payments. This means communication between Meshtastic devices onboard and on shore can work just as well in the Finnish Archipelago Sea as in the Tuamotus. In more densely populated places communications may benefit from other Meshtastic users relaying the messages, making it possible to communicate with the boat across a city.

This plugin is designed to work with regular unmodified Meshtastic devices and settings. You can keep your boat and other Meshtastic nodes either in the public channel, or set up your private mesh. With a private channel the location of your devices won't be visible to the public, and communications between them will be encrypted.

Many different kinds of Meshtastic devices are available, from basic microcontroller boards to ready-to-go consumer devices. Some are entirely standalone with screens and keyboards, and others need a smartphone app.

Here is a good introduction to Meshtastic:

Picture this: you’re a family is anchored in a bay. Parents are hiking inland, kids are visiting friends on another boat, and you’re on your boat (“Boat Node”) in the middle. When the kids send, “What’s for dinner?”, Meshtastic uses “flood routing” to make sure it reaches everyone. Here’s how it works:

  • The kids’ node sends the message.
  • Boat Node receives it and decides, “This is new—let’s pass it on!”
  • Boat Node rebroadcasts the message.
  • Parents’ node, unable to hear the kids directly, receives it through Boat Node.

There's also an introduction to signalk-meshtastic on the Signal K website.

Status

In production use on several boats.

Features

  • Connect to a Meshtastic node via HTTP, TCP, or Serial
    • Keep a persistent database of all seen Meshtastic nodes
  • Update Meshtastic node position from Signal K GNSS position
  • Send Signal K alerts as Meshtastic text messages to crew
  • Control Signal K with Meshtastic direct messages:
    • Share Meshtastic waypoints for AIS targets ("Waypoint DH8613")
    • Control digital switching ("Turn decklight on"). Opt-in.
  • Share weather station data from Signal K (wind, temperature, etc) over Meshtastic. Opt-in.
  • Show position-sharing Meshtastic nodes as vessels in Freeboard etc. Opt-in.
    • Associate Meshtastic nodes with other (AIS) vessels based on the Some node name DE <callsign> pattern

Planned features

  • Guard mode to alert if the tracked dinghy moves
  • Keeping a mileage log for the dinghy
  • More text commands over Meshtastic to query vessel status etc

Requirements

  • This plugin running inside your Signal K installation
  • One Meshtastic device running and connected to the same network (typically boat WiFi) as Signal K. This should be an ESP32 based device for WiFi connectivity. If using Serial connection, it can also be a nRF52 device
  • At least one additional Meshtastic device for the crew ashore. Seeed T1000-e is a great option, but any battery-powered Meshtastic device will work. Having a device for each crew member is even better. In busy areas these should be set to CLIENT_MUTE role
  • Optionally, a Meshtastic GPS tracker device installed in the dinghy
  • Optionally, a Meshtastic mast-top repeater for greatly increased communications range

LoRa is line-of-sight communications quite similarly to VHF. Communications range would greatly benefit from a Meshtastic repeater installed high in the mast. Similarly, repeaters on nearby hills or high buildings can be helpful. But just with the boat node and the node carried by crew it should be possible to reach ranges of over 1km. We've been able to communicate at over 8km distances in our early tests in Curacao.

Please note that this plugin connects to the "boat node" as a client, meaning that while Signal K is running, the regular Meshtastic client app won't be able to connect to the same device. It is a good idea to enable remote administration so that you can modify the settings of the device over LoRa.

Getting started

  • Configure your "boat Meshtastic node" device so that it is connected to your boat network
  • If you have a valid Ship Station License, add your callsign to the long name of the node. Typical pattern is <Vessel name> DE <Callsign>, for example "Lille Oe DE DH8613" (yes, you need to use DE also for non-German vessels. This is radio slang for "this is", not a country code)
  • Install and enable this plugin, and set up the connection details (IP address etc)
  • Wait for some minutes for the plugin to see nearby Meshtastic nodes
  • Configure plugin and set appropriate roles for the crew and dinghy tracker Meshtastic devices

Telemetry sent to Meshtastic

If enabled, your "boat node" will transmit the following telemetry to Meshtastic. This enables tracking various important metrics about your boat also remotely. They are visible in the device details in your Meshtastic app:

Metrics used:

  • Temperature (from environment.outside.temperature)
  • Relative humidity (from environment.outside.relativeHumidity)
  • Barometric pressure (from environment.outside.pressure)
  • Wind direction (from environment.wind.directionTrue)
  • Wind speed (median of last ten minutes from environment.wind.speedOverGround)
  • Battery voltage (from electrical.batteries.house.voltage)
  • Battery current (from electrical.batteries.house.current)
  • If anchored, distance to anchor (from navigation.anchor.distanceFromBow)
  • If not anchored, distance is water depth (from environment.depth.belowSurface)

Changes

  • 1.2.3 (2024-10-15)
    • Nodes that haven't been seen in last two days are no longer registered to Signal K data structure
    • Added safeties for various non-numeric telemetry and coordinate values
  • 1.2.2 (2025-10-01)
    • Set "last seen" timestamp of nodes based on packet payloads, not the time they're received
    • Send timestamp with telemetry
    • Fixed issue with persising node-to-vessel matches from DE <callsign>
  • 1.2.1 (2025-09-28)
    • Fixed issue with Signal K servers that don't have navigation.position set
  • 1.2.0 (2025-09-28)
    • Support for Node.js older than 22.x, for example as seen in Venus OS Large
    • Safety for nodes in DB that don't have a "last seen" timestamp
    • Made connection status notifications clearer
  • 1.1.2 (2025-09-25)
    • Added support for the new roles from Meshtastic 2.7 (ROUTER_LATE and CLIENT_BASE)
    • Fixed issue with sending a bell with alerts that have sound enabled
  • 1.1.1 (2025-09-18)
    • Fixed empty response text message to digital switching actions
    • Added support for the proposed Signal K MOB position specification
  • 1.1.0 (2025-09-11)
    • Added support for Serial transport with the Meshtastic device
  • 1.0.0 (2025-09-11)
    • Initial release with HTTP and TCP transports