Balint,

Thanks for your work on this. Yesterday I have been playing with my EzTV
666 and today I tried a Dexatek dongle using your latest code with FC2580
tuner support.

If I try to run a simple src->fft flowgraph (attached) right after plugging
the dongle in I get a bunch of errors, see atached fc2580-1.txt file. I
tried to capture a file using the latest rtl-sdr code from the osmocom
repository using the same frequency and sample and it worked. After that I
can try the grc flowgraph using your source block again and it will work
(see attached fc2580-2.txt). So it seems there is something wrong with the
tuner initialization. I didn't have time to look into what the problem
could be.

Alex

On Thu, Apr 5, 2012 at 1:55 PM, Balint Seeber <balint...@gmail.com> wrote:

> Hi folks,****
>
> ** **
>
> Firstly, thank you to those who have tested the initial release and have
> been in touch with feedback – I really appreciate it.****
>
> ** **
>
> I would like to share the completely re-written RTL2832 code in 
> gr-baz<http://wiki.spench.net/wiki/gr-baz#rtl_source_c>,
> which should now support all devices I can find with an E4000, FC0013 and
> now FC0012 tuner (if there are any missing, you can simply set the custom
> VID/PID in the GRC RTL2832 Source block, or add just one line to an array
> in rtl2832.cc). This will be ported to the Windows plugin soon.****
>
> ** **
>
> The RTL2832 Source block code itself is much tidier, and makes use of
> (what I submit for your consideration/experimentation as) ‘librtl2832++’ –
> this is a completely re-designed GNU Radio-independent C++ (OO) interface
> to the hardware. The idea is to make it really easy to talk to the dongles.
> If you want to use it for something else, just copy out the ‘rtl2832-*’
> files! You will find the main ‘demod’ class, and the ‘tuner’s, all with (I
> hope) a simple API.****
>
> ** **
>
> The updated GRC Source block also exposes lots of new settings too
> (including bandwidth, buffer settings, FIR coefficients, …).****
>
> ** **
>
> Moreover, just to ensure that I hadn’t led people down the garden path
> (since, let’s face it, it’s 8 bits, XO drifts like crazy, and wasn’t
> designed for general-purpose SDR), I hooked it up to 
> OP25<http://op25.osmocom.org/>(the open source P25 digital radio decoder) – 
> and happily it works!
> ****
>
> ** **
>
> Check out the RTL2832+OP25+DES-OFB demonstration/RTL2832 update video:
> http://www.youtube.com/watch?v=wShOLgW2tmI****
>
> ** **
>
> In the process I also created two new GRC blocks (now in gr-baz, also in
> the video):****
>
> ** **
>
> **1.       **‘OP25 Decoder’ (float baseband in, audio out with optional
> parameter for setting DES-OFB decryption key – this requires a patch with
> decryption support that I will release soon)
>
> ****
>
> **2.       **‘Message Callback’ sink whose input port accepts messages,
> and calls the relevant GRC-generated code to update a GRC variable (i.e.
> you can have various blocks that output messages into a message queue, and
> these will be picked up by this block and trigger a particular variable in
> your flowgraph to by updated automatically – e.g. you can change a tuning
> offset if a block detects a frequency error creeping in, and/or you can
> have GUI elements – text boxes/sliders/etc – controlled by arbitrary blocks
> if their value needs to be updated by a feedback mechanism)****
>
> ** **
>
> Please note: RTL2832’s Source block now has Relative Gain *enabled* by
> default, so valid gain values are in the range [0,1]. This means you don’t
> need to remember the absolute gain range for whichever tuner you have!****
>
> ** **
>
> Also, there is a known issue that may occur while tuning. If you change
> the frequency too rapidly, a USB error may occur and require reconnection
> of the dongle (this has only ever happened to me though when there are
> sample rate mismatches in a flowgraph). Enforcing coarse-grained locking in
> the source block code does not solve this. The only obvious fix to me at
> this stage is rate-limiting tuning requests (I’m guessing perhaps the
> device wasn’t designed to expect rapid re-tuning). Implementing async
> libusb control transfers would also be nice!****
>
> ** **
>
> Finally, I have found that on my Linux box, streaming performance isn’t as
> great as on Windows. By ‘performance’ I mean occasional degradation in the
> baseband signal (i.e. signal ‘jumps’, after AM or FM demod of a constant
> tone, you would hear a ‘click’ discontinuity). I hope that’s not a result
> of an undiscovered bug, but  I’ve been largely able to avoid these
> discontinuities by selecting a modest sample rate (e.g. 1 Msps), increasing
> the transfer read length (you can do this easily in the GRC block) to e.g.
> 256K (though this will increase delay in reflection of freq/gain changes in
> output signal due to longer buffer), and enabling real-time scheduling
> (this requires root).****
>
> ** **
>
> If you get run-time complaints about it not finding certain libraries,
> don’t forget to run ‘sudo ldconfig’.****
>
> ** **
>
> If you do try it out, please let me know how you go! I only have one
> adapter with the E4000, so I haven’t actually tested any others myself.
> Fingers crossed!****
>
> ** **
>
> Kind regards,****
>
> Balint @spenchdotnet <http://twitter.com/spenchdotnet>****
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
Executing: "/home/alexc/gnuradio/rtlsdr/rtl2832.py"

