Java program to decode DMR

Status
Not open for further replies.

inigo88

California DB Admin
Database Admin
Joined
Oct 31, 2004
Messages
2,037
Reaction score
219
Location
San Diego, CA
I was guessing that bits 12 thru 16 could be the "Go to" repeater & TDMA slot channel number (Ch 1 through Ch 24?), but I will need to look at more logs to confirm this.

Oops sorry, I mean bits 11 thru 15.
 

inigo88

California DB Admin
Database Admin
Joined
Oct 31, 2004
Messages
2,037
Reaction score
219
Location
San Diego, CA
Hello Folks

From looking at a log my understanding of Unknown CSBK : CSBKO=62 frames is as follows (bit 0 is the left most bit)

Bit 2 - Channel 0 if ch1 and 1 if ch2
Bit 5 - Set if a unit to unit call
Bit 6 - Set if data call
Bit 8 - Set if group call
Bits 16 through to 23 - Group ident

Can anyone add anything to this ?

Regards

Ian

Hello Ian, I have been looking at my own logs to try and contribute what I can. I am no longer sure bits 11 thru 15 have to do with radio frequency LCN assignment (this theory fell apart after I looked at some other examples). A couple questions:

When you say bit 2 denotes the TDMA channel (Ch 1 if "0", Ch 2 if "1"), where do you observe the TDMA channel number in the log? I guess I am not quite familiar enough with the nomenclature in your log file yet. For instance, in the following log:

Code:
Group Address : 201 Source Address : 1756
2:40:59 PM DMR Data Frame
CACH : TACT  AT=1 [U]Ch 2[/U] Last fragment of LC
Slot Type : Colour Code 1 CSBK
Unknown CSBK : CSBKO=62 + FID=16 111[u]0[/u]001010000000110010010000000000000000000000000000000000000000

Does the bold Ch 2 mean TDMA Ch 2? If so, bit 2 is set to "0" in this case.

I also wanted to look at a couple CSBKO=62 + FID=16 frames side by side for different repeater frequencies on the system for comparison, and here are the results:

Code:
[B]On 462.1375 MHz:[/B]

11100011 10000000 01101010 0000000000000000000000000000000000000000

               	      Group 106

------------------------------------------------------------------------------------------

11100010 10000000 11001100 0000000000000000000000000000000000000000

		      Group 204

------------------------------------------------------------------------------------------

11100010 10000000 01100111 0000000000000000000000000000000000000000

11[u]0[/u]010[u]0[/u]0 010000[u]1[/u]0 01100111 [u]0110101[/u]000000000000000000000000000000000

		     Group 103

As you can see, the second Group 103 message is the first one where I've ever seen bits 24 through 30 used.

Code:
[B]On 463.5125:[/B]
----------------------------

11000011 00010000 01101010 0000000000000000000000000000000000000000

		      Group 106
---------------------------------------------------------
[B]On 463.2125:[/B]
----------------------

11100110 01001000 01101001 01101010 00000000000000000000000000000000

                     Group 106 (This is strange, the 3rd byte decodes to group 105, but program said group 106.)

------------------------------------------------------------

11100110 0[u]0[/u]001000 01101011 0000000000000000000000000000000000000000

		      Group 107

I still feel like there's some kind of correlation between a chunk of the 2nd byte and the repeater frequency channel assignment, but I'm not sure exactly what.

Also, from what I can tell every one of these was a group call, but in many cases bit 8 is "0."

I have been reading the ETSI standards on DMR trunking trying to get a better idea of what to be on the lookout for, but let me know if there are better places to research the Mototrbo trunking variants (since they definitely differ from the standard).

Sorry for hijacking the original purpose of this thread on a Capacity Plus tangent, if you'd like we can migrate this discussion to a new topic. Thanks again for the great program that made this possible!
 

inigo88

California DB Admin
Database Admin
Joined
Oct 31, 2004
Messages
2,037
Reaction score
219
Location
San Diego, CA
It sounds like my entire understanding of MotoTRBO trunking is wrong, and it is not as much like LTR as I thought. Found in the two year old "MOTOTRBO Trunking" thread:

hlferg said:
I see a lot of misunderstandings concerning Mototrbo trunking. It is a different format than LTR. LTR is a home chan. based system, talk groups look for a pre-programmed home chan. for system access . Mototrbo uses a rest chan./digital slot for system access. The radio sits on an un-occupied random chan/slot and waits for activity. If the activity is not intended for it's talk group the radio moves to the next open chan/slot. It does not use a system controller either like privacy plus either, so all channels can be used for activity. I know this is basic, but I hope it gives a better picture of the system.

