lwvmobile / dsd-fme

Digital Speech Decoder - Florida Man Edition
Other
162 stars 31 forks source link

WIP - Hytera XPT: Ongoing Work #110

Closed lwvmobile closed 1 year ago

lwvmobile commented 1 year ago

This Issue Thread will be a general synopsis of ongoing work for Hytera XPT System decoding and trunking. Currently, I have remote access to a few small Hytera XPT systems, none of which are very busy at all so changes and testing is a game of make a small change/tweak, and wait for a while to see if it behaves properly, so progress is slow. I also have a few small IQ samples of multiple super busy XPT systems, which makes things a bit more diffucult as its hard to figure out the seperation between systems, but has a lot of things going on so its easy to test some changes, but not trunking related changes.

Also, note, most of the decoding is from observation and attempts to reverse engineer what is believed to be happening on these systems, there is no published spec on this, and the patent doesn't really seem to directly line up with any information observed on the CSBK/LC/etc. There are also some user manuals that give information, but not on how to decode these systems, just their capabilities, so those are used to infer bit lengths, etc and try to finding matching bits of information in the data, and making regions of link control, csbk, and data header src and tgt values match up.

Current work in progress includes refining the Hytera XPT Site Status CSBK to fix some minor code issues (index plus 1 issues) that may have prevented it from tuning to the correct LSN channel. I have also changed the 'Ch:' nomenclature to 'LSN:' to mean the logical slot number the activity is occurring on to differentiate it from an LCN 'RF' Channel numbering that is found in Hytera XPT Full Link Control. For example, LCN 1 would contain LSN 1 and LSN 2; LCN 2 would contain LSN 3 and LSN 4, and so on.

15:57:18 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free RPT: 2 SN: 0 
 LSN 01: ST-0 Idle LSN 02: ST-0 Idle LSN 03: ST-0 Idle 
 LSN 04: ST-2 181 LSN 05: ST-2 187  LSN 06: ST-0 Idle 
 DMR PDU Payload [0A][68][20][28][00][00][00][B5][BB][00][4E][8A]

15:57:18 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free RPT: 2 SN: 1 
 LSN 07: ST-3 Null LSN 08: ST-3 Null LSN 09: ST-3 Null 
 LSN 10: ST-3 Null LSN 11: ST-3 Null LSN 12: ST-3 Null 
DMR PDU Payload [4A][68][2F][FF][00][00][00][00][00][00][6A][80]

Furthermore, I have also been working on refining the main Link Control method used by XPT systems to be 'more correct' or more in line with what is found in the Site Status CSBK, along with more observation that I believe may include the LCN the call is taking place on. Note: LCN, not LSN:

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | TLC  <-- Hytera XPT uses the TLC to set up call like grants, more akin to a P25 TDULC
 SLOT 1 FLCO=0x09 FID=0x68 TGT=10002 SRC=9851 Hytera XPT Private Call Alert 
  TGT Hash=187; HSK=0; Handshake - Ordinary; Call on LCN 3; Free LCN 2;
 DMR PDU Payload [09][68][30][20][27][12][00][26][7B][BD][1A][2C]

Above, we can see Hash 187 (a CRC8 hash of the 16-bit TGT value to make it fit within an 8-bit value), and this call occurring on LCN 3, which is LSN 5 or LSN 6. The Site Status CSBK above shows it as on LSN 5. I've done some extensive testing on this one, and this seems to always line up, so i feel pretty confident in this addition. The 'Handshake' is purely per the patent, and it always is zero on the samples and systems I have access to, so can't say for certain this is accurate, but it is included for now. Free LCN refers to the current designation of the 'free repeater channel', or which RF frequency is next in line for a call to occur on.

Another thing to mention, I've discovered that along with LC, that other elements that use the SRC/TGT values, such as the Preamble CSBK, and Data Headers, also use a 16-bit version of both SRC and TGT, and that those values need to be truncated to 16-bit as well in order to properly line up with the link control, and in the case of private/individual data, a CRC8 Hash is also required for all elements to correlate to its proper placement in the Site Status CSBK. I've made changes to the code in relevant areas to truncate and hash as required so all elements of TG/TGT and SRC line up in TLC Call set ups, Preamble CSBK, Data Headers, and the Site Status CSBK.

