SDR project for Pluto, SDRplay, RTLsdr for Linux

  • Hi, we (DARC club U02) just started to convert an short-wave Web-SDR software (for Linux only)

    for es'hail-2.

    The original software was written by myself last year and is available at github. Now we

    heavily modified it to have a software perfectly matched to es'hail-2

    It is written for the SDRplay hardware but also running with RTLsdr-sticks and compatibles.

    The automatic beacon-lock however works only with the SDRplay because the frequency resolution of the RTLsdr is not fine enough.

    It is a "Web" SDR in the sense that it uses a Webserver and the browser as GUI, but its not a multi-user system. All stations logged in will hear the same audio.

    If some of you Linux guys are interested to play with it, it is available at github:

    It is still "work in progress", but the U02-group and myself will do our best to upload only working versions.

    The idea behind this project is to make the receiver available in the web, so I can listen to my own station even if I am travelling.

    vy 73

    [Blocked Image:]

  • @Kurt,

    on SuSE 42.3 make complains:


    cc -g -o playSDReshail2 playSDReshail2.o sdrplay.o fir_table_calc.o wf_univ.o color.o websocket/websocketserver.o websocket/ws_callbacks.o websocket/base64.o websocket/sha1.o websocket/ws.o websocket/handshake.o audio.o setqrg.o rtlsdr.o timing.o fifo.o ssbfft.o audio_bandpass.o hilbert90.o downmixer.o antialiasing.o -lpthread -lm -lmirsdrapi-rsp -lfftw3 -lsndfile -lasound -lgd -lz -ljpeg -lfreetype -lrtlsdr

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.o: in function `drawWFimage':

    wf_univ.c:(.text+0x28c): undefined reference to `gdImageFile'

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.o: in function `drawWF':

    wf_univ.c:(.text+0x59a): undefined reference to `gdImageCreateFromFile'

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.c:(.text+0x626): undefined reference to `gdImageFile'

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.c:(.text+0x63c): undefined reference to `gdImageCreateFromFile'

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.c:(.text+0x655): undefined reference to `gdImageFile'

    /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: wf_univ.c:(.text+0x895): undefined reference to `gdImageFile'

    collect2: error: ld returned 1 exit status

    Makefile:14: recipe for target 'playSDReshail2' failed

    make: *** [playSDReshail2] Error 1

    73 de Achim

  • I am now active on the satellite using the AMSAT converter boards and an Icom Transceiver, but the SDR still runs in parallel to show the waterfall display.

    Therefore I have extended this software with a synchronisation between the Icom and the SDR waterfall (ttyUSB0 is used by default, make sure that the user has access right to the dialout group, which is required for the USB/serialPort).

    A mouse click into the waterfall sets the Icom to this frequency and also the waterfall will follow if the frequency knob on the Icom is rotated.

    Only for the linux guys. I have it running on an Odroid-XU4. A Raspberry is probably too slow, at least if it also runs the browser.

    The program is pre-configured for the frequencies used by the AMSAT converter boards.

  • triggered by the current discussion about the max. uplink power, I have extended this Web SDR with a beacon level monitor.

    It measures the maximum level of the beacons and displays its value as a red line.

    The measurement is taken over >1min, so the maximum value is still valid if the beacon sends CW.

    Its a nice tool to check if the own (and others) transmission is in the limits of the QO-100 rules. Additionally it can be used to measure the bandwidth of a signal in the lower HiRes waterfall.

    this program is now combined with the WB Transponder monitor into one software, selectable by the build file.

    The github link is:

    73 de Kurt

  • tnx to all, lot of downloads and also some forks on github.
    I'm glad that this project is of interest for many people.

    Again a new and nice feature:

    Like a spectrum analyser it now has a "peak hold" function which allows to monitor the peak signals of the NB transponder over a longer time. I.e. watch the peak power over a couple of hours.

    Download as usual:

    73 de Kurt

  • Hi Kurt,

    Just installed your software on a old Sony laptop

    Running on Linux Lite 4.6 (my favorite flavour).

    Working well in Firefox local , but only on the real ip adres , not on the well know or localhost.

    I.e. the soft is running but you can't pick a QRG with the mouse .

    A second problem for me is that the second waterfall is not visible , it 's falling off the screen.

    Any chance in the future for CAT with other TRX then icom ?

    Good job Kurt.

    73 Luc on4aol

  • hello kurt,

    a very nice program. Have the software on a Odroit N2

    to run. Works ufb. An SDRplay will be added soon.

    Kurt may add the CAT control for YAESU devices.

    73 de Rudi

  • Hello,

    have some trouble with the software. Neither Chromium nor Firefox nor slimjet on linux can change the rx-qrg by clicking on a signal or with the mousewheel. Only Microsoft Edge on a win10 PC seems to work. At least in local network. Asked a friend to try over the internet with his windows pc. He used Firefox, Chrome and Edge, but could not change rx-qrg either. Any hints?

    73, Martin

  • dm4im

    I had the same problem ! If you open your browser on the same pc where the soft of Kurt is running , then you need to use your ip address of your computer (e.g. and not using localhost or

    If you connect from a other pc , be sure your linux firewall is open for port 80 , 8090 and 8091

    You can do this with follow commando in linux

    sudo ufw allow 80 and so on for the other two portnumbers.

    Reboot the linux pc

    PS , i am running Firefox

    Hope this helps :)

    73 Luc on4aol

  • there are a few limitations for internet access, which can be removed from the software, if needed.

    I am usually using this SDR synchronized to my Icom transceiver. Therefore I have disabled some features if a user is not in the local network.

    Also I have limited the number of simultaneous users from the same IP to "1" because some funny people flooded my WebSDR with hundreds of requests.

    If you want, you can remove these limitations:

    file: ws_callback.c, function: onmessage(..)

    In the beginning of this function you see the check for "192.168". You can remove this if clause and the internet access it fully opened for everybody.

    the second limitation is in the same file, function: check_address

    It limits the access per IP to one. To remove this limitation make a "return 0" at the beginning of this function.

    vy 73, Kurt, DJ0ABR

    (I have updated the software a few days ago. You should always use the actual version)

  • I got it to work for users over the internet. Place // before if(useCAT && memcmp(cli,"192.168",7))

    // if(useCAT && memcmp(cli,"192.168",7))

    Now internet users can qsy , BUT: If someone clicks on the Icom-Cat, the program tries to open a USB-Port and if it finds none, it will do that forever . Internet users can no longer qsy until the program ist restarted by hand. The software is not usable for remote access as it is now. But i think it wasn't DJ0ABR's intention to provide another WEB-SDR software, right?

  • yes right, if the 192.168 is removed, the Icon button should still be blocked for internet access.

    To your other observation: the WebSDR has one SSB demodulator which runs on the single board computer. It was my intention to have a Web Access for myself, not anybody else, so one decoder is enough.

    (In big WebSDRs the SSB demodulation is done by Javascript in the browser).

  • Version 2.0 was released today with a lot of improvements.

    * now it is a "real" websdr, supporting up to 20 users. Each user can tune and hear his own signal. More users are configurable if the computer is fast enough.

    * automatic transponder noise measurement: the RX level on abt. 10489,250 and abt.10489,540 is measured (TX carriers are suppressed). Then it calculates the difference which is the transponder noise. Nice feature to compare dishes and receivers.

    * prepared for the new upcoming bandplan. As soon as the new bandplan is released this websdr can be adapted within seconds.

    a new feature for DATV is described in the WB forum

    vy 73, Kurt, DJ0ABR

    Github link as usual: