DSDPlus Went On A Adventure

Status
Not open for further replies.
S

simpilo

Guest
Was a good adventure. Making DSD+ FL 2.186 deocde Ham DMR voice in Linux. A success! Not counting the red text prompting to use FMP24 which isn't going to happen using wine! Other than that DMR voice decoded fine using GQRX. Did have to edit pulse audio for a virtual sink. Operating system is Sparky Linux 5.8 Codename Nibiru based on Debian Buster. Best I can do to show you is a screen capture.
dsd+FLonlinux.png
(click to enlarge)

That's just DSDPlus FL 2.186 executable running. Then I tried the FMP24 1R.bat route then to be reminded windows hardware drivers won't work in Wine shown by a failure to open RTL Device 1 (-i1 in FMP24-CC.bat). Cannot use rtl_tcp. Just doesn't work like that. Then I think, "HMMMM maybe someone has found a work around that can translate the USB drivers to wine but no windows hardware drivers support." Purely software only.

So now I have OP25 for P25 systems and can listen to ham's rag chewing on DMR. Was the same process for importing all the DMR ID's into the DSDPlus.radios file. Same as windows. Except loading a terminal window then cd to the DSDPlus directory and typing in 'wine DSDPlus.exe". GQRX needs to be set to output to virtual_sink in pulse audio volume control. GQRX tau must be off or DSDPlus can't decode properly. DSDPlus needs to be set to listen to wave-in.

That was fun! Penguins love to do dance!

(I successfully installed DSD 1.7 and mbelib but couldn't figure out how to get that DSD 1.7 to talk to pulse audio
!)
 
Last edited:

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
I'm glad it worked for you.

You could now add gqrx-scanner and "scan" for a bunch of different digital signals piped to DSD+ (or analog) or mixed.
 
Last edited:
S

simpilo

Guest
I'm glad it worked for you.

You could now add gqrx-scanner and "scan" for a bunch of different digital signals piped to DSD+ (or analog) or mixed.
Thanks. I found out the right command args to get DSD 1.7 to run which is ' padsp dsd -fr -i /dev/dsp' and had to input a line of code into pulse audio for virtual sink. DSD+ 2.186 FL and DSD 1.7 working.

Now the fun part. I can't find the actual information. I want rtl_fm to output audio to virtual sink. then I load another terminal window (LXTerminal) for either wine DSDPlus.exe or run padsp dsd -fr -i /dev/dsp. I have to use the pulse audio wrapper or DSD 1.7 won't run.

The adventure continues...
 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
Thanks. I found out the right command args to get DSD 1.7 to run which is ' padsp dsd -fr -i /dev/dsp' and had to input a line of code into pulse audio for virtual sink. DSD+ 2.186 FL and DSD 1.7 working.

Now the fun part. I can't find the actual information. I want rtl_fm to output audio to virtual sink. then I load another terminal window (LXTerminal) for either wine DSDPlus.exe or run padsp dsd -fr -i /dev/dsp. I have to use the pulse audio wrapper or DSD 1.7 won't run.

The adventure continues...

Either DSD+ or 1.7 or rtl_fm default to pulseaudio virtual cable (sink) so you switch audio input/output there.
 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
I dont need to add the | args after the frequency and stuff?

If you have DSD+ figured out for audio input/output using pulseaudio "virtual cable" all the others work the same.

Also FYI Op25 also does DMR, SDRtrunk does a good job of P25 phase I although Denny has it really close to doing Phase II also.
 
S

simpilo

Guest
Someone somewhere else gave me these args. They worked. Had to install Sox to do it but it's worth it. DMR sounds good on Linux.
rtl_fm -f 443.225M -p 0 -s 22050 -g 14 - | sox -traw -r22050 -es -L -b16 -c1 -V1 -v 2 - -traw -es -L -b16 -c1 -r48000 - | padsp dsd -fr -i -
 
S

simpilo

Guest
Adventure continues. Tried OP25's Con + ability. All I did was edit frequencies in the json files. typed in the args for trunking in one terminal, loaded another terminal and typed in the args for audio output. Working good. I'm sharing a little of my stderr output. I haven't figured out a way to record audio on Debian yet.

It's good to install python-pyramid to see the dynamic traffic in the browser:
I do it a step further for dependency sanity which should be in the @boatbod fork install.txt:
sudo apt build-dep python-pyramid -y
sudo apt-get install python-pyramid -y

