@meri-imperiumi/signalk-meshtastic 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,7 +5,7 @@ This plugin enables vessels running [Signal K](https://signalk.org) to interact
5
5
 
6
6
  If desired, telemetry and position information can also be shared between multiple Meshtastic-using vessels, making it effectively a "pseudo-AIS" system.
7
7
 
8
- ![Basic Meshtastic communications](./doc/meshtastic-bequia.png)
8
+ ![Basic Meshtastic communications](https://github.com/meri-imperiumi/signalk-meshtastic/raw/main/doc/meshtastic-bequia.png)
9
9
 
10
10
  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.
11
11
 
@@ -27,7 +27,7 @@ In production use on several boats.
27
27
 
28
28
  ## Features
29
29
 
30
- * Connect to a Meshtastic node
30
+ * Connect to a Meshtastic node via HTTP, TCP, or Serial
31
31
  * Keep a persistent database of all seen Meshtastic nodes
32
32
  * Update Meshtastic node position from Signal K GNSS position
33
33
  * Send Signal K alerts as Meshtastic text messages to crew
@@ -48,7 +48,8 @@ In production use on several boats.
48
48
  ## Requirements
49
49
 
50
50
  * This plugin running inside your Signal K installation
51
- * One [Meshtastic device](https://meshtastic.org/docs/hardware/devices/) running and connected to the same network (typically boat WiFi) as Signal K. This should be an [ESP32 based](https://meshtastic.org/docs/hardware/devices/heltec-automation/lora32/?heltec=v3) device for WiFi connectivity
51
+ * One [Meshtastic device](https://meshtastic.org/docs/hardware/devices/) running and connected to the same network (typically boat WiFi) as Signal K. This should be an [ESP32 based](https://meshtastic.org/docs/hardware/devices/heltec-automation/lora32/?heltec=v3) device for WiFi connectivity.<br>
52
+ If using Serial connection, it can also be a nRF52 device
52
53
  * At least one additional Meshtastic device for the crew ashore. [Seeed T1000-e](https://meshtastic.org/docs/hardware/devices/seeed-studio/sensecap/card-tracker/) 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](https://meshtastic.org/blog/choosing-the-right-device-role/)
53
54
  * Optionally, a Meshtastic GPS tracker device installed in the dinghy
54
55
  * Optionally, a [Meshtastic mast-top repeater](https://www.printables.com/model/1396221-meshtastic-boat-module-masthead) for greatly increased communications range
@@ -66,13 +67,13 @@ LoRa is line-of-sight communications quite similarly to VHF. Communications rang
66
67
  * Wait for some minutes for the plugin to see nearby Meshtastic nodes
67
68
  * Configure plugin and set appropriate roles for the crew and dinghy tracker Meshtastic devices
68
69
 
69
- ![](./doc/config-crew-role.png)
70
+ ![](https://github.com/meri-imperiumi/signalk-meshtastic/raw/main/doc/config-crew-role.png)
70
71
 
71
72
  ## Telemetry sent to Meshtastic
72
73
 
73
74
  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:
74
75
 
75
- ![](./doc/telemetry.png)
76
+ ![](https://github.com/meri-imperiumi/signalk-meshtastic/raw/main/doc/telemetry.png)
76
77
 
77
78
  Metrics used:
78
79
 
@@ -88,5 +89,7 @@ Metrics used:
88
89
 
89
90
  ## Changes
90
91
 
92
+ * 1.1.0 (2025-09-11)
93
+ - Added support for Serial transport with the Meshtastic device
91
94
  * 1.0.0 (2025-09-11)
92
95
  - Initial release with HTTP and TCP transports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meri-imperiumi/signalk-meshtastic",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Signal K plugin for interfacing with the Meshtastic LoRa mesh network",
5
5
  "scripts": {
6
6
  "test": "eslint ."
@@ -22,7 +22,8 @@
22
22
  "@bufbuild/protobuf": "^2.6.0",
23
23
  "@meshtastic/core": "^2.6.7",
24
24
  "@meshtastic/transport-http": "^0.2.5",
25
- "@meshtastic/transport-node": "^0.0.2"
25
+ "@meshtastic/transport-node": "^0.0.2",
26
+ "@meshtastic/transport-node-serial": "^0.0.2"
26
27
  },
27
28
  "devDependencies": {
28
29
  "eslint": "^8.57.1",
package/plugin/index.js CHANGED
@@ -9,6 +9,7 @@ const { vesselIcon } = require('./waypoint');
9
9
  let MeshDevice;
10
10
  let TransportHTTP;
11
11
  let TransportNode;
12
+ let TransportNodeSerial;
12
13
  let create;
13
14
  let toBinary;
14
15
  let Protobuf;
@@ -221,6 +222,10 @@ module.exports = (app) => {
221
222
  })
222
223
  .then((lib) => {
223
224
  TransportNode = lib.TransportNode;
225
+ return import('@meshtastic/transport-node-serial');
226
+ })
227
+ .then((lib) => {
228
+ TransportNodeSerial = lib.TransportNodeSerial;
224
229
  return import('@bufbuild/protobuf');
225
230
  })
226
231
  .then((lib) => {
@@ -490,6 +495,9 @@ module.exports = (app) => {
490
495
  if (settings.device && settings.device.transport === 'http') {
491
496
  return TransportHTTP.create(settings.device.address);
492
497
  }
498
+ if (settings.device && settings.device.transport === 'serial') {
499
+ return TransportNodeSerial.create(settings.device.address);
500
+ }
493
501
  return TransportNode.create(settings.device.address);
494
502
  })
495
503
  .then((transport) => {
@@ -941,6 +949,10 @@ module.exports = (app) => {
941
949
  const: 'http',
942
950
  title: 'HTTP (nodes connected to same network, typically ESP32)',
943
951
  },
952
+ {
953
+ const: 'serial',
954
+ title: 'Serial port (use full path to serial device as "address")',
955
+ },
944
956
  ],
945
957
  },
946
958
  address: {