OP25 Boatbod DMR setup

KK4GGL

Member
Premium Subscriber
Joined
May 17, 2022
Messages
9
Could I have help setting up boatbod for DMR (non-trunked) reception and decoding? Nothing appears in the terminal window after starting except "Allocating 15 zero-copy buffers". There is no audio,

Raspberry Pi 4, Bookworm, XFCE, updated

I am using the gr3.10 branch. I have p25 trunking working well on this Pi4.
I am apparently receiving signal. It shows in Spectrum and 4 lines in symbol. Pressing 2 shows no plot.
I keep seeing "Allocating 15 zero-copy buffers" in the terminal when I activate plots.

dmr_cfg.jason:

Code:
{
    "channels": [
        
        {
            "name": "dmr",
            "device": "rtl_0",
            "demod_type": "fsk4",
            "cqpsk_tracking": false,
            "destination": "udp://127.0.0.1:56122",
            "excess_bw": 0.2,
            "filter_type": "rrc",
            "frequency": 442875000,
            "if_rate": 24000,
            "plot": "symbol",
            "symbol_rate": 4800,
            "raw_output": "",
            "raw_input": "",
            "enable_analog": "off",
            "nbfm_deviation": 4000,
            "nbfm_squelch": -60
        }
    ],
    "devices": [
        {
            "args": "rtl=0",
            "frequency": 442875000,
            "gains": "lna:39",
            "gain_mode": false,
            "name": "device_0",
            "offset": 0,
            "ppm": 0.0,
            "rate": 1000000,
            "usable_bw_pct": 0.85,
            "tunable": false
        }
    ],
    "trunking": {
        "module": "",
        "chans": [
            {
                "lcn": 1,
                "frequency": 111222222,
                "cc": 0
            },
            {
                "lcn": 2,
                "frequency": 111333333,
                "cc": 0
            }
        ]
    },
    "metadata": {
        "module": "icemeta.py",
        "streams": [
            {
                "stream_name": "stream_0",
                "meta_format_idle": "[idle]",
                "meta_format_tgid": "[%TGID%]",
                "meta_format_tag":  "[%TGID%] %TAG%",
                "meta_format_rid":  "@ [%RID%]",
                "meta_format_rtag": "@ [%RID%] %RTAG%",
                "icecastServerAddress": "your_stream_host_and_port",
                "icecastMountpoint": "your_mountpoint_name",
                "icecastPass": "your_password",
                "icecastMountExt": ".xspf",
                "delay": 0.0
            },
            {
                "stream_name": "stream_1",
                "meta_format_idle": "[idle]",
                "meta_format_tgid": "[%TGID%]",
                "meta_format_tag":  "[%TGID%] %TAG%",
                "meta_format_rid":  " @ [%RID%]",
                "meta_format_rtag": " @ [%RID%] %RTAG%",
                "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": "pulse",
                "udp_port": 23456,
                "audio_gain": 1.0,
                "number_channels": 2
            }
        ]
    },
    "terminal": {
        "module": "terminal.py",
        "terminal_type": "curses",
        "#terminal_type": "http:127.0.0.1:8080",
        "terminal_timeout": 5.0,
        "default_channel": "p25",
        "curses_plot_interval": 0.2,
        "http_plot_interval": 1.0,
        "http_plot_directory": "../www/images",
        "tuning_step_large": 1200,
        "tuning_step_small": 100
    }
}

Terminal command and messages:
Code:
 ./multi_rx.py -c dmr_cfg.json
Using Python /usr/bin/python3
Starting OP25 (pid = 3685)
Configuring audio instance #0 [audio0]
using PulseAudio sound system
audio device: pulse
Opened PulseAudio stream: 000000002962ddb0
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
device: {'args': 'rtl=0', 'frequency': 442875000, 'gains': 'lna:39', 'gain_mode': False, 'name': 'device_0', 'offset': 0, 'ppm': 0.0, 'rate': 1000000, 'usable_bw_pct': 0.85, 'tunable': False}
Device name: "device_0", osmosdr args: "rtl=0"
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.5.1
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp xtrx
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
gr-osmosdr driver gain_mode: False
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
channel (dev device_0): {'name': 'dmr', 'device': 'rtl_0', 'demod_type': 'fsk4', 'cqpsk_tracking': False, 'destination': 'udp://127.0.0.1:56122', 'excess_bw': 0.2, 'filter_type': 'rrc', 'frequency': 442875000, 'if_rate': 24000, 'plot': 'symbol', 'symbol_rate': 4800, 'raw_output': '', 'raw_input': '', 'enable_analog': 'off', 'nbfm_deviation': 4000, 'nbfm_squelch': -60}
demodulator: xlator if_rate=24000, input_rate=1000000, decim=41, taps=197, resampled_rate=24390, sps=5
op25_audio::open_socket(): enabled udp host(127.0.0.1), wireshark(56122), audio(56122)
audio closing
Flowgraph complete. Exiting
 

KK4GGL

Member
Premium Subscriber
Joined
May 17, 2022
Messages
9
Could I have help setting up boatbod for DMR (non-trunked) reception and decoding? Nothing appears in the terminal window after starting except "Allocating 15 zero-copy buffers". There is no audio,

Raspberry Pi 4, Bookworm, XFCE, updated

