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

Multi-User Behaviour Questions #1

Closed
darksidelemm opened this issue Feb 6, 2021 · 5 comments
Closed

Multi-User Behaviour Questions #1

darksidelemm opened this issue Feb 6, 2021 · 5 comments

Comments

@darksidelemm
Copy link

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.

@dernasherbrezon
Copy link
Owner

dernasherbrezon commented Feb 6, 2021

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:

  1. There should be available bandwidth. Let assume sdr-server listens 1msps bandwidth and have 2 clients requested opposite ends of this bandwidth. When third client connects and requests center freq outside of this bandwidth, sdr-server can extend the band_sampling_freq. In theory. On practice the system will become unpredictable, because 2msps can severely affect performance. And the first 2 clients might start seeing spontaneous drops of data.
  2. In the example above with 3 clients, the first 2 clients have to change center freq in their filters. I.e. re-create filters and continue to listen the data. This is just hard to implement :(

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?

@darksidelemm
Copy link
Author

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.

@dernasherbrezon
Copy link
Owner

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.

@darksidelemm
Copy link
Author

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.

@darksidelemm
Copy link
Author

Anyway, I think you've answered my questions, thanks :-)

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

2 participants