Skip to content

Commit

Permalink
Fix update anytone FM arps settings (#363)
Browse files Browse the repository at this point in the history
* Documented changes in the APRS settings encoding. Addresses #349.
* Fixed exisiting props of APRSSettings.
* Merged FM and DMR APRS settings. Fixed frequency issue. Addresses #349.
* Fixed APRS settings for DMR6X2UV.
* Cleanup of DMR6X2UV codeplug.
* Fixed crash in D878UV read. Addresses #349.
* Added anytone settings extension for FM APRS systems. Addresses #249.
* Implemented FM APRS frequency list and experimental storage of labels. Addresses #349.
* Added some docs for FM APRS settings extension. Addresses #394.
* Fixed missing encoding/decoding of report flags for Anytone APRS settings extension.
* Fixed decoding of D878UV codeplugs of older DFU images.
  • Loading branch information
hmatuschek authored Aug 14, 2023
1 parent c27a42a commit ba64a9a
Show file tree
Hide file tree
Showing 19 changed files with 2,394 additions and 701 deletions.
112 changes: 105 additions & 7 deletions doc/code/d878uv_aprssetting.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
00 | Unknown, set to 0xff | TX frequency as 8 digit BDC, big-endian in 10Hz ...
00 | Unknown, set to 0x000 | Unused ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
04 ... | TX delay in 20ms | Signaling type | CTCSS tone |
04 ... | FM APRS TX delay in 20ms | Signaling type | CTCSS tone |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
08 | DCS code, little-endian | Manual TX interval in seconds | Auto TX interval in 30s |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0c | Unused set to 0x00 | Fixed location flag | Latitude degrees | Latitude minutes |
0c | FM APRS Monitor enable | Fixed location flag | Latitude degrees | Latitude minutes |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
10 | Latitude seconds | South flag | Longitude degrees | Longitude minutes |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
14 | Longitude seconds | West flag | Destination call, 6 x ASCII, 0-padded ...
14 | Longitude seconds | West flag | Destination call, 6 x ASCII, 0-padded ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
18 ... |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Expand All @@ -20,13 +20,111 @@
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
24 | Path, 20 x ASCII, 0-padded ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
... ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
34 ... |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
38 | Unused set to 0x00 | ASCII APRS Symbol | ASCII APRS Map Icon | Transmit power |
38 | Unused set to 0x00 | ASCII APRS Symbol Table | ASCII APRS Map Icon | Transmit power |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
3c | Prewave delay in 10ms | Unknown set to 0x01 | Unknown set to 0x03 | Unknown set to 0xff |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
40 | DMR APRS Sys 0 channel index, uint16, litte-endian | DMR APRS Sys 1 channel index, uint16, litte-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
44 | DMR APRS Sys 2 channel index, uint16, litte-endian | DMR APRS Sys 3 channel index, uint16, litte-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
48 | DMR APRS Sys 4 channel index, uint16, litte-endian | DMR APRS Sys 5 channel index, uint16, litte-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4c | DMR APRS Sys 6 channel index, uint16, litte-endian | DMR APRS Sys 7 channel index, uint16, litte-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
50 | DMR APRS Sys 0 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
54 | DMR APRS Sys 1 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
58 | DMR APRS Sys 2 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
5c | DMR APRS Sys 3 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
60 | DMR APRS Sys 4 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
64 | DMR APRS Sys 5 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
68 | DMR APRS Sys 6 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
6c | DMR APRS Sys 7 destination ID, 8-digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
70 | DMR APRS Sys 0 call type | DMR APRS Sys 1 call type | DMR APRS Sys 2 call type | DMR APRS Sys 3 call type |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
74 | DMR APRS Sys 4 call type | DMR APRS Sys 5 call type | DMR APRS Sys 6 call type | DMR APRS Sys 7 call type |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
78 | Enable roaming support | DMR APRS Sys 0 time slot | DMR APRS Sys 1 time slot | DMR APRS Sys 2 time slot |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
7c | DMR APRS Sys 3 time slot | DMR APRS Sys 4 time slot | DMR APRS Sys 5 time slot | DMR APRS Sys 6 time slot |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
80 | DMR APRS Sys 7 time slot | Rep. activation delay | APRS display time | Unknown ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
... ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
9c ... |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
a0 | Unknown ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
a4 ... | Fixed height in feet, uint16, little endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
a8 |RST|RNF|RWX|RMS|RIT|ROB|RME|RPO| 0 0 0 0 0 0 0 |ROF| FM APRS width | Pass all enable |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
ac | FM ARPS Frequency 0 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
b0 | FM ARPS Frequency 1 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
b4 | FM ARPS Frequency 2 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
b8 | FM ARPS Frequency 3 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
bc | FM ARPS Frequency 4 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
c0 | FM ARPS Frequency 5 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
c4 | FM ARPS Frequency 6 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
c8 | FM ARPS Frequency 7 in 10Hz, 8 digit BCD, big-endian |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
d0 | Unknown ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
... ...
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
3c | Prewave delay in 10ms | Unknown set to 0x01 | Unknown set to 0x03 | Unknown set to 0xff |
fc ... |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Field description:
- Signaling type: 0=off, 1=CTCSS, 2=DCS.
- FM APRS TX delay: 0=0ms, 1=20ms, ..., 255=5100ms
- Signaling type: 0=off, 1=CTCSS, 2=DCS, default=off
- CTCSS Tone: 0= 61.2Hz, 1= 67.0Hz, 2= 69.3Hz, 3= 71.9Hz, 4= 74.4Hz, 5= 77.0Hz, 6= 79.7Hz,
7=82.5Hz, 8= 85.4Hz, 9= 88.5Hz, 10= 91.5Hz, 11= 94.8Hz, 12= 97.4Hz, 13=100.0Hz,
14=103.5Hz, 15=107.2Hz, 16=110.9Hz, 17=114.8Hz, 18=118.8Hz, 19=123.0Hz, 20=127.3Hz,
21=131.8Hz, 22=136.5Hz, 23=141.3Hz, 24=146.2Hz, 25=151.4Hz, 26=156.7Hz, 27=159.8Hz,
28=162.2Hz, 29=165.5Hz, 30=167.9Hz, 31=171.3Hz, 32=173.8Hz. 33=179.9Hz, 34=183.5Hz,
35=186.2Hz, 36=189.9Hz, 37=192.8Hz, 38=196.6Hz, 39=199.5Hz, 40=203.5Hz, 41=206.5Hz,
42=210.7Hz, 43=218.1Hz, 44=225.7Hz, 45=229.1Hz, 46=233.6Hz, 47=241.8Hz, 48=250.3Hz,
49=254.1Hz
- Path: 20 x ASCII, 0-padded path string. Format is comma-separated CALL1-SSID,CALL2-SSID,...
- DMR APRS Sys N channel index: uint16 channel index, 0-based, little-endian, [0,4000],
0x0fa0=VFO A, 0x0fa1=VFO B, 0x0fa2=Selected
- DMR APRS Sys N time slot: 0 = Channel, 1 = Timeslot 1, 2 = Timeslot 2
- Transmit power: 0=low, 1=mid, 2=high, 3=turbo.
- Pewave delay: in multiples of 10ms [0,2550ms], default=0ms.
- Manual TX interval: n+1 seconds. [0,255], default=0s
- Auto TX interval: 0=Off, 1=30s, ..., 255=7650s, default=off
- FM APRS Monitor enable: If enabled, the radio will monitor send FM APRS transmissions. default=off
- Rep. activation delay: 0=Off, 1=100ms, ..., 10=1000ms.
- APRS display time: 0=3s, 1=4s, ..., 12=15s, 13=infinite, default=3s
- RPO: Report position flag.
- RME: Report MIC-E flag.
- ROB: Report object flag.
- RIT: Report item flag.
- RMS: Report message flag.
- RWX: Report weather flag.
- RNF: Report NEMA flag.
- RST: Report status flag.
- ROF: Report other flag.
- FM APRS width: 0=narrow, 1=wide.
- Pass all: 0=Off, 1=On, no idea.
2 changes: 1 addition & 1 deletion doc/code/d878uv_channel.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
38 | GPS System Index | Freq. corr. signed in 10Hz | DMR encryption idx +1, 0=off | 0 0 0 0 0 |SMF|RnK|Muk|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
3c | Unused set to 0x00000000 |
3c | FM APRS Frequency index | Unused set to 0x000000 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Field description:
Expand Down
Loading

0 comments on commit ba64a9a

Please sign in to comment.