Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

stingray-signalk

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stingray-signalk

this plugin exposes data via bluethoth to garmin devices like quatix 7X Solar check appstore for Stingray

latest
npmnpm
Version
0.1.1
Version published
Weekly downloads
7
16.67%
Maintainers
1
Weekly downloads
 
Created
Source

Stingray-SignalK Plugin

Overview

The stingray-signalk plugin is designed to provide real-time navigation and environmental data from the SignalK server directly to a Garmin watch app. By capturing critical marine data—such as wind speed, GPS location, and depth—this plugin enables users to view essential vessel metrics on their Garmin watch, making key information accessible and actionable right from their wrist.

Garmin watch PLUGIN out now!

Note: This plugin requires a compatible Garmin watch to display the data. The accompanying Garmin watch app is availabel on connect iq Stingray

Preview of the Application watchface:

Stingray

Key Functionalities

  • Sensor Data Capture and Delivery

    • Wind Speed and Direction: Measures apparent wind speed and angle for navigation and sail adjustments.
    • GPS Location: Tracks real-time GPS position to support route planning.
    • Course Over Ground (COG) and Speed Over Ground (SOG): Monitors vessel heading and speed relative to the ground, helping to maintain course.
    • Water Depth: Measures water depth below the vessel for safe navigation in shallow areas.
    • Waypoint Bearing and ETA: Displays the bearing and estimated time of arrival (ETA) to the next waypoint, enhancing route management.
  • Seamless SignalK Integration

    • Unified Data Display: The plugin gathers all relevant data from the SignalK server and makes it available to the Garmin watch app, providing a centralized view of the vessel’s current status directly on your wrist.
    • Historical Data Logging: Logs data over time, allowing users to review trends and make data-driven decisions.
  • Real-Time Monitoring on Garmin Watch

    • Immediate Response: Real-time insights on the Garmin watch enable quick reactions to changes in wind, speed, course, or depth.
    • Custom Alerts: Configurable thresholds for specific metrics (e.g., shallow water alert) trigger notifications, providing situational awareness.

Installation

Use Appstore within signalk is always the best way how to install such plugins. Search for stingray-signalk. After installation you need to grant bluetooth permission: sudo setcap cap_net_raw+eip $(eval readlink -f `which node`) If you like to do it manualy follow this steps:

  • Copy Plugin Files: Copy the plugin files to the SignalK plugin directory on your server.

    • This directory is typically located at ~/.signalk/node_modules/.
  • Install Dependencies (if required):

    cd ~/.signalk/node_modules/stingray-signalk
    npm install
    
  • Enable the Plugin: Open the SignalK user interface under Settings > Plugin Config and enable stingray-signalk.

Configuration

After installation, the plugin requires that each Garmin watch connecting to the app be explicitly enabled to receive data. Here’s how it works:

  • Device Authorization: When a Garmin watch attempts to connect, it will appear in the plugin’s configuration view, listed by its MAC address.
  • Enabling Devices: The plugin administrator must manually enable each device by selecting the corresponding MAC address and clicking the Enable button. Only enabled devices are authorized to receive data from the SignalK server.
  • Unauthorized Devices: Devices that are not enabled will be unable to receive any data, ensuring controlled access to the SignalK data stream.

Troubleshooting

  • Check Logs: Any errors or important events will be logged in the SignalK log, viewable with the command above.

  • Restart Server: If issues occur, restarting the SignalK server may help:

    sudo systemctl restart signalk
    
  • Compatibility Check: Ensure you are using the latest versions of SignalK and Node.js for best compatibility.

  • All seams good, but still not working: Check the log for the following:

    Dec 07 16:05:56 Bleno warning: adapter state unauthorized, please run as root or with sudo
    Dec 07 16:05:56 or see README for information on running without root/sudo:
    Dec 07 16:05:56 https://github.com/abandonware/bleno#running-on-linux
    

    This means signalk has no permission to access bluetooth hardware. this has to be granted with the following command on bash:

    sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
    

Signal K Raspberry Pi Image with Stingray Plugin

Stingray Raspberry Pi Image

SHA1: 87df2564c171281e45f9079e84a1b1ac5fa51262

Features

  • Signal K server listening on port 80
  • Stingray plugin installed and activated
  • Signal K user:
    • Username: admin
    • Password: signalk
  • Linux user:
    • Username: signalk
    • Password: signalk
    • Full sudo (root) privileges
  • .bash_history includes all steps used to install and activate the Stingray plugin (fully transparent setup process)

Usage

  • Flash the image to an SD card (e.g. using balenaEtcher)
  • Boot the Raspberry Pi
  • Access Signal K at: http://<raspberrypi-ip>/
  • Log in with the above credentials

Notes

  • Default port (80) can be changed via Signal K admin settings
  • Make sure your Raspberry Pi has network access for full functionality

Use at your own risk. Contributions and suggestions welcome.

Manual Installation Steps (as used to create this image)

sudo apt update
sudo apt upgrade
sudo apt install -y ca-certificates curl gnupg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs
sudo apt install build-essential
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libusb-1.0-0-dev
sudo systemctl disable bluetooth
sudo systemctl stop bluetooth
sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
sudo update-alternatives --config editor
sudo npm install -g signalk-server
sudo signalk-server-setup
sudo apt install can-utils
sudo apt install samba
sudo vi /etc/samba/smb.conf
	[signalk]
	path = /home/signalk
	writeable = yes
	browseable = yes
	public = yes
	create mask = 0644
	directory mask = 0755
	force user = signalk
sudo systemctl start bluetooth
sudo systemctl enable bluetooth    

Contributing

Contributions to improve this plugin are welcome! Please submit an issue or pull request on the GitHub repository to report bugs or suggest new features.

License

This plugin is licensed under the Apache-2.0 License and may be used, modified, and distributed under the terms of this license.

Contact

For questions or support, please contact Jens Straube: jens@straube.it.

Keywords

signalk-node-server-plugin

FAQs

Package last updated on 09 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts