• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Products
    • Automation Designer
    • HMI Designer
    • Maritime HMIs
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Protocols - NMEA 0183 I/O
  • NMEA 0183 I/O Configuration Manual
  • 5.0.0

NMEA 0183 I/O Configuration Examples Protocols - NMEA 0183 I/O

NMEA 0183 I/O Configuration Manual

Introduction

This document describes how the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP and NMEA0183IO.NMEAOnSerial components work, and how to set them up and use them within a CDP Studio system.

The NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP and NMEA0183IO.NMEAOnSerial components are used for transmitting CDPSignals and strings as NMEA 0183 strings, and for receiveing NMEA 0183 strings and decoding the content into CDPSignals and strings. NMEA0183IO.NMEAOnUDP and NMEA0183IO.NMEAOnTCP are used to transport NMEA0183 strings via UDP or TCP protocol, while the NMEA0183IO.NMEAOnSerial is used to transport NMEA0183 strings via serial protocol. The configuration for these IOServers only differ in the Transport, the rest of the configuration is the same. Data is transmitted out each time the component is run (as specified by the component fs property). Whenever data is received on the configured transport, it is decoded into the configured CDPSignals and strings.

Usage

Select one of the models NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial from the NMEA0183IO namespace based on which transport you want to communicate over. Set the Header, and if needed, set DisableChecksum to 1 to disable checksum generation and/or checking.

  • To send data, add a NMEA0183IO.SendData into the NMEAIO component, then add the correct amount and type of NMEA0183IO.Signal* or NMEA0183IO.String signals into the NMEA0183IO.SendData.
  • To receive data, add a NMEA0183IO.ReceiveData into the NMEAIO component, and add the correct amount and type of NMEA0183IO.Signal* or NMEA0183IO.String signals into the NMEA0183IO.ReceiveData.

About NMEA 0183

NMEA 0183 is an ASCII based protocol that has a header, comma-separated values and strings, '*' + a checksum, and ends with <CR><LF>.

NMEA GPGLL example string:

$GPGLL,62.470000,N,6.145380,E*61

NMEA string valuedescription
$GPGLLGPS Location
62.470000Latitude
NDirection of Latitude: N: North, S: South
6.145380Longitude
EDirection of Longitude: E: East, W: West
*61The checksum data, if present, always begins with *

NMEA GPGGA example string:

$GPGGA,172814.0,3723.46587704,N,12202.26957864,W,2,6,1.2,18.893,M,-25.669,M,2.0,0031*4F

NMEA string valuedescription
$GPGGAGPS Location
172814.0UTC of position
3723.46587704Latitude
NDirection of Latitude: N: North, S: South
12202.26957864Longitude
WDirection of Longitude: E: East, W: West
2GPS Quality indicator
6Number of SVs in use, range from 00 through to 24+
1.2HDOP
18.893Orthometric height (MSL reference)
MM: unit of measure for orthometric height is meters
-25.669Geoid separation
MM: geoid separation measured in meters
2.0Age of differential GPS data record, Type 1 or Type 9. Null field when DGPS is not used
0031Reference station ID, range 0000-4095. A null field when any reference station ID is selected and no corrections are received
*4FThe checksum data, always begins with *

NMEAOnUDP and NMEAOnTCP Transport

The NMEA0183IO.NMEAOnUDP and NMEA0183IO.NMEAOnTCP Transport makes it possible to configure how to send and receive NMEA 0183 sentences on the Ethernet.

NameValueDescription
NameNetworkTransportThe name of the transport
LocalNameETH0The name, as specified in the Application NetworkInterface, of the local ethernet interface to use.
ListenPort5000The port to listen for incoming NMEA strings. Can be any port number (1-65535), but numbers <1024 are typically reserved by the Operating System and require Administrator permissions to access.
RemoteIP127.0.0.1The IP address to send to.
RemotePort5000The port to send to. See ListenPort.
Timeout1If nothing is received within this amount of seconds, the component will go to Offline state.

NMEAOnSerial Transport

The NMEA0183IO.NMEAOnSerial Transport table makes it possible to configure how to send and receive NMEA 0183 sentences via serial cable.

NameValueDescription
NameSerialTransportThe name of the transport
ComPortTypically '/dev/ttyS0' on Linux, or '\\.\COM1' on windowsThe name of the comport to send/receive on. This is Operating system and hardware dependent.
BaudRate4800 is the default NMEA baudrate, though others can be selected from the drop-down.The baudrate of the sender and receive must match exactly.
Databits8The number of databits must match in the sender and receiver.
ParityNoneThe parity must be the same for the sender and the receiver.
StopBits1The number of stopbits must be the same for the sender and the receiver.
ProtocolNoneThis is the software or hardware handshake used between the sender and receiver, and must match in both.
MultiDropNoneFor RS422 and RS485 this can be set to HalfDuplex or FullDuplex, depending on wiring and setup.
Timeout1If nothing is received within this amount of seconds, the NMEAOnSerial will report Offline state.

Sending and receiveing NMEA strings

Setting up NMEA strings to send is done by adding one or more NMEA0183IO.SendData resources to the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial IOServers. Receiveing NMEA Strings is done by adding one or more NMEA0183IO.ReceiveData resources to the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial IOServers.

Each of the NMEA0183IO.SendData or NMEA0183IO.ReceiveData resources have a Header that can be set, for instance '$GPGLL'. Inside each of the NMEA0183IO.SendData and NMEA0183IO.ReceiveData instances, it is possible to add Signals and Strings. These are order-dependent and correspond to the values in the NMEA string that are bounded by commas.

Controlling the values

The values to send in the NMEA sentences can be retrieved from the control system simply by using the Routing mechanism. Similarily, you can set routing on objects that need values from the ReceiveData elsewhere in the control system.

NMEA 0183 I/O Configuration Examples Protocols - NMEA 0183 I/O

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2025 CDP Technologies. Privacy and cookie policy.

Return to top