First of all, a few important notes that you should definitely pay attention to.

The key element on board:

SignalK is an open standard for transferring data on a boat. Interfaces for all well-known transmission protocols have since been developed around this idea:


  • NMEA2000
  • NMEA0183
  • homebridge
  • AWS IoT
  • VE.Direct
  • EmpirBus
  • MQTT

Fig: SignalK dashboard

Fig: Instrument panel

The SignalK server is therefore perfectly suited for migrating old and new sensors onboard the ship.
But that's not all: A constantly growing number of actuators on board can also be operated.

Detailed documentation can be found here:

If you want to see how it works, you can watch this demo:


What is Node-Red?

Node-Red is a visualized programming environment that comes from the IoT area. It is primarily used to connect sensor hardware and the corresponding data visualization. Node-Red consists of so-called nodes, which are connected to one another using rubber band technology and thus determine the flow of data.

What do sailors get out of it?

Node-Red offers nodes to read sensors, to process NMEA-0183 data via serial interfaces or to read and process SignalK data streams. This means that data made available in the on-board network by Openplotter, for example, can be used directly.
The advantage over SignalK instruments, for example, is that the read-in data can be processed and changed, and the visualization of the data can also be influenced more flexibly.

What do you have to be able to do to use Node-Red?

Many things can be implemented in Node-Red without programming knowledge, but program code (Java) can also be accommodated in certain nodes. That makes this environment very flexible. Once the basic principle of how data control works in Node-Red has been understood, you can expand your knowledge bit by bit without facing seemingly insurmountable hurdles. Extensive documentation is available on the website of, various sample flows ("program sequences") are available for download.

What does Node-Red cost?

Node-Red is free, it runs on various platforms, in addition to the Raspberry and other Linux versions, including Windows computers.


More videos:

Node-Red and NMEA0183 via serial interfaces: Video

Node-Red and SignalK: Video


AIS data exchange

ship spotting

Popular services like or do rely on numerous AIS station around the world.
Volunteers are collecting AIS-data within reach of their receivers and pass them to the servers. There are still areas, not yet covered!
Setting up a receiving station is simple and does not cost a fortune: Internet access, raspberryPi, a cheap DVB-T-stick and an old TV arial do the job.
The owner of an AIS station benefits from extra services offered by service providers, others have to pay for.

NMEA2000 and ESP32

First of all, a few important notes that you should definitely pay attention to.

