How to use op25 w/ P25 systems spanning more than single RTL-SDR bandwidth

Status
Not open for further replies.

K0NYX

Member
Joined
Apr 10, 2019
Messages
16
Is there any way to assign multiple RTL-SDR dongles to a single running op25 instance when the talkgroup frequencies are over 3 MHz +/- from the control frequency?
If not, is there another way to handle this w/ op25? Are people just using supported SDR with a larger bandwidth that is affordable? What are the supported SDR devices that work with op25 (I'm using boatbod's version from github)

Sorry if this has been addressed in other threads, if so please direct to me where this is discussed.

Thanks!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
For P25 trunked systems, op25 does not need a wideband sdr because it re-tunes the receiver to follow the voice channel and can receive additional trunking information from the embedded signaling that accompanies voice calls. If a center frequency has been defined in trunk.tsv, op25 will attempt to use the full sample bandwidth so that it doesn't have to retune the hardware, but if that fails or is out of range, it will fall back and retune at the hardware level.

For DMR, P25 Conventional and anything else being monitored using multi_rx.py, a wider bandwith sdr is advantageous but not necessarily required because you can configure multiple sdr devices. See the examples and the README file for details.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
Is there any advantage to using multiple dongles for op25 trunking?

Multiple dongles are *only* possible with the multi_rx.py op25 app, which means that you are limited to P25 Conventional (non trunked), YSF, DMR (BS Tier II, MotoTrbo Con+) and DStar. P25 Trunking requires rx.py app, which only supports/requires a single RTL dongle.
 

air-scan

Member
Joined
Oct 6, 2019
Messages
479
Is there any advantage to using multiple dongles for op25 trunking?
Maybe you can try to run two processes of OP25 rx.py for two P25 systems or if your PD has a multi-site P25 system you can use both dongles one for each system if you can ask boatb0d how it's done. I hope your linux machine has the horsepower. You will need to make new TSV files too and a command line. I used bashrc to load mine.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
Maybe you can try to run two processes of OP25 rx.py for two P25 systems or if your PD has a multi-site P25 system you can use both dongles one for each system if you can ask boatb0d how it's done. I hope your linux machine has the horsepower. You will need to make new TSV files too and a command line. I used bashrc to load mine.
You can certainly run multiple instances of op25 (each with it's own RTL dongle) - setup is not that hard if each outputs to a different audio device. If you want the audio to mix together the config needs to be a little more complex.
 

rivardj

Member
Premium Subscriber
Joined
Dec 19, 2009
Messages
317
Location
Michigan
boatbod-

Would it be too much to ask that you elaborate on the audio setup for multiple instances of op25? I am very thankful for your work on the op25 project. I have a couple of Raspberry Pi 3 B+ running op25 and love it. However, I just purchase a Raspberry Pi 4 B and would like to consolidate my monitoring of multiple sites of a trunked P25 phase 1 system on to one computing device with only one audio device.

Sorry for resurrecting and old thread.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,338
Location
Talbot Co, MD
boatbod-

Would it be too much to ask that you elaborate on the audio setup for multiple instances of op25? I am very thankful for your work on the op25 project. I have a couple of Raspberry Pi 3 B+ running op25 and love it. However, I just purchase a Raspberry Pi 4 B and would like to consolidate my monitoring of multiple sites of a trunked P25 phase 1 system on to one computing device with only one audio device.

Sorry for resurrecting and old thread.
If all the audio needs to mix into a single sound device, all you really need to do is set a different wireshark udp port (-u) for each. I usually increment the port by 10 each time as they cannot be consecutive for reasons I'm not going to go in to. For this too work you'll need your host machine (RPi) set up to use pulseaudio so that more than one application can open a stream to the sound device at the same time.

e.g.
Code:
./rx.py --nocrypt --args "rtl=0" --gain-mode 0 --gains 'LNA:39' -S 960000 -V -u 23456 -X -v 1 -2 -U -T trunk-1.tsv  2> stderr_1.2
./rx.py --nocrypt --args "rtl=1" --gain-mode 0 --gains 'LNA:39' -S 960000 -V -u 23466 -X -v 1 -2 -U -T trunk-2.tsv  2> stderr_2.2
The alternative way of setting up multiple streams is to use liquidsoap and mix the audio within the .liq script.
Code:
./rx.py --nocrypt --args "rtl=0" --gain-mode 0 --gains 'LNA:39' -S 960000 -V -w -u 23456 -X -v 1 -2 -T trunk-1.tsv  2> stderr_1.2
./rx.py --nocrypt --args "rtl=1" --gain-mode 0 --gains 'LNA:39' -S 960000 -V -w -u 23466 -X -v 1 -2 -T trunk-2.tsv  2> stderr_2.2

input1 = mksafe(input.external(buffer=0.02, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -u 23456 -x 2 -s"))
input2 = mksafe(input.external(buffer=0.02, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -u 23466 -x 2 -s"))
out (add(input1,input2))
 
Status
Not open for further replies.
Top