Multi-User web SDR for exposing SoapySDR's
apt-get update
apt-get install libasound2-dev libfftw3-dev libgd3 libgd-dev \\
apache2 sndfile-tools libsndfile1-dev php librtlsdr-dev
make
- copy the files from html folder in your webserver html directory
- start the software ./playSDReshail2
- open a browser and open the webpage "playSDRweb.html" on your webserver
ATTENTION: before you can run this website, the WebSocket IP address must be modified in the file playSDRweb.html Search for the line: var sockurl = .... and enter the IP address of the PC running this software.
in your internet router you need to open two TCP ports for external access:
- the port to your webserver (usually 80)
- the port to the websocket: 8090 (can be changed in playSDReshail2.h)
The SDRplay runs with a sample rate of 2.4Ms/s and is decimated by 4 by its driver. An RTLsdr runs with 1.2MS/s and is decimated by 2 in the software. The resulting stream has 600 kS/s and is first processed by an FFT every 100ms which gives a resolution of 0-300kHz with 10 Hz/pixel.
There are 30.000 pixels available which are converted into two waterfall diagrams. The first with a range of 300kHz to show the complete NB transponder. The second with a range of 20 kHz to show the signals around the actual listening frequency.
The the 600 kS/s stream is fed into a software down-mixer. The LO (reference frequency) is generated by a NCO software which works very similar to the well knows DDS. The mixing itself is done by a simple multiplication followed by an anti-aliasing filter. This mixer shifts the listening frequency into the base band (0 Hz) so it can be directly used to generate the sample for the sound card (after an additional low pass filter).
The waterfall lines as well as the audio samples are sent via a WebSocket (port 8090) to the web browser. The web page uses javascript to build the waterfall picture and send the audio samples to the local soundcard.