summaryrefslogtreecommitdiff
path: root/gnu/packages/radio.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r--gnu/packages/radio.scm434
1 files changed, 329 insertions, 105 deletions
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index feb17f99ab..3776e87ee3 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -94,6 +94,34 @@
#:use-module (guix build-system python)
#:use-module (guix build-system qt))
+(define-public libfec
+ ;; Use commit to get compilation fixes that are not in a release yet.
+ (let ((commit "9750ca0a6d0a786b506e44692776b541f90daa91")
+ (revision "1"))
+ (package
+ (name "libfec")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/quiet/libfec")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i6jhrdswr1wglyb9h39idpz5v9z13yhidvlbj34vxpyngrkhlvs"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
+ #:test-target "test_all"))
+ (home-page "https://github.com/quiet/libfec")
+ (synopsis "Forward error correction algorithms library")
+ (description
+ "This package provides a set of functions that implement several popular
+@dfn{forward error correction} (FEC) algorithms and several low-level routines
+useful in modems implemented with @dfn{digital signal processing} (DSP).")
+ (license license:lgpl2.1))))
+
(define-public liquid-dsp
(package
(name "liquid-dsp")
@@ -110,8 +138,15 @@
(native-inputs
`(("autoconf" ,autoconf)))
(inputs
- `(("fftw" ,fftw)
- ("fftwf" ,fftwf)))
+ `(("fftwf" ,fftwf)
+ ("libfec" ,libfec)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'delete-static-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (delete-file (string-append (assoc-ref outputs "out")
+ "/lib/libliquid.a")))))))
(home-page "https://liquidsdr.org")
(synopsis "Signal processing library for software-defined radios")
(description
@@ -223,6 +258,110 @@ To install the airspyhf udev rules, you must extend @code{udev-service-type}
with this package. E.g.: @code{(udev-rules-service 'airspyhf airspyhf)}")
(license license:bsd-3)))
+(define-public soapysdr
+ (package
+ (name "soapysdr")
+ (version "0.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pothosware/SoapySDR")
+ (commit (string-append "soapy-sdr-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dy25zxk7wmg7ik82dx7h3bbbynvalbz1dxsl7kgm3374yxhnixv"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("python" ,python)
+ ("swig" ,swig)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "SOAPY_SDR_PLUGIN_PATH")
+ (files (list (string-append "lib/SoapySDR/modules"
+ (version-major+minor version)))))))
+ (home-page "https://github.com/pothosware/SoapySDR/wiki")
+ (synopsis "Vendor and platform neutral SDR support library")
+ (description
+ "SoapySDR is a library designed to support several kinds of software
+defined radio hardware devices with a common API.")
+ (license license:boost1.0)))
+
+(define-public soapyairspyhf
+ (package
+ (name "soapyairspyhf")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pothosware/SoapyAirspyHF")
+ (commit (string-append "soapy-airspyhf-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04krqinglgkjvx7klqik6yn8rb4mlpwzb6zvnmvm7szqci2agggz"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("airspyhf" ,airspyhf)
+ ("soapysdr" ,soapysdr)))
+ (arguments
+ `(#:tests? #f)) ; No test suite
+ (home-page "https://github.com/pothosware/SoapyAirspyHF/wiki")
+ (synopsis "SoapySDR Airspy HF+ module")
+ (description "This package provides Airspy HF+ devices support to the
+SoapySDR library.")
+ (license license:expat)))
+
+(define-public soapyhackrf
+ (package
+ (name "soapyhackrf")
+ (version "0.3.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pothosware/SoapyHackRF")
+ (commit (string-append "soapy-hackrf-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1awn89z462500gb3fjb7x61b1znkjri9n1d39bqfip1qk4s11pxc"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("hackrf" ,hackrf)
+ ("soapysdr" ,soapysdr)))
+ (arguments
+ `(#:tests? #f)) ; No test suite
+ (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
+ (synopsis "SoapySDR HackRF module")
+ (description
+ "This package provides HackRF devices support to the SoapySDR library.")
+ (license license:expat)))
+
+(define-public soapyrtlsdr
+ (package
+ (name "soapyrtlsdr")
+ (version "0.3.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pothosware/SoapyRTLSDR")
+ (commit (string-append "soapy-rtl-sdr-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1dlnryj6k20pk7w7v4v13y099r7ikhvlzbgzgphmi5cxkdv0shrd"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("rtl-sdr" ,rtl-sdr)
+ ("soapysdr" ,soapysdr)))
+ (arguments
+ `(#:tests? #f)) ; No test suite
+ (home-page "https://github.com/pothosware/SoapyRTLSDR/wiki")
+ (synopsis "SoapySDR RTL-SDR module")
+ (description
+ "This package provides RTL-SDR devices support to the SoapySDR library.")
+ (license license:expat)))
+
(define-public chirp
(package
(name "chirp")
@@ -375,6 +514,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
("python-click" ,python-click)
("python-click-plugins" ,python-click-plugins)
("python-lxml" ,python-lxml)
+ ("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
("python-pycairo" ,python-pycairo)
("python-pygobject" ,python-pygobject)
@@ -513,6 +653,7 @@ environment.")
("python-numpy" ,python-numpy)
("python-pyqt" ,python-pyqt)
("rtl-sdr" ,rtl-sdr)
+ ("soapysdr" ,soapysdr)
("volk" ,volk)))
(arguments
`(#:modules ((guix build cmake-build-system)
@@ -798,66 +939,61 @@ for correctness.")
(license license:gpl3+)))
(define-public hackrf
- ;; Using a git commit because there have been many many commits
- ;; since the relase two years ago, but no sign of a promised
- ;; release for many months now.
- (let ((commit "43e6f99fe8543094d18ff3a6550ed2066c398862")
- (revision "0"))
- (package
- (name "hackrf")
- (version (git-version "2018.01.1" revision commit))
- (source
- (origin
+ (package
+ (name "hackrf")
+ (version "2021.03.1")
+ (source
+ (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mossmann/hackrf")
- (commit commit)))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0avnv693xi0zsnrvkbfn0ln1r3s1iyj0bz7sc3gxay909av0pvbc"))))
- (build-system cmake-build-system)
- (arguments
- '(#:configure-flags
- (list "-DUDEV_RULES_GROUP=dialout"
- (string-append "-DUDEV_RULES_PATH="
- (assoc-ref %outputs "out")
- "/lib/udev/rules.d"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'enter-source-directory
- (lambda _
- (chdir "host")
- #t))
- (add-after 'install 'delete-static-library
- (lambda* (#:key outputs #:allow-other-keys)
- (delete-file (string-append (assoc-ref outputs "out")
- "/lib/libhackrf.a"))
- #t))
- (add-before 'install-license-files 'leave-source-directory
- (lambda _
- (chdir "..")
- #t)))
- #:tests? #f)) ; no test suite
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("fftw" ,fftw)
- ("fftwf" ,fftwf)
- ("libusb" ,libusb)))
- (home-page "https://greatscottgadgets.com/hackrf/")
- (synopsis "User-space library and utilities for HackRF SDR")
- (description
- "Command line utilities and a C library for controlling the HackRF
+ (base32 "12fkgimjy5ia291c1rn4y59pn9r5wdvz5x9z5xc8zr1xr96iyhfs"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags
+ (list "-DUDEV_RULES_GROUP=dialout"
+ (string-append "-DUDEV_RULES_PATH="
+ (assoc-ref %outputs "out")
+ "/lib/udev/rules.d"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'enter-source-directory
+ (lambda _
+ (chdir "host")
+ #t))
+ (add-after 'install 'delete-static-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (delete-file (string-append (assoc-ref outputs "out")
+ "/lib/libhackrf.a"))
+ #t))
+ (add-before 'install-license-files 'leave-source-directory
+ (lambda _
+ (chdir "..")
+ #t)))
+ #:tests? #f)) ; no test suite
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("libusb" ,libusb)))
+ (home-page "https://greatscottgadgets.com/hackrf/")
+ (synopsis "User-space library and utilities for HackRF SDR")
+ (description
+ "Command line utilities and a C library for controlling the HackRF
Software Defined Radio (SDR) over USB. Installing this package installs the
userspace hackrf utilities and C library. To install the hackrf udev rules,
you must extend 'udev-service-type' with this package. E.g.:
@code{(udev-rules-service 'hackrf hackrf #:groups '(\"dialout\"))}.")
- (license license:gpl2))))
+ (license license:gpl2)))
(define-public hamlib
(package
(name "hamlib")
- (version "4.1")
+ (version "4.2")
(source
(origin
(method url-fetch)
@@ -865,7 +1001,7 @@ you must extend 'udev-service-type' with this package. E.g.:
"https://github.com/Hamlib/Hamlib/releases/download/"
version "/hamlib-" version ".tar.gz"))
(sha256
- (base32 "0hi3nc1k55mxff05amdv5iwryaz6r3205l24q0bg7l84f53bkm5l"))))
+ (base32 "1m8gb20i8ga6ndnnw187ry1h4z8wx27v1hl7c610r6ky60pv4072"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@@ -1162,7 +1298,8 @@ their position, altitude, speed, etc.")
(inputs
`(("libusb" ,libusb)
("openssl" ,openssl)
- ("rtl-sdr" ,rtl-sdr)))
+ ("rtl-sdr" ,rtl-sdr)
+ ("soapysdr" ,soapysdr)))
(synopsis "Decoder for radio transmissions in ISM bands")
(description
"This is a generic data receiver, mainly for decoding radio transmissions
@@ -1543,7 +1680,7 @@ receiver.")
(define-public welle-io
(package
(name "welle-io")
- (version "2.2")
+ (version "2.3")
(source
(origin
(method git-fetch)
@@ -1552,7 +1689,7 @@ receiver.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa"))))
+ (base32 "1xl1lanw0xgmgks67dbfb2h52jxnrd1i2zik56v0q8dwsr7f0daw"))))
(build-system qt-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -1569,9 +1706,11 @@ receiver.")
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
("qtmultimedia" ,qtmultimedia)
- ("qtquickcontrols2" ,qtquickcontrols2)))
+ ("qtquickcontrols2" ,qtquickcontrols2)
+ ("soapysdr" ,soapysdr)))
(arguments
- `(#:configure-flags '("-DRTLSDR=ON")
+ `(#:configure-flags '("-DRTLSDR=ON"
+ "-DSOAPYSDR=ON")
#:tests? #f))
(home-page "https://www.welle.io/")
(synopsis "DAB and DAB+ software radio")
@@ -1808,6 +1947,7 @@ voice formats.")
("qtwebsockets" ,qtwebsockets)
("rtl-sdr" ,rtl-sdr)
("serialdv" ,serialdv)
+ ("soapysdr" ,soapysdr)
("sgp4" ,sgp4)
("zlib" ,zlib)))
(arguments
@@ -1824,7 +1964,9 @@ voice formats.")
(string-append "-DSERIALDV_DIR="
(assoc-ref %build-inputs "serialdv"))
(string-append "-DSGP4_DIR="
- (assoc-ref %build-inputs "sgp4")))))
+ (assoc-ref %build-inputs "sgp4"))
+ (string-append "-DSOAPYSDR_DIR="
+ (assoc-ref %build-inputs "soapysdr")))))
(home-page "https://github.com/f4exb/sdrangel/wiki")
(synopsis "Software defined radio")
(description
@@ -1860,70 +2002,152 @@ software-defined radio receivers.")
(license license:gpl3+)))
(define-public wfview
- ;; No tagged release, use commit directly.
- (let ((commit "274e905d214a7360e8cf2dd0421dbe3712a0ddcc")
+ (package
+ (name "wfview")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/eliggett/wfview")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16a9afm0nkqx4pzwfxisspybimhqdyr3yjpr7ac7wgpp3520ikzi"))))
+ (build-system qt-build-system)
+ (inputs
+ `(("qcustomplot" ,qcustomplot)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtserialport" ,qtserialport)))
+ (arguments
+ `(#:tests? #f ; No test suite.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "wfview.pro"
+ (("\\.\\./wfview/")
+ "../"))
+ (substitute* '("wfmain.cpp")
+ (("/usr/share")
+ (string-append (assoc-ref outputs "out") "/share")))))
+ (replace 'configure
+ (lambda _
+ (mkdir-p "build")
+ (chdir "build")
+ (invoke "qmake" "../wfview.pro")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (install-file "wfview"
+ (string-append out "/bin"))
+ (install-file "wfview.png"
+ (string-append out "/share/pixmaps"))
+ (install-file "wfview.desktop"
+ (string-append out "/share/applications"))
+ (let ((dir (string-append
+ out "/share/wfview/stylesheets/qdarkstyle")))
+ (mkdir-p dir)
+ (copy-recursively "qdarkstyle" dir))))))))
+ (home-page "https://wfview.org/")
+ (synopsis "Software to control Icom radios")
+ (description
+ "@code{wfview} is a program to control modern Icom radios and view the
+spectrum waterfall. It supports at least the following models:
+
+@itemize
+@item IC-705
+@item IC-7300
+@item IC-7610
+@item IC-7850
+@item IC-7851
+@item IC-9700
+@end itemize\n")
+ (license (list license:expat
+ license:gpl3))))
+
+(define-public minimodem
+ (package
+ (name "minimodem")
+ (version "0.24")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.whence.com/minimodem/minimodem-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "13ipyh39l7p420j1j9kvwyskv2nqnimls1a3z1klsa1zivds9k7q"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("fftwf" ,fftwf)
+ ("libsndfile" ,libsndfile)
+ ("pulseaudio" ,pulseaudio)))
+ (home-page "http://www.whence.com/minimodem/")
+ (synopsis "Software audio FSK modem")
+ (description
+ "Minimodem is a command-line program which decodes (or generates) audio
+modem tones at any specified baud rate, using various framing protocols. It
+acts a general-purpose software FSK modem, and includes support for various
+standard FSK protocols such as Bell103, Bell202, RTTY, TTY/TDD, NOAA SAME, and
+Caller-ID.")
+ (license license:gpl3+)))
+
+(define-public rfcat
+ ;; Use a commit for now because some fixes to make rfcat work with
+ ;; Python 3 instead of Python 2 are not in a release yet.
+ (let ((commit "725bf79af27d47cdec64107317c1c8fe3f7ad7b8")
(revision "1"))
(package
- (name "wfview")
- (version (git-version "20210511" revision commit))
+ (name "rfcat")
+ (version (git-version "1.9.5" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/eliggett/wfview")
+ (url "https://github.com/atlas0fd00m/rfcat")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1dmxn15xs63wx1y4mh1mlv8qc1xz32vgbyl3rk82gf6knw518svp"))))
- (build-system qt-build-system)
+ (base32 "0dbc6n4pxsa73wzxny773khc73r1dn3ma5hi7xv76vcykjvzkdi3"))))
+ (build-system python-build-system)
(inputs
- `(("qcustomplot" ,qcustomplot)
- ("qtbase" ,qtbase)
- ("qtmultimedia" ,qtmultimedia)
- ("qtserialport" ,qtserialport)))
+ `(("python-future" ,python-future)
+ ("python-ipython" ,python-ipython)
+ ("python-numpy" ,python-numpy)
+ ("python-pyserial" ,python-pyserial)
+ ("python-pyside-2" ,python-pyside-2)
+ ("python-pyusb" ,python-pyusb)))
(arguments
- `(#:tests? #f ; No test suite.
+ `(#:tests? #f ; Tests want to use a serial port
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "wfview.pro"
- (("\\.\\./wfview/")
- "../"))
- (substitute* '("wfmain.cpp")
- (("/usr/share")
- (string-append (assoc-ref outputs "out") "/share")))))
- (replace 'configure
+ (add-after 'unpack 'fix-permissions
(lambda _
- (mkdir-p "build")
- (chdir "build")
- (invoke "qmake" "../wfview.pro")))
- (replace 'install
+ (make-file-writable "rflib/rflib_version.py")))
+ (add-after 'install 'install-udev-rules
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (install-file "wfview"
- (string-append out "/bin"))
- (install-file "wfview.png"
- (string-append out "/share/pixmaps"))
- (install-file "wfview.desktop"
- (string-append out "/share/applications"))
- (let ((dir (string-append
- out "/share/wfview/stylesheets/qdarkstyle")))
- (mkdir-p dir)
- (copy-recursively "qdarkstyle" dir))))))))
- (home-page "https://wfview.org/")
- (synopsis "Software to control Icom radios")
+ (install-file "etc/udev/rules.d/20-rfcat.rules"
+ (string-append (assoc-ref outputs "out")
+ "/lib/udev/rules.d")))))))
+ (home-page "https://github.com/atlas0fd00m/rfcat")
+ (synopsis "Program to control some radio dongles")
(description
- "@code{wfview} is a program to control modern Icom radios and view the
-spectrum waterfall. It supports at least the following models:
+ "@code{rfcat} is a program to control some radio dongles operating in
+ISM bands.
+Supported dongles:
@itemize
-@item IC-705
-@item IC-7300
-@item IC-7610
-@item IC-7850
-@item IC-7851
-@item IC-9700
-@end itemize\n")
- (license (list license:expat
- license:gpl3)))))
+@item YARD Stick One
+@item cc1111emk
+@item chronos watch dongle
+@item imme (limited support)
+@end itemize
+
+To install the rfcat udev rules, you must extend @code{udev-service-type} with
+this package. E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
+ (license (list license:bsd-3
+ license:gpl2)))))