dernasherbrezon / sdr-server Goto Github PK
View Code? Open in Web Editor NEWHigh performant TCP server for rtl-sdr
License: GNU General Public License v2.0
High performant TCP server for rtl-sdr
License: GNU General Public License v2.0
Greetings,
I would LOVE if I could take this SDR-server over to Pluto's, HackRF's, BladeRF's, and more. And especially so, since these SDR's can generate a much wider waveform and would greatly benefit to splitting them up and processing remotely.
On a updated debian/buster i get:
[ 67%] Linking C executable sdr_server
/usr/bin/ld: libsdr_serverLib.a(core.c.o): in function start_rtlsdr': core.c:(.text+0x54c): undefined reference to
rtlsdr_set_bias_tee'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/sdr_server.dir/build.make:89: sdr_server] Error 1
make[1]: *** [CMakeFiles/Makefile2:258: CMakeFiles/sdr_server.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Old rtl-lib? minimum version to run?
apt-cache show librtlsdr-dev | grep Version
Version: 0.6-1
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.
Hello,
Could you please provide some information about sdr-server's clients? How to connect to the sdr-server?
I tried CubicSDR and GQRX on macOS but there is no connection to the sdr-server.
Thanks,
Alex
Is the sdr-server not compatible with SDR Console via rtl_tcp ??
Getting
<3>[0] unsupported protocol: 8
If using only rtl_tcp SDR Console is running fine
Best Tim
Hello.
But what client do I need/can I use?
Just comment. Maybe add instructions of how install libvolk2 since it's not included yet.
Fetch latest release:
https://www.libvolk.org/releases.html
Install mako:
sudo apt-get install python3-mako
Normal build procedure:
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make test
$ sudo make install
Hi
I just wanted to try this out and was just mucking around. I noticed that the check
package is noted optional as currently mentioned in the readme, but cmake requires it when configuring -- so I just installed it and I built it all successfully.
Because I installed check
I just tried to run the test binaries, but test_core
segfaults for me:
nickoe@z620 build]$ ./test_core
Running suite(s): core
loading configuration from: core.config
bias-t: 0
gain mode: 1
gain: 4.200000
ppm: 10
queue_size: 64
band sampling rate: 48000
buffer size: 131072
lpf_cutoff_rate: 24
start listening on 127.0.0.1:8089
read timeout 5s
base path for storing results: /tmp
using gzip: 0
rtl-sdr is starting
the actual nearest supported gain is: 4.300000
[0] dsp_worker is starting
[1] dsp_worker is starting
[1] dsp_worker is stopping
[1] dsp_worker stopped
rtl-sdr is stopping
rtl-sdr stopped
[0] dsp_worker is stopping
[0] dsp_worker stopped
checking: /tmp/0.cf32
checking: /tmp/1.cf32
loading configuration from: core.config
bias-t: 0
gain mode: 1
gain: 4.200000
ppm: 10
queue_size: 64
band sampling rate: 48000
buffer size: 131072
lpf_cutoff_rate: 24
start listening on 127.0.0.1:8089
read timeout 5s
base path for storing results: /tmp
using gzip: 0
<3>cutoff frequency should be positive and less than sampling freq / 2. got: 24500
[0] dsp_worker is stopping
Segmentation fault (core dumped)
[nickoe@z620 build]$ coredumpctl gdb
<<<snip>>>
Core was generated by `./test_core'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f3712f67662 in __pthread_clockjoin_ex () from /usr/lib/libpthread.so.0
(gdb) bt
#0 0x00007f3712f67662 in __pthread_clockjoin_ex () from /usr/lib/libpthread.so.0
#1 0x00005644077aa04b in destroy_node ()
#2 0x00005644077aa1f2 in add_client ()
#3 0x00005644077ab891 in test_invalid_lpf_config_fn ()
#4 0x00007f3713460b82 in ?? () from /usr/lib/libcheck.so.0
#5 0x00007f37134611a2 in srunner_run_tagged () from /usr/lib/libcheck.so.0
#6 0x00005644077ac48d in main ()
quit)
[nickoe@z620 build]$ git describe --tags
1.0.0-68-gb9cf76f
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.