Closed darksidelemm closed 3 years ago
Is there any way for a connected client to know the current receiver centre frequency?
Unfortunately not. I assumed all client connections are coming from the same application. This can be improved if needed.
will an error be reported if the requested downconversion frequency is outside of the available bandwidth?
It will be reported.
could the server perhaps re-adjust the centre frequency of the SDR to accomodate a new user requesting a frequency just outside of the currently available bandwidth?
This is a tricky thing:
this could fairly easily be implemented using another utility to capture a few seconds of full-bandwidth IQ data and perform a FFT
I'm wondering if it is possible to tune sdr-server to radiosonde frequency range. (Btw how wide it is?) And then having multiple clients listening to well-known signal frequencies. Do you need to correct doppler shift?
The issue is the radiosonde frequency range varies from country to country. Here in Australia it's 400-403 MHz. In Europe it's 400-406 MHz. For full coverage you are going to need multiple RTLSDRs no matter what.
radiosonde are not going fast enough to require doppler compensation. We're talking about things that might go at most a few hundred km per hour, not km per second.
Unfortunately not all stations use consistent radiosonde transmit frequencies. Here in Adelaide, South Australia, frequencies would change almost randomly from launch-to-launch. radiosonde_auto_rx was written to deal with this, by performing a band scan, then on each found peak (based on a threshold), run a detection algorithm over the signal to look for particular headers, which can be used to determine a) if the signal is a radiosonde, and b) what model it is. The appropriate decoder is then started.
To do this same approach with sdr_server, i'd probably need to run multiple instances, covering the frequency range required with some overlap (perhaps. 400-402, 401-403 MHz). I would then have to connect to both servers, request wideband IQ to do the band scan part, then select the appropriate server to use for the detection and decoding steps. The detection and decoding stages use IQ input (either 48 or 96 kHz), so that's already supported.
covering the frequency range required with some overlap (perhaps. 400-402, 401-403 MHz
I guess you will still have to have 2 sticks ( and another one for wideband peak detection) to get the maximum coverage. sdr-server can help with receiving multiple sondes within the same band.
I doubt the extra one will be needed (for wideband peak detection). I can just connect a client requesting the full bandwidth IQ for a few seconds and get the data that can be FFT'd to do that.
Anyway, I think you've answered my questions, thanks :-)
In your documentation you mention: "first connected client can select the center of the band. All other clients should request center_freq within the currently selected band"
Is there any way for a connected client to know the current receiver centre frequency? Or will an error be reported if the requested downconversion frequency is outside of the available bandwidth?
As an addendum to this - could the server perhaps re-adjust the centre frequency of the SDR to accomodate a new user requesting a frequency just outside of the currently available bandwidth? This would of course result in glitch in the IQ output of other users as the SDR is re-tuned, but that's unavoidable.
My application for this server is in the radiosonde_auto_rx project, where at the moment to receive multiple radiosondes I need multiple RTLSDRs, as I'm just using rtl_fm to do the downconversion (and in some cases, FM demodulation, though mostly I use 48 / 96 kHz IQ). I also make use of rtl_power to grab a spectrum snapshot for peak detection, but this could fairly easily be implemented using another utility to capture a few seconds of full-bandwidth IQ data and perform a FFT.