Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request - AirSpy Support #7

Closed
N6RFM opened this issue Feb 21, 2018 · 30 comments
Closed

Feature Request - AirSpy Support #7

N6RFM opened this issue Feb 21, 2018 · 30 comments

Comments

@N6RFM
Copy link

N6RFM commented Feb 21, 2018

Great job and thanks for developing PicTalk.

Please consider adding support for the AirSpy SDR.

Merci,

Bob
N6RFM

@K4KDR
Copy link
Contributor

K4KDR commented Feb 22, 2018

It is also worth noting that the Airspy is a superior receiver compared to a standard RTL-SDR. So, the potential increase in telemetry volume is an incentive for the addition of Airspy products when programming time permits it. Linux libraries are available for the Airspy as it's commonly used in GNU Radio and other custom-built linux applications.

@f4gkr
Copy link
Owner

f4gkr commented Feb 22, 2018 via email

@f4gkr
Copy link
Owner

f4gkr commented Feb 23, 2018

Implemented at home with a last issue underwork : the frame rate required by the python decoder is 38400 samples / secs, which is not an integer ratio from 10 MSPS given by the AirSpy. Closest integer ratio is 260 and gives 10 000 000 / 260 = 38461,53... Hz . Should be within the correction range of the "autodoppler compensation", but needs to check

@f4gkr
Copy link
Owner

f4gkr commented Feb 23, 2018

According to Sylverstre from Picsat this should be okay, processed as a "Doppler bias"
Will commit for test

@N6RFM
Copy link
Author

N6RFM commented Feb 23, 2018

Hi Sylvain,

Not sure if helpful but several points to consider -

  • the airspy libraries accept sample rates of both 2.5M and 10M.
  • using a 10K sampling rate tends to be more processor intensive, so unless a wide very wide reception band (10M) is desired, then the less wide 2.5M may be preferred to reduce CPU load.
  • in the GNURadio world, to avoid fractional ratios, there is a function called rational resaampling which combines interpolation and decimation.

In this case (2,500,000 x 48)/3125 would give 38400. Or (10,000,000x12)/3125

Maybe such an approach can be applied here if useful?

Best,

Bob

@f4gkr
Copy link
Owner

f4gkr commented Feb 23, 2018 via email

@N6RFM
Copy link
Author

N6RFM commented Feb 23, 2018

Thanks Sylvain for the explanation. I look forward to trying it.
B.

@N6RFM
Copy link
Author

N6RFM commented Feb 23, 2018

Just tried with Airspy - runs fine but at elevated processor load. On my system, CPU use goes from 3% (RTL-SDR) to 44% (AirSpy). As a possible user choice in future releses, maybe the option to use 2.5 instead of 10MHz sampling rate, if 10MHz is selected by current default? Merci.
screenshot at 2018-02-23 15-16-55

@f4gkr
Copy link
Owner

f4gkr commented Feb 23, 2018 via email

@N6RFM
Copy link
Author

N6RFM commented Feb 24, 2018

Trying Airspy SDR. First test of newly complied version with experimental AirSpy support. 41% processor use. No decodes. It appeared that the most of the pass was in "continuous" mode. Noticed that "Received Frame" counter at bottom of window hung up but waterfall keeps working. Restarted program at end of pass when packets reverted to about 10 seconds apart. Still same behavior. Again hung received frames window.
screenshot at 2018-02-23 20-41-18

@f4gkr
Copy link
Owner

f4gkr commented Feb 24, 2018 via email

@K4KDR
Copy link
Contributor

K4KDR commented Feb 24, 2018

We very much appreciate and look forward to the integration with Airspy. I was not able to test it because of system load... at the 10m sample rate, my computer was monopolized and there were no remaining resources to run normally. That is the main reason that the 2.5m sample rate option is so desirable.

Thank you!

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018

I tried with new AirSpy library, even with SSE2 on, does not change much... Still 67.90% of processing time spent in the converter.
I will commit for your appreciation

@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

Hi Sylvain,

Thanks for the follow-up on this. I will try it!

FYI, when I used the RTL-SDR for an earlier pass today, the % CPU usage was 31%. So, will be interesting to compare.

73,

Bob

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

Good ideas, but agree using only 3 bytes unlikely to offer much improvement.
As for console only, yes that might be useful. One thing to note is the signal fading which can be resolved by changing RX antenna polarization from vertical to horizontal (or visca versa). What's important, is knowing when to do this. At the moment, the waterfall shows when the signal is fading and prompts the user to try different polarization. But, the beauty of PicTalk is that the user does not even have to see the waterfall for tuning purposes! It's enough to see the "received frame versus correlation" plot at the bottom of the screen. So, maybe a way to turn off the waterfall? Or for a console based version allow for some information (such correlation level) to be printed in real time. That way the user has an idea when switching polarity is worth a try.

Thanks!

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

very nice

@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

OK - I see that some revisions have been made. Merci
++ AirSpy sample rate changed to 'lowest' instead of 'highest'. For example 2.5 MHz for the "AirSpy one"
++ AirSpy start/stop bug fixed

Some quick tests only since the satellite will not pass overhead again until later today.

Previous version (10 Mhz Airspy)
PicTalk started - no decodes (Theshold = 40) CPU (quad core) ~ 41% load
changing Threshold to zero, average CPU load to 68% and higher, GUI hangs as previously noted but console keeps running trying to process the pile up of data. Screen shot below shows effects on CPU when Threshold is changes from 40 (left side of picture) to zero (right side).

screenshot at 2018-02-25 11-54-57

Current version (2.5Mhz Airspy)
PicTalk started - no decodes (Theshold = 40) CPU (quad core) ~ 20% load
changing Threshold to zero, average CPU load to 41% on average, GUI OK. Screen shot below shows effects on CPU when Threshold is changes from 40 (left side of picture) to zero (right side).
screenshot at 2018-02-25 12-03-00

So, changing from 10 to 2.5 MHz really changes the CPU load and distribution. For the new version, only one core seems to be pushed to the limit and the is switched out for another.
Also, with the Threshold at zero, I let the decoder run for several hundred frame searches, and the system no longer hangs.

@N6RFM N6RFM closed this as completed Feb 25, 2018
@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

So thanks Sylvain!!!

I look forward to trying the updated version later today with real data input.

BTW, you might want to update the version number on the "splash" screen from v1.0 24/01/18 to something different. :-)

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@K4KDR
Copy link
Contributor

K4KDR commented Feb 25, 2018

Should the updated .pro file cause a change in the compile, or at runtime? I got the following when trying to re-compile:

k4kdr@:~/PicTalk$ git pull -v
POST git-upload-pack (452 bytes)
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/f4gkr/PicTalk
   2a4727c..9b5cb7a  master     -> origin/master
Updating 2a4727c..9b5cb7a
Fast-forward
 pictalk.pro | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
k4kdr@:~/PicTalk$ qmake
k4kdr@:~/PicTalk$ make
make: Nothing to be done for 'first'.

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@K4KDR
Copy link
Contributor

K4KDR commented Feb 25, 2018

Ah, thank you so much! I am not a programmer so was not familiar with "make clean"... many of us just follow build / install instructions to the letter. Appreciate all your help!

@f4gkr
Copy link
Owner

f4gkr commented Feb 25, 2018 via email

@N6RFM
Copy link
Author

N6RFM commented Feb 25, 2018

Excellent - Many thanks Sylvain!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants