General SDR Information:
I use SDRPlay RSP1A's for 2m and CB (these are very good). I use Bas ON5HB's drivers which are optimised for use on Websdr.org
I use Nooelec RTL-SDR dongles for the other bands.
For HF an up-converter is needed as the rtl dongles only receive down to 25MHz themselves.
I use a Linux PC running Ubuntu 18.04. It then has 4 instances of RTL_TCP (this allows control of the SDR over the network) and 2 instances of rsp_tcp then another terminal for the WebSDR Web server software (dist11 ./websdr64) from PA3FWM (www.websdr.org)
SDR Configuration Guide
Setup of the WebSDR is done from a config file called 'websdr.cfg' in order to set the correct parameters such as start frequency, mode, sample rate (in this case 2048KHz to cover all of the desired band), RTL dongle input settings such as port number, and the IP address to listen for the SDR on. A separate entry for use with the up converter is called 'progfreq'. This needs to be set to the frequency of your upconverter plus the desired centre freq, so for a centre freq of 14100MHz, progfreq will be set to 139100. Here is an example band config (with and without upconverter):
NOTE: GAIN: THE HIGHER THE FIGURE THE MORE BLUE/PURPLE THE WATERFALL AND HIGHER THE S METER WILL READ (REMEMBER THERE IS A MINUS IN FRONT SO -40 IS LOWER THAN -30). THIS FIGURE IS IN DB AND CAN BE USED TO CALIBRATE THE S METER.
#EXAMPLE ENTRY WITHOUT UPCONVERTER:
device !rtlsdr 127.0.0.1:1234
# Center frequency in kHz:
initial 145500 FM
# A short description of the antenna, for listing on websdr.org:
antenna (2m) SDRPlay RSP1A and Colinear + MH Preamp, 18m AGL
#EXAMPLE ENTRY WITH AN UPCONVERTER:
device !rtlsdr 127.0.0.1:1235 5
initial 14100 usb
antenna Half size G5RV horizontal at 9m AGL, Yaesu FF50 low pass filter.
The default IP/port number if the dongle is plugged into the same PC as your software is 127.0.0.1:1234. You then need the RTL_TCP software on this PC in order for the webserver to talk to it. You'll use different terminal windows for each TCP server (1 per dongle) and a different one again for the Websdr server. I have 7 open! First start the individual TCP servers by typing 'rtl_tcp followed by device number, IP address and finally port number. e.g:
rtl_tcp -d0 -a 127.0.0.1 -p 1234. (There are spaces between each parameter).
Device number will change each time you restart the PC or unplug more than one dongle.
To adjust gain of the RTL_SDR dongle simply add the -g parameter to your start string (any parameters left out will default to auto settings):
rtl_tcp -d0 -a 127.0.0.1 -g 15 -p 1234
This will set the gain to 15db. You will need to experiment with figures for your station noise floor etc. This gain is changing the receive sensitivity of the dongle and is not related to the gain in the websdr.cfg file. If the waterfall colour is altered too much by the gain adjustment you can adjust it using the gain setting in the websdr cfg file mentioned above (which changes the colour of waterfall and s meter calibration).
If your PC is suffering with high CPU load, try changing the buffering settings of the dongle by adding these commands into your string:
rtl_tcp -d0 -a 127.0.0.1 -g 15 -b 3 -n 1000 -p 1234
For the next dongle, in a new terminal window, type the same but use a different port (1235, etc...). If these fail try going the other way (1233, 1232 etc).
Once you've started the tcp for each device and it has found your devices and is listening, in a new terminal window you need to now start the websdr server. Navigate to the correct folder (where your WebsSDR Dist11 software is located) using the CD command then type ./websdr64 to run it:
the service should start and it should say (there may be some warning at the bottom you can ignore):
planning FFT's for band 0...done
planning FFT's for band 1...done
planning FFT's for band 2...done
Writing frequency axis images
Server is now running.
Increasing USB buffer size
If you are running quite a lot of USB devices (say 5 or more) you may need to increase the usb buffer size in order to allow the SDR to work. In a terminal type:
sudo sh -c 'echo 128 > /sys/module/usbcore/parameters/usbfs_memory_mb'
enter your admin password at prompt.
Then to test your new value has been received (128mb in this case) type:
Router port forwarding
Your home router will need port forwarding to allow the WebSDR server to send and receive over the internet. The default port for this is 8901, so this needs forwarding to the IP address of your Websdr server PC on your local network. Only problem with this is if your server PC is set to DHCP, your router when rebooted will assign a different IP addresses each time if you've not set a static address, meaning you’d need to adjust the Websdr config file again. You can tell the router to reserve an IP for a particular PC (using its MAC address) as a workaround, or manually set a static address. Also If you don’t have a static WAN IP (i.e the one issued by your internet service provider (ISP), then your main WAN IP may change. This has never happened to me though.
Waterfall display labels
If you want to add labels to the waterfall display, create a text file called 'stationinfo.txt' and save it into the Websdr cfg folder. Within this text file simply write the frequency, mode and label of the frequency you want, e.g:
145500fm 2m Call
add each label to a new line.
I am constantly tweaking the settings to try and improve the system and add functionality, but feel free to let me know any ideas or tips.
Note: RTL-SDR’s have a small dynamic range, so stronger signals can break through into other frequencies in that band, this happens on my station unfortunately. This can be reduced by use of band filters or by experimenting with the gain settings as described above.
These are better receivers than the RTL dongles which include built in filters. They are more expensive but have much better RX performance. To get them working you need the RSP_TCP driver from Bas, ON5HB (available on git hub) which emulates as an RTL SDR to work with the Websdr.org software. and also the linux hw/API from sdrplay. Once installed allows some extra features such as Notch filters and AGC control which is useful for removing ghosting.
How to install RSP_TCP to a linux machine:
First update the linux package. In a terminal window type sudo apt-get update
Then go to the SDRPlay website downloads page and download the Linux 2.13 Hw/API. Once downloaded go back to terminal
cd to the folder you downloaded the file into (probably 'Downloads')
Once in the downloads folder:
sudo chmod +x ./SDRplay_RSP_API-Linux-2.13.1.run
This makes the file executable, Then to run the file:
Accept the licence agreement, it should then install.
go back to home directory:
Install necessary tools:
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install libusb-1.0-0-dev
If these already exist this will update them
Next we download and install the rsp_tcp.c from ON5HB's github:
git clone https://github.com/ON5HB/rsp_tcp
sudo make install
It should now be installed and ready to run. Simply connect your RSP1A then in a new terminal window to start it with default settings type:
The above command will adjust the RSP1A AGC settings automatically using Bas's driver settings, but if you aren't happy with performance and want to start it with different settings use the list below, for instance mine use this command:
rsp_tcp -W0 -l1 -p1236
This starts the server with a gain of 20 (default is 34 this is set because the AGC control was lowering the gain too much when a strong signal appeared anywhere in the band and causing signals to be lost), with a AGC loop bandwidth of 5Hz (Default is 50 Hz), on port 1236 (default is 1234 if left blank, this needs setting to correspond with your websdr.cfg file for each band). These settings need tweaking for your own SDR.
Full list of startup options here (Bas's latest driver):
-a Listen address (default: 127.0.0.1)
-p Listen port (default: 1234)
-d RSP device to use (default: 1, first found)
-P Antenna Port select (0/1/2, default: 0, Port A)
-r Gain reduction (default: 40 / values 20-59) - Not set in websdr.cfg see tips
-l LNA attenuator level about -6dB each step (default: 0 / values 0-9) - See tips below
-T Bias-T enable* (default: disabled)
-f Frequency to tune center in Hertz (default: 1000000 = 1MHz) - If freq set centerfreq and progfreq are ignored! - Normally set in websdr.cfg
-s Samplerate in samples-per-second (default: 2048000) - If sample rate is set it will be ignored from client! - Normally set in websdr.cfg
-W Wideband-pass-filter mode (default: 2 / values: 0 small (trims off each edge of the band) / 1 wide (full sample rate width) / 2 = optimised)
-D DAB band-reject-filter* (default: enabled)
-B MW band-reject-filter* (default: enabled)
-R Refclk output* (default: disabled)
-E Edge-steep-filter enable* (default: disabled) - Beware CPU load could go high!
-A Auto Gain Control setpoint (default: -30 / values -1 to -69 / other disabled)
-G Auto Gain Control speed in Hz (default: 100 / values 0/5/50/100) - Sets overloading adjustment-speed
-n Max number of linked list buffers to keep (default: 512)
-v Verbose output (debug) enable* (default: disabled)
* Marked options are switches they toggle on/off
Tip1 - start with -l 0 level correction first, if too much signal try -l 1, -l 2 etc, most simple way start receiving correctly
Tip2 - websdr.cfg gain setting is cosmetic only, it does not impact the receivers performance!
Tip3 - if you have ghost-signals, set wideband-pass to small as it's probably too wide, mostly happens on HF!
-a listen address
-p listen port (default: 1234)
-f frequency to tune to [Hz]
-g gain (default: 0 for auto)
-s samplerate in Hz (default: 2048000 Hz)
-b number of buffers (default: 32, set by library)
-n max number of linked list buffers to keep (default: 500)
-d device_index (default: 0)
I hope this helps others to get set up. Its taken me lots of time and effort to get it working. Many thanks to Bas, ON5HB for his help and excellent work with this driver which is optimised for use in websdr.org.
Please feel free to donate if you would like to help improve this Websdr service which is a free service available for anyone to use. Happy listening!