I am using the gr3.10 branch. I have p25 trunking working well on this Pi4.
I am apparently receiving signal. It shows in Spectrum and 4 lines in symbol. Pressing 2 shows no plot.
I keep seeing "Allocating 15 zero-copy buffers" in the terminal when I activate plots.

dmr_cfg.jason:

Code:
{
    "channels": [
       
        {
            "name": "dmr",
            "device": "rtl_0",
            "demod_type": "fsk4",
            "cqpsk_tracking": false,
            "destination": "udp://127.0.0.1:56122",
            "excess_bw": 0.2,
            "filter_type": "rrc",
            "frequency": 442875000,
            "if_rate": 24000,
            "plot": "symbol",
            "symbol_rate": 4800,
            "raw_output": "",
            "raw_input": "",
            "enable_analog": "off",
            "nbfm_deviation": 4000,
            "nbfm_squelch": -60
        }
    ],
    "devices": [
        {
            "args": "rtl=0",
            "frequency": 442875000,
            "gains": "lna:39",
            "gain_mode": false,
            "name": "device_0",
            "offset": 0,
            "ppm": 0.0,
            "rate": 1000000,
            "usable_bw_pct": 0.85,
            "tunable": false
        }
    ],
    "trunking": {
        "module": "",
        "chans": [
            {
                "lcn": 1,
                "frequency": 111222222,
                "cc": 0
            },
            {
                "lcn": 2,
                "frequency": 111333333,
                "cc": 0
            }
        ]
    },
    "metadata": {
        "module": "icemeta.py",
        "streams": [
            {
                "stream_name": "stream_0",
                "meta_format_idle": "[idle]",
                "meta_format_tgid": "[%TGID%]",
                "meta_format_tag":  "[%TGID%] %TAG%",
                "meta_format_rid":  "@ [%RID%]",
                "meta_format_rtag": "@ [%RID%] %RTAG%",
                "icecastServerAddress": "your_stream_host_and_port",
                "icecastMountpoint": "your_mountpoint_name",
                "icecastPass": "your_password",
                "icecastMountExt": ".xspf",
                "delay": 0.0
            },
            {
                "stream_name": "stream_1",
                "meta_format_idle": "[idle]",
                "meta_format_tgid": "[%TGID%]",
                "meta_format_tag":  "[%TGID%] %TAG%",
                "meta_format_rid":  " @ [%RID%]",
                "meta_format_rtag": " @ [%RID%] %RTAG%",
                "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": "pulse",
                "udp_port": 23456,
                "audio_gain": 1.0,
                "number_channels": 2
            }
        ]
    },
    "terminal": {
        "module": "terminal.py",
        "terminal_type": "curses",
        "#terminal_type": "http:127.0.0.1:8080",
        "terminal_timeout": 5.0,
        "default_channel": "p25",
        "curses_plot_interval": 0.2,
        "http_plot_interval": 1.0,
        "http_plot_directory": "../www/images",
        "tuning_step_large": 1200,
        "tuning_step_small": 100
    }
}

Terminal command and messages:
Code:
 ./multi_rx.py -c dmr_cfg.json
Using Python /usr/bin/python3
Starting OP25 (pid = 3685)
Configuring audio instance #0 [audio0]
using PulseAudio sound system
audio device: pulse
Opened PulseAudio stream: 000000002962ddb0
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
device: {'args': 'rtl=0', 'frequency': 442875000, 'gains': 'lna:39', 'gain_mode': False, 'name': 'device_0', 'offset': 0, 'ppm': 0.0, 'rate': 1000000, 'usable_bw_pct': 0.85, 'tunable': False}
Device name: "device_0", osmosdr args: "rtl=0"
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.5.1
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp xtrx
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
gr-osmosdr driver gain_mode: False
Exact sample rate is: 1000000.026491 Hz
[R82XX] PLL not locked!
channel (dev device_0): {'name': 'dmr', 'device': 'rtl_0', 'demod_type': 'fsk4', 'cqpsk_tracking': False, 'destination': 'udp://127.0.0.1:56122', 'excess_bw': 0.2, 'filter_type': 'rrc', 'frequency': 442875000, 'if_rate': 24000, 'plot': 'symbol', 'symbol_rate': 4800, 'raw_output': '', 'raw_input': '', 'enable_analog': 'off', 'nbfm_deviation': 4000, 'nbfm_squelch': -60}
demodulator: xlator if_rate=24000, input_rate=1000000, decim=41, taps=197, resampled_rate=24390, sps=5
op25_audio::open_socket(): enabled udp host(127.0.0.1), wireshark(56122), audio(56122)
audio closing
Flowgraph complete. Exiting
UDP and audio ports were different.
I now have audio.
Symbol plot is 4 lines.
The terminal only shows "Allocating 15 zero-copy buffers", not the talkgroup or slot. I'm not sure if I am decoding both slots.
 

KK4GGL

Member
Premium Subscriber
Joined
May 17, 2022
Messages
9
Sorry, the terminal doesn't do anything useful for non-trunked reception.
Thanks. I though I messed something up.
I can get the web page going, but it says waiting for data. Is this also normal or am I missing a switch somewhere?
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,339
Location
Talbot Co, MD
Thanks. I though I messed something up.
I can get the web page going, but it says waiting for data. Is this also normal or am I missing a switch somewhere?
The terminal & web page do the same thing, which in the case of DMR is nothing because there is no trunking activity to report on.
 
Top