-
Notifications
You must be signed in to change notification settings - Fork 24
SMS GPS Data Formats
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.
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.
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.
Probably designed to be compatible with Motorola. MD-380 (MD380tools) sends/receives in this format. UDP ports are 4007. Hex Example:
4500002e000400004011204a0c301eb70c00238b0fa70fa7001a09e40010a00085040d000a005400450053005400000000000000000000003c9844a2
Anytone's implementation doesn't use UTF-16BE, which is what ETSI 361-3 calls for. UDP ports are 5016. TTL = 1. Example:
450000280005000001115f4f0c301eb70c00238b1398139800143e0c000d000a54004500530054000000000068542159