ast / SoapyAirspyHF

SoapySDR plugin to support the Airspy HF+
https://github.com/pothosware/SoapyAirspyHF/wiki
MIT License
5 stars 1 forks source link

SoapySDR readstream issues with CubicSDR, SigDigger, GQRX #2

Open alphafox02 opened 1 year ago

alphafox02 commented 1 year ago

Finally getting around to testing this. I pulled up the repo provided CubicSDR in 22.04 and observed loading the AirspyHF via terminal. Upon selecting the Airspy HF+, this is observed over and over again in terminal.

SDRThread::readStream(): 2. SoapySDR read failed with code: -5
SDRThread::readStream(): 3.1 iqDataOutQueue output queue is full, discard processing of the batch...Segmentation fault (core dumped)

in GQRX (3.10.4/v2.15.9) this was only observed after clicking start, but everything continued to work

[DEBUG] activateStream: flags=0, timeNs=0, numElems=0 [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback.

This was observed in SigDigger and would not allow the SDR to work

[INFO] setupStream: format=CF32 [DEBUG] activateStream: flags=0, timeNs=0, numElems=0 [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] readStream: timeout waiting for callback. [ERROR] rx_callback: timeout waiting for buffer.

All three applications were using Soapy. Hope this helps.

alphafox02 commented 1 year ago

Rolled back to standard SoapyAirspyHF and issues go away. Just wanted to make sure it wasn't something else going on.

ast commented 1 year ago

This problem was because of the same reason as #1.

I think the latest commit (bd49b7b330bf3fb3ed0d6d33b37b6f266a5952ab) fixes this.

alphafox02 commented 1 year ago

Hello, just checked real quick by doing a sudo make uninstall. Git pull, blew away build folder and rebuilt/installed.

Observed that GQRX issue above is gone except just one line that says [DEBUG] readStream: ringbuffer read timeout

However, for CubicSDR I get this over and over

SDRThread::readStream(): 2. SoapySDR read failed with code: -5
SDRThread::readStream(): 3.1 iqDataOutQueue output queue is full, discard processing of the batch...

Until I hit Ctrl-C and it ends like this

Terminating SDR thread..
SDRThread::readStream(): 2. SoapySDR read failed with code: -5
SDRThread::readStream(): 3.1 iqDataOutQueue output queue is full, discard processing of the batch...
readLoop() ended.
[DEBUG] deactivateStream: flags=0, timeNs=0
[INFO] SoapyAirspyHF::rx_callback: ringbuffer write timeout
device deinit()
SDR thread done.
Terminating SDR post-processing thread..
Terminating All Demodulators..
Garbage collected demodulator instance '100.009'... 
Terminating Visual Processor threads..
Application termination complete.

SigDigger results in about the same I believe


[DEBUG] AirSpyHF Lib v1.6 rev 8
[DEBUG] 1 AirSpy boards found.
[DEBUG] Serial xxxxxxxxxxxxx
[DEBUG] Found device by serial xxxxxxxxxxx
[INFO] Serial number: xxxxxxxxxxxxxxxx
[DEBUG] setFrequency(1, 0, RF, 7000000.000000)
[INFO] set hf att 0
[DEBUG] setAntenna(1, 0, RX) not supported.
[INFO] set hf att 0
[DEBUG] setFrequency(1, 0, RF, 260000000.000000)
[ERROR] airspyhf_set_samplerate() failed: -1
[INFO] setupStream: format=CF32
[DEBUG] activateStream: flags=0, timeNs=0, numElems=0
[INFO] setGainMode(1, 0, 0)
[INFO] SoapyAirspyHF::rx_callback: ringbuffer write timeout
[INFO] SoapyAirspyHF::rx_callback: ringbuffer write timeout
[INFO] SoapyAirspyHF::rx_callback: ringbuffer write timeout
[DEBUG] deactivateStream: flags=0, timeNs=0
[INFO] SoapyAirspyHF::rx_callback: ringbuffer write timeout
alphafox02 commented 1 year ago

Just ran SoapySDRServer without issues. Pulled up CubicSDR and SigDigger and connected to the remote instance of AirspyHF.

Usage via SoapySDRServer appears fine, issues are just when connecting directly.

ast commented 1 year ago

Thanks for testing.

Frankly I suspect these could be bugs in Cubic and SigDigger. I will build both and test, and attempt a fix!

alphafox02 commented 1 year ago

No problem, I’ll see what else I can find and test that uses soapy. Probably start with dumpHFDL.

alphafox02 commented 1 year ago

I couldn't resist running back to check. Here's with DumpHFDL

dumphfdl --soapysdr driver=airspyhf --sample-rate 912000 8834 8885 8894 8912 8927 8939 8942 8948 8957 8977 dumphfdl 1.3.0 (libacars 2.1.4) driver=airspyhf: computed center frequency: 8905.500 kHz [INFO] [UHD] linux; GNU C++ version 11.2.0; Boost_107400; UHD_4.1.0.5-3 Found device #0: driver = airspyhf label = AirSpy HF+ [xxxxxxxxxxx] serial = xxxxxxxxxxxxx [INFO] Serial number: xxxxxxxxxxxxxxxx [DEBUG] setFrequency(1, 0, RF, 7000000.000000) [INFO] set hf att 0 [DEBUG] setFrequency(1, 0, RF, 8905500.000000) driver=airspyhf: center frequency set to 8905.500 kHz driver=airspyhf: frequency correction set to 0.00 ppm [INFO] setGainMode(1, 0, 1) driver=airspyhf: auto gain enabled driver=airspyhf: using antenna RX driver=airspyhf: using native sample format CF32 (full_scale: 1.000) [INFO] setupStream: format=CF32 [DEBUG] activateStream: flags=0, timeNs=0, numElems=0 [DEBUG] readStream: ringbuffer read timeout SoapySDR device 'driver=airspyhf': readStream failed: TIMEOUT

ast commented 1 year ago

Thanks a lot for the sponsor! (it will go to Ukraine).

And thanks for this issue. I'm sorry I missed it! There have been a lot of updates since it was posted so if you're able please try again.

alphafox02 commented 1 year ago

No problem! I’ll send more.

I double checked just now with the very latest against Cubicsdr and SigDigger. The ring buffer timeout w/ SigDigger and the Soapysdr read failed w/ code 5 on Cubic remains. Same as above.