Some elements below were trimmed out to avoid repetitiveness and highlight each part.

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | TLC  
 SLOT 1 FLCO=0x09 FID=0x68 TGT=10002 SRC=9851 Hytera XPT Private Call Alert 
  TGT Hash=187; HSK=0; Handshake - Ordinary; Call on LCN 3; Free LCN 2;  
 DMR PDU Payload [09][68][30][20][27][12][00][26][7B][BD][1A][2C]

15:57:18 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free RPT: 2 SN: 0 
 LSN 01: ST-0 Idle LSN 02: ST-0 Idle LSN 03: ST-0 Idle 
 LSN 04: ST-2 181  LSN 05: ST-2 187  LSN 06: ST-0 Idle 
 DMR PDU Payload [0A][68][20][28][00][00][00][B5][BB][00][4E][8A]

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | CSBK
 Preamble CSBK - Individual Data - Target [10002] - Target Hash [187] - Source [9851] 
 DMR PDU Payload [BD][68][80][06][20][27][12][00][26][7B][D9][AB]

 SLCO Hytera XPT - Free RPT 2 
 SLCO Completed Block [86][82][00][08][A0]

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | CSBK
 Preamble CSBK - Individual Data - Target [10002] - Target Hash [187] - Source [9851] 
 DMR PDU Payload [BD][68][80][05][20][27][12][00][26][7B][01][29]

15:57:18 Sync: +DMR   slot1  [slot2] | CACH/Burst FEC ERR

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | DATA 
 Slot 1 Data Header - INDIV - Short Data: Defined - Source: 9851 Target: 10002 Target Hash: 187
  SD:D [DD_HEAD] - SAP 09 [Prop PDU] - BLOCKS 04 - DD 00 - PADb 40 - FMT 00 [Binary]
 DMR PDU Payload [0D][94][5D][27][12][08][26][7B][01][28][1C][85]

15:57:18 Sync: +DMR  [slot1]  slot2  | Color Code=10 | TLC  
 SLOT 1 Data Terminator (TD_LC) 
 DMR PDU Payload [30][68][20][26][7B][00][27][12][60][A9][03][E8]

I have yet to find a way to differentiate a 'data' call from a 'voice' call in the TLC Call Setup, if it exists at all in there. There are a few small groups of bits left over, and some of those could designate different 'call' types.

I'll slowly be chipping away at XPT, and will push some updates to it from time to time, and attempt to document any finding and updates here, but until I'm feeling confident about these updates, I most likely will not issue any precompiled releases soley for them.

lwvmobile commented 1 year ago

In the last batch of updates, I rearranged the message for Site Status to include the LCN for convenience and to break it up evenly so that its not an odd division of LSN per line and make it easier to see what's going on in the TLC Call Alert LCN Channel vs what's happening in the Site Status CSBK

13:50:03 Sync: +DMR   slot1  [slot2] | Color Code=01 | CSBK
 Hytera XPT Site Status - Free LCN: 2 SN: 0
 LCN 1 - LSN 01: ST-3 054;  LSN 02: ST-0 Idle; 
 LCN 2 - LSN 03: ST-0 Idle; LSN 04: ST-0 Idle; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][2C][0F][36][00][00][00][00][00][5D][1A]
13:50:03 Sync: +DMR  [slot1]  slot2  | Color Code=01 | TLC  
 SLOT 1 FLCO=0x09 FID=0x68 TGT=54 SRC=12016 Hytera XPT Group Call Alert 
  HSK=0; Handshake - Ordinary; Call on LCN 1; Free LCN 2;  
 DMR PDU Payload [49][68][17][20][00][36][00][2E][F0][2D][2F][22]
13:50:03 Sync: +DMR   slot1  [slot2] | Color Code=01 | CSBK
 Hytera XPT CSBK 0x0B - SN: 0
 XPT Adjacent Site:1 Free:2; Site:3 Free:1; Site:4 Free:2; Site:5 Free:1; 
 DMR PDU Payload [0B][68][08][20][18][10][20][20][28][10][3F][42]
