Anne Arundel OP25 smartzone configuration

skipperdog

Newbie
Joined
Jun 9, 2023
Messages
2
I'm running OP25 on a DragonOS vm with two RTL-SDR dongles trying to recieve the Anne Arundel smart zone system. Currently when I run the program I only get humming sounds coming in and out. My two dongles are definitely detected by the program.


I run op25 with the following syntax:

./multi_rx.py -v 5 -c AA.json 2>stderr.2



Below are my config file, stderr output, and gnuplot, resectivley.

Here is my config file:
Code:
{
    "channels": [
        {
            "name": "control channel",
            "trunking_sysname": "Example",
            "device": "rtl0",
            "raw_output": "",
            "demod_type": "fsk",
            "destination": "smartnet",
            "excess_bw": 0.35,
            "filter_type": "fsk",
            "if_rate": 18000,
            "plot": "mixer",
            "symbol_rate": 3600
        },
        {
            "name": "voice channel",
            "trunking_sysname": "Example",
            "meta_stream_name": "stream_0",
            "device": "rtl1",
            "blacklist": "",
            "whitelist": "",
            "raw_output": "",
            "demod_type": "fsk4",
            "destination": "udp://127.0.0.1:23456",
            "enable_analog": "on",
            "nbfm_deviation": 4000,
            "nbfm_squelch_threshold": -60,
            "nbfm_squelch_gain": 0.0050,
            "excess_bw": 0.2,
            "filter_type": "widepulse",
            "if_rate": 24000,
            "plot": "",
            "symbol_rate": 4800
        }
    ],
    "devices": [
        {
            "args": "rtl=0",
            "frequency": 854412500,
            "gains": "LNA:17",
            "name": "rtl0",
            "offset": 0,
            "ppm": 0.0,
            "rate": 1000000,
            "tunable": true
        },
        {
            "args": "rtl=1",
            "frequency": 854412500,
            "gains": "LNA:17",
            "name": "rtl1",
            "offset": 0,
            "ppm": 0.0,
            "rate": 1000000,
            "tunable": true
        }
    ],
    "trunking": {
        "module": "tk_smartnet.py",
        "chans": [
            {
                "sysname": "Example",
                "control_channel_list": "854.4125",
                "tgid_tags_file": "",
                "tgid_hold_time": 2.0,
                "blacklist": "",
                "whitelist": "",
                "bandplan": "800_reband"
            }
        ]
    },
    "metadata": {
        "module": "icemeta.py",
        "streams": [
            {
                "stream_name": "stream_0",
                "icecastServerAddress": "your_stream_host_and_port",
                "icecastMountpoint": "your_mountpoint_name",
                "icecastPass": "your_password",
                "icecastMountExt": ".xspf",
                "delay": 0.0
            },
            {
                "stream_name": "stream_1",
                "icecastServerAddress": "your_second stream_host_and_port",
                "icecastMountpoint": "your_second_mountpoint_name",
                "icecastPass": "your_second_password",
                "icecastMountExt": ".xspf",
                "delay": 0.0
            }
        ]
    },
    "audio": {
        "module": "sockaudio.py",
        "instances": [
            {
                "instance_name": "audio0",
                "device_name": "default",
                "udp_port": 23456,
                "audio_gain": 1.0,
                "number_channels": 1
            }
        ]
    },
    "terminal": {
        "module": "terminal.py",
        "terminal_type": "curses",
        "#terminal_type": "http:127.0.0.1:8080",
        "curses_plot_interval": 0.2,
        "http_plot_interval": 1.0,
        "http_plot_directory": "../www/images"
    }
}



Here is my stderr output:

