Comments (8)
I've written a module for FUNcube Dongle Pro Plus:
https://github.com/ast/SoapyFCDPP/
Primarily for remote operation via a Raspberry Pi 3.
Hey thats great. That liberates FCD from a lot of dependencies. Let me know if you want to host it here and make it official.
Also, I see you wrapped libalsa? Have you considered opening/wrapping SoapyAudio for the streaming support. That might simplify things, or make porting easier on other systems. Depending upon how portable the libhid stuff is.
I'm facing a problem where I experience lag in the sample stream whenever I change center frequency or some other hardware property of the FCDpp. The FCDpp is controlled via HID messages using libhidapi and is not super quick. I get the feeling the setFrequency etc is called from the same thread as the sample streaming thread, or there is some locking involved.
At least with SoapyRemote, the settings will end up being in a different thread than the readStream. I dont know if thats an issue for FCD (probably not since its separate libhidapi for settings and libalsa for streaming). Does your application use separate threads as well?
Several of the SDR wrappers actually flush the rx samples when the setting is applied just to make the plotting more responsive. Which seems ok to me since the samples are basically undefined during centre frequency changes.
from soapyremote.
Hey thats great. That liberates FCD from a lot of dependencies. Let me know if you want to host it
here and make it official.
Thanks! I'm definitely up for hosting it somewhere more official! Might need some more polishing though. I will look into SoapyAudio. Original goal was to have as few dependencies as possible. libhidapi is fairly portable, I think, at least I've used it on macOS and Linux.
At least with SoapyRemote, the settings will end up being in a different thread than the readStream. I > dont know if thats an issue for FCD (probably not since its separate libhidapi for settings and libalsa > for streaming). Does your application use separate threads as well?
Ok that's great. I've only used GQRX for testing (soapy=0,remote=hostname.local:1234
). GQRX seems to do threading right. At least I've never had a problem when using my FCDpp locally... I'm not using any threading in my Device subclass.
If I comment out the call that actually sends the HID message I don't get any lag so I'm starting to suspect there might be some congestion on the USB bus, which is a bit depressing...
Will look more into it and report!
from soapyremote.
Ok so I had some more time to look into this and I've tracked it down to what I think was a GUI bug i GQRX (GUI hang while waiting for getFrequency). After I pulled the latest GQRX it's much less noticeable. I guess they fixed something but I haven't tracked down the exact change. Sorry for trying to blame SoapySDR :-)
It's working very well now streaming 192kHz from a RBpi 3b.
from soapyremote.
Thanks! I'm definitely up for hosting it somewhere more official! Might need some more polishing though. I will look into SoapyAudio. Original goal was to have as few dependencies as possible. libhidapi is fairly portable, I think, at least I've used it on macOS and Linux.
When you feel like it, transfer the repo to my user guruofquality, and then I can move it to the oranization github.com/pothosware/. Dont feel-like anything needs to be 100% complete :-) I gave you repo access so you can read/write like a normal repo.
Otherwise thanks for investigating, closing the issue!
from soapyremote.
Ok I will do that!
On a side note, we are building a new open source Raspberry Pi "hat" SDR (larger than a normal hat). It's an FPGA based digital/analog hybrid approach TRX with 24bit ADC/DAC, 96kHz bandwidth. Aiming for SoapySDR to be it's "native" platform. More to come :-)
from soapyremote.
from soapyremote.
No website yet but we will put one up very soon. Will also create a mailing list. This is a project I'm developing together with Daniel, SM6VFZ.
Some initial notes on his first version:
https://sm6vfz.wordpress.com/dspsdr-with-fpga/
Was also covered in Elektor magazine in a 3 part series:
https://www.elektormagazine.com/magazine/elektor-201707/40506
Here's a render of the new board, work in progress. Board size is "Eurocard". The board will also power the Pi (or Pi zero). We are aiming for very high dynamic range both in ADC and RF chain. The board also has an audio codec so you can connect a speaker directly to it.
from soapyremote.
@guruofquality I made some small tweaks and it's working very well now. Have only tested via a Raspberry Pi 3 over SoapyRemote. There are still some TODOs in the code but nothing serious. What I haven't resolved however is discovery of multiple devices. Maybe someone else can have a go at this.
I have transferred the repo to you and I hope others will benefit from it!
from soapyremote.
Related Issues (20)
- SSDP: periodic message handling broken HOT 3
- Installation docs reference old package name HOT 1
- SoapyRemote only works on localhost HOT 7
- Remote RTL-SDR Direct Sampling? HOT 5
- Crash of Cubic/Ubuntu and not able to use from SdrAngel/Win10? HOT 12
- Crash on failure to create avahi client or poller HOT 3
- Crash after connect HOT 6
- Tips for wifi ? HOT 2
- Crash with more than 31 network interfaces HOT 2
- apt-get Errors were encountered while processing: soapysdr-server HOT 1
- REQ: SoapySDRServer for Android.
- CubicSDR can connect but cannot listen. HOT 4
- Timeout on OpenWebRX HOT 2
- Transmission timeouts
- Can't connect to SoapyRemote
- setupStream() arguments HOT 1
- Use of remote:prot=tcp on resource constrained devices HOT 4
- SoapyRPCUnpacker::recv(header) FAIL on Raspberry PI OS 64bit
- FR: Option to disable mDNS HOT 2
- Match SoapySDR platform support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from soapyremote.