13:50:03 Sync: +DMR  [slot1]  slot2  | Color Code=01 | TLC  
 SLOT 1 Hytera  FLCO=0x13 FID=0x68
 DMR PDU Payload [13][68][20][08][21][18][20][21][28][D1][3B][E8]
 SLCO Hytera XPT - Free LCN 2 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][82][00][08][A0]

I'd also like to point out that I am also now seeing the Hytera FLCO=0x13 in the TLC as well, before a voice call during the Call Alert phase. Previously I had thought this was only seen as an embedded link control, but seem that its also in the TLC. Currently, I have no idea how to decode this.

13:50:03 Sync: +DMR  [slot1]  slot2  | Color Code=01 | TLC  
 SLOT 1 Hytera  FLCO=0x13 FID=0x68
 DMR PDU Payload [13][68][20][08][21][18][20][21][28][D1][3B][E8]

Another thing that was added into link control was user indication when a call is considered an Emergency or All Call by using its group ID. In XPT, Group ID ranges from 1 to 240; emergency group call ID ranges from 250 to 254; all call ID is 255.

if (reserved == 1)
{
  fprintf (stderr, "Group ");
  if (target > 248 && target < 255) fprintf (stderr, "Emergency ");
  if (target == 255) fprintf (stderr, "All ");
} 
lwvmobile commented 1 year ago

Completed as much as I can with what I have; Seems to do okay;

francisuk1989 commented 1 year ago

Quick question? DMR BS - DCC: [10] Hytera XPT Free LCN - 15 Dos this mean that this system is channel 15?

lwvmobile commented 1 year ago

I don't know, to be honest, I don't believe I've ever seen that value go as high as 15 (0xF) before. Could be an error on my end for decoding it, since a lot of it is based on guess work and limited observation. Is it steadily 15, or does it change. Then again, it could be that that is a very large system with that many LCN's or maybe 15 means everything is busy. No idea.

Also, can you provide a sample of that system? If you are using SDR++, you can simply use the recorder built into it and make an Audio recording (not baseband).

lwvmobile commented 1 year ago

Okay, So, I had to refresh my own memory and look at the code and look at the manual, XPT says it supports up to 8 voice repeaters and 8 data repeaters for a total of 16 repeaters. In the context of XPT, Free LCN is what is classified as the current free repeater for the next call to occur on. Its possible that with the value of 15, that repeater is a data only repeater. I'm not entirely sure. That system may just be a very large XPT system for it to have a high Free LCN value. Not sure.

Screenshot from 2023-07-30 15-07-52

francisuk1989 commented 1 year ago

Also, can you provide a sample of that system? If you are using SDR++, you can simply use the recorder built into it and make an Audio recording (not baseband).

Yes that fine, I have been monitoring it for a hour or so but still at Free LCN - 15

Okay, So, I had to refresh my own memory and look at the code and look at the manual, XPT says it supports up to 8 voice repeaters and 8 data repeaters for a total of 16 repeaters. In the context of XPT, Free LCN is what is classified as the current free repeater for the next call to occur on. Its possible that with the value of 15, that repeater is a data only repeater. I'm not entirely sure. That system may just be a very large XPT system for it to have a high Free LCN value. Not sure.

I have just looked up the license for or what i belive is the system, It belongs to a small school, However the system is not busy so will try over the weekday.

lwvmobile commented 1 year ago

Just at a quick glance, I wonder if that system is currently 'offline', looking at the status for all the LSNs it shows all NULL values, which in the guess work to date based on other systems, means those are offline or not available. I seem to recall Free LCN 15 being 'offline' and that it happened on another system I was monitoring once over the weekend.

This is the sample you just sent while idle.

15:24:57 Sync: +DMR  [slot1]  slot2  | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]

This is a sample from a small system that was active, note the Idle and not NULL messages for the LSNs.

15:28:10 Sync: +DMR  [slot1]  slot2  | Color Code=01 | CSBK
 Hytera XPT Site Status - Free LCN: 1 SN: 0
 LCN 1 - LSN 01: ST-0 Idle; LSN 02: ST-0 Idle; 
 LCN 2 - LSN 03: ST-0 Idle; LSN 04: ST-0 Idle; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][10][0F][00][00][00][00][00][00][A8][1C]
 SLCO Hytera XPT - Free LCN 1 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][81][00][07][30]

