OP25 and external UDP audio server

Status
Not open for further replies.

P25_LA

Member
Joined
Mar 15, 2019
Messages
7
Location
Los Angeles, California
I pulled OP25 from boatbod's github repo and it's working well on Ubuntu 18.04. I can decode P25 phase 1 with the -U command line parameter and I can hear decoded voice through my laptop headphones. But, I try to use the -w -W <host> options and I can't use vlc.exe to hear the raw audio packets on the remote host. I'm using the "vlc.exe --clock-jitter=500 --network-caching=0 --demux=rawaud --rawaud-channels 1 --rawaud-samplerate 8000 udp://@:23456 " command as in the readme on github, and I've tried it on two different machines. I'm using the -l http:127.0.0.1:8080 option with rx.py and I tried not plotting.

On the remote machine when I try to decode the UDP packets as audio I hear occasional bursts of what sounds like static when the station is transmitting. I can tell packets are arriving because in Wireshark I see UDP traffic on port 23456 coming from the laptop with the SDR receiving.

I also tried telling rx.py to send packets to 127.0.0.1 and in another terminal shell I run audio.py and I hear the same thing. As audio.py runs it prints PCM underrun messages. On the computer where I'm running vlc.exe I've tried various sample rates but nothing seems to make voice audio come through.

What could I be doing wrong? Thanks.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,494
Location
Talbot Co, MD
Make sure you have a "-V" to enable the vocoder. When you use the regular "-U" everything else is silently added behind the scenes, but if you manually specify the -w -W you may be using these for the true wireshark functionality *or* for voice over udp so the app has no way to decide on your behalf.
 

P25_LA

Member
Joined
Mar 15, 2019
Messages
7
Location
Los Angeles, California
Ah! That's what it was. Thanks a lot, working now! What I'm using in case anyone is interested:
./rx.py --args 'rtl' -N 'LNA:47' -S 960000 -f 506.9875e6 -o 0 -D cqpsk -w -W <host> -l http:127.0.0.1:8080 -V

The audio seems 10x better that tuning the same P25 station on SDR# and DSD+ on my Windows machine. Same SDR-RTL dongle and cheap rabbit ears antenna sitting on my dining room table. Maybe I just haven't found the right SDR# tuning variables that op25 does automatically right.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,494
Location
Talbot Co, MD
Ah! That's what it was. Thanks a lot, working now! What I'm using in case anyone is interested:
./rx.py --args 'rtl' -N 'LNA:47' -S 960000 -f 506.9875e6 -o 0 -D cqpsk -w -W <host> -l http:127.0.0.1:8080 -V

The audio seems 10x better that tuning the same P25 station on SDR# and DSD+ on my Windows machine. Same SDR-RTL dongle and cheap rabbit ears antenna sitting on my dining room table. Maybe I just haven't found the right SDR# tuning variables that op25 does automatically right.

I'm assuming this is a P25 conventional system since there is no trunk.tsv specified? That being the case, modulation is most likely C4FM, which means you probably want "-D fsk4" rather than the (default) "-D cqpsk".
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,494
Location
Talbot Co, MD
Yes, conventional non-trunked. Interesting, I can't seem to tell a difference between using "-D fsk4" and "-D cqpsk".
QPSK is compatible with C4FM but not so much the other way around. Using the fsk4 demod on a qpsk signal usually results in lots of bit errors and nearly no recovered voice. Since you can't tell the difference between the demodulators it's a fair bet that you are listening to a C4FM signal, which is of course generally what one would expect with P25 Conventional. The datascope eye diagram (plot #3) will confirm.
 
Status
Not open for further replies.
Top