RadioReference on Facebook   RadioReference on Twitter   RadioReference Blog
 

Go Back   The RadioReference.com Forums > Computer Aided Monitoring and Programming > Voice/Control Channel Decoding Software


Voice/Control Channel Decoding Software - For discussion of software applications which decode digital voice formats and trunking control channels. Please use the HF Digital Signals forum for anything below 30MHz.

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 09-29-2010, 9:13 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Post Java program to decode DMR

Hello All

Just a quick announcement of a little project I have started work on. I was fascinated by the release of DSD (whoever the author is if you are ever in the UK I owe you a beer) but I'm only really interested in the DMR decoding side of things as we hardly have any P25 over here. So I have taken parts of the DSD C code and ported it to Java with the eventual aim of creating an open source DMR data side decoder (I'm leaving the voice side and its legal problems alone). As it is written in Java it should run on Windows , Linux and Apple OS PCs.

Anyway its very early days right now and the program does nothing more than detect DMR voice and data sync words. I'm working on a problem where the program won't detect further sync words after it has gone into sync mode but I'm hampered by the usual lack of time. If anyone is interested I have put the code and the JAR compiled binaries up on Github at ..

IanWraith's DMRDecode at master - GitHub

in case anyone is interested.

Once again my thanks to the DSD author who has made all this possible.

Regards

Ian
Reply With Quote
Sponsored links
  #2 (permalink)  
Old 10-03-2010, 2:12 AM
Member
   
Join Date: May 2002
Posts: 493
Default good news

great job
is there any way to get a running code for windows (for those of us that are not a Software guru) ?
And hope that soon all the DSD will be ported to windows by someone ......

Best Regards
Ronen - 4Z4ZQ
Ronen Pinchooks (4Z4ZQ) WebSite
Reply With Quote
  #3 (permalink)  
Old 10-04-2010, 5:52 PM
Member
   
Join Date: Sep 2002
Posts: 832
Default

the java app is nice, and thanks for posting the code for futher work. I too would like to see a windows version of DSD. The author of dsd has generously posted the code and i would think it shouldnt be too diffficult to rewrite it in either VB or C++. then again im not a programmer so I may be way off base.
Reply With Quote
  #4 (permalink)  
Old 10-04-2010, 8:26 PM
jcardani's Avatar
Member
   
Join Date: Jan 2002
Location: Orlando, FL & Ocean City, NJ
Posts: 1,230
Default

Hi Ian,

Sounds like a great project!

I would suggest displaying Color Code, talkgroup ID, Unit ID, and Slot for DMR conventional channels (eg. MOTOTRBO) as well as trunked voice channels (eg. Nexedge). Control channel data on a Nexedge system would also be great.

Joe
__________________
Joe Cardani, W3FOY
Owner, PhillyScanner Yahoo Group and Greater Orlando Communications Group
Reply With Quote
  #5 (permalink)  
Old 10-05-2010, 2:34 PM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello

My thanks for everyones kind comments on my project. I would encourage anyone with an interest to take a look at the DSD code as its very interesting. If you do start a project have a look at Github as a way of sharing the code with others interested as its a useful resource.

Regards

Ian
Reply With Quote
Sponsored links
  #6 (permalink)  
Old 10-07-2010, 7:02 PM
wwhitby's Avatar
Member
  Audio Feed Provider
Audio Feed Provider
Amateur Radio Operator
Amateur Radio
 
Join Date: Jan 2003
Location: Autauga County, Alabama
Posts: 1,008
Default

Ian:

Thanks for starting this effort! All of us over here in the States owe you a pint!

Warren
__________________
Warren

Warren Whitby
CSX Montgomery, Alabama audio feed - http://www.broadcastify.com/listen/feed/14418/web
Reply With Quote
  #7 (permalink)  
Old 10-26-2010, 4:23 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello All
Just a quick note to let you all know I have uploaded a new version of my DMR Decoder (that is based around code from DSD) which can be downloaded from Github here ..

Downloads for IanWraith's DMRDecode - GitHub

(the new version is build 6)

Improvements in this new build include ..

1) It takes around 40% less system resources thanks to improving some threading code.

2) It now shows diagnostic information.

3) It should work on more soundcards than previous versions.

Right now the software doesn't decode much of anything and is its very early stages. If it does work it should look something like this ..

http://borg.shef.ac.uk/~ianw/dmrdecode2.png

