NMEA Over UDP
Technical & Application Notes
This feature is available on the VersaSync and SecureSync 2400 products and is used for special applications that require a once-per-second NMEA UDP message to be sent out by the system via multicast. This message will be transmitted within 200 ms of the corresponding rising edge of the 1PPS pulse. NMEA over UDP is configured using CLI commands; there is currently no Web UI page for this functionality.
The NMEA message consists of 3 parts:
- A header: Header of the frame
- The ZDA data: ZDA NMEA standard message
- The SFT data: A proprietary NMEA message that carries system status information
Name | Value | Type or Format | Min | Max | Size | Description | |
---|---|---|---|---|---|---|---|
HEADER | SOURCE PORT | – | 1024 | 49151 | 2 | Time server port | |
DESTINATION PORT | – | 1024 | 49151 | 2 | Port to be used to send the frame over UDP defined by the user | ||
LENGTH | – | 2 | Size of the message including the header size | ||||
CHECKSUM | 0x00 | – | 2 | Fixed value (not used) | |||
MESSAGE ID | 23 | Integer | – | – | 2 | Fixed value | |
ZDA DATA | START DELIMITER | $ | ASCII character | 1 | Fixed value | ||
CONSTELLATION SOURCE | GP | ASCII character | 2 | Fixed value | |||
MESSAGE NAME | ZDA, | ASCII character | 4 | Fixed value | |||
UTC TIME | hhmmss.ss, | 0 | 235959.99 | 1 or 10 | Time of the corresponding 1PPS signal, hence the decimals are always zero | ||
UTC DAY | xx, | 01 | 31 | 1 or 3 | |||
UTC MONTH | xx, | 01 | 12 | 1 or 3 | |||
UTC YEAR | xxxx, | 0 | 9999 | 1 or 5 | |||
LOCAL ZONE HOUR | [-}xx, | -13 | 13 | 1, 3 or 4 | |||
LOCAL ZONE MINUTES | [-]xx | -59 | 59 | 0, 2 OR 3 | |||
CHECKSUM | *HH | 3 | The checksum at the end of each sentenc is the XOR of all of the bytes in the sentence, excluding the inital dollar sign and * character (in hexa) | ||||
END DELIMITER | <CR><LF> | ASCII character | – | 2 | Fixed value | ||
SFT DATA | START DELIMITER | $ | ASCII character | – | 2 | Fixed Value | |
CONSTELLATION SOURCE | GP | ASCII character | 2 | Fixed value | |||
MESSAGE NAME | SFT, | ASCII character | 4 | Fixed value | |||
TFOM | sssssssss, | 0 | 999999999 | 1 or 10 | 1 sigma, Positive value, Absolute value of the Estimated Time Error in nanoseconds. TFOM field remains empty when the value is invalid. | ||
POWER STATUS | 1, | 1 | 1 | 1 | 1: powerd Fixed value |
||
GNSS STATUS | x, | 0 | 4 | 1 | 0: No GNSS réception, 0 satellites 1: GNSS is available as reference (1PPS and Time OK) 2: Antenna short circuit 3: Jamming detected 4: GNSS acquisition in process (≥ 1 satellite(s)), or 1PPS OK, or Time OK) |
||
INPUT STATUS | x, | 0 | 2 | 1 | 0: Inputs not detected / all input are disabled 1: Inputs are enabled 2: 1 or more input is invalid timing on 1 or more input detected |
||
SYNCHRONIZATION STATUS | X, | 0 | 2 | 1 | 0: Unit is in Holdover (valid) 1: System clock OK (Valid) 2: Invalid Time (Holdover period exceeded, or oscillator damage) |
||
OUTPUT STATUS | X, | 0 | 2 | 1 | 0: No output signal(s) detected/all outputs are disabled 1: Outputs are enabled 1.3 Status LEDs 2: Malfunction detected (short circuit, or overload) |
||
NETWORK STATUS | x, | 0 | 2 | 1 | 0: No network detected) 1: Network OK, configuration OK 2: Network malfunction detected (e.g., no auto- negotiation) |
||
FAULT STATUS | x, | 0 | 4 | 1 | 0: Unit OK 2: Unit requires attention; check other status LEDs, see Web UI 4: Acquiring fix or SW upgrade |
||
TEMPERATURE STATUS | x, | 0 | 2 | 1 | 0: Temperature OK 2: High temperature detected |
||
CHECKSUM | *he | 3 | The checksum at the end of each sentence is the XOR of all of the bytes in the sentence, excluding the initial dollar sign and * character (in hexa) | ||||
END DELIMITER | <CR><LF> | ASCII character | 2 | Fixed value |
System Time Message Service
This service is a proprietary Orolia (formerly Spectracom) daemon which is present on our products. It allows the unit to send a defined message over UDP before every 1PPS signal. The NMEA over UDP feature uses this service to transmit the message described above.
Note: By default, the Orolia message is sent over UDP before every 1PPS signal. It contains the time when the next 1PPS discrete will occur. The message format is:
Parameters | Size (bytes) | Description |
---|---|---|
Message ID | 4 | Enable or disable the sending of the NMEA frame over UDP |
Message Size | 4 | Total message size in bytes |
Seconds | 4 | Seconds since epoch (00:00:00 Jan 1, 1970 UTC) |
Nano Seconds | 4 | NSec within the current second |
EOM | 4 | End-of-message |
Configuration of NMEA over UDP
The user can configure the feature by using a command line interface as described below. This configuration is saved in a file (stmd.conf) which is used to replay the configuration after a reboot.
Command Line Interface
The CLI command sendnmeaudp is used to configure, enable, and disable the NMEA over UDP feature. The usage of the command is:
sendnmeaudp <nmea enable> [<multicast address> <port number> <local enable>] [<local hour> <local minute>]
Parameters | Range | Description |
---|---|---|
NMEA ENABLE | 0/1 | Enable or disable the sending of the NMEA frame over UDP |
MULTICAST ADDRESS | 239.0.0.1 to 239.255.255.255 | Address to be used to send the frame over UDP |
PORT NUMBER | 1024 to 49151 | Port to be used to send the frame over UDP |
LOCAL CLOCK ENABLE | 0/1 | Enable or disable local clock to be set |
LOCAL HOUR | -13 to 13 | The local clock hour which is specified with a positive or negative offset |
LOCAL MINUTE | -59 to 59 | The local clock minute which is specified with a positive or negative offset |
Note: To stop sending an NMEA frame over UDP
Execute: sendnmeaudp 0
Note: To send an NMEA frame over UDP without a local clock
Execute: sendnmeaudp 1 <multicast address> <port number> 0
Note: To send an NMEA frame over UDP with a local clock
Execute: sendnmeaudp 1 <multicast address> <port number> 1 <local hour> <local minute>
Error Messages
The CLI returns error messages when a bad parameter is passed through the command, as follows:
Error Message | Description |
---|---|
Invalid arguments Usage: sendnmeaudp <nmea enable(0/1)> [<multicast address> <port number> <local enable(0/1)> [<local hour(+/-13)> <local minute (+/-59)>]] |
Displayed when the number of arguments is not correct |
Failed to read STM file configuration (stmd.conf) | Displayed when the system cannot read data from the configuration file |
Invalid NMEA enable. It must be 0 or 1 | Displayed when the Nmea enable is not equal to 0 or 1 |
Invalid multicast address. It must be 239.0.0.1 to 239.255.255.255 | Displayed when the multicast address is out off range |
Invalid port number. It must be 1024 to 49151 | Displayed when the port number is out of range |
Invalid local enable. It must be be 0 or 1 | Displayed when the local enable is not equal to 0 or 1 |
Invalid local hour. It must be -13 to 13 | Displayed when the local hour is out of range |
Invalid local minute. It must be -59 to 59 | Displayed when the local minute is out of range |
Failed to write STM file configuration (stmd.conf) | Displayed when the system cannot read data in the configuration file |
Failed to start STM service | Displayed when the system cannot start STM service |
Failed to reload the file configuration | Displayed when the system cannot reload the configuration file |