Using Volk machine: sse4_2_64
RTL2832 Source block configuration:
        Read length (bytes): 32768
        Buffer enabled: yes
        Buffer multiplier: 8
        Buffer size (samples): 131072
        Samples per read: 16384
        Buffer level: 50.0%
Found RTL2832 device: (null) (tuner: Fitipower FC2580)
        Sample rate range:      900001 - 3200000 Hz
        Crystal frequency:      28800000 Hz
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):289 
"FC0013_Write(pTuner, 0x00, 0x00)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):290 
"FC0013_Write(pTuner, 0x12, 0x86)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):291 
"FC0013_Write(pTuner, 0x14, 0x5C)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):292 
"FC0013_Write(pTuner, 0x16, 0x3C)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):293 
"FC0013_Write(pTuner, 0x1F, 0xD2)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):294 
"FC0013_Write(pTuner, 0x09, 0xD7)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):295 
"FC0013_Write(pTuner, 0x0B, 0xD5)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):296 
"FC0013_Write(pTuner, 0x0C, 0x32)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):297 
"FC0013_Write(pTuner, 0x0E, 0x43)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):298 
"FC0013_Write(pTuner, 0x21, 0x0A)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):299 
"FC0013_Write(pTuner, 0x22, 0x82)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):307 
"FC0013_Write(pTuner, 0x45, 0x20)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):308 
"FC0013_Write(pTuner, 0x4C, 0x02)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):310 
"FC0013_Write(pTuner, 0x3F, 0x88)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):311 
"FC0013_Write(pTuner, 0x02, 0x0E)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_init(rtl2832::tuner*, int, unsigned int):312 
"FC0013_Write(pTuner, 0x58, 0x14)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):539 "FC0013_Write(pTuner, 0x36, 0x18)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):540 "FC0013_Write(pTuner, 0x37, (unsigned 
char)(3300*freq_xtal/1000000))"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):541 "FC0013_Write(pTuner, 0x39, 0x80)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):542 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_read: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):549 "FC0013_Read(pTuner, 0x2F, &cal_mon)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):552 "FC0013_Write(pTuner, 0x2E, 0x01)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):553 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_read: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):549 "FC0013_Read(pTuner, 0x2F, &cal_mon)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):552 "FC0013_Write(pTuner, 0x2E, 0x01)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):553 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_read: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):549 "FC0013_Read(pTuner, 0x2F, &cal_mon)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):552 "FC0013_Write(pTuner, 0x2E, 0x01)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):553 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_read: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):549 "FC0013_Read(pTuner, 0x2F, &cal_mon)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):552 "FC0013_Write(pTuner, 0x2E, 0x01)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):553 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_read: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):549 "FC0013_Read(pTuner, 0x2F, &cal_mon)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):552 "FC0013_Write(pTuner, 0x2E, 0x01)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):553 "FC0013_Write(pTuner, 0x2E, 0x09)"
_fc2580_i2c_write: the control request was not supported by the device [-9] @ 
fc2580_fci_result_type fc2580_set_filter(rtl2832::tuner*, unsigned char, 
unsigned int):559 "FC0013_Write(pTuner, 0x2E, 0x01)"
        Failed to initialise tuner
Traceback (most recent call last):
  File "/home/alexc/gnuradio/rtlsdr/rtl2832.py", line 99, in <module>
    tb = rtl2832()
  File "/home/alexc/gnuradio/rtlsdr/rtl2832.py", line 62, in __init__
    if self.rtl2832_source_0.create() == False: raise Exception("Failed to 
create RTL2832 Source: rtl2832_source_0")
Exception: Failed to create RTL2832 Source: rtl2832_source_0

>>> Done

Attachment: rtl2832.grc
Description: Binary data

Generating: "/home/alexc/gnuradio/rtlsdr/rtl2832.py"
>>> Warning: This flow graph may not have flow control: no audio or usrp blocks 
>>> found. Add a Misc->Throttle block to your flow graph to avoid CPU 
>>> congestion.

Executing: "/home/alexc/gnuradio/rtlsdr/rtl2832.py"

Using Volk machine: sse4_2_64
RTL2832 Source block configuration:
        Read length (bytes): 32768
        Buffer enabled: yes
        Buffer multiplier: 8
        Buffer size (samples): 131072
        Samples per read: 16384
        Buffer level: 50.0%
Found RTL2832 device: (null) (tuner: Fitipower FC2580)
        Sample rate range:      900001 - 3200000 Hz
        Crystal frequency:      28800000 Hz
[fc2580] Initialised (default bandwidth: 8000000 Hz)
Wait delay: 24.576 ms
Capture threading starting: 0x3c1eb30
Finished buffering (81920/131072) [#0]

>>> Done


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to