For the software to work you will need Oracle Java installed on your PC (it usually is) , a known DMR signal and a scanner with a discriminator output connected to the Line In on your PC. If you do try the software please let me know what happens as I'm keen to get it working with as many setups as possible. Please note the software should also run on Linux and Apple PC's.

Regards

Ian
Reply With Quote
  #8 (permalink)  
Old 11-16-2010, 10:36 AM
Member
   
Join Date: Jan 2004
Posts: 178
Default can't work

C:\Program Files (x86)\Java\jre6\bin>java dmrdecode_b6.jar


Exception in thread "main" java.lang.NoClassDefFoundError: dmrdecode_b6/jar
Caused by: java.lang.ClassNotFoundException: dmrdecode_b6.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: dmrdecode_b6.jar. Program will exit.

what is wrong ????
Reply With Quote
  #9 (permalink)  
Old 11-16-2010, 1:46 PM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello

Just try the command ..

java -jar dmrdecode_b6.jar

Sometimes that works in these odd circumstances.

Regards

Ian
Reply With Quote
  #10 (permalink)  
Old 11-16-2010, 5:09 PM
Member
   
Join Date: Jan 2004
Posts: 178
Default thanks

thanks

working fine . Just need to understand what all that mean !!
Reply With Quote
  #11 (permalink)  
Old 11-18-2010, 5:51 PM
Member
   
Join Date: Feb 2010
Location: Tampa, FL
Posts: 340
Default dreaming

Does it happen to display talkgroup id, radio id, or color codes? Am I just dreaming? I really think that a way to bypass the AMBE/DVSI legal issues is to have a trunker-like program and then use that info to program into an actual commercial portable radio. No legal issues. I really wish I knew how to code.......TT
Reply With Quote
  #12 (permalink)  
Old 11-19-2010, 4:01 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello

Quote:
Originally Posted by TampaTyron View Post
Does it happen to display talkgroup id, radio id, or color codes? Am I just dreaming? I really think that a way to bypass the AMBE/DVSI legal issues is to have a trunker-like program and then use that info to program into an actual commercial portable radio. No legal issues. I really wish I knew how to code.......TT
The new build of the program that should be out soon (there are a few issues left to resolve) now decodes SLOT TYPE and EMB PDUs which contain colour codes as you can see in this screen shot ..

http://borg.shef.ac.uk/~ianw/dmrdecode10.png

DMR is a very complex protocol and I am working on the other info but it will take a while.

Regards

Ian
Reply With Quote
  #13 (permalink)  
Old 11-19-2010, 7:48 AM
Member
   
Join Date: Feb 2010
Location: Tampa, FL
Posts: 340
Default

Ian,
thank you for your hard work. If it was easy, everyone would be doing it already. Thank you, Ty.
Reply With Quote
  #14 (permalink)  
Old 11-20-2010, 10:59 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello Everyone
If anyone is interested build 10 of my very experimental DMR decoder is available. To get it go to ..

https://github.com/IanWraith/DMRDecode

Click on the downloads buttons and download build 10.

This new build decodes CACH TACT , SLOT TYPE and EMB PDUs and now displays a systems colour code.

If you follow me on Github this build is from the "PeakMeasuring" branch.

I'm still not happy with the demodulation code and suspect there is a serious problem but thought I would release this build for anyone interested.

Regards

Ian
Reply With Quote
  #15 (permalink)  
Old 11-22-2010, 7:12 PM
Member
   
Join Date: Feb 2010
Location: Tampa, FL
Posts: 340
Default

Ian,
could you tell me what CACH, TACT, EMB, and PDU are? Also, here is a copy/paste of what I have captured here at a facility near me. I am unsure of what I am looking at:


CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:10:12 PM DMR Voice Frame (Symbols=432)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:10:12 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:10:12 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:10:12 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of LC 01000001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:10:11 PM DMR Voice Frame - Error ! (Symbols=144)
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of LC 01001001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:10:11 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of LC 01001001000100100
7:10:10 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:10:10 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:10:10 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:10:10 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of LC 01001001000100100
7:10:10 PM DMR Voice Frame (Symbols=1008)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:09:08 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 00001000100000111
7:09:08 PM DMR Voice Frame (Symbols=576)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:08:05 PM DMR Embedded Frame - Error ! (Symbols=144)
7:08:04 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 Last fragment of LC 01001001000100100
7:08:04 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of LC 01001001000100100
7:06:57 PM DMR Embedded Frame - Error ! (Symbols=144)
7:06:56 PM DMR Voice Frame (Symbols=288)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:06:56 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 01001001000100100
7:06:56 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of LC 01001001000100100
7:06:56 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:06:56 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:06:56 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 01001001000100100
7:06:56 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of LC 01001001000100100
7:06:55 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:06:55 PM DMR Voice Frame (Symbols=432)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:05:51 PM DMR Embedded Frame - Error ! (Symbols=144)
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 01001001000100100
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of LC 01001001000100100
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01000001000100100
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001000000100100
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 01001001000100100
7:05:51 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of LC 01001001000100100
7:05:50 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100
7:05:50 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 2 First fragment of CBSK 01001001000100100
7:05:50 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 01001001000100100
7:04:46 PM DMR Embedded Frame - Error ! (Symbols=144)
7:04:46 PM DMR Voice Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 First fragment of CBSK 01001001000100100


