Perseus SDR HF receiver first support
This commit is contained in:
parent
c387fe0fe9
commit
97cb51d990
@ -99,7 +99,7 @@ Note: if you experience audio underruns while CPU usage is 100%, you can:
|
|||||||
#################################################################################################
|
#################################################################################################
|
||||||
|
|
||||||
# Currently supported types of sdr receivers:
|
# Currently supported types of sdr receivers:
|
||||||
# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr"
|
# "rtl_sdr", "sdrplay", "hackrf", "airspy", "airspyhf", "fifi_sdr", "perseussdr"
|
||||||
#
|
#
|
||||||
# In order to use rtl_sdr, you will need to install librtlsdr-dev and the connector.
|
# In order to use rtl_sdr, you will need to install librtlsdr-dev and the connector.
|
||||||
# In order to use sdrplay, airspy or airspyhf, you will need to install soapysdr, the corresponding driver, and the
|
# In order to use sdrplay, airspy or airspyhf, you will need to install soapysdr, the corresponding driver, and the
|
||||||
@ -107,6 +107,10 @@ Note: if you experience audio underruns while CPU usage is 100%, you can:
|
|||||||
#
|
#
|
||||||
# https://github.com/jketterl/owrx_connector
|
# https://github.com/jketterl/owrx_connector
|
||||||
#
|
#
|
||||||
|
# In order to use Perseus HF you need to install the libperseus-sdr
|
||||||
|
#
|
||||||
|
# https://github.com/Microtelecom/libperseus-sdr
|
||||||
|
#
|
||||||
# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs
|
# NOTE: The connector sources have replaced the old piped nmux style of reading input. If you still have any sdrs
|
||||||
# configured that have type endin in "_connector", simply remove that suffix.
|
# configured that have type endin in "_connector", simply remove that suffix.
|
||||||
|
|
||||||
@ -137,6 +141,53 @@ sdrs = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"perseussdr": {
|
||||||
|
"name": "Microtelecom Perseus HF receiver",
|
||||||
|
"type": "perseussdr",
|
||||||
|
"ppm": 0,
|
||||||
|
"profiles": {
|
||||||
|
"40m": {
|
||||||
|
"name": "40m",
|
||||||
|
"center_freq": 7150000,
|
||||||
|
"rf_gain": 0,
|
||||||
|
"samp_rate": 500000,
|
||||||
|
"start_freq": 7050000,
|
||||||
|
"start_mod": "lsb",
|
||||||
|
},
|
||||||
|
"20m": {
|
||||||
|
"name": "20m",
|
||||||
|
"center_freq": 14150000,
|
||||||
|
"rf_gain": 0,
|
||||||
|
"samp_rate": 500000,
|
||||||
|
"start_freq": 14070000,
|
||||||
|
"start_mod": "usb",
|
||||||
|
},
|
||||||
|
"30m": {
|
||||||
|
"name": "30m",
|
||||||
|
"center_freq": 10125000,
|
||||||
|
"rf_gain": 0,
|
||||||
|
"samp_rate": 192000,
|
||||||
|
"start_freq": 10142000,
|
||||||
|
"start_mod": "usb",
|
||||||
|
},
|
||||||
|
"80m": {
|
||||||
|
"name": "80m",
|
||||||
|
"center_freq": 3650000,
|
||||||
|
"rf_gain": 0,
|
||||||
|
"samp_rate": 500000,
|
||||||
|
"start_freq": 3570000,
|
||||||
|
"start_mod": "usb",
|
||||||
|
},
|
||||||
|
"49m": {
|
||||||
|
"name": "49m Broadcast",
|
||||||
|
"center_freq": 6000000,
|
||||||
|
"rf_gain": 0,
|
||||||
|
"samp_rate": 500000,
|
||||||
|
"start_freq": 6070000,
|
||||||
|
"start_mod": "am",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
"airspy": {
|
"airspy": {
|
||||||
"name": "Airspy HF+",
|
"name": "Airspy HF+",
|
||||||
"type": "airspyhf",
|
"type": "airspyhf",
|
||||||
|
@ -25,6 +25,7 @@ class FeatureDetector(object):
|
|||||||
"rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
|
"rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
|
||||||
"sdrplay": ["soapy_connector", "soapy_sdrplay"],
|
"sdrplay": ["soapy_connector", "soapy_sdrplay"],
|
||||||
"hackrf": ["hackrf_transfer"],
|
"hackrf": ["hackrf_transfer"],
|
||||||
|
"perseussdr": ["perseustest"],
|
||||||
"airspy": ["soapy_connector", "soapy_airspy"],
|
"airspy": ["soapy_connector", "soapy_airspy"],
|
||||||
"airspyhf": ["soapy_connector", "soapy_airspyhf"],
|
"airspyhf": ["soapy_connector", "soapy_airspyhf"],
|
||||||
"lime_sdr": ["soapy_connector", "soapy_lime_sdr"],
|
"lime_sdr": ["soapy_connector", "soapy_lime_sdr"],
|
||||||
@ -150,6 +151,26 @@ class FeatureDetector(object):
|
|||||||
# TODO also check if it has the stdout feature
|
# TODO also check if it has the stdout feature
|
||||||
return self.command_is_runnable("hackrf_transfer --help")
|
return self.command_is_runnable("hackrf_transfer --help")
|
||||||
|
|
||||||
|
def has_perseustest(self):
|
||||||
|
"""
|
||||||
|
To use a Microtelecom Perseus HF receiver, compile and
|
||||||
|
install the libperseus-sdr:
|
||||||
|
```
|
||||||
|
sudo apt install libusb-1.0-0-dev
|
||||||
|
cd /tmp
|
||||||
|
wget https://github.com/Microtelecom/libperseus-sdr/releases/download/v0.7.5/libperseus_sdr-0.7.5.tar.gz
|
||||||
|
tar -zxvf libperseus_sdr-0.7.5.tar.gz
|
||||||
|
cd libperseus_sdr-0.7.5/
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
sudo ldconfig
|
||||||
|
perseustest
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
return self.command_is_runnable("perseustest -d -1 -a -t 1")
|
||||||
|
|
||||||
|
|
||||||
def has_digiham(self):
|
def has_digiham(self):
|
||||||
"""
|
"""
|
||||||
To use digital voice modes, the digiham package is required. You can find the package and installation
|
To use digital voice modes, the digiham package is required. You can find the package and installation
|
||||||
|
31
owrx/source/perseussdr.py
Normal file
31
owrx/source/perseussdr.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
from .direct import DirectSource
|
||||||
|
from owrx.command import Flag, Option
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# perseustest -s 768000 -u 0 -f 14150000 -r-|csdr convert_s8_f|nmux --bufsize 192512 --bufcnt 260 --port 35989 --address 127.0.0.1
|
||||||
|
# perseustest -a -t0 -o -
|
||||||
|
# perseustest -d 9 -a -t 100000 -o - -s 768000 -u 0 -f 14150000 -r-
|
||||||
|
|
||||||
|
class PerseussdrSource(DirectSource):
|
||||||
|
def getCommandMapper(self):
|
||||||
|
return super().getCommandMapper().setBase("perseustest -p -d -1 -a -t 100000 -o - ").setMappings(
|
||||||
|
{
|
||||||
|
"samp_rate": Option("-s"),
|
||||||
|
"tuner_freq": Option("-f"),
|
||||||
|
"rf_gain": Option("-u"),
|
||||||
|
"lna_gain": Option("-g"),
|
||||||
|
"rf_amp": Option("-x"),
|
||||||
|
}
|
||||||
|
).setStatic("-r-")
|
||||||
|
|
||||||
|
def getEventNames(self):
|
||||||
|
return super().getEventNames() + [
|
||||||
|
"lna_gain",
|
||||||
|
"rf_amp",
|
||||||
|
]
|
||||||
|
|
||||||
|
def getFormatConversion(self):
|
||||||
|
# return ["csdr convert_s24_f --bigendian"]
|
||||||
|
# return ["csdr convert_s24_f", "csdr gain_ff 20"]
|
||||||
|
return ["csdr gain_ff 20"]
|
Loading…
Reference in New Issue
Block a user