In my last part I set the Pi up to stream to Broadcastify. In this one we are just going to pump audio out through the headphone jack.
I’m doing this with an old generic black RTL-SDR and it works and it works fine but it is kind of susceptible to heat and cold and the ppm correction drifts a bit. I really recommend getting a v3 RTL-SDR or a NESDR Smart as they seem more stable. At any rate it doesn’t matter, you’ll just have to deal with the drift if you have any.
My assumption here is that you have Raspbian installed on at least a Pi 3. I haven’t tried it on a lesser Pi but I had it on a Pi 3 B + and then I found a couple Pi 3 B’s laying around and figured I’d reclaim my B+ for another project on another day. OP25 runs fine on the Pi 3.
With Raspbian ensure that you are all up to date. Make sure you are FEEDING THE BEAST AT LEAST 2AMPS. YOUR RTL WILL PULL A LITTLE MORE CURRENT THAN JUST THE PI DOES. You could get dropped audio, crashes, etc. if you don’t have enough power supplied to the Pi. 2 amps is enough.
sudo apt-get update sudo apt-get upgrade
Now lets install op25.
git clone https://github.com/boatbod/op25.git cd op25 ./install.sh sudo apt-get install gnuplot-x11
Now lets make sure the volume is up on the Pi. Not the SYSTEM volume but rather the BCM2835 device volume.
Should look like this except your volume will be way down. Hit the shift key and the + key to increase to max volume.
Now go to this directory:
Now run this command. Bear in mind you MUST KNOW THE FREQUENCY OF THE CONTROL CHANNEL YOU WANT TO FOLLOW AND CHANGE THE -f PART TO THE CORRECT FREQUENCY.
./rx.py --args 'rtl' -N 'LNA:47' -S 2400000 -f 857.2625e6 -o 25000 -q -2
This box will pop up. Notice the top line has a bunch of zeros in it. This indicates YOU ARE NOT TUNED TO THE CONTROL CHANNEL
You have to adjust the -q -2 part until you see numbers filled in. For example I had to add -q 2 (not -2) to my command to get it to lock in. THIS DEPENDS ON YOUR INDIVIDUAL SDR. You many have to play around to find it and GNUPLOT can help with this.
Note that not only am I tuned correctly to the control channel it is already picking up voice transmissions.
NOTE: WITH THIS OLD GENERIC RTL I CAN START USING -q 2 HOWEVER, IF I RUN FOR A WHILE, SHUT IT DOWN AND TRY TO START BACK UP IT IS HOT AND NOW REQUIRES -q 8 TO START. WHAT AN AMAZING PAIN THAT WOULD BE. I STRONGLY RECOMMEND GETTING A NEWER, BETTER, FASTER V3 STICK THAT IS VERY STABLE AND HAS LESS DRIFT.
Now we can add to our commands. You need to have a trunk.tsv file set up and you need a talk group file set up. I talk about that here.
Now add to your last command the following:
-T trunk.tsv -V -2 -U 2> stderr-stream0.2
That makes the entire command: (remember to get your -q -whatever correct. Removing it completely can also work)
./rx.py --args 'rtl' -N 'LNA:47' -S 2400000 -f 857.2625e6 -o 25000 -q 2 -T trunk.tsv -V -2 -U 2> stderr-stream0.2
Provided your trunk.tsv file and talk group tsv file are configured correctly sound should now be coming out of your headphone jack.