Java program to decode DMR

Status
Not open for further replies.

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hi Folks
Just a quick note to say you can now download build 16 from Github ..

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

This version now decodes data contained in Voice LC header blocks like this ..

16:46:27 DMR Data Frame
CACH : TACT Ch 1 Last fragment of LC
Slot Type : Colour Code 5 Voice LC Header
Group Voice Channel User LC
Group Address : 1001 Source Address : 32

These indicate the start of a voice call.

Regards

Ian
 

grosminet

Member
Joined
Jan 21, 2004
Messages
318
Reaction score
99
Ian is working days and nights for our pleasure

Ian is working days and nights for our pleasure

is there any relationship in good decoding to force sound card in 48K .? is 44.1 enough ?
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
is there any relationship in good decoding to force sound card in 48K .? is 44.1 enough ?

The program forces the soundcard to sample at 48 KHz and if the soundcard says it can't do this then the program quits with an error.

The sampling must occur at 48 KHz as DMR data is sent at 4800 symbols a second so it sees exactly 10 samples per symbol. If the soundcard sampled at 44.1 KHz then there wouldn't be an exact number of samples per symbol. It is possible to use DSP techniques to sample at one rate and convert it to another but that would add to the number of calculations the program would be required to do and would slow it down.

Regards

Ian
 

TampaTyron

Beep Boop, Beep Boop
Joined
Feb 1, 2010
Messages
1,226
Reaction score
523
Location
Phoenix, AZ
Ian,
Is there any correlation witht he hashed addr and the actual talkgroup address for voice calls? I have a hashed address of 149 and that is for a known talkgroup of 1000 or 3000, now I am getting hashed address of 7. Still not able to decode the talkgroup or radio id directly. TT
 

IanWraith

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

Ian,
Is there any correlation witht he hashed addr and the actual talkgroup address for voice calls? I have a hashed address of 149 and that is for a known talkgroup of 1000 or 3000, now I am getting hashed address of 7. Still not able to decode the talkgroup or radio id directly. TT

The hashed address is a 8 bit checksum of the full 24 bit address. From memory of monitoring a few systems around here that sounds about right.

Regards

Ian
 

jcardani

Member
Premium Subscriber
Joined
Jan 16, 2002
Messages
1,393
Reaction score
91
Location
Orlando, FL
Just want to confirm if anyone in the USA running DMR decode on a Mototrbo system is getting talkgroup information (group address). thanks!
 

TampaTyron

Beep Boop, Beep Boop
Joined
Feb 1, 2010
Messages
1,226
Reaction score
523
Location
Phoenix, AZ
I am not. I have not pulled out my capacity plus system and fired it up, but no talkgroup or radio id info on any of 4 different mototrbo conventional systems, a couple I set up myself. I am getting the good color code decode, good slot info, and am getting the data fields in the proper order per Ian's above info. Just not getting talkgroup or radio ids. I wonder if his decoding is more taylored to Capacity Plus systems? I honestly do not have an answer and am suspecting my setup. TT
 

IanWraith

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

The sign of a Capacity Plus system are lots of unknown SLCO , and CSBK messages which the program displays in binary. However even with Capacity Plus systems I still see Header and Terminator LC messages.

Try leaving the program running monitoring a busy system and logging. Leave it running for a morning and then do a word search for "Terminator with LC" and tell me if you see anything.

Regards

Ian
 
Joined
Dec 27, 2002
Messages
96
Reaction score
5
Location
San Diego, CA
The program forces the soundcard to sample at 48 KHz and if the soundcard says it can't do this then the program quits with an error.

The sampling must occur at 48 KHz as DMR data is sent at 4800 symbols a second so it sees exactly 10 samples per symbol. If the soundcard sampled at 44.1 KHz then there wouldn't be an exact number of samples per symbol. It is possible to use DSP techniques to sample at one rate and convert it to another but that would add to the number of calculations the program would be required to do and would slow it down.

Regards

Ian

If you sample at 43.200 khz, you can get 9 samples per symbol :)
Using PCM format, you can use a sampling rate anywhwere from 6000 to the sound card's upper limit...

Jay
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Hello
Me again just to say I have just uploaded build 17 of DMR Decode to Github ..

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

This latest version uses an improved method of communication between the sound sampling thread and the main program. As a result the program now runs much faster and uses 50% less processor time. I'm pretty sure that it should now run on a single core processor without any problems.

Note there are still problems with a high number of bad frames and slow synchronisation with DMR signals but I feel progress is being made.

Regards

Ian
 

jcardani

