New Web Based RTL-SDR Remote Control Software: YouSDR

Recently Kristian, a reader of our blog wrote in to let us know about a new software project he found that allows you to use your RTL-SDR remotely through a web interface. The web interface runs on Linux and uses mysql and the Apache server to work. Currently it can be used to access options for rtl_fm, rtl_tcp, dump1090 and can also be used to create an icecast audio stream.

The software can be downloaded from its Git at The instructions on the GitHub page show how to set it up on a Raspberry Pi running Raspbian, but the instructions should also be valid for other Linux distributions. As the software is new the authors are welcoming any improvements and feedback.

Some similar web based RTL-SDR remote control software that you may be interested in includes WebRadio and rtl_fm_python.

The YouSDR web interface.
The YouSDR web interface.


  1. Lee

    Hi. I got it to work ok on a Pi3. For those stuck at the 404 error, did you have a look at the “Pi as a Baby monitor link” and actually *start* icecast and darkice? (I didn’t to begin with!)

    Then as David said on October 4, there is a little more tweaking that can be done. I installed Kalibrate (Google it) to find the frequency offset for my RTL-SDR.

    Then at the very top of index.p h p in the var-www-yousdr folder, you can insert the ppm figure. Edit the file with nano index.php

    This is fine for broadcast FM. But if you’d like to listen to weaker signals e.g. amateur / aircraft, the gain settings need to be bumped up. Near the bottom of the same index.php are the RX mode. In the case “listen” there is a line which builds up the RTL_FM command line. I added ” -g 50 ” to add the maximum gain supported by my device in the middle.

    Don’t forget to add the beginning space before the -g otherwise the argument will run into each other and not work. rtl_test will give you the supported gain settings for your SDR device.

    I hope this helps not hinders. I think sometimes more detailed notes would help, although admittedly this was ever only an alpha release.

    Sorry, had to strip away example code to get it posted past the website security, despite using tag.

    • Lee

      Start icecast and darkice:

      sudo service icecast2 start
      sudo darkice

      Run kal:

      kal -s GSM900
      Found 1 device(s):
      0: Generic RTL2832U OEM

      Using device 0: Generic RTL2832U OEM
      Found Rafael Micro R820T tuner
      Exact sample rate is: 270833.002142 Hz
      kal: Scanning for GSM-900 base stations.
      chan: 79 (950.8MHz + 26.929kHz) power: 22925.94
      chan: 117 (958.4MHz + 26.375kHz) power: 27230.03

      kal -c 117
      Found 1 device(s):
      0: Generic RTL2832U OEM

      Using device 0: Generic RTL2832U OEM
      Found Rafael Micro R820T tuner
      Exact sample rate is: 270833.002142 Hz
      kal: Calculating clock frequency offset.
      Using GSM-900 channel 117 (958.4MHz)
      average [min, max] (range, stddev)
      + 26.333kHz [26268, 26402] (134, 34.087959)
      overruns: 0
      not found: 7
      average absolute error: -27.476 ppm

      • Lee

        Found 1 device(s):
        0: Realtek, RTL2838UHIDIR, SN: 00000001

        Using device 0: Generic RTL2832U OEM
        Found Rafael Micro R820T tuner
        Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6

        And from the bottom of index.php, minus the dollar signs which the website security doesn’t seem to like, just to show how to insert the gain argument:

        BIN_RTLFM." '-F 9' ".escapeshellarg("-f ".freq."M")." -g 50 -M ".mode."

        I can’t find a way to safely paste in the rtl_fm command from near the bottom of index.php, but hopefully you’ll find it. Good Luck 🙂

  2. David

    Well I got it to work. I had a little issue with the fact that my new PI now has it’s web stuff at /var/www/html rather than just /var/www and had to copy the files into the right place. I also had a few other little issues I had to work through including setting the ppm frequency correction and playing with the gain settings which would be nice if there was a setting for this also.
    I do seem to end up with a long time delay on the decoded audio somewhere and am trying find a solution for this.

  3. argos

    Oh I would like a simple project for my son to replace the gate remote in my car with something with greater than 9 foot range with a trial and error type learning scheme rather than heady hacking by RFpros

  4. Mike Pate (k5map)

    After reading all of the comments on this page, its not clear to me if anyone other than the original submitter has this working. Have any of you been able to get the solution to stream audio over the network?

    • brandon

      I did not get it to work, but I am notorious for giving up on Linux projects when I hit a brick wall. I figured I’d monitor the comments on this post and try again when someone is able to get it working.

  5. Jay Moore

    Very interesting. I already use a Shoutcast to relay audio from SDR# that I control with remote desktop since rtl_tcp doesn’t work over the internet very well. I will have to give this a try since it’ll use rtl_tcp to pull the data.

  6. Marty Wittrock

    Thanks, Gents…Glad to hear that I’m not alone. In the future, I think the editors of should validate with the submitters that they REALLY have thus working. I’ve spent nearly 12 hours on various fixes to make this work and gave up. If the article submitter would offer an image for Raspberry Pi then that would be better than wasting a lot of our collective time.

    • admin

      The submitter indicated that he had it up and working well. I’ll email him back and see if he had any similar issues and hopefully get him to post in the comments here. It also might be good to try and contact the programmer on GitHub.

      • Marty Wittrock


        Thanks very much – I greatly appreciate your efforts. If the submitter would just check back and see our comments then he could publish either the correct procedure (I used the one on GitHub and several other websites – even to install Darkice and Icecast – and the setup on this is not trivial. All of us are RTL enthusiasts and WANT to be able to report back good results with these new applications – that’s what keeps the interest up. But the past two Python-based web-browser receiver controllers I’ve tried to install on the Raspberry Pi have had lackluster results by not installing correctly, or too many hidden tricks to make it install correctly (like this app). I’d LOVE IT if the submitter would just post his Raspberry Pi image so we all could just use that and experiment with this tuner. I’m actually interested in taking the submitters design a little further and write a transmit section for that browser control and post it as a collaborative effort. But thanks again for your help with this – we all support this website and greatly appreciate that it’s here. 73 de KN0CK

  7. Brandon

    Nothing like spending hours in Linux doing something extremely simple that would take 45 seconds on Windows.

    I finally got to where you are, I’ve got the tuning page up and all…..but after I click set data, nothing really happens. I see a link labeled “Stream URL” but that link doesn’t take me anywhere (404).

    • Brandon

      Correction: it’s not a 404, it’s a “The file you requested could not be found” error page…..indicating it’s looking in the wrong place for the stream. Not sure what to do here.

  8. Phil

    I have the same issue as Marty, everything up and running (Raspberry Pi 2, USB powered hub) but still no audio (using Chrome browser). Any help would be appreciated.

  9. Marty Wittrock

    Okay – I was able to resolve the issue with getting php5 running – so that’s no longer an issue. I even got Darkice and Icecast to operate….but no audio at all from the system. I have the browser working fine, streaming connected…no joy… 🙁

    Any suggestions..? Is there a Raspbi image of this of this that one can post that’s working?

  10. Marty Wittrock

    Here is the output I get when I try to get the php5 and php5-mysql files:

    Err wheezy/main php5-common armhf 5.4.36-0+deb7u3
    404 Not Found
    Err wheezy/main libapache2-mod-php5 armhf 5.4.36-0+deb7u3
    404 Not Found
    Err wheezy/main php5 all 5.4.36-0+deb7u3
    404 Not Found
    Err wheezy/main php5-cli armhf 5.4.36-0+deb7u3
    404 Not Found
    Failed to fetch 404 Not Found
    Failed to fetch 404 Not Found
    Failed to fetch 404 Not Found
    Failed to fetch 404 Not Found


  11. Marty Wittrock

    Hi – I used the instructions that were posted to Github and was unable to bring this up at all. Also, when I tried to pull the PHP5 and PHP5-mysql files the links were broken (file not found) and would not install (this could be why it’s not functioning at all). When I tried to launch it using: the PHP file itself launched on the webpage. So I have to conclude that the PHP5 files by not installing (again, broken links) are the reason this is malfunctioning. ANY help on this would be greatly appreciated – – thanks!!

    • Marty Wittrock

      Okay – so I did an update and got php5 and php5-mysql to install, and ran the application using: but now I get “config.php not found! Please copy (and edit) ./contrib/config.php to ./ !” I copied the file from the location /var/www/yousdr/config.php to the root (which I assume is ./) and it still says that it can’t find the config.php file.


      • Marty Wittrock

        Okay…Maybe this was TOO easy…But when I did the following, I was actually able to launch the webform for tuning (and you have to be in the /var/www/yousdr/contrib/ subdirectory):

        cp /config.php /var/www/yousdr/

        and then launch using:


        ….now I’m trying to work on the sound because I’m not getting that because icecast or darkice (while configured right) are not streaming audio…More to follow….

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>