OP25 for Mototrbo C+

hanspeter

Newbie
Joined
May 26, 2020
Messages
2
Hi
I'm trying to monitor a single-site c+ system with OP25 multi_rx.py. The system has 6 TS so there is a master and two peer repeaters in operation. I have a usrp b200 SDR device. Based on the config file dmr_rtl_example.json I was able to configure my usrp to monitor the master repeater. I tried to add the two peer repeaters in the trunking section of the config-file with lcn=2 and lcn=3. Unfortunately this doesn't work which quite makes sense because c+ is not a trunking system (was worth a try...)

Does anyone has already achieved to monitor a c+ system with more than one repeater ?

I would like to use the usrp for this application. Is there a possibility to assign the same device to more than one instance of op25? If this is the case, the I could use an op25 instance per repeater. Or is there a possibility to demodulate the fsk4 "outside" of op25 and only use the decoding module of op25? If this is the case, I could demodulate the different carriers in GRC and use different audio sinks and patch it with virtual audio cables to op25

Any help would be appreciated!
thanks
 

boatbod

Member
Joined
Mar 3, 2007
Messages
2,321
Location
Talbot Co, MD
Hi
I'm trying to monitor a single-site c+ system with OP25 multi_rx.py. The system has 6 TS so there is a master and two peer repeaters in operation. I have a usrp b200 SDR device. Based on the config file dmr_rtl_example.json I was able to configure my usrp to monitor the master repeater. I tried to add the two peer repeaters in the trunking section of the config-file with lcn=2 and lcn=3. Unfortunately this doesn't work which quite makes sense because c+ is not a trunking system (was worth a try...)

Does anyone has already achieved to monitor a c+ system with more than one repeater ?

I would like to use the usrp for this application. Is there a possibility to assign the same device to more than one instance of op25? If this is the case, the I could use an op25 instance per repeater. Or is there a possibility to demodulate the fsk4 "outside" of op25 and only use the decoding module of op25? If this is the case, I could demodulate the different carriers in GRC and use different audio sinks and patch it with virtual audio cables to op25

Any help would be appreciated!
thanks
By "c+" do you mean Capacity+ or Connect+?

OP25's fsk4 demodulator currently does not capture a signal fast enough to lock the brief rest channel broadcasts from a Cap+ system (nor the tdma bursts used by DMR Simplex). That said, if you are monitoring a repeater which transmits full-time, you should be able to set up op25 to monitor multiple discrete channels using wide-band SDR hardware. The key to this is following the example given in "dmr_airspy_example.json" when you define your USRP hardware under the devices section as the the 'tunable' parameter must be set to false in order to share hardware among the different voice channels.

Lastly, I would mention that op25 does have the capability to record and play back raw symbol capture files. The file format is one symbol (dibit) per byte saved in a headerless binary file. You can enable this functionality by adding either "raw_output" or "raw_input" parameters to the appropriate channel definition in cfg.json. Once you have a saved capture file there is an adjunct utility ("scan4sync") which will parse the file and tell you if it sees any of the known sync sequences (e.g. P25, DMR, NXDN etc).
Code:
gnorbury@yoga2 ~/op25/op25/gr-op25_repeater/apps/util $ scan4sync sdrtrunk.bin 
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 343 (dist=343)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 703 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 1063 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 1423 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 1783 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 2143 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 2503 (dist=360)
P25_FRAME_SYNC [5575f5ff77ff] matched [5575f5ff77ff] with 0 errs at sym 2863 (dist=360)
 
Last edited:

hanspeter

Newbie
Joined
May 26, 2020
Messages
2
I meant capacity+, sorry for the vagueness

Thank you very much for the comprehensive answer. I already did a test with two separate instances running, each with a RTL2832 stick, one instance for the master repeater and one for the first peer (unfortunately, I have only 2 sticks available, not 3), this worked pretty good. Nevertheless I would like to use the USRP for covering all the repeaters with a single wideband SDR device (and benefit from a better frontend)

I looked at "dmr_airspy_example.json" but I'm actually not sure how to assign my usrp to two separate instances of op25: when I use the same device in both instances, only one instance is working properly. In the airspy-config there is one channel configured to stream to udp port 23466. Do I need to catch this stream in my second instance?

Probably useful for other USRP-users:
I first had problems with the "gains" string for setting the gains in the usrp. For airspy-devices, there seems to have 3 adjustable parameters for the gain-string: LNA, MIX and IF. For RTL-SDR there is only the LNA parameter and for my USRP B200, there is the PGA parameter which can be set from 0 to 76, according to "uhd_usrp_probe" (took some to figure that out)
 

boatbod

Member
Joined
Mar 3, 2007
Messages
2,321
Location
Talbot Co, MD
I meant capacity+, sorry for the vagueness

Thank you very much for the comprehensive answer. I already did a test with two separate instances running, each with a RTL2832 stick, one instance for the master repeater and one for the first peer (unfortunately, I have only 2 sticks available, not 3), this worked pretty good. Nevertheless I would like to use the USRP for covering all the repeaters with a single wideband SDR device (and benefit from a better frontend)

I looked at "dmr_airspy_example.json" but I'm actually not sure how to assign my usrp to two separate instances of op25: when I use the same device in both instances, only one instance is working properly. In the airspy-config there is one channel configured to stream to udp port 23466. Do I need to catch this stream in my second instance?

Probably useful for other USRP-users:
I first had problems with the "gains" string for setting the gains in the usrp. For airspy-devices, there seems to have 3 adjustable parameters for the gain-string: LNA, MIX and IF. For RTL-SDR there is only the LNA parameter and for my USRP B200, there is the PGA parameter which can be set from 0 to 76, according to "uhd_usrp_probe" (took some to figure that out)
If you send me your cfg.json I can take a look and see what needs to be tweaked. We can also use that as a "usrp example" which might help others along the way.
 
Top