Member
Premium Subscriber
Joined
Jan 16, 2002
Messages
1,393
Reaction score
91
Location
Orlando, FL
Hi Ian,

Thanks for your continued efforts!

FYI - build 17 is still using 100% CPU on my HP 2.8 GHz single core Pentium 4.
 

TampaTyron

Beep Boop, Beep Boop
Joined
Feb 1, 2010
Messages
1,226
Reaction score
523
Location
Phoenix, AZ
followup- SUCCESS!!!

I sent Ian a capture file and he was able to walk me through the process of extracting the talkgroup info from the file. It appears that searching your capture file for "Source Address." You will find Group Address right near it and that is your talkgroup ID#. If you see Target Address ignore it, this is for data and link control and is not a voice channel. I have confirmed this info is accurate and have programmed my mototrbo radios and it DOES 100% work! TT

After some thought, just searching for Group Address may be more effecient. TT
 

IanWraith

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

Thanks for your continued efforts!

FYI - build 17 is still using 100% CPU on my HP 2.8 GHz single core Pentium 4.

Sorry about that I have just had a similar report from one of my British testers. I saw CPU usage drop from 60% to 19% on this PC and thought I had done enough to get it working on a single core.

Regards

Ian
 

jcardani

Member
Premium Subscriber
Joined
Jan 16, 2002
Messages
1,393
Reaction score
91
Location
Orlando, FL
Hi Ian,

No problem. I am sure you will figure things out. You are making terrific progress.

I am still designing the hardware portion of the 4-fsk demod using the CML chip and made more updates to the PIC C program that controls it. Unfortunately there was no interest here on RR board with helping me design a hardware DSP approach, so I will have to settle with the CML chip design. Once the design is complete I can forward it to you.

I think the hardware front end would eliminate the processor strain on single core machines and eliminate the various compatability issues with sound cards. Hope that you could easily interface DMR decode with the chip's symbol output.

thanks!
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
7,041
Reaction score
1,338
Location
Ontario, Canada
Wow! Great work with this program, can't wait to give it a try tonight when I get home. I've been hoping for a while that something would come along to indicate group ID's and such.
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
7,041
Reaction score
1,338
Location
Ontario, Canada
Just wanted to mention build 17 seems to be using much less cpu time on my older dual core Intel setup.
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
Just wanted to mention build 17 seems to be using much less cpu time on my older dual core Intel setup.

Thanks I changed the way a thread of the program that samples the audio and then filters it passes its data to the main program. Before I did this the way I would in C with a shared buffer but yesterday changed it to a specific method Java has for doing this. Not only has this reduced the amount of code and its complexity but it has brought speed improvements as well.

Ian
 

rfothergill

Member
Joined
Sep 1, 2006
Messages
5
Reaction score
0
First attempt..

Hi all,

First post so please go easy on me.

I've hooked up my scanner (a cheap 72XLT off eBay as I didnt want to butcher my beloved 3500 wiring the discriminator tap) to the DMR software and got a very quick burst of activity on a local freq, namely:

17:59:50 DMR Voice Frame
CACH : TACT Ch 1 First fragment of LC
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT AT=1 Ch 2 First fragment of CSBK
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT Ch 1 First fragment of CSBK
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT AT=1 Ch 2 Last fragment of LC

(repeated a few more times)

Thing is, I got this off the headphone socket, not the tap.

Any idea what it means? I'm still playing to get the discriminator output working but electronics are not my thing so it's a bit of a mission!

Cheers
 

IanWraith

Member
Joined
Sep 29, 2010
Messages
269
Reaction score
0
Location
ianwraith@gmail.com
17:59:50 DMR Voice Frame
CACH : TACT Ch 1 First fragment of LC
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT AT=1 Ch 2 First fragment of CSBK
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT Ch 1 First fragment of CSBK
17:59:50 DMR Embedded Frame - Error ! jitter=5
CACH : TACT AT=1 Ch 2 Last fragment of LC

No problem at least the program is getting synchronisation and I'm amazed its doing that without a discriminator tap so well done.

By the looks of what you are getting you need to change the "Invert Signal" option in the "Main" menu. By default this will be on and you need it to be off. Once you have done that you should see some more decoded but be aware the volume level is critical. I do still think you will need a discriminator tap though but let us know how you go on.

Regards

Ian
 

rfothergill

Member
Joined
Sep 1, 2006
Messages
5
Reaction score
0
Thanks Ian.

I suspect my tap is wired incorrectly so I'll keep trying. Users of my local system are currently logging on so there's lots of traffic - will keep playing and let you know how I get on!
 
Status
Not open for further replies.
Top