DSD - Seeing more than one ShortLC opcode used on DMR Capacity MAX

thewraith2008

Member
Joined
Nov 22, 2016
Messages
1,266
I have a DMR Capacity MAX network 'TIII (MOT)' I'm monitoring and experimenting with using some custom DSD code I've been working on.
Normally, the SLCO opcode been used is SLCO=2 but I've noticed that every so often (i.e after many hours - random?) I also see SLCO=14(unknown) and SLCO=15(Cap+) opcodes been used.

At first, I thought this was some error in the DSD code either for Hamming, CRC or possibly a memory corruption (overflow or something else).
But now I think this is possibly normal and part of how Capacity MAX works.
Has anyone seen this occurring on any Capacity MAX networks that they monitor?


Other info:
Seen on both CC and VC.
The input signal to DSD is good and no decode errors are occurring while these SLCOs (14, 15) are seen.
- The hamming codewords(x3) and the CRC are valid with no errors when seen.

The 28 bits(+crc) of the SLCO(14,15) are quite different from the bits used in the SLCO=2.
I doubt random bits have just flipped and that it has not affected the hamming and the CRC checks.
While multi bit errors can make a valid codeword again, the CRC would still detect such an error.

I have also seen these SLCOs appear when using DMRDecode or DSD+.
DSD+ does not show any reference to the SLCO=15 opcode that I can see. Maybe be selectively ignoring it?

I have captured an IQ of these SLCO=14, 15 and on replay I still see the SLCO again at same timestamp. (Not a random decode issue)
When seen, the SLCO 14,15 are seen for about a minute also with the SLCO=2. (e.g. 2,14,15,2,14,15....)

I have added some logging to the DSD code to see how frequent these occur and for what duration.
At this stage, they seem to occur quite randomly and at large intervals (1-13 hr)
 

thewraith2008

Member
Joined
Nov 22, 2016
Messages
1,266
When I tried with DSD+, I used it with "-v4" and it appeared in the Trunk.log as "SLCO=14 xxxxxx".
The "xxxxxx" was a hex value for the 24 bits (which excludes the 4 bits of SLCO).

Looking at the log that I created (from the custom DSD), it is looking like the SLCO=15 could structured as follows:
Code:
1111-011011000111000000000000
wwww xxxxxxxxxxxxyzzzzzzzzzzz

w=slco (15) - 4 bits
x=lcn (1735) - 12 bits
y=timeslot (0) <-- a guess. Sometimes is 1. - 1 bit
z=only seen as all zeros - 11 bits
The LCN values are matching to the VC LCN for that network.

There could be a possibility that the SLCO=14 is structure as follows:
Code:
1110-001010100101000001101001
wwww xxxxxxxxxxxxxxxxxxxxxxxx

w=slco (14) - 4 bits
x=address (2773097) for TG/Gateway/MS/BS ? - 24 bits
The address values seen seems to match two talkgroups used on that network.
 
Last edited:

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
510
Location
Fulton, NY
According to the 102-361-4 (trunking volume), SLCO values 12-15 are supposed to be vendor specific. I would think that there should be an 8 bit vendor ID following the SLCO field. IIRC, the Capacity plus SLCO 15 (rest channel message) has the motorola vendor ID in that field.
 

thewraith2008

Member
Joined
Nov 22, 2016
Messages
1,266
I don't think that is the case here (for cap max) as the values I've seen are matches with the VC LCNs for that network and talkgroups that have been seen on it.

The SLCO itself can be "vendor specific", there should be no need to further add/waste bits for another field to state it.
It would seem that SLCO=15 is used differently depending if it's for CAP+ (as a SYS_Params) or Cap max (unknown use).
Cap max uses SLCO=2,3 for SYS_Params
 

EricCottrell

Member
Database Admin
Joined
Nov 8, 2002
Messages
2,383
Location
Boston, Ma
Hello,

The 8 bit vendor id is so radios do not misinterpret the message if they are from another vendor.

73 Eric
 

thewraith2008

Member
Joined
Nov 22, 2016
Messages
1,266
Hi Eric,

That may be true for slco=15 when used in the context of Capacity Plus as a SYS_Params.
But in Capacity MAX (at lease the one I'm looking at), the slco 14,15 seem to be used as a pair for some unknown purpose. (i.e not SYS_Params)
I'm 100% sure of the structure now as mentioned above, the values I get are for real LCNs and TGs.
 
Top