node-red-contrib-ntrip 0.2.2

Node for ntrip and rtcm handling.

npm install node-red-contrib-ntrip

NTRIP nodes for node-red

Platform License NPM Known Vulnerabilities Downloads Total Downloads Package Quality Open Issues Closed Issues ...

Thanks for your donation

If you want to support this free project. Any help is welcome. You can donate by clicking one of the following links:

Buy Me A Coffee

This package contains nodes for connecting to a NTRIP server.

Installation

NPM

You can install the nodes using node-red's "Manage palette" in the side bar.

Or run the following command in the root directory of your Node-RED installation

npm install node-red-contrib-ntrip --save

Dependencies

This package depends on the following libraries

Credits

👥 Contributors

Changelog

Changes can be followed here

NTRIP Client Node

This node connects to a NTRIP caster and can be used in two different modes:

  • upload
  • download

Download Mode

Configuration

For downloading data from a NTRIP caster you need to provide the following information

  • host - the IP address or hostname of the NTRIP server (e.g. rtk2go.com)
  • port - the Port number of the NTRIP server (usually this is 2101)
  • mountpoint - the mountpoint of the stream data at the NTRIP server (enter name without /)

Depending on the version of the NTRIP caster you need to provide

  • username - the username (e.g. your e-mail address when using rtk2go.com)
  • password - the password (e.g. none)

Some NTRIP casters only send data after the client provided its location via a GGA sentence. In this case you can provide the X Y Z coordinate here or inject it like illustrated in the example flow

  • X - the X coordinate
  • Y - the Y coordinate
  • Z - the Z coordinate
  • interval - the interval in milliseconds to transmit the location to the NTRIP server.

Provide Client Location (XYZ) to NTRIP caster

If you want more control about sending your location to the NTRIP server, then you can inject the values as described in the following example: Alt text

The function node simply creates an array of X Y Z coordinates in msg.payload. Sapos NTRIP casters for example only needs one GGA sentence to initiate streaming.

Alt text
See also example flow SetXYZ flow

Upload Mode

Configuration

The configuation properties are the same as described for the download mode. You need to provide these additional properties:

  • Authentication Mode - the mode the NTRIP caster accepts.
  • Pass through data - if checked all data is sent to the output for further processing.

Authentication Modes

Legacy

This mode initiates the uploading to a mountpoint using plan text.

SOURCE ${mountpoint}\r\n\r\n

or with password and unsername

SOURCE ${password} /${mountpoint}\r\nSource-Agent: NTRIP ${username}\r\n\r\n

Legacy (Basic Auth)

This hybrid mode initiates the uploading to a mountpoint using plan text and Basic Auth.

SOURCE ${mountpoint}\r\nAuthorization: Basic ${authorization}\r\n\r\n

NTRIP V1

This mode initiates the uploading to a mountpoint using HTTP with Basic Auth.

POST /${mountpoint} HTTP/1.0\r\nUser-Agent: NTRIP ${userAgent}\r\nAuthorization: Basic ${authorization}\r\nContent-Type: gnss/data\r\n\r\n

NTRIP V2

THis mode is equal to NTRIP V1 with some more data.

POST /${mountpoint} HTTP/1.1\r\nHost: ${host}:${port}\r\nUser-Agent: NTRIP ${userAgent}\r\nAuthorization: Basic ${authorization}\r\nNtrip-Version: Ntrip/2.0\r\nContent-Type: gnss/data\r\nConnection: keep-alive\r\n\r\n

RTCM Decoder Node

This node accepts binary RTCM data. The node accepts either a single or multiple RTCN messages. The converted messages are sent one by one to the output in the following format.

msg.payload = 
{
    rtcm, // RTCm message number
    messageType, // a string indicating a readyble RTCM message name
    message, // a structure containing all decoded data
    input, // the raw input message
};

NMEA Decoder Node

This node accepts binary NMEA data. The node accepts either a single or multiple NMEA messages. The converted messages are sent one by one to the output in the following format.

msg.payload = 
{
    messageType, // a string indicating a readyble RTCM message name
    message, // a structure containing all decoded data
    input, // the raw input message
};

Examples

Examples are stored in the examples folder an can be imported from within node-red's sidebar via import.

Download data from NTRIP caster

Consuming Data is straight forward. Connect to a NTRIP caster, select download mode and pass the data to other nodes for further processing: in this example 2 decoder are used. The NMEA node is only to show that the stream can be split. (It is useless as RTK2Go does not send any NMEA strings) See also example flow RTK2Go flow

Provide XYZ dato to NTRIP caster

This example is the same as the RTK2Go one except for the fact that Sapos requires sending a GGA sentence before transmitting RTCM sentences. See also example flow Sapos flow

Consume data from TCP source (RTKBase)

Next to retrieving data from a remote NTRIP caster you can also consume the RTCM stream from a local TCP source like a RTKBase Station (e.g. https://github.com/Stefal/rtkbase). You can upload the data to any NTRIP caster like Onocoy, Centipede, RTKOnline, ... and use the same data on your own. To accomplish this you can use node-red's TCP receiver node. You need to activate a TCP server either on your ESP32 XBee or RTKBase. See also example flow TCP flow

Upload data to NTRIP caster

Uploading is straight forward, however authentication might be tricky. You need to know the mountpoint and credentials before you can initiat an upload. Not all NTRIP casters accept the same way of authentication. You can test with a local demo version of SNIP by creating a raw TCP input stream. (SNIP can be found here https://www.use-snip.com) See also example flow Upload flow

License

Author: Karl-Heinz Wind

The MIT License (MIT) Copyright (c) 2025 by Karl-Heinz Wind

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Node Info

Version: 0.2.2
Updated 1 week, 1 day ago
License: MIT
Rating: 5.0 2

Categories

Actions

Rate:

Downloads

199 in the last week

Nodes

  • NtripClient
  • RtcmDecoder
  • NmeaDecoder

Keywords

  • node-red
  • rtcm
  • ntrip
  • gnss
  • mmea

Maintainers