and this is what it'll be when an active call shows up:

15:29:32 Sync: +DMR  [slot1]  slot2  | Color Code=01 | VLC  
 SLOT 1 TGT=72 SRC=23008 FLCO=0x00 FID=0x68 SVC=0x00 Hytera XPT Group Call  
 DMR PDU Payload [40][68][00][10][00][48][00][59][E0][83][93][2D]
 SLCO Hytera XPT - Free LCN 1 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][81][00][07][30]

15:29:32 Sync: +DMR   slot1  [slot2] | Color Code=01 | CSBK
 Hytera XPT Site Status - Free LCN: 1 SN: 0
 LCN 1 - LSN 01: ST-3 072;  LSN 02: ST-0 Idle; 
 LCN 2 - LSN 03: ST-0 Idle; LSN 04: ST-0 Idle; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][1C][0F][48][00][00][00][00][00][DE][F9]
francisuk1989 commented 1 year ago

@lwvmobile Are you aware of any Hytera XPT systems that give a "Choppy" voice but you can still understand them?

I have been monitering this channel today and i can hear them but is very choppy sounding like, Also my SDR++ days is on 50-60 for signal so not a weak.

Also not showing if is encrypted but i can make out what they are saying but everything is very choppy sounding like.

lwvmobile commented 1 year ago

I'm not particularly aware of any reason why XPT would be 'choppy' in comparison to any other variant of DMR, unless its some sort of error in the decoding that's forcing it to constantly attempt to resync. You can send samples if you want to.

Speaking of SDR++, what settings are you using for your radio? What BW and options are you using. I've found for DMR, you want to usually use 7000-12000 for BW, and disable any other audio filtering options (low pass, high pass, de-emphasis, and IF noise reduction).

francisuk1989 commented 1 year ago

Speaking of SDR++, what settings are you using for your radio? What BW and options are you using. I've found for DMR, you want to usually use 7000-12000 for BW, and disable any other audio filtering options (low pass, high pass, de-emphasis, and IF noise reduction).

12500 BW/Snap as 12.5k step, i believe eatch slot takes 6.25k so x2 = 12.5k disabled all pass's SDR++ shows i have between 50-60% signal so not a weak signal

lwvmobile commented 1 year ago

Not quite sure what to make of that one. All the voice frames show Silent Frames with 0 errors, but the CSBK is showing no activity on the site, there is no voice link control, and embedded link control has a failure, as well as a failure in the voice tact bits on the sync.

 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC1*
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC2 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC3 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC4 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC5 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:51 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:51 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC6 
 SLOT 1 FLCO FEC ERR  (FEC ERR)
 DMR PDU Payload [00][00][00][F0][00][40][10][04][01]
 AMBE F801A99F8CE080 err = [0] [0] 
 AMBE F801A99F8CE080 err = [0] [0] 
 AMBE F801A99F8CE080 err = [0] [0] 
 SB: 00000000000 - 000; 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC1 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC2 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC3 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC4 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC5 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync:  DMR                  | VOICE CACH/EMB ERR  <---this is why it would be choppy
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC1*
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC2 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8C6000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC3 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8C6000 err = [0] [0] 
 AMBE F801A99F8C6000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC4 
 AMBE F801A99F8C6000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8C6000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC5 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync:  DMR                  | VOICE CACH/EMB ERR  <---this is why it would be choppy
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC1*
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC2 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC3 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC4 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 

 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]
12:31:52 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:52 Sync: +DMR  [SLOT1]  slot2  | Color Code=10 | VC5 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
 AMBE F801A99F8CE000 err = [0] [0] 
12:31:53 Sync: +DMR   slot1  [slot2] | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
12:31:53 Sync:  DMR                  | VOICE CACH/EMB ERR <---this is why it would be choppy
lwvmobile commented 1 year ago

Might be some form of system failure, or hytera full protect, or unauthorized radio use on that system. No idea.

francisuk1989 commented 1 year ago

Might be some form of system failure, or hytera full protect, or unauthorized radio use on that system. No idea.

Thanks for looking into it @lwvmobile

lwvmobile commented 1 year ago

The only only other thing I can think of is that they have a bunch of reverse channel stuff going on, that could potentially cause it to constantly resync. Longer samples would be needed for examination if that is the case.

