Skip to content

SMS GPS Data Formats

KF7EEL edited this page Mar 12, 2022 · 2 revisions

GPS/SMS Data

This page describes the various things related to radios and formats that I have discovered during development. This is for information only, and may help someone else.

GPS

Various formats of GPS data transmitted by radio model.

These are my notes, hopefully they help someone else.

See this page on Brandmeister for NMEA RMC details.

Radios known to output GPRMC

Radio Format
Anytone D878 GPRMC
Anytone D578 GPRMC
Anytone D868 GPRMC
BTech DMR 6x2 GPRMC

Radios known to output GNRMC:

Radio Format
Retevis RT73 GNRMC

Example NMEA GPRMC output:

'~'~$GPRMC,015857.000,A,4519.2000,N,12127.0000,W,0.00,121.00,190121,,,A*67

Example NMEA GNRMC output:

'~'~$GNRMC,224048.000,A,2527.41211,S,04932.96192,W,0.00,99.18,120121,,,A,V*39

After BPTC decoding, we find that the NMEA sentence is a UTF-16 string. Usually 3 CSBK blocks, followed by the deader, then the data blocks. Typically sent as unconfirmed UDP.

SMS

Anytone radios are capable of 3 different formats. M-SMS (Motorola?), H-SMS (Hytera?), and "DMR Standard". Both M-SMS and "DMR Standard" use IPV4 packet containing a UDP packet, which has a payload of SMS data. For M-SMS, there is an additional piece of data (possibly a header?) before the actual SMS characters, which are in UTF-16BE format. "DMR Standard" does not contain the extra bit of data and contains SMS characters in UTF-16LE. The true standard, ETSI 361-3, specifies that characters be in UTF-16BE, not LE. The MD-380 (MD380tools firmware) sends in M-SMS format. I have not analyzed H-SMS very closely yet. It is sent in a format called Unified Data Transport (specified in ETSI 361 documents).

Anytone radios will accept "dirty data" (packets with duplicate sequence numbers and other minor inconsistencies) and will receive an SMS with CSBK preamble blocks.

MD-380 requires CSBK preamble blocks for reception of SMS.

M-SMS

Probably designed to be compatible with Motorola. MD-380 (MD380tools) sends/receives in this format. UDP ports are 4007. Hex Example:

4500002e000400004011204a0c301eb70c00238b0fa70fa7001a09e40010a00085040d000a005400450053005400000000000000000000003c9844a2

"DMR Standard"

Anytone's implementation doesn't use UTF-16BE, which is what ETSI 361-3 calls for. UDP ports are 5016. TTL = 1. Example:

450000280005000001115f4f0c301eb70c00238b1398139800143e0c000d000a54004500530054000000000068542159

Clone this wiki locally