diff --git a/build.sh b/build.sh index 9ef2d4b..5a991a7 100755 --- a/build.sh +++ b/build.sh @@ -12,4 +12,5 @@ docker build --build-arg ARCHTAG=$ARCHTAG -t openwebrx-soapysdr-base:$ARCHTAG -f docker build --build-arg ARCHTAG=$ARCHTAG -t jketterl/openwebrx-sdrplay:$ARCHTAG -f docker/Dockerfiles/Dockerfile-sdrplay . docker build --build-arg ARCHTAG=$ARCHTAG -t jketterl/openwebrx-hackrf:$ARCHTAG -f docker/Dockerfiles/Dockerfile-hackrf . docker build --build-arg ARCHTAG=$ARCHTAG -t jketterl/openwebrx-airspy:$ARCHTAG -f docker/Dockerfiles/Dockerfile-airspy . +docker build --build-arg ARCHTAG=$ARCHTAG -t jketterl/openwebrx-rtlsdr-soapy:$ARCHTAG -f docker/Dockerfiles/Dockerfile-rtlsdr-soapy . docker build --build-arg ARCHTAG=$ARCHTAG -t jketterl/openwebrx-full:$ARCHTAG -t jketterl/openwebrx:$ARCHTAG -f docker/Dockerfiles/Dockerfile-full . diff --git a/csdr/csdr.py b/csdr/csdr.py index f79bcd7..d6cfc11 100644 --- a/csdr/csdr.py +++ b/csdr/csdr.py @@ -225,7 +225,7 @@ class dsp(object): if self.fft_compression == "adpcm": chain += ["csdr compress_fft_adpcm_f_u8 {secondary_fft_size}"] return chain - elif which == "bpsk31": + elif which == "bpsk31" or which == "bpsk63": return chain + [ "csdr shift_addition_cc --fifo {secondary_shift_pipe}", "csdr bandpass_fir_fft_cc -{secondary_bpf_cutoff} {secondary_bpf_cutoff} {secondary_bpf_cutoff}", @@ -268,21 +268,29 @@ class dsp(object): def secondary_bpf_cutoff(self): if self.secondary_demodulator == "bpsk31": return 31.25 / self.if_samp_rate() + elif self.secondary_demodulator == "bpsk63": + return 62.5 / self.if_samp_rate() return 0 def secondary_bpf_transition_bw(self): if self.secondary_demodulator == "bpsk31": return 31.25 / self.if_samp_rate() + elif self.secondary_demodulator == "bpsk63": + return 62.5 / self.if_samp_rate() return 0 def secondary_samples_per_bits(self): if self.secondary_demodulator == "bpsk31": return int(round(self.if_samp_rate() / 31.25)) & ~3 + elif self.secondary_demodulator == "bpsk63": + return int(round(self.if_samp_rate() / 62.5)) & ~3 return 0 def secondary_bw(self): if self.secondary_demodulator == "bpsk31": return 31.25 + elif self.secondary_demodulator == "bpsk63": + return 62.5 def start_secondary_demodulator(self): if not self.secondary_demodulator: diff --git a/docker/Dockerfiles/Dockerfile-airspy b/docker/Dockerfiles/Dockerfile-airspy index 4d0a9c7..4383d0d 100644 --- a/docker/Dockerfiles/Dockerfile-airspy +++ b/docker/Dockerfiles/Dockerfile-airspy @@ -3,6 +3,8 @@ FROM openwebrx-soapysdr-base:$ARCHTAG ADD docker/scripts/install-dependencies-airspy.sh / RUN /install-dependencies-airspy.sh +RUN rm /install-dependencies-airspy.sh ADD docker/scripts/install-connectors.sh / RUN /install-connectors.sh +RUN rm /install-connectors.sh diff --git a/docker/Dockerfiles/Dockerfile-base b/docker/Dockerfiles/Dockerfile-base index 3333140..566f9d1 100644 --- a/docker/Dockerfiles/Dockerfile-base +++ b/docker/Dockerfiles/Dockerfile-base @@ -7,6 +7,7 @@ RUN ln -s /usr/local/lib /usr/local/lib64 ADD docker/scripts/direwolf-1.5.patch / ADD docker/scripts/install-dependencies.sh / RUN /install-dependencies.sh +RUN rm /install-dependencies.sh ADD . /opt/openwebrx diff --git a/docker/Dockerfiles/Dockerfile-full b/docker/Dockerfiles/Dockerfile-full index 5a9fa76..5d59e6a 100644 --- a/docker/Dockerfiles/Dockerfile-full +++ b/docker/Dockerfiles/Dockerfile-full @@ -9,6 +9,9 @@ RUN /install-dependencies-hackrf.sh RUN /install-dependencies-soapysdr.sh RUN /install-dependencies-sdrplay.sh RUN /install-dependencies-airspy.sh +RUN /install-dependencies-rtlsdr-soapy.sh +RUN rm /install-dependencies-*.sh ADD docker/scripts/install-connectors.sh / RUN /install-connectors.sh +RUN rm /install-connectors.sh diff --git a/docker/Dockerfiles/Dockerfile-hackrf b/docker/Dockerfiles/Dockerfile-hackrf index 0b3aa00..57643ab 100644 --- a/docker/Dockerfiles/Dockerfile-hackrf +++ b/docker/Dockerfiles/Dockerfile-hackrf @@ -3,4 +3,5 @@ FROM openwebrx-base:$ARCHTAG ADD docker/scripts/install-dependencies-hackrf.sh / RUN /install-dependencies-hackrf.sh +RUN rm /install-dependencies-hackrf.sh diff --git a/docker/Dockerfiles/Dockerfile-rtlsdr b/docker/Dockerfiles/Dockerfile-rtlsdr index e0c82bd..b0726da 100644 --- a/docker/Dockerfiles/Dockerfile-rtlsdr +++ b/docker/Dockerfiles/Dockerfile-rtlsdr @@ -3,6 +3,8 @@ FROM openwebrx-base:$ARCHTAG ADD docker/scripts/install-dependencies-rtlsdr.sh / RUN /install-dependencies-rtlsdr.sh +RUN rm /install-dependencies-rtlsdr.sh ADD docker/scripts/install-connectors.sh / RUN /install-connectors.sh +RUN rm /install-connectors.sh diff --git a/docker/Dockerfiles/Dockerfile-rtlsdr-soapy b/docker/Dockerfiles/Dockerfile-rtlsdr-soapy new file mode 100644 index 0000000..7989a6a --- /dev/null +++ b/docker/Dockerfiles/Dockerfile-rtlsdr-soapy @@ -0,0 +1,10 @@ +ARG ARCHTAG +FROM openwebrx-soapysdr-base:$ARCHTAG + +ADD docker/scripts/install-dependencies-rtlsdr-soapy.sh / +RUN /install-dependencies-rtlsdr-soapy.sh +RUN rm /install-dependencies-rtlsdr-soapy.sh + +ADD docker/scripts/install-connectors.sh / +RUN /install-connectors.sh +RUN rm /install-connectors.sh diff --git a/docker/Dockerfiles/Dockerfile-sdrplay b/docker/Dockerfiles/Dockerfile-sdrplay index 453ea00..f44f53b 100644 --- a/docker/Dockerfiles/Dockerfile-sdrplay +++ b/docker/Dockerfiles/Dockerfile-sdrplay @@ -4,6 +4,8 @@ FROM openwebrx-soapysdr-base:$ARCHTAG ADD docker/scripts/install-dependencies-sdrplay.sh / ADD docker/scripts/install-lib.*.patch / RUN /install-dependencies-sdrplay.sh +RUN rm /install-dependencies-sdrplay.sh ADD docker/scripts/install-connectors.sh / RUN /install-connectors.sh +RUN rm /install-connectors.sh diff --git a/docker/Dockerfiles/Dockerfile-soapysdr b/docker/Dockerfiles/Dockerfile-soapysdr index a4921e3..82b93e9 100644 --- a/docker/Dockerfiles/Dockerfile-soapysdr +++ b/docker/Dockerfiles/Dockerfile-soapysdr @@ -3,4 +3,5 @@ FROM openwebrx-base:$ARCHTAG ADD docker/scripts/install-dependencies-soapysdr.sh / RUN /install-dependencies-soapysdr.sh +RUN rm /install-dependencies-soapysdr.sh diff --git a/docker/scripts/install-dependencies-rtlsdr-soapy.sh b/docker/scripts/install-dependencies-rtlsdr-soapy.sh new file mode 100755 index 0000000..11a0cd1 --- /dev/null +++ b/docker/scripts/install-dependencies-rtlsdr-soapy.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +set -euo pipefail + +function cmakebuild() { + cd $1 + if [[ ! -z "${2:-}" ]]; then + git checkout $2 + fi + mkdir build + cd build + cmake .. + make + make install + cd ../.. + rm -rf $1 +} + +cd /tmp + +STATIC_PACKAGES="libusb" +BUILD_PACKAGES="git libusb-dev cmake make gcc musl-dev g++ linux-headers" + +apk add --no-cache $STATIC_PACKAGES +apk add --no-cache --virtual .build-deps $BUILD_PACKAGES + +git clone https://github.com/osmocom/rtl-sdr.git +cmakebuild rtl-sdr b5af355b1d833b3c898a61cf1e072b59b0ea3440 + +git clone https://github.com/pothosware/SoapyRTLSDR.git +cmakebuild SoapyRTLSDR 5c5d9503337c6d1c34b496dec6f908aab9478b0f + +apk del .build-deps diff --git a/htdocs/index.html b/htdocs/index.html index 4d63278..f18f659 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -185,6 +185,7 @@