SDRTrunk - p25 decoder test release

Status
Not open for further replies.

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
I posted the first test release of sdrtrunk with a P25 decoder. The test build is available at the downloads link on the website: https://code.google.com/p/sdrtrunk/

This version only decodes P25 trunked and conventional channels and does NOT currently decode xMBE audio, or follow trunked traffic channels.

If you encounter any errors or strange behavior or have any good/bad feedback to offer please let me know.

Denny
 

KD0TAZ

Member
Feed Provider
Joined
Dec 26, 2010
Messages
334
Location
Kansas
I've got my eye on this.. I'd like to use an SDR solution for feeds, but I'd like to be able to assign each dongle to a particular set of TGs.. It is a feature request that has been acknowledged by Unitrunker, but still has not been implemented. Maybe you could be first to market with it.. It's a feature that if implemented could start a whole new wave of P25 streams.
 

dw2872

Member
Joined
Sep 23, 2009
Messages
1,050
Location
Colorado
I've got my eye on this.. I'd like to use an SDR solution for feeds, but I'd like to be able to assign each dongle to a particular set of TGs.. It is a feature request that has been acknowledged by Unitrunker, but still has not been implemented. Maybe you could be first to market with it.. It's a feature that if implemented could start a whole new wave of P25 streams.

I second that. It would be a game changer. I have a bunch of SDR dongles and I'm itching to have each one assigned to its own TG.
 

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
I've got my eye on this.. I'd like to use an SDR solution for feeds, but I'd like to be able to assign each dongle to a particular set of TGs.. It is a feature request that has been acknowledged by Unitrunker, but still has not been implemented. Maybe you could be first to market with it.. It's a feature that if implemented could start a whole new wave of P25 streams.

To better understand, do you want to specify a TG and follow that TG exclusively for the audio output on a specific decoder channel?

Is the reason behind the tuner-talkgroup lock because you have a directional antenna on specific dongle?

If you could pool your tuners, using one of them as the control channel decoder and the others chasing traffic channels, with specific talkgroups each directed to their own audio output, would that also work?
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
I've got my eye on this.. I'd like to use an SDR solution for feeds, but I'd like to be able to assign each dongle to a particular set of TGs.. It is a feature request that has been acknowledged by Unitrunker, but still has not been implemented. Maybe you could be first to market with it.. It's a feature that if implemented could start a whole new wave of P25 streams.

KD0TAZ & dw2872,
You should be able to do what you want by running multiple copies of UT. Yes native support will be cool, but I don't think you need to wait.

Say you have 4 sdr sticks
Stick 1 Will be your trunk source
Stick 2 Will only track TG's Dispatch 1 & 2
Stick 3 Will only track TG's TAC 1,2,3
Stick 4 Will track everything else

First Copy of UT
Stick 1 as Source (but have the audio output to set to a free Virtual Audio Cable source) and mute unchecked.
Stick 2 as Voice follow like normal.
All other talk groups will be locked except (Disp 1 and Disp 2)

Second Copy of UT
Source input will be Discriminator with the audio input of the VAC you set as the output in the first copy of UT
Stick 3 as Voice like normal
All other talk groups will be locked except (Tac 1,2,3)

Third copy of UT
Source input will be Discriminator with the audio input of the VAC you set as the output in the first copy of UT
Stick 4 as Voice like normal
Then just lock out Disp 1, 2, TAC 1,2,3

**Each copy of UT will need to run from its own data folder

Dylan
 

jmjumps

Member
Joined
Feb 22, 2015
Messages
4
I posted the first test release of sdrtrunk with a P25 decoder. The test build is available at the downloads link on the website: https://code.google.com/p/sdrtrunk/

This version only decodes P25 trunked and conventional channels and does NOT currently decode xMBE audio, or follow trunked traffic channels.

If you encounter any errors or strange behavior or have any good/bad feedback to offer please let me know.

Denny

I built it myself and tried it out with a control channel and 2 others (I only have 1 RTL-SDR). No problems with the P25 decoding once I got it to start decoding. I don't know if this is a RTL-SDR thing, my antenna setup, or what, but I thought I had it centered well... after scooting over 0.2PPM it locks on and does fine from then on. Of the other two channels, I could only get 1 to decode after similar tweaking. Using LSM Simulcast on all. RR for my area mention multipath from multiple antennas being a problem so maybe something there, but really I am new to this and have no idea what I'm talking about.

One strange behavior I noticed is the tuner base frequency doesn't stick across saves, and resets whenever I save changes to a channel. The frequency it reverts to is one that I entered at some point. For reporting issues like this do you prefer the tracker on code.google.com?

Excited to hear some voices in the future.

