OP25 Dashboard

OP25 is my FAVORITE police scanner program.  I track two trunked radio systems with ONE software defined radio.  My Uniden Police Scanner that does that costs $800.  This way costs about $30.

Anyway, I’m reading through some OP25 stuff today and I found out it has a web interface.  SAY WHAT?  Looks like this.










Which looks way better than this:








Soooooo………how do you do it?  It’s pretty easy but it only works with the latest commits to OP25.  Make sure to download and install the very latest version. Run the following 5 commands:

git clone https://github.com/boatbod/op25.git
cd op25
sudo apt-get install gnuplot-x11

Now set up OP25.  I discuss that here. Not going through all that again.

Now on your start up command add the following to your rx.py command

-l 'http:'

Looks like this:

Whoo.  Now point your browser to “

You done did it.


If you are on the computer that OP25 is configured to it is all good, you’ll have audio. If however you listen from another computer on the network there will be no audio unless you follow the directions here.

11 thoughts on “OP25 Dashboard

  1. seb

    That is awesome! Thank you for sharing! I was able to set it up and it’s all working perfectly!
    Here’s a little video of it:

    I would like to set it up as a mobile receiver, something easy to take in car; what would be the best way to have it automatically start on boot and have it receiving within a few seconds?

    Thank you for all your work and detailed guides.

    1. Jack

      I know I’m a bit late, but I got a setup for this. Basically Raspbian lite, and a couple screen commands. I had to disable the web interface because of some issue with DNS but it boots up in maybe 10 seconds and starts decoding audio through the headphone jack. I’ll share my script in a bit. It’s basically just a `screen` command to run op25 in the background and then /etc/rc.local calls that at boot to turn on op25. I also did some more trickery to patch the console of op25 into hdmi so if you have tuning errors you can fix it easier.

  2. Peter

    Error on line 54 in rx-py where it is trying to inport op25

    Please help so far so good untill I got to this point

  3. Chris

    I’m getting:

    socket.gaierror: [Errno -3] Temporary failure in name resolution

    when I use however works fine locally. Is there something I can change so other machines on my network can listen to this stream?


    1. Roy

      No change required. Just enter in your browser of another computer on your local net the IP address your op25 is running on and the port number. In my example:

  4. Michael

    Just wondering if you have encountered any issues with this on the latest builds? I am running on a raspberry pi 4 and everything works, but when I insert the -l ‘http:’ into my execution line, it does not execute and returns me to the shell… Any thoughts?
    Thanks for all of your documentation, its been so helpful for a true neophyte.


  5. John Mayson

    This is odd. It worked fine the first time. It hasn’t worked since. My browser just spins and spins. Never gives an error. And yes, I have turned it off and back on again. 🙂

    Anyone else seeing this?


Leave a Reply

Your email address will not be published. Required fields are marked *