francisuk1989 commented 1 year ago

Longer samples would be needed for examination if that is the case. I will see what i can do tomorrow as this system isnt busy during the evening, Only thing i can tell you is that it just bursts off/on with XPT LCN 15.

15:24:57 Sync: +DMR  [slot1]  slot2  | Color Code=10 | CSBK
 Hytera XPT Site Status - Free LCN: 15 SN: 0
 LCN 1 - LSN 01: ST-3 Null; LSN 02: ST-3 Null; 
 LCN 2 - LSN 03: ST-3 Null; LSN 04: ST-3 Null; 
 LCN 3 - LSN 05: ST-3 Null; LSN 06: ST-3 Null; 
 DMR PDU Payload [0A][68][FF][FF][00][00][00][00][00][00][2E][7F]
 SLCO Hytera XPT - Free LCN 15 - PRI LCN 0 - PRI HASH: 00
 SLCO Completed Block [86][8F][00][03][00]

@lwvmobile When running in DSDPlus, I can see from the commands it doing;

+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000

then when the voice kicks in

+DMR           slot1         BS VC3    e:7r
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR           slot1         BS VOICE  e:6r
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR           slot1         BS VC2    e:7r
+DMR                slot2    BS DATA       DCC=10  CSBK XPT Beacon  FFFF000000000000
+DMR           slot1         BS VC4    e:16r

Google shows https://hytera-europe.com/news/dmr-xpt-pseudo-trunking-explained

lwvmobile commented 1 year ago

Yeah, there is A LOT of voice errors forcing repeat frames on it when the talker actually starts talking. Makes me think they are having equipment issues over there. That, combined with the Site Status values of all NULL (0xFFFFFF) and no TG activity in that CSBK. Also, worth noting, the FID on what little embedded link control I could get to work is all standard (0x00) and not Hytera (0x68). Also, the call has absolutely 0 VLC, 0 TLC at the beginning or end of the call, which is definitely not anythign I have ever observed on a Hytera XPT system. That is not normal system activity, almost makes me wonder if somebody is forcing their radio onto that repeater or something.

Maybe its just equipment issues though, perhaps it'll clear itself up later on down the road. The reason DSD-FME makes that audio choppy is due to the bad decode in the TACT/CACH burst on the voice and tries to resync due of it. DSDplus just rolls on through it.

lwvmobile commented 1 year ago

If you want to see a properly working XPT system, here is a sample wav file for you to compare against. Its from Quebec, so its in French.

https://ufile.io/p9evz088

lwvmobile commented 1 year ago

Something else worth mentioning, if you are using the main branch build, or 2.1b builds, you can still use the -fa switch on startup to use Legacy Auto, or pick that option in the ncurses menu, which has a hidden effect of running any DMR Voice as a single slotted Simplex Voice, I left that feature hidden in there (used to be called DMR Mono) because it can stabilize shaky voice on poor signal and doesn't force reset, it just gets a voice sync, and forcefully processes all six VC frames while skipping the other slot entirely.

francisuk1989 commented 1 year ago

Something else worth mentioning, if you are using the main branch build, or 2.1b builds

Main branch

Okay, So i have listen the system today without not much activity however this is very interesting system, Talkgroup 90 has them errors while talkgroup 201 sounds clear as anything, so it could be 2 things going here what makes me think is nothing to do with dsd fme.

1) can it be very cheap radio going on here with horrible mics on them? 2) weak signal from the Radios? as the Hytera system is doing only 5W (according to the License agreement)

lwvmobile commented 1 year ago

Has the activity improved any since this last update? Or is it still the same with TG 90 performing terribly and 201 performing well? Does TG 201 actually show proper slot/channel activity in ncurses compared to TG 90?

I suppose it could be any of those issues you mentioned, I'm not an expert on the radio equipment end of things (I'm not an expert at all on any matters actually) but I would assume that even if a radio had a terrible mic, or was almost out of the range of the repeaters input, the repeater itself should still provide a constant steady timing on its outbound channel, and also issue VLC and TLC frames at the beginning and end of calls, issue error free voice frames (even if the voice coming through sounds terrible) and so on, unless the repeater itself is having issues.