Jordan
 

KD0TAZ

Member
Feed Provider
Joined
Dec 26, 2010
Messages
334
Location
Kansas
To better understand, do you want to specify a TG and follow that TG exclusively for the audio output on a specific decoder channel?

Is the reason behind the tuner-talkgroup lock because you have a directional antenna on specific dongle?

If you could pool your tuners, using one of them as the control channel decoder and the others chasing traffic channels, with specific talkgroups each directed to their own audio output, would that also work?

Yes. The underlying reason behind this is to get a specific sets of TGs on a P25 system routed to specific virtual audio cables to DSD. Basically I used to provide feeds for my town and a neighboring town using old cheap scanners. My town changed to P25 first a couple years ago, and forced me to buy a P25 scanner for my own use.. I originally was not going to dedicate a $400 scanner to my feed, but it turned out to be a little easier for myself if I did. So I put my town feed back up with my Pro 197.

The neighboring town up till a few months ago was still on a Motorola II system, but has since switched onto the P25. I am absolutely not going to buy a second P25 scanner for that feed, but if I can do it via SDR, I don't mind. I bought a dozen RTL dongles to play with a while back, but SDR# was a nightmare, and it bogged my system down.. So I shelved them.

When Unitrunker added native support for the RTL and no longer required SDR#, I thought it was the perfect solution.. However when I set it up, I learned that if you have more than one voice dongle, they just act as "overflow" receivers - that is, all it does is route simultaneous transmissions to the next available voice receiver. That's neat and it works really well (even better than a scanner in fact) if you're just listening, but it's useless for streaming a feed.

What I need (and like I said if you can do this, it will open up a whole new realm of P25 feed availability) is the ability for the control software to route specific TGs to specific voice dongles all the time, like this:

Dongle#
1: Control Channel
2: TG 1234, 5678, 9098, and 7654, outputting to VAC1 -> DSD1.exe -> VAC4 -> Stream1
3: TG 4321, 5432, 4567, and 0098, outputting to VAC2 -> DSD2.exe -> VAC5 -> Stream2
4: TG 2345, 9345, outputting to VAC3 -> DSD3.exe -> VAC6 -> Stream3
All other TGs can be ignored/not routed.

This would allow me to have one machine streaming three separate agencies, using four dongles and a single instance of the trunking control program..

KD0TAZ & dw2872,
You should be able to do what you want by running multiple copies of UT. Yes native support will be cool, but I don't think you need to wait.

Say you have 4 sdr sticks
Stick 1 Will be your trunk source
Stick 2 Will only track TG's Dispatch 1 & 2
Stick 3 Will only track TG's TAC 1,2,3
Stick 4 Will track everything else

First Copy of UT
Stick 1 as Source (but have the audio output to set to a free Virtual Audio Cable source) and mute unchecked.
Stick 2 as Voice follow like normal.
All other talk groups will be locked except (Disp 1 and Disp 2)

Second Copy of UT
Source input will be Discriminator with the audio input of the VAC you set as the output in the first copy of UT
Stick 3 as Voice like normal
All other talk groups will be locked except (Tac 1,2,3)

Third copy of UT
Source input will be Discriminator with the audio input of the VAC you set as the output in the first copy of UT
Stick 4 as Voice like normal
Then just lock out Disp 1, 2, TAC 1,2,3

**Each copy of UT will need to run from its own data folder

Dylan

Yeah considering this would be used to provide feed streams, and would need to run unattended and be able to recover itself in the case of a reboot, that's not an option. The more things can be done natively by one program the better. It's already still kludgy having to open an instance of DSD+ for each dongle in order to decode the audio, having to run multiple instances of the trunking control program just makes things even messier.
 
Last edited:

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
Yes. The underlying reason behind this is to get a specific sets of TGs on a P25 system routed to specific virtual audio cables to DSD.

I will be adding audio decoding to sdrtrunk via an external MBE codec plugin. I'm planning to redesign the audio output management function.

If you had the ability to define multiple soft audio output channels in sdrtrunk that could each be directed to a feed and then designate specific talkgroups to use specific audio outputs, would that solve what you are trying to achieve?
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
Yeah considering this would be used to provide feed streams, and would need to run unattended and be able to recover itself in the case of a reboot, that's not an option. The more things can be done natively by one program the better. It's already still kludgy having to open an instance of DSD+ for each dongle in order to decode the audio, having to run multiple instances of the trunking control program just makes things even messier.

No question it's not optimal. Was just suggesting something you could start doing today and not have to wait.