Code:
Configuring audio instance #0 [audio0]
using ALSA sound system
audio device: default
Listening on 127.0.0.1:23456
Configuring metadata stream #0 [stream_0]: your_stream_host_and_port/your_mountpoint_name
Configuring metadata stream #1 [stream_1]: your_second stream_host_and_port/your_second_mountpoint_name
Enabled trunking module: tk_smartnet.py
device: {u'gains': u'LNA:17', u'args': u'rtl=0', u'ppm': 0.0, u'rate': 1000000, u'frequency': 854412500, u'tunable': True, u'offset': 0, u'name': u'rtl0'}
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.11
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #0 Realtek RTL2838UHIDIR SN: 00000002
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
device: {u'gains': u'LNA:17', u'args': u'rtl=1', u'ppm': 0.0, u'rate': 1000000, u'frequency': 854412500, u'tunable': True, u'offset': 0, u'name': u'rtl1'}
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.11
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #1 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
channel (dev rtl0): {u'plot': u'mixer', u'name': u'control channel', u'excess_bw': 0.35, u'symbol_rate': 3600, u'destination': u'smartnet', u'demod_type': u'fsk', u'trunking_sysname': u'Example', u'filter_type': u'fsk', u'device': u'rtl0', u'raw_output': u'', u'if_rate': 18000}
Using two-stage decimator for speed=1000000, decim=10/4 if1=100000 if2=25000
06/11/23 12:33:26.714271 [0] Enabling nbfm analog audio
channel (dev rtl1): {u'plot': u'', u'nbfm_deviation': 4000, u'demod_type': u'fsk4', u'whitelist': u'', u'destination': u'udp://127.0.0.1:23456', u'excess_bw': 0.2, u'trunking_sysname': u'Example', u'filter_type': u'widepulse', u'nbfm_squelch_threshold': -60, u'blacklist': u'', u'device': u'rtl1', u'nbfm_squelch_gain': 0.005, u'meta_stream_name': u'stream_0', u'raw_output': u'', u'if_rate': 24000, u'symbol_rate': 4800, u'enable_analog': u'on', u'name': u'voice channel'}
Using two-stage decimator for speed=1000000, decim=10/4 if1=100000 if2=25000
Project 25 IMBE Encoder/Decoder Fixed-Point implementation
Developed by Pavel Yazev E-mail: pyazev@gmail.com
Version 1.0 (c) Copyright 2009
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see the file ``LICENSE'' for details.
op25_audio::open_socket(): enabled udp host(127.0.0.1), wireshark(23456), audio(23456)
op25_audio::open_socket(): enabled udp host(127.0.0.1), wireshark(23456), audio(23456)
06/11/23 12:33:26.725089 [1] Enabling nbfm analog audio
06/11/23 12:33:26.725137 [1] op25_nbfm::control: analog audio enabled
06/11/23 12:33:26.725203 [0] Initializing Smartnet system
06/11/23 12:33:26.725235 [1] Initializing voice channel
Allocating 15 zero-copy buffers
Allocating 15 zero-copy buffers
1686501206.817270 meta_server::send_metadata(): exception HTTPConnectionPool(host='your_stream_host_and_port', port=80): Max retries exceeded with url: /admin/metadata?mount=/your_mountpoint_name&mode=updinfo&song=[idle] (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7484311dd0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
06/11/23 12:33:40.145220 [0] set tgid=17392, status=0x0, srcaddr=-1
06/11/23 12:33:40.145292 [0] new tgid=17392 TGID[17392] prio 3
06/11/23 12:33:40.145338 [0] new freq=855.537500
06/11/23 12:33:40.145356 [1] voice update:  tg(17392), freq(855.537500), mode(-1)
06/11/23 12:33:40.269009 [1] op25_nbfm::control: analog audio enabled
1686501220.372822 meta_server::send_metadata(): exception HTTPConnectionPool(host='your_stream_host_and_port', port=80): Max retries exceeded with url: /admin/metadata?mount=/your_mountpoint_name&mode=updinfo&song=[17392]+TGID[17392] (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7474031210>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
06/11/23 12:33:41.590898 [0] expiring tg(17392), freq(855.537500)
06/11/23 12:33:41.591231 [1] op25_nbfm::control: analog audio disabled
06/11/23 12:33:41.591248 [1] releasing:  tg(17392), freq(855.537500), reason(expiry)
1686501221.686501 meta_server::send_metadata(): exception HTTPConnectionPool(host='your_stream_host_and_port', port=80): Max retries exceeded with url: /admin/metadata?mount=/your_mountpoint_name&mode=updinfo&song=[idle] (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7474031250>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))
06/11/23 12:33:41.723870 [0] set tgid=17392, status=0x0, srcaddr=-1
06/11/23 12:33:41.723942 [1] voice update:  tg(17392), freq(855.537500), mode(-1)
06/11/23 12:33:41.723977 [1] op25_nbfm::control: analog audio enabled
1686501221.789640 meta_server::send_metadata(): exception HTTPConnectionPool(host='your_stream_host_and_port', port=80): Max retries exceeded with url: /admin/metadata?mount=/your_mountpoint_name&mode=updinfo&song=[17392]+TGID[17392] (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7474031590>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))


GNU plot

Screenshot 2023-06-11 122857.png
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,339
Location
Talbot Co, MD
IIRC it's possible that @maus92 might have op25 configs for Anne Arundel. That said, it's been a while since he and I were looking at it together.

The main thing that jumps out at me in your logs is that the voice channel is only tuning for ~1sec before expiring, so I have to wonder if the control channel is tracking properly. Your mixer plot shows a definite rightward bias in the tuning when it should be nicely centered each side of 0. PPM correction might need adjusting.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
922
Location
NE Wisconsin
A couple of thoughts. I would change the Voice Channel to "enable_analog": "auto" to start with. Being this is a VM there might be
a problem with virtualization of the sound device. I would run aplay using a known test track to determine if you're getting good
audio out of the VM.

Your plot of the Control Channel looks great indicating a good signal quality and frequency accuracy. However, do you know if the SDR
associated with the Voice Channel is equally well compensated? An easy way to test the second SDR is to simply switch devices (labels) between the two channels such that you can now observe the CC plots for signal level and frequency accuracy.

Last, I would add to your device sections “usable_bw_pct": 0.65, to ensure the SDR gets retuned withing the optimum range
of the devices usable bandwidth. This is particularly true of the Voice Channel.
 
Top