fventuri / gr-osmosdr

gr-osmosdr GnuRadio OOT module for SDRplay API 3.x - supports RSPduo (all modes) and RSPdx
GNU General Public License v3.0
3 stars 1 forks source link

BiasT, Rfnotch, DAB notch enable possible ? #1

Open nmaster2042 opened 3 years ago

nmaster2042 commented 3 years ago

I tried with success this experimental branch with Gqrx and my RSP Duo. Seems to work fine but is there a way to enable bias T on antenna B, rf notch and dab filters ?

fventuri commented 3 years ago

@nmaster2042 - sorry I saw your issue only now (many thanks to @iwiq for pointing it out); usually I receive an email alert where there is a new issue, but this time I must have missed it.

Anyway I just took a look at the API of the gr-osmosdr GNU Radio module (see here: https://github.com/osmocom/gr-osmosdr/blob/master/include/osmosdr/source.h), and it does not look like it supports enabling biasT, RF notch and DAB filters, and therefore it might not be possible to implement those controls within gr-osmocom. I didn't look really much in depth into it, so, if I missed something, please let me know.

And this brings us back to @iwiq original idea, i.e. to use the SoapySDRPlay driver within SoapySDR to be able to use the SDRplay RSP from gqrx. @iwiq reported that the SoapySDRPlay driver has problems with 'rfnotch_ctrl=true' (https://github.com/SDRplay/SoapySDRPlay/issues/21), so I'll go back now to that original issue to see if we can figure out where is the problem.

I apologize for the confusion, Franco

nmaster2042 commented 3 years ago

Hi Franco.

Thank you very much for reply.

I asked about Bias T, rf notch and dab notch because I didn't managed to use it with Soapy gqrx support. rfnotch_ctrl=true and / or dabnotch_ctrl=true makes gqrx freeze some time after starting streaming.

Some time ago (one or two years) a gr-osmosdr fork provided support for these two notch filters by adding 2 sliders where gains sliders were. It was a good workaround to get good control of RSP device. But it was based on the v2 SDRPlay API.

A similar way with v3 API would be a nice add for us, poor sdrplay users :-)

But if instead it could work with rfnotch_ctrl=true and dabnotch_ctrl=true with Soapy support, I would be happy too.

The main issue finally is the Soapy support in gr-osmosdr.

I will look at the issue https://github.com/SDRplay/SoapySDRPlay/issues/21

nmaster2042 commented 3 years ago

I found the old gr-osmosdr mentioned in my previous post:

https://github.com/willcode/gr-osmosdr/blob/sdrplay2/lib/sdrplay/sdrplay_source_c.cc

I'm not an expert developper, but look in the sdrplay_source_c::get_gain_range function line 540 and sdrplay_source_c::set_gain function line 639.

This was working well for gqrx, v2.13 API.

Do you think a similar way would be possible for v3.x API ?

fventuri commented 3 years ago

Thanks for finding that out, @nmaster2042

Once I complete the work on the SoapySDRPlay driver to get it to process the argument refnotch_ctrl (and other arguments) passed through the device string in gqrx, I plan to resume working on the gr-osmosdr GNU Radio module.

I already noticed that I am a few commits behind the master branch, so I'll work on updating it and using Jeff Long's approach for the additional settings.

Franco

fventuri commented 3 years ago

I just pushed to the master branch the new version of this fork of the gr-osmosdr GNU Radio module with the following changes:

I was able to compile the code with these changes without any errors, but I haven't actually run it to see if it works.

Please try out this latest version with these improvements and let me know how it goes. Franco

nmaster2042 commented 3 years ago

Hi @fventuri, Merry Xmas !

I just made test with my 3 RSPs (RSP2, Dx and Duo). Here is the results.

RSP2

RSP Dx

RSP Duo

fventuri commented 3 years ago

@nmaster2042 - Merry Christmas to you too!

Now that the changes for the device string arguments in the SoapySDRPlay driver are in the master branch, and I am done working on that side, I'll run some tests here too with gqrx using this new gr-osmosdr GNU Radio module to understand better the problems you mentioned.

I usually try not to have the SoapySDRPlay driver and the new gr-osmosdr module installed at the same time, because when I am running tests with gqrx I don't want to risk of getting confused as to which 'path' gqrx is using to see the RSP, if it is via the gr-osmosdr module, or some other way.

Franco

fventuri commented 3 years ago

@nmaster2042 - the reason why the RF_NOTCH and DAB_NOTCH sliders weren't displaying in gqrx is that I forgot to add them to the list of gain names. I just added them to the list of names returned by get_gain_names() (depending on the actual RSP model), and tested quickly here with gqrx to make sure I can see them.

I also updated the code in the master branch with these changes; when you have some time, please download it again, build it, run it, and let me know if thew now show up in gqrx for you.

Many thanks for your help testing this module! Franco

nmaster2042 commented 3 years ago

@fventuri I rebuilt and test, for now only with RSP2.

Sliders for filter for rfnotch is present now.

But in when AGC is checked, as a gain slider, rfnotch one can't be moved. Do you think notch sliders could be excluded from AGC mode selection so they can be changed even whend AGC is on ?

For now I test while disabling AGC.

First, when disabling AGC, demodulation becomes bad. It become correct only if I stop and start stream or change demodulator (ex: WFM stero to WFM mono).

Next: enabling rf notch is working, but disabling makes same effect than before when I disagle AGC. On the waterfall it seems to disable filter but, demodulation isn't well.

Changing demodulator brings back good demodulation.

I made a set of small videos to let you understand what I mean. At the end gqrx crashes.

Finally in the terminal, I have warnings when changing gains: [WARNING] set_gain() is deprecated - please use set_gain(name) instead

EDITED: removed videos in this message they were corrupted, see next message.

nmaster2042 commented 3 years ago

Try to send videos. 1 - Gqrx AGC.mp4 https://drive.google.com/file/d/1x4KLtCTZo7oj3cBecXUi60KxQ95XTOCz/view?usp=drive_web 2 - Gqrx disable AGC.mp4 https://drive.google.com/file/d/1zbVSWnyoJM20rU5FTfM0BAqr46fsKeB_/view?usp=drive_web 3 - Gqrx changing demod.mp4 https://drive.google.com/file/d/1wWk1hMoMF4vcxx3WK5OrsHMCi1iZfBwa/view?usp=drive_web 4 - Gqrx enable disable RF notch.mp4 https://drive.google.com/file/d/1tZ6jaYO-zLmQrkxY0wd2blcGfRZ3tt-E/view?usp=drive_web 5- Gqrx changing demod 2.mp4 https://drive.google.com/file/d/13oTKnXHmN16ITZkiyTMMeNdeNn2Ip70z/view?usp=drive_web

Le sam. 26 déc. 2020 à 00:18, Franco Venturi notifications@github.com a écrit :

@nmaster2042 https://github.com/nmaster2042 - the reason why the RF_NOTCH and DAB_NOTCH sliders weren't displaying in gqrx is that I forgot to add them to the list of gain names. I just added them to the list of names returned by get_gain_names() (depending on the actual RSP model), and tested quickly here with gqrx to make sure I can see them.

I also updated the code in the master branch with these changes; when you have some time, please download it again, build it, run it, and let me know if thew now show up in gqrx for you.

Many thanks for your help testing this module! Franco

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fventuri/gr-osmosdr/issues/1#issuecomment-751298924, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFNR5KAUIIOOV2ETRHKJSOTSWUMULANCNFSM4TSBCXZA .

fventuri commented 3 years ago

@nmaster2042 - I tried toggling the 'Hardware AGC' button on and off in gqrx, and I see the exact behavior you mentioned, where when AGC is enabled the RF_NOTCH control gets disabled.

I then looked at the source code for gqrx, and I found the method DockInputCtl::on_agcButton_toggled() (https://github.com/csete/gqrx/blob/master/src/qtgui/dockinputctl.cpp#L453-L461). If you look there, every time the AGC button is checked/unchecked, that method is invoked, and it disables/enables all of the gain sliders (not just the IF gain, which is the only gain that is overridden by the AGC on the SDRplay RSPs), which means that 'RF_NOTCH' and 'DAB_NOTCH' get disabled too, since they are presented as gain controls to gqrx. If my understanding of the code is correct, you should be able to notice the same behavior switching to Jeff Long's gr-osmosdr module for the SDRplay API version 2, since he uses the same approach for what I can tell.

This afternoon I'll watch your videos about the demodulation problems; in the meanwhile, if you try Jeff Long's gr-osmosdr module for the old version of the SDRplay API, do you mind checking if those bad demodulation problems when you switch AGC and RF notch were present in that module too?

Franco

nmaster2042 commented 3 years ago

For the AGC and gains, it was the same behavour with the Jeff Long's gr-osmosdr fork.

For the demodulation issue, I remember in the past, using the Jeff Long's gr-osmosdr, I didn't have this issue.

But it was with older versions of gqrx (2.11.5 probably), gr-osmosdr, gnuradio (3.7 ?) and sdrplay API (2.13).

I will try to install sdrplay 2.13 API + Jeff Long gr-osmosdr and see if I can build a recent version of gqrx on top of it.

If it works I'll be able to test and let you know.

Le sam. 26 déc. 2020 à 18:43, Franco Venturi notifications@github.com a écrit :

@nmaster2042 https://github.com/nmaster2042 - I tried toggling the 'Hardware AGC' button on and off in gqrx, and I see the exact behavior you mentioned, where when AGC is enabled the RF_NOTCH control gets disabled.

I then looked at the source code for gqrx, and I found the method DockInputCtl::on_agcButton_toggled() ( https://github.com/csete/gqrx/blob/master/src/qtgui/dockinputctl.cpp#L453-L461). If you look there, every time the AGC button is checked/unchecked, that method is invoked, and it disables/enables all of the gain sliders (not just the IF gain, which is the only gain that is overridden by the AGC on the SDRplay RSPs), which means that 'RF_NOTCH' and 'DAB_NOTCH' get disabled too, since they are presented as gain controls to gqrx. If my understanding of the code is correct, you should be able to notice the same behavior switching to Jeff Long's gr-osmosdr module for the SDRplay API version 2, since he uses the same approach for what I can tell.

This afternoon I'll watch your videos about the demodulation problems; in the meanwhile, if you try Jeff Long's gr-osmosdr module for the old version of the SDRplay API, do you mind checking if those bad demodulation problems when you switch AGC and RF notch were present in that module too?

Franco

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fventuri/gr-osmosdr/issues/1#issuecomment-751378919, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFNR5KGBYZT26RELTCZC6CTSWYOFLANCNFSM4TSBCXZA .

fventuri commented 3 years ago

I had to help someone with the GNU Radio module gr-sdrplay3 (that runs only on on GNU Radio 3.9+), so this afternoon I had to uninstall GNU Radio 3.8 (from the Fedora distribution), and build and install GNU Radio 3.10 (from the GNU Radio github repo), and therefore I wasn't able to look into this issue.

Hopefully tomorrow morning I can switch back to GNU Radio 3.8 (the two versions have conflicting files, so I can't have both of them on my computer at the same time), and look into the demodulation problem.

Franco

nmaster2042 commented 3 years ago

Hi Franco,

I reinstalled API 2.13.1 + Jeff Long's gr-osmosdr on my system

I had warnings at build time but it compiled fine.

So I tried and there is no issue enabling and disabling rfnotch filter.

I made a small video so you can see.

Video here: https://drive.google.com/file/d/121Ak3jl0lICglYPMmsuLhcwaD51P8YaE/view?usp=sharing

fventuri commented 3 years ago

Thanks @nmaster2042 - I'll watch the videos and try to reproduce the problem here (once I am back on GNU Radio 3.8).

Franco