Any direction would be appreciated. It seems your program works really, really well "out of the box." Thank you, TT.
Reply With Quote
  #16 (permalink)  
Old 11-22-2010, 9:06 PM
Member
   
Join Date: Feb 2010
Location: Tampa, FL
Posts: 340
Default

unchecked Main-Invert Signal:

9:03:58 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
9:03:57 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:57 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:57 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000110000001110
Slot Type : Colour Code 10 Idle
9:03:57 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:57 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:57 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : First fragment of LC
9:03:57 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000110000001110
Slot Type : Colour Code 10 Idle
9:03:57 PM DMR Voice Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
9:03:57 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:57 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : First fragment of CBSK
9:03:56 PM DMR Data Frame (Symbols=288)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000010000001110
Slot Type : Colour Code 10 Idle
9:03:55 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 1 Last fragment of LC 00000000000000000
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 1 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame - Error ! (Symbols=144) (692286)
9:03:54 PM DMR Data Frame - Error ! (Symbols=144) (688186)
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Last fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:54 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:53 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:53 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Last fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:52 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 00000001000000000
Slot Type : Colour Code 10 Idle
9:03:52 PM DMR Data Frame - Error ! (Symbols=144) (659514)
9:03:52 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:52 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Last fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:52 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:51 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:51 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:51 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 1 Last fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:50 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 00000000000000000
Slot Type : Colour Code 10 Idle
9:03:49 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 Last fragment of LC 00000000010010101
9:03:48 PM DMR Voice Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
9:03:48 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:48 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
Slot Type : Colour Code 10 Voice LC Header
9:03:48 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000110000001110
Slot Type : Colour Code 10 Idle
9:03:47 PM DMR Data Frame - Error ! (Symbols=144)
9:03:47 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001000
Slot Type : Colour Code 10 Idle
9:03:47 PM DMR Data Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
Slot Type : Colour Code 10 Voice LC Header
9:03:47 PM DMR Data Frame with Embedded Signalling (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000010000001110
Slot Type : Colour Code 10 Idle
9:03:47 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
Slot Type : Colour Code 10 Terminator with LC
9:03:47 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:46 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000010000100
Slot Type : Colour Code 10 Terminator with LC
9:03:46 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000010000001110
Slot Type : Colour Code 10 Idle
9:03:46 PM DMR Data Frame (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
Slot Type : Colour Code 10 Terminator with LC
9:03:45 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000100010
Slot Type : Colour Code 10 Idle
9:03:45 PM DMR Embedded Frame - Error ! (Symbols=144)
9:03:45 PM DMR Data Frame - Error ! (Symbols=144) (694330)
9:03:45 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : First fragment of CBSK
9:03:45 PM DMR Data Frame - Error ! (Symbols=864) (659514)
9:03:44 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
9:03:44 PM DMR Data Frame (Symbols=432)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000100000001110
Slot Type : Colour Code 10 Idle
9:03:43 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
9:03:43 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000110000001110
Slot Type : Colour Code 10 Idle
9:03:43 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:43 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 00011000000001010
Slot Type : Colour Code 10 Idle
9:03:42 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000100000100
EMB : Colour Code 10 : PI=1 : Continuation fragment of LC or CSBK
9:03:42 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000100000001100
Slot Type : Colour Code 10 Idle
9:03:42 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : First fragment of LC
9:03:42 PM DMR Data Frame with Embedded Signalling (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000000010
Slot Type : Colour Code 10 Idle
9:03:42 PM DMR Voice Frame (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
9:03:41 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000010001110100
9:03:41 PM DMR Data Frame - Error ! (Symbols=144) (693306)
9:03:41 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:41 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000110000001100
Slot Type : Colour Code 10 Idle
9:03:40 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
9:03:40 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:40 PM DMR Embedded Frame - Error ! (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000100000100
9:03:40 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000111000001110
Slot Type : Colour Code 10 Idle
9:03:39 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : First fragment of CBSK
9:03:39 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:39 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : Last fragment of LC or CSBK
9:03:39 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00000111000001110
Slot Type : Colour Code 10 Idle
9:03:38 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:38 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Last fragment of LC 10011000000001010
Slot Type : Colour Code 10 Idle
9:03:38 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 Continuation fragment of LC 01000000110000100
EMB : Colour Code 10 : Continuation fragment of LC or CSBK
9:03:38 PM DMR Data Frame (Symbols=144)
CACH : TACT AT=1 Ch 1 Continuation fragment of LC 00010100000001100
Slot Type : Colour Code 10 Idle
9:03:37 PM DMR Voice Frame with Embedded Signalling (Symbols=144)
CACH : TACT Ch 2 First fragment of LC 00000011001110100

Not sure which should be checked (inverted or not), nor how to tell. I guess, I may need to fire up my own repeater and do some tests. TT
Reply With Quote
  #17 (permalink)  
Old 11-23-2010, 3:24 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hello

The unchecked invert option is one to go for as you are seeing error free Slot Type and EMB messages.

As for what you are seeing DMR arranges its data into bursts of data called frames of which there are 3 types ..

1) Data Frames - These contain signalling into although all the program decodes at the moment is a small section called the Slot Type. This gives a number called the colour code that allows a radio to identify the network. This also says what kind of data the rest of the frame contains in may frames on your system this is "Idle" meaning the frame doesn't contain anything.

2) Voice Frames - These contain the voice data my program doesn't touch these at the moment.

3) Embedded Frames - These come in two flavours voice embedded frames (which contain a small section called the EMB that again contains a colour code) and data embedded frames which contain the Slot Type data my program decodes.

Now just to complicate things in between each frame the DMR base transmits a small burst of data called the CACH. The CACH contains a small stand alone segment of data called the TACT this identifies the timeslot in use (either channel 1 or channel 2 e.g ch1 or ch2) and the type of data contained in the rest of the CACH. As the CACH itself is to small to contain any meaningful data DMR spreads signalling data across 4 CACHs like this ..

CACH : TACT Ch 2 First fragment of LC
CACH : TACT Ch 1 Continuation fragment of LC
CACH : TACT Ch 2 Continuation fragment of LC
CACH : TACT AT=1 Ch 1 Last fragment of LC

Notice how the timeslot alternates. My next challenge is to deinterleave , error check and decode the signalling data being spread across the 4 CACH bursts.

I hope this helps but DMR is a complex mode. But if you have any further questions I will try my best to answer them.

Regards

Ian
Reply With Quote
  #18 (permalink)  
Old 11-23-2010, 8:39 AM
Member
   
Join Date: Feb 2010
Location: Tampa, FL
Posts: 340
Default

Ian,
thank you! This reminds me of the early days of control channel decoding! TT
Reply With Quote
  #19 (permalink)  
Old 11-23-2010, 5:09 PM
Member
  RadioReference Database Admininstrator
Database Admin
 
Join Date: May 2003
Location: Queensland, Australia
Posts: 629
Default

Quote:
Originally Posted by TampaTyron View Post
could you tell me what CACH, TACT, EMB, and PDU are?
CACH = Common Announcement CHannel
TACT = TDMA Access Channel Type
EMB = EMBedded Signalling Field
PDU = Protocol Data Unit

--
Comint

Last edited by Comint; 11-23-2010 at 5:13 PM..
Reply With Quote
  #20 (permalink)  
Old 11-24-2010, 10:46 AM
IanWraith's Avatar
Member
   
Join Date: Sep 2010
Location: ianwraith@gmail.com
Posts: 269
Default

Hi

I have had some time at night to play with the program and have now got it deinterleaving and error checking the Short LC data which is made up from CACH data. The findings are quite interesting.

I have uploaded the latest source code to Github but no new JAR files yet as I will try and polish it enough to put out a new build at the weekend.

Regards

Ian
Reply With Quote
Reply

Tags
dmr, sticky, trbo

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -5. The time now is 12:55 AM.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
All information here is Copyright 2012 by RadioReference.com LLC and Lindsay C. Blanton III.Ad Management by RedTyger
Copyright 2015 by RadioReference.com LLC Privacy Policy  |  Terms and Conditions