From 2c636afa675fd42a3a5d7598532d9c5c4588b195 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Sat, 26 Aug 2023 14:25:03 +0100 Subject: [PATCH] Add support for RTLSDRBlog V4 with HF upsampler --- plugins/samplesource/rtlsdr/rtlsdrgui.cpp | 2 +- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 9 +++++++-- plugins/samplesource/rtlsdr/rtlsdrinput.h | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp index 654f681ff..b952fc03c 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp @@ -208,7 +208,7 @@ void RTLSDRGui::updateFrequencyLimits() { // values in kHz qint64 deltaFrequency = m_settings.m_transverterMode ? m_settings.m_transverterDeltaFrequency/1000 : 0; - qint64 minLimit = (m_settings.m_noModMode ? RTLSDRInput::frequencyLowRangeMin : RTLSDRInput::frequencyHighRangeMin) + deltaFrequency; + qint64 minLimit = (m_settings.m_noModMode ? RTLSDRInput::frequencyLowRangeMin : m_sampleSource->m_frequencyHighRangeMin) + deltaFrequency; qint64 maxLimit = (m_settings.m_noModMode ? RTLSDRInput::frequencyLowRangeMax : RTLSDRInput::frequencyHighRangeMax) + deltaFrequency; if (m_settings.m_transverterMode) diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index a2cf99ea5..20bfee715 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -44,7 +44,6 @@ MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgStartStop, Message) const quint64 RTLSDRInput::frequencyLowRangeMin = 0UL; const quint64 RTLSDRInput::frequencyLowRangeMax = 275000UL; -const quint64 RTLSDRInput::frequencyHighRangeMin = 24000UL; const quint64 RTLSDRInput::frequencyHighRangeMax = 2400000UL; const int RTLSDRInput::sampleRateLowRangeMin = 225001; const int RTLSDRInput::sampleRateLowRangeMax = 300000; @@ -158,9 +157,15 @@ bool RTLSDRInput::openDevice() m_tunerType = rtlsdr_get_tuner_type(m_dev); - qInfo("RTLSDRInput::openDevice: open: %s %s, SN: %s Tuner: %s", vendor, product, serial, getTunerName()); + qInfo("RTLSDRInput::openDevice: open: %s %s, SN: %s Tuner: %s", vendor, product, serial, qPrintable(getTunerName())); m_deviceDescription = QString("%1 (SN %2)").arg(product).arg(serial); + if ((vendor == QStringLiteral("RTLSDRBlog")) && (product == QStringLiteral("Blog V4"))) { + m_frequencyHighRangeMin = 0; + } else { + m_frequencyHighRangeMin = 24000UL; + } + if ((res = rtlsdr_set_sample_rate(m_dev, 1152000)) < 0) { qCritical("RTLSDRInput::openDevice: could not set sample rate: 1024k S/s"); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.h b/plugins/samplesource/rtlsdr/rtlsdrinput.h index 76c034954..a0ee55c65 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.h +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.h @@ -139,7 +139,7 @@ public: static const quint64 frequencyLowRangeMin; static const quint64 frequencyLowRangeMax; - static const quint64 frequencyHighRangeMin; + quint64 m_frequencyHighRangeMin; static const quint64 frequencyHighRangeMax; static const int sampleRateLowRangeMin; static const int sampleRateLowRangeMax;