Saturday, January 13, 2018

Listening to DMR on the Rasperry Pi3 with op25 and a SDR

This past summer I blogged on how to listen to a simulcast APCO-25 trunked public safety system. Since that time was looking for a way to listen to a DMR system.  Last winter I gave the Raspberry Pi2 a try using DSD.  That didn't go so well.  I suspect because DSD was written a long time ago, and is a single threaded application that can't take advantage of the Pi's multiple cores.

Last April Transmit support was added to op25 for; DMR/YSF/P25 and D-STAR.  Just after Christmas this year, Receive support was announced.  So I had to try this!

I just heard DMR audio on a Pi3.. And it sounded good!

Linux op25 4.9.28-v7+ #998 SMP Mon May 15 16:55:39 BST 2017 arm71 GNU/Linux (Raspbian Jessie)

ppm set to 3 for me (see json file below) 
using my NooElec SDR




Note: DMR audio for the second time slot is sent on the specified port number plus two.  In example 'udp://127.0.0.1/56122', audio for the first slot would use56122; and 56124 for the second.

You can setup a mix of the various digital channels in the json file... It works like a scanner.. And if you want you can define SDR dongles to channels... In case you want certain channels banded to a certain hardware... for RF/antenna reasons for example.


Graham and Max have been hard at work improving op25.  And thanks to that hard work its child's play to install:

sudo apt-get update
sudo apt-get build-dep gnuradio

cd ~
git clone https://github.com/boatbod/op25
cd op25
./install.sh

If you are wondering what your tuning offset is, the best thing is to enable the datascope plot, and adjust the ppm value by one click at a time to center the eye plot.


{Edit/update April 2020}
Max just added a way to specify talk group id's for DMR:
There are two new json keys defined for the channel entry - examples
   "whitelist":  "4,6,8"
        or
   "blacklist": "9"
The talk group id's are specified as a string (comma separated list) with the entries in decimal. 

No comments: