Projects
osmocom:master
rtl-sdr
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
commit_1261fbb285297da08f4620b18871b6d6d9ec2a7b.txt
Added
View file
commit_142325a93c6ad70f851f43434acfdf75e12dfe03.txt
Deleted
View file
rtl-sdr_0.5.4.45.1423.dsc -> rtl-sdr_0.5.4.46.1261.dsc
Changed
@@ -2,7 +2,7 @@ Source: rtl-sdr Binary: librtlsdr-dev, librtlsdr0, rtl-sdr Architecture: any -Version: 0.5.4.45.1423 +Version: 0.5.4.46.1261 Maintainer: A. Maitland Bottoms <bottoms@debian.org> Homepage: http://sdr.osmocom.org/trac/wiki/rtl-sdr Standards-Version: 4.1.4 @@ -14,8 +14,8 @@ librtlsdr0 deb libs optional arch=any rtl-sdr deb comm optional arch=any Checksums-Sha1: - abb6f6373439d418ae2e91a23a531376feb9f10e 108168 rtl-sdr_0.5.4.45.1423.tar.xz + d3949e469d610ad716f04ed3018eb0b3c20d0621 108868 rtl-sdr_0.5.4.46.1261.tar.xz Checksums-Sha256: - 4e6a5259d6639a349e425c222b78c2ff9b6d49b8ad33bedea24663feff942681 108168 rtl-sdr_0.5.4.45.1423.tar.xz + beb63a92399748552a8d50460b18d506aab83f189f2245a8c9ccacd05b4d2648 108868 rtl-sdr_0.5.4.46.1261.tar.xz Files: - 67b9a9a51b209cb80cfa7b40960e2acb 108168 rtl-sdr_0.5.4.45.1423.tar.xz + e6bf51d129d4e409e3fe1a7594964592 108868 rtl-sdr_0.5.4.46.1261.tar.xz
View file
rtl-sdr_0.5.4.45.1423.tar.xz/.tarball-version -> rtl-sdr_0.5.4.46.1261.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -0.5.4.45-1423 +0.5.4.46-1261
View file
rtl-sdr_0.5.4.45.1423.tar.xz/debian/changelog -> rtl-sdr_0.5.4.46.1261.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -rtl-sdr (0.5.4.45.1423) unstable; urgency=medium +rtl-sdr (0.5.4.46.1261) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Sat, 17 Dec 2022 20:26:58 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Tue, 22 Aug 2023 22:41:50 +0000 rtl-sdr (0.6) unstable; urgency=medium
View file
rtl-sdr_0.5.4.45.1423.tar.xz/include/rtlsdr_i2c.h -> rtl-sdr_0.5.4.46.1261.tar.xz/include/rtlsdr_i2c.h
Changed
@@ -1,6 +1,7 @@ #ifndef __I2C_H #define __I2C_H +int rtlsdr_check_dongle_model(void *dev, char *manufact_check, char *product_check); uint32_t rtlsdr_get_tuner_clock(void *dev); int rtlsdr_i2c_write_fn(void *dev, uint8_t addr, uint8_t *buf, int len); int rtlsdr_i2c_read_fn(void *dev, uint8_t addr, uint8_t *buf, int len);
View file
rtl-sdr_0.5.4.45.1423.tar.xz/src/librtlsdr.c -> rtl-sdr_0.5.4.46.1261.tar.xz/src/librtlsdr.c
Changed
@@ -119,6 +119,8 @@ int dev_lost; int driver_active; unsigned int xfer_errors; + char manufact256; + char product256; }; void rtlsdr_set_gpio_bit(rtlsdr_dev_t *dev, uint8_t gpio, int val); @@ -1430,6 +1432,16 @@ return -3; } +/* Returns true if the manufact_check and product_check strings match what is in the dongles EEPROM */ +int rtlsdr_check_dongle_model(void *dev, char *manufact_check, char *product_check) +{ + if ((strcmp(((rtlsdr_dev_t *)dev)->manufact, manufact_check) == 0&& strcmp(((rtlsdr_dev_t *)dev)->product, product_check) == 0)) + return 1; + + return 0; +} + + int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index) { int r; @@ -1528,6 +1540,9 @@ rtlsdr_init_baseband(dev); dev->dev_lost = 0; + /* Get device manufacturer and product id */ + r = rtlsdr_get_usb_strings(dev, dev->manufact, dev->product, NULL); + /* Probe tuners */ rtlsdr_set_i2c_repeater(dev, 1); @@ -1555,6 +1570,10 @@ reg = rtlsdr_i2c_read_reg(dev, R828D_I2C_ADDR, R82XX_CHECK_ADDR); if (reg == R82XX_CHECK_VAL) { fprintf(stderr, "Found Rafael Micro R828D tuner\n"); + + if (rtlsdr_check_dongle_model(dev, "RTLSDRBlog", "Blog V4")) + fprintf(stderr, "RTL-SDR Blog V4 Detected\n"); + dev->tuner_type = RTLSDR_TUNER_R828D; goto found; } @@ -1588,7 +1607,10 @@ switch (dev->tuner_type) { case RTLSDR_TUNER_R828D: - dev->tun_xtal = R828D_XTAL_FREQ; + /* If NOT an RTL-SDR Blog V4, set typical R828D 16 MHz freq. Otherwise, keep at 28.8 MHz. */ + if (!(rtlsdr_check_dongle_model(dev, "RTLSDRBlog", "Blog V4"))) { + dev->tun_xtal = R828D_XTAL_FREQ; + } /* fall-through */ case RTLSDR_TUNER_R820T: /* disable Zero-IF mode */
View file
rtl-sdr_0.5.4.45.1423.tar.xz/src/tuner_r82xx.c -> rtl-sdr_0.5.4.46.1261.tar.xz/src/tuner_r82xx.c
Changed
@@ -33,6 +33,10 @@ #define MHZ(x) ((x)*1000*1000) #define KHZ(x) ((x)*1000) +#define HF 1 +#define VHF 2 +#define UHF 3 + /* * Static constants */ @@ -1098,8 +1102,23 @@ int r82xx_set_freq(struct r82xx_priv *priv, uint32_t freq) { int rc = -1; - uint32_t lo_freq = freq + priv->int_freq; + int is_rtlsdr_blog_v4; + uint32_t upconvert_freq; + uint32_t lo_freq; uint8_t air_cable1_in; + uint8_t open_d; + uint8_t band; + uint8_t cable_2_in; + uint8_t cable_1_in; + uint8_t air_in; + + is_rtlsdr_blog_v4 = rtlsdr_check_dongle_model(priv->rtl_dev, "RTLSDRBlog", "Blog V4"); + + /* if it's an RTL-SDR Blog V4, automatically upconvert by 28.8 MHz if we tune to HF + * so that we don't need to manually set any upconvert offset in the SDR software */ + upconvert_freq = is_rtlsdr_blog_v4 ? ((freq < MHZ(28.8)) ? (freq + MHZ(28.8)) : freq) : freq; + + lo_freq = upconvert_freq + priv->int_freq; rc = r82xx_set_mux(priv, lo_freq); if (rc < 0) @@ -1109,16 +1128,60 @@ if (rc < 0 || !priv->has_lock) goto err; - /* switch between 'Cable1' and 'Air-In' inputs on sticks with - * R828D tuner. We switch at 345 MHz, because that's where the - * noise-floor has about the same level with identical LNA - * settings. The original driver used 320 MHz. */ - air_cable1_in = (freq > MHZ(345)) ? 0x00 : 0x60; - - if ((priv->cfg->rafael_chip == CHIP_R828D) && - (air_cable1_in != priv->input)) { - priv->input = air_cable1_in; - rc = r82xx_write_reg_mask(priv, 0x05, air_cable1_in, 0x60); + if (is_rtlsdr_blog_v4) { + /* determine if notch filters should be on or off notches are turned OFF + * when tuned within the notch band and ON when tuned outside the notch band. + */ + open_d = (freq <= MHZ(2.2) || (freq >= MHZ(85) && freq <= MHZ(112)) || (freq >= MHZ(172) && freq <= MHZ(242))) ? 0x00 : 0x08; + rc = r82xx_write_reg_mask(priv, 0x17, open_d, 0x08); + + if (rc < 0) + return rc; + + /* select tuner band based on frequency and only switch if there is a band change + *(to avoid excessive register writes when tuning rapidly) + */ + band = (freq <= MHZ(28.8)) ? HF : ((freq > MHZ(28.8) && freq < MHZ(250)) ? VHF : UHF); + + /* switch between tuner inputs on the RTL-SDR Blog V4 */ + if (band != priv->input) { + priv->input = band; + + /* activate cable 2 (HF input) */ + cable_2_in = (band == HF) ? 0x08 : 0x00; + rc = r82xx_write_reg_mask(priv, 0x06, cable_2_in, 0x08); + + if (rc < 0) + goto err; + + /* activate cable 1 (VHF input) */ + cable_1_in = (band == VHF) ? 0x40 : 0x00; + rc = r82xx_write_reg_mask(priv, 0x05, cable_1_in, 0x40); + + if (rc < 0) + goto err; + + /* activate air_in (UHF input) */ + air_in = (band == UHF) ? 0x00 : 0x20; + rc = r82xx_write_reg_mask(priv, 0x05, air_in, 0x20); + + if (rc < 0) + goto err; + } + } + else /* Standard R828D dongle*/ + { + /* switch between 'Cable1' and 'Air-In' inputs on sticks with + * R828D tuner. We switch at 345 MHz, because that's where the + * noise-floor has about the same level with identical LNA + * settings. The original driver used 320 MHz. */ + air_cable1_in = (freq > MHZ(345)) ? 0x00 : 0x60; + + if ((priv->cfg->rafael_chip == CHIP_R828D) && + (air_cable1_in != priv->input)) { + priv->input = air_cable1_in; + rc = r82xx_write_reg_mask(priv, 0x05, air_cable1_in, 0x60); + } } err:
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.