I don't understand why you can start UT/sdrtrunk and multiples instances if dsdplus after a reboot but would not be able to start 2 extra instances of UT.
Mine was starting up just fine after reboot, just had a single batch file in my startup that took care of running all the programs.
*don't want to side stack this thread anymore.
 

KD0TAZ

Member
Feed Provider
Joined
Dec 26, 2010
Messages
334
Location
Kansas
I will be adding audio decoding to sdrtrunk via an external MBE codec plugin. I'm planning to redesign the audio output management function.

If you had the ability to define multiple soft audio output channels in sdrtrunk that could each be directed to a feed and then designate specific talkgroups to use specific audio outputs, would that solve what you are trying to achieve?

Man if you could make it so that you don't require DSD+, that would make things a zillion times easier by itself. And absolutely if audio for specific talkgroups could be separated by the software - if you can find a better way to make it happen, by all means, please do it! :D:D
 

jazzbassNick

Member
Feed Provider
Joined
Jul 3, 2012
Messages
184
Location
San Gabriel CA
I posted the first test release of sdrtrunk with a P25 decoder. The test build is available at the downloads link on the website: https://code.google.com/p/sdrtrunk/

This version only decodes P25 trunked and conventional channels and does NOT currently decode xMBE audio, or follow trunked traffic channels.

If you encounter any errors or strange behavior or have any good/bad feedback to offer please let me know.

Denny

Working great on my Linux Mint 17 box, as usual.
Thanks Denny!
 

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
I built it myself and tried it out with a control channel and 2 others (I only have 1 RTL-SDR). No problems with the P25 decoding once I got it to start decoding. I don't know if this is a RTL-SDR thing, my antenna setup, or what, but I thought I had it centered well... after scooting over 0.2PPM it locks on and does fine from then on. Of the other two channels, I could only get 1 to decode after similar tweaking. Using LSM Simulcast on all.

The C4FM decoder has Automatic Frequency and Gain Control and will continuously center-tune the signal despite any drift in the dongle. However, I haven't figured out a good strategy for frequency control with the LSM decoder yet, so your solution of tweaking the PPM is the only option at the moment.

One strange behavior I noticed is the tuner base frequency doesn't stick across saves, and resets whenever I save changes to a channel. The frequency it reverts to is one that I entered at some point.

With each channel that you enable for decoding, the tuner automatically attempts to retune to a center frequency that is a best-fit for all of the channels being sourced by the tuner. It doesn't remember a center frequency for each channel.

For reporting issues like this do you prefer the tracker on code.google.com?
Jordan

While the P25 decoder is still in development and test releases, you can either post here or on the google support group. Once we go final with the P25 decoder, then they'll become bugs for the tracker.

Denny
 

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
I posted an updated test build that includes alias icon display in the decoding channel panel. If you create an alias list with aliases and talkgroup ID's, the panel will show the alias text and the icon that you choose for the alias.

I added a new fire truck and rescue truck icon. If anyone has created any good (generic) .png icons with transparent background and 12-pixel height, please send to me and I can include in the build as default icons. You can also use the Icon Manager to import your own icons to use with the aliases.

I also updated the wiki page for the P25 decoder.

Denny
 

rjdj2000

Gone Cuckoo
Feed Provider
Joined
Jan 24, 2011
Messages
347
Location
Central NY
Denny,

Any updates to this yet? Have messed around with it some and it looks very promising. Can't wait till it can decode the audio as well.
 

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
I'm getting close to finishing the audio decoder. If you've never studied the imbe vocoder spec, it's a beast. I'm currently working on the audio synthesis section and hope to hear audio today or tomorrow if all goes well. I've invested a lot of time studying each of the sections of the vocoder so that I can remove (precalculate) as many unnecessary calculations as possible and hopefully that will pay off with reduced cpu load when you're running multiple p25 traffic channels.

Denny
 

rjdj2000

Gone Cuckoo
Feed Provider
Joined
Jan 24, 2011
Messages
347
Location
Central NY
That sounds great Denny. Can't wait till it is out so we can try it out. I will sure put it through its paces. One question I have for you. Will we be able to run like my current setup? I have 3 dongles running in unitrunker and 2 are decoding audio and outputting to either the l or r channel on one of the VAC I have setup.


Sent from my iPhone using Tapatalk
 

DSheirer

Member
Premium Subscriber
Joined
Feb 15, 2010
Messages
572
Location
Fulton, NY
The first test version will let you listen to one channel at a time, whichever one you have selected.

You'll still be able to decode and record multiple traffic and control channels simultaneously, across as many dongles as you need, constrained by your computer's ability to process all of the data.

If your control channel and each of your traffic channels all fit within the bandwidth of one dongle, you can simply use just one dongle to source all of the channels.
 
Status
Not open for further replies.
Top