I don't get it... if the radio sits on a random unoccupied frequency/TDMA slot, how does it know (unless its continuously scanning) when traffic on its talk group appears on another frequency/TDMA slot? This would certainly explain the lack of LCN data bits. Sorry for the wild goose chase. :)


Edit: Page 5 of the following pdf does a good job explaining rest channel operation. Also see "Late Entry" on page 11.
 
Last edited:

Jay911

Silent Key (April 15th, 2023)
Joined
Feb 15, 2002
Messages
9,378
Reaction score
380
Location
Bragg Creek, Alberta
I see frequent "DMR Embedded Frame - Error!" and other red lines on my screen on build 32. Is this to be expected? Is there any way for me to tell if my input volume is too high? (If the bar graph at bottom is green, am I OK?)
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hello

I see frequent "DMR Embedded Frame - Error!" and other red lines on my screen on build 32. Is this to be expected? Is there any way for me to tell if my input volume is too high? (If the bar graph at bottom is green, am I OK?)

Overall the program seems fairly tolerant of the volume level. Whats the percentage of errors you see when monitoring a system ?

Regards

Ian
 

inigo88

California DB Admin
Database Admin
Joined
Oct 31, 2004
Messages
2,037
Reaction score
219
Location
San Diego, CA
Hey Jay,

I get around 10% - 14% bad decodes as well. Luckily the same messages are repeated many times for redundancy.
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hello

I re-ran it again for a while and got 10% bad data.

Thats pretty much what I get when monitoring a reasonable system. As yet the program doesn't attempt any error correction it only detects bad data and discards it. Also the only way the program detects that a DMR data burst is over is by receiving a certain number (I think six) totally bad frames. These non-existant but bad frames count towards the bad data percentage at the moment so tend to inflate the number.

Regards

Ian
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hi Folks
I have just put build 36 up onto Github ..

https://github.com/IanWraith/DMRDecode/downloads

This new build comes with a number of new features including basic Capacity Plus decoding.

As ever bug reports or feature suggestions to this thread please however if you have a comment on Capacity Plus could you post that to the Capacity Plus thread on this forum please.

Regards

Ian
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
7,071
Reaction score
1,376
Location
Ontario, Canada
Ian: What is the difference between Quick Log and Save To File in the new build?
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hi Forts

Ian: What is the difference between Quick Log and Save To File in the new build?

Quick log saves certain events one a single line to a .CSV file that can be read by a Spreadsheet program. It was requested by a user who is monitoring and recording voice traffic with DSD and wanted an easy to read log format so they could match voice traffic to the log and so identify users.

Regards

Ian
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
7,071
Reaction score
1,376
Location
Ontario, Canada
I don't know if you changed anything in the decoding of 36 Ian, but I seem to be seeing far fewer errors now. Haven't had a chance to try it on a Capacity Plus system yet though :(
 

Jay911

Silent Key (April 15th, 2023)
Joined
Feb 15, 2002
Messages
9,378
Reaction score
380
Location
Bragg Creek, Alberta
I think I saw fewer errors, but I figured that was because more of the data is now "understood"...?

I tried to listen to a couple CP systems and a single-freq system today, but only got voice (and thus useful) info off the single-freq system. Which actually has at least 2 talkgroups in use, which makes it interesting in terms of storing it in the RRDB.
 

nycap

Member
Joined
Mar 13, 2008
Messages
196
Reaction score
0
I just installed a dicsriminator output with rca/phono jack on one of my radios. Can someone please tell me how to connect this to the computer? Please pardon my basic question, its just that i cant seem to find the answer on my own. Thanks in advance.
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
7,071
Reaction score
1,376
Location
Ontario, Canada
It simply plugs into the sound card of your computer (Line In or Mic input will do... just make sure Windows is looking at the proper input for recording).
 

nycap

Member
Joined
Mar 13, 2008
Messages
196
Reaction score
0
download and install and run question

Im sorry for this becuase it must seem like a really dumb question and ussually i am semi proficient with computers. but how exactly do i get the the program and install and get it running on windows? when i go to the GitHub site i see all the files but no download links or instructions or any of the such? Like do i have to have a compiler in UNIX and put all the code files in it in order to run it? Or is there a way i can install this program on windows and get up and running quickly?

Thank you very much in advance.
 
Status
Not open for further replies.
Top