Enabled trunking module: tk_trbo.py
device: {'gains': 'LNA:39', 'args': 'rtl=0', 'tunable': True, 'rate': 960000, 'frequency': 461300000, 'ppm': 0, 'offset': 0, 'name': 'rtl_0'}
WARNING: requested sample rate 960000 for device rtl_0 may not
be optimal. You may want to use one of the following rates
[250000, 1000000, 1024000, 1800000, 1920000, 2000000, 2048000, 2400000, 2560000]
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.13.4
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: 00000001
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
[R82XX] PLL not locked!
device: {'gains': 'LNA:39', 'args': 'rtl=1', 'tunable': True, 'rate': 960000, 'frequency': 462000000, 'ppm': 0, 'offset': 0, 'name': 'rtl_1'}
WARNING: requested sample rate 960000 for device rtl_1 may not
be optimal. You may want to use one of the following rates
[250000, 1000000, 1024000, 1800000, 1920000, 2000000, 2048000, 2400000, 2560000]
gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.13.4
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #1 Realtek RTL2832U SN: 00001000
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
[R82XX] PLL not locked!
DEVICE ID=0
channel (dev rtl_0): {'plot': 'fft', 'name': 'CC', 'excess_bw': 0.2, 'symbol_rate': 4800, 'destination': '', 'demod_type': 'fsk4', 'filter_type': 'rrc', 'device': 'rtl_0', 'if_rate': 24000}
Using two-stage decimator for speed=960000, decim=10/4 if1=96000 if2=24000
1566219616.500801 [0] mute channel(1)
DEVICE ID=1
channel (dev rtl_1): {'plot': 'fft', 'name': 'VC', 'excess_bw': 0.2, 'symbol_rate': 4800, 'destination': 'udp://127.0.0.1:23466', 'demod_type': 'fsk4', 'filter_type': 'rrc', 'device': 'rtl_1', 'if_rate': 24000}
Using two-stage decimator for speed=960000, decim=10/4 if1=96000 if2=24000
op25_audio::eek:pen_socket(): enabled udp host(127.0.0.1), wireshark(23466), audio(23466)
1566219616.594592 [1] mute channel(1)
1566219616.604387 [0] Initializing DMR receiver
1566219616.655602 [0] Tuning to frequency 451.850000
1566219616.677828 [0] rx_sync::set_slot_mask: current(3), new(0)
1566219616.677906 [0] Searching for control channel: lcn(1), freq(451.850000)
1566219616.677980 [1] Initializing DMR receiver
1566219616.730785 [1] Tuning to frequency 451.850000
1566219616.730914 [1] rx_sync::set_slot_mask: current(3), new(4)
Allocating 15 zero-copy buffers
Allocating 15 zero-copy buffers
1566219617.464096 [0] resync at count 0 for protocol DMR (expected count 90)
1566219617.467673 [0] Slot(1), CC(1), Data Type=9, gly_errs=0
1566219617.467707 [0] Slot(1), CC(1), IDLE
1566219617.477869 [0] Slot(0), CC(1), Data Type=3, gly_errs=0
1566219617.477935 [0] Slot(0), CC(1), CSBK LB(1), PF(0), CSBKO(01), FID(06), CONNECT PLUS NB1(05), NB2(04), NB3(06), NB4(00), NB5(00)
1566219617.478114 [0] DMR PDU: lcn(1), state(0), type(5), slot(0), data(0x8106050406000000000c)
1566219617.478174 [0] CONNECT PLUS NEIGHBOR SITES: 5, 4, 6, 0, 0
1566219617.585428 [0] Slot(1), CC(1), Data Type=9, gly_errs=0
1566219617.585497 [0] Slot(1), CC(1), IDLE
1566219617.589616 [0] Slot(0), CC(1), Data Type=3, gly_errs=0
1566219617.589659 [0] Slot(0), CC(1), CSBK LB(1), PF(0), CSBKO(03), FID(06), CONNECT PLUS GRANT srcAddr(001d27), grpAddr(0002c2), LCN(3), TS(0)
1566219617.589796 [0] DMR PDU: lcn(1), state(0), type(5), slot(0), data(0x8306001d270002c23002)
1566219617.589862 [0] CONNECT PLUS CHANNEL GRANT: srcAddr(001d27), grpAddr(0002c2), lcn(3), slot(0), freq(464.325000)
1566219617.589901 [0] Voice update: tg(706), freq(464.325000), slot(0), lcn(3)
1566219617.641366 [1] Tuning to frequency 464.325000
1566219617.641463 [1] rx_sync::set_slot_mask: current(4), new(1)
1566219617.651101 [0] SLCO=0xa, CONNECT PLUS CONTROL CHANNEL netId(165), siteId(07)
1566219617.651148 [0] Slot(1), CC(1), Data Type=9, gly_errs=0
1566219617.651168 [0] Slot(1), CC(1), IDLE
1566219617.651303 [0] DMR PDU: lcn(1), state(0), type(0), slot(0), data(0x0a165070)
1566219617.651372 [0] System type is TRBO Connect Plus
1566219617.651408 [0] Found control channel: lcn(1), freq(451.850000)
 
Last edited:
Status
Not open for further replies.
Top