NMEA2000 is increasingly replacing NMEA0183 as the standard. Unfortunately, NMEA2000 is a very complex protocol and for a long time it was hardly possible to realize your own projects. That has changed with the NMEA2000 library by Timo Lappalainen (

The library supports different microcontrollers, including the ESP32. The ESP32 from Espressiv is very powerful and, thanks to WLAN and CAN bus interface, ideal for your own projects.

The projects described here use the NMEA2000 library and the ESP32 (ESP32 NODE MCU). Programming is very easy in the Arduino development environment.

The projects are documented in detail on GitHub (including hardware and software):

The following projects have been implemented so far and can easily be copied or modified / expanded:

  • NMEA2000 to NMEA0183 WiFi Gateway
  • NMEA2000 M5Stack Data Display
  • NMEA2000 Data Transmitter
  • NMEA2000 Data Recorder

The essential components for the trade fair were put together on a demo board. This allows the interaction of the components to be clearly illustrated:

The Seatalk autopilot remote control is also included on the demo board, but is explained on a separate page (

The simulator board is only for the trade fair and is used for demonstration purposes. It receives simulated data from a PC via USB-serial, converts them into NMEA2000 PGNs and sends them to the CAN bus. The simulator was built with the ActisenseListenerSender realized by Timo Lappalainen. The WiFi gateway receives the NMEA2000 data from the CAN bus and thus supplies other exhibits on the exhibition stand with simulated data.

NMEA2000 to NMEA0183 WiFi Gateway

  • The WiFi gateway receives the data from the NMEA2000 CAN bus and converts it to NMEA0183.
  • The NMEA0183 data are provided via WLAN (NMEA0183 via TCP, port 2222).
  • The data can be displayed / used by many components. For example: OpenCPN, AVnav, tablet with NMEA software, ...).
  • The gateway also delivers the data in JSON format. The data can then be viewed wirelessly with the M5Stack data display.
  • The project on GitHub also contains a NMEA0183 multiplexer (serial input for AIS data) and voltage / temperature monitoring. However, these functions are optional.

WiFi gateway prototype:

M5Stack and AVnav on 7 ”car radio with data from the WiFi gateway:


NMEA2000 M5Stack Data Display

  • The M5Stack is a finished product with an ESP32 and housing. The integrated display, the built-in rechargeable battery and the buttons make it particularly suitable for displaying NMEA data.
  • The version of the Data displays (top left) receives the data wirelessly from the WiFi gateway in JSON format.
  • The data types can easily be expanded. So far, the following data is displayed: LAT / LON, COG, SOG, heading, STW, rudder angle, water depth, triplog, sumlog and the data from the NMEA2000 data transmitter: temperature, diesel tank and engine speed.
  • On GitHub A version of the display is also available that reads and displays the data directly from the NMEA2000 bus. Optionally, the M5Stack module also functions as a WiFi gateway. This means that an NMEA2000 to NMEA0183 WLAN gateway can be implemented without soldering.

NMEA2000 Data Transmitter

  • The NMEA2000 Data Transmitter measures different values in the boat (here temperature, tank level, engine speed) and sends them as NMEA2000 data.
  • This NMEA2000 data can be received and displayed by almost all modern multifunctional displays.
  • The temperature is measured by a DS18B20 sensor (can be easily expanded with additional sensors).
  • The circuit on GitHub is designed for a TGT 200 tank sensor from Philippi (resistance 5-180 Ohm).
  • The engine speed is measured on the alternator (terminal W).
  • The circuit and the program can easily be expanded for further measurement data.
  • For the demo board, the tank level and the engine speed are simulated using potentiometers.

NMEA2000 Data Recorder

  • The NMEA2000 Data Recorder reads all data from the NMEA2000 bus and saves it on an SD card.
  • The data can be saved in different formats: NMEA0183, Seasmart, Actisense).
  • In addition to the ESP32 (here Node MCU), only an SD card and a CAN bus transceiver are required.
  • An M5Stack module can also be used as an option. This already contains an SD card reader.
  • The data recorder is not included on the demo board.

DIY boat automation

  • Use of components from home automation
  • Connection via WLAN
  • Operation via web browser with mobile phone or tablet
  • Design of your own operating pages with HTML code using predefined widgets and CSS
  • Free configuration of symbols and names via configuration file
  • No JavaScript programming necessary
  • Special open source firmware required for control units (Tasmota)
  • No cloud connection necessary
  • Devices are controlled directly with HTTP commands
  • Device Manager available for device management
  • Big community
  • Well-tested firmware with a wide range of uses
  • Diverse device hardware available
    • 1-channel switch without current measurement
    • 1-channel switch with current measurement 230V AC
    • 4-channel switch potential-free
    • 4-channel switch potential-free with 433MHz radio remote control
    • Valve drive
    • LED light control
    • Temperature sensor
    • Fan
  • Own hardware can be integrated via generic modules
  • Inexpensive from around 30 euros




3D printing for useful parts

Since 3D printers are cheap to get today, it is worth printing out one or the other useful part yourself. The imagination knows no limits. Basically anything that you need can be printed. But you have to be careful about the strength and sun tolerance of the parts. Not all plastics are suitable for outdoor maritime applications.

There are a large number of printable templates on the Internet that you can use without having to construct anything yourself. A 3D printer can also be used to produce parts that can no longer be procured if something has broken.

On the 3D platform you will find many useful print templates for a wide variety of applications. A small preselection for maritime applications is listed here:



The PC NAVTEX program is used to display NAVTEX messages that are sent to the NAVTEX receiver "PC NAVTEX USB”From NASA. In contrast to the original software, this program can be run under Linux. A Windows version has not yet been created, but should be possible. It can be used on a PC as well as on single-board computers such as Paspberry Pi. Incoming messages are stored in a SQLITE database. The program has filters for displayed messages, code letter of the sending station, code letter message topic, maximum age of the message, maximum length of the list.
When the program starts, the messages stored in the receiver are read. Messages currently arriving are displayed immediately.

The source code of the program is available on GitHub: