[APP][2.3+] SDR Touch - Live radio on your Android device

Search This thread

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info

Listen to live FM broadcasts on devices that don't have a built-in FM radio!


Description

SDR Touch turns your mobile phone or tablet into a cheap and portable software defined radio scanner. Allows you to listen to live on air FM radio stations, weather reports, police, fire department and emergency stations, taxi traffic, airplane communications, audio of analogue TV broadcasts, audio amateurs, digital broadcasts and many more! Depending on the hardware used, its radio frequency coverage could span between 50 MHz and 2.2 GHz. It currently demodulates WFM, AM, NFM, USB, LSB, DSB, CWU and CLW signals.
You can get a compatible USB receiver for under $20 online from eBay. Just plug in your rtl-sdr compatible USB DVB-T tuner into your Android device using a USB OTG Cable and turn on SDR Touch. For list of supported Realtek RTL2832U based dongles, please see the end of the description.

Compatible USB DVB-T tuners

- Generic RTL2832U (e.g. hama nano)
- ezcap USB 2.0 DVB-T/DAB/FM dongle
- Terratec Cinergy T Stick Black (rev 1)
- Terratec NOXON DAB/DAB+ USB dongle (rev 1)
- Terratec Cinergy T Stick RC (Rev.3)
- Terratec T Stick PLUS
- Terratec NOXON DAB/DAB+ USB dongle (rev 2)
- PixelView PV-DT235U(RN)
- Compro Videomate U620F
- Compro Videomate U650F
- Compro Videomate U680F
- Sweex DVB-T USB
- GTek T803
- Lifeview LV5TDeluxe
- MyGica TD312
- PROlectrix DV107669
- Zaapa ZT-MINDVBZP
- Twintech UT-40
- Dexatek DK DVB-T Dongle (Logilink VG0002A)
- Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)
- Dexatek Technology Ltd. DK 5217 DVB-T Dongle
- MSI DigiVox Micro HD
- Genius TVGo DVB-T03 USB dongle (Ver. B)
- GIGABYTE GT-U7300
- DIKOM USB-DVBT HD
- Peak 102569AGPK
- SVEON STV20 DVB-T USB & FM




Interaction with battery savers

It turns out some manufacturers such as Huawei and Samsung have very aggressive power saving policies and force close background apps without notice. If the system decides to kill the RTL-SDR (or SdrPlay) driver while SDR Touch is running, the app will stop playing and become unresponsive eventually showing a "Disconnected unexpectedly" error message.

If you are experiencing this issue, the only solution that currently exists is to manually whitelist *both* the SDR driver app and SDR Touch in your phone's power saving settings to prevent the operating system from unexpectedly stopping the apps. More information and instructions on how to do this based on your particular phone make and model can be found on this website: dontkillmyapp.com

Feedback
An article about SDR Touch - Android Meets the RTL2832U from HamRadioScience

A user submitted video showing off advanced features of SDR Touch running on a mobile phone:


Any additional feature suggestions, comments or feedback will be much appreciated!
 
Last edited:

daniel_reetz

New member
Jan 20, 2013
3
1
Fantastic work. I am excited to see squelch on the list of improvements. Is there any chance that you will ever support a plugin architecture or P25 decoding? There is a decoder called DSD which can decode P25. Squelch+P25 would make it replace my scanner entirely. I would pay additional $$ for each of these features and it would still be more affordable and interesting than carrying around a scanner.
 
  • Like
Reactions: martintzvetomirov

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Fantastic work. I am excited to see squelch on the list of improvements. Is there any chance that you will ever support a plugin architecture or P25 decoding? There is a decoder called DSD which can decode P25. Squelch+P25 would make it replace my scanner entirely. I would pay additional $$ for each of these features and it would still be more affordable and interesting than carrying around a scanner.

Thanks for the support! Squelch is coming soon! I will look into P25 but we might need to work together on this - you may need to provide me some I/Q recorded samples - but I would say this would be a bit later since I just started my second semester and have some studying to do as well :)

P.S. Squelch is now on top of my TODO list :D
 

ntunix

Senior Member
Jan 30, 2012
63
17
Although this seems to be a great app, I couldn't make it to work with Xperia Ray... ("no tuner found" error)

Anyone here had success with making it work on a Xperia phone?
 

daniel_reetz

New member
Jan 20, 2013
3
1
Thanks for the support! Squelch is coming soon! I will look into P25 but we might need to work together on this - you may need to provide me some I/Q recorded samples - but I would say this would be a bit later since I just started my second semester and have some studying to do as well :)

P.S. Squelch is now on top of my TODO list :D


Fanastic, thank you. I can't wait for squelch!

I'll supply whatever data/info you need to implement P25. I/Q samples are no problem. I understand completely that your time is limited and there is a larger audience to serve, but if you need resources, please let me know what you need and I'll see how I can help.

My account here is new, so I can't post links, but "DSD" and "radioreference wiki" will get you to the DSD source.
 

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
SDR Touch has been removed by Google from Google Play! I will investigate the issue and will report back as soon as I have more information!!!

If somebody needs the latest version of SDR Touch, please download it from the attachment. Keep in mind that as soon as SDR Touch goes back to Android market you might need to reinstall it in order to get the latest updates!
 

Attachments

  • SDRTouch.apk
    440.2 KB · Views: 6,538
Last edited:

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Ok, just to make it clear for everybody that is concerned.

SDR Touch DOES NOT violate the GPL license!

SDR Touch is merely a client for - https://github.com/martinmarinov/rtl_tcp_andro-. rtl_tcp_andro is released under GPL2+. SDR Touch and rtl_tcp_andro are separate works in the sense of GPL. They are neither statically or dynamically linked and they are two separate executables that communicate over a TCP connection. rtl_tcp_andro is bundled with SDR Touch merely to help the user and with accordance to point 2. of GPL Terms and Conditions. You can think of SDR Tocuh as an "installer" of rtl_tcp_andro. It just launches rtl_tcp_andro with Runtime.exec("");. Furthermore SDR Touch could happily work without the bundled rtl_tcp_andro in network mode by connecting to a remote computer running either rtl_tcp_andro or the original rtl_tcp.

Therefore GPL is not violated. Saying that GPL is violated would be like saying that you can't listen to online radio with your proprietary music player because the radio is being streamed with a GPL based software.

A quote from GPL-3.0:
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
 
Last edited:
  • Like
Reactions: mikereidis

smunaut

New member
Jan 23, 2013
2
1
Did you read that quote ?

... and which are NOT combined with it such as to form a larger program, in or on a volume of a storage or distribution medium ...

A single .APK _is_ a single distribution medium ... and they definitely _ARE_ combined to form a larger program. The "SDR Touch" .APK is the larger program, containing both your own code and the rtl_tcp_andro binary. That clause is meant for when you ship a CDRom with different stuff on it for example where they have no special relation ship. Here the relation ship and dependency is clear (even says so in the damn description of the app)

The problem is not with SDR Touch or the way it's a client for a rtl_tcp version, that's the right way to do it.
The problem is that both are distributed bundled.

SDR Touch and rtl_tcp_andro need to be two separate packages to be installed independently by the user.
There is also the requirement to make a written offer and include the full license terms when distributing rtl_tcp_andro, usual way is to include both the license in the .APK and also accessible to the user in the UI (menu often).


Cheers,

Sylvain
 
Last edited:

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Did you read that quote ?

But rtl_tcp_andro is a separate binary and the apk is just a container like a CD Rom. That's precisely the point. The binary classes of SDR Touch are separate entities in the apk file and are not linked to rtl_tcp_andro!. The GPL allows using an "installer" to install proprietary software as well as GPLed software in one go. The Android apk installer grabs the contents of the archive (which is like a rar archive) and unrars it ("installs") it onto the device. When the user is using the program, the two entities are still different and separate!

The license is linked in the Help section of SDR Touch. The thing that I haven't done is to put the license physically on the apk as well.

But that's a good point,
Thanks,
Martin
 
Last edited:

smunaut

New member
Jan 23, 2013
2
1
But rtl_tcp_andro is a separate binary and the apk is just a container like a CD Rom. That's precisely the point. The binary classes of SDR Touch are separate entities in the apk file and are not linked to rtl_tcp_andro!. The GPL allows using an "installer" to install proprietary software as well as GPLed software in one go. The Android apk installer grabs the contents of the archive (which is like a rar archive) and unrars it ("installs") it onto the device. When the user is using the program, the two entities are still different and separate!

Mmm, first, I'm not sure the APK is uncompressed on the flash.

But you're missing the point that in this case it's a single "application", no matter what binaries it's composed of. It's not pulled independently (as a dependency or not) and via that "installer" you can't get it independently, it's just a single package, even presented as a single application to the user (aren't they both under the same 'title' in the "Application" tab of android ?)

So really, I don't see how you could consider this as not being a "whole" without, like I said, distribute it as two different packages (which would also allow other "users" to use the rtl_tcp_andro for eg) and give a undeniable separation between the two.
 
  • Like
Reactions: martintzvetomirov

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Mmm, first, I'm not sure the APK is uncompressed on the flash.

But you're missing the point that in this case it's a single "application", no matter what binaries it's composed of. It's not pulled independently (as a dependency or not) and via that "installer" you can't get it independently, it's just a single package, even presented as a single application to the user (aren't they both under the same 'title' in the "Application" tab of android ?)

So really, I don't see how you could consider this as not being a "whole" without, like I said, distribute it as two different packages (which would also allow other "users" to use the rtl_tcp_andro for eg) and give a undeniable separation between the two.

Ok, I see your point and this looks like an option. I still can argue that they are separate but in order to prove that, as you say, I might split them into two packages.

Will see how things go, will keep you posted!
 

MS3FGX

Member
Apr 28, 2011
15
2
www.digifail.com
Like smunaut said, this definitely counts as a derivative work as they are being presented to the user as one cohesive application via the Play Store.

This is the same problem that SDR# had some time back, where they tried to distribute the GPL RTL-SDR with their proprietary UI. They thought that, since the UI only communicated with RTL-SDR and wasn't technically part of SDR#, they could include it; but that's not the case. (http://dangerousprototypes.com/2012/08/05/confusion-over-sdr-vs-opensdrsharp/)

The solution in this case will be the same as it was for SDR#: Either make the entire application GPL, or break rtl_tcp_andro into a completely separate package. Make sure that the description for the rtl_tcp_andro package clearly states its license, and make sure you link to the GitHub page for it so the source is clearly available. That should cover all the bases.
 

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Like smunaut said, this definitely counts as a derivative work as they are being presented to the user as one cohesive application via the Play Store.

This is the same problem that SDR# had some time back, where they tried to distribute the GPL RTL-SDR with their proprietary UI. They thought that, since the UI only communicated with RTL-SDR and wasn't technically part of SDR#, they could include it; but that's not the case. (http://dangerousprototypes.com/2012/08/05/confusion-over-sdr-vs-opensdrsharp/)

The solution in this case will be the same as it was for SDR#: Either make the entire application GPL, or break rtl_tcp_andro into a completely separate package. Make sure that the description for the rtl_tcp_andro package clearly states its license, and make sure you link to the GitHub page for it so the source is clearly available. That should cover all the bases.
Ok, this makes sense.

Actually this won't be a bad idea after all, I mean if there is a separate app "rtl_tcp_andro" that can do I/Q samples, this might help other developers write their own SDR based applications so therefore help the community.

I don't want to release the processing bit under GPL since it took me quite some time to optimize the algorithms to run on Android so I want to keep my work with this private and this is what Pro users are paying for but rtl_tcp_andro is in the public domain anyways, I will just wrap it around with an apk and release it under GPL.
 

martintzvetomirov

Senior Member
Dec 13, 2008
211
136
Vratsa
martinmarinov.info
Please add NetSDR support for RFSpare radios like NetSDR or SDR-IP.

I would pay 10x the Pro price for this! http://sourceforge.net/projects/cutesdr/ and http://cutesdr.svn.sourceforge.net/...face/sdrinterface.cpp?revision=36&view=markup will probably reveal how NetSDR format works.

I already have sever requests about this. I will keep this idea in the record. I will first need to make sure SDR Touch is working properly and implement the list of features in the first post.

Also, I was able to rapidly prototype so far but now I'm back in University and I am forced to slow down the development speed. So it may take some time.
 

Ge0rG

Member
Oct 3, 2009
21
13
op-co.de
Any chance to make the whole app Open Source? This would be a nice recognition of the hard work done by the rtl-sdr folks, and solve your packaging problem.

I have licensed APRSdroid (which btw. can modulate and demodulate Packet Radio using audio in/out) under the GPL, and I can not complain about people not getting the paid version from Google Play.

To the contrary, 80% of my users actually bought the app, and all without evil nag screens!
 

MS3FGX

Member
Apr 28, 2011
15
2
www.digifail.com
Actually this won't be a bad idea after all, I mean if there is a separate app "rtl_tcp_andro" that can do I/Q samples, this might help other developers write their own SDR based applications so therefore help the community.

Absolutely. That is the idea behind the GPL in the first place, that other developers can benefit from improvements made to the code. Having a separate download for rtl_tcp_andro would definitely be a positive for the community, I could personally think of a couple interesting projects with it.

I don't want to release the processing bit under GPL since it took me quite some time to optimize the algorithms to run on Android so I want to keep my work with this private and this is what Pro users are paying for but rtl_tcp_andro is in the public domain anyways, I will just wrap it around with an apk and release it under GPL.

Of course, it's your right to keep your own software closed source. I don't personally believe in keeping this kind of software closed, but it's your decision.

Though I would like to point out that this type of software is going to get paid downloads either way. The type of users you will attract with this kind of software are the same kinds of users who have no problem donating to open source projects. We aren't talking about some casual game here that just anyone will be downloading, this is an application developed for more technical users who have a pretty good idea of the amount of effort that goes into a project like this.

In any event, I'm glad to see you taking the proper steps to make sure your software is GPL compliant.
 

Phase3d

New member
Dec 8, 2010
1
0
FUNcube Pro & FUNcube Pro Plus Support

Any chance FUNcube Pro & FUNcube Pro Plus Dongles Support can be added in the future.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 37

    Listen to live FM broadcasts on devices that don't have a built-in FM radio!


    Description

    SDR Touch turns your mobile phone or tablet into a cheap and portable software defined radio scanner. Allows you to listen to live on air FM radio stations, weather reports, police, fire department and emergency stations, taxi traffic, airplane communications, audio of analogue TV broadcasts, audio amateurs, digital broadcasts and many more! Depending on the hardware used, its radio frequency coverage could span between 50 MHz and 2.2 GHz. It currently demodulates WFM, AM, NFM, USB, LSB, DSB, CWU and CLW signals.
    You can get a compatible USB receiver for under $20 online from eBay. Just plug in your rtl-sdr compatible USB DVB-T tuner into your Android device using a USB OTG Cable and turn on SDR Touch. For list of supported Realtek RTL2832U based dongles, please see the end of the description.

    Compatible USB DVB-T tuners

    - Generic RTL2832U (e.g. hama nano)
    - ezcap USB 2.0 DVB-T/DAB/FM dongle
    - Terratec Cinergy T Stick Black (rev 1)
    - Terratec NOXON DAB/DAB+ USB dongle (rev 1)
    - Terratec Cinergy T Stick RC (Rev.3)
    - Terratec T Stick PLUS
    - Terratec NOXON DAB/DAB+ USB dongle (rev 2)
    - PixelView PV-DT235U(RN)
    - Compro Videomate U620F
    - Compro Videomate U650F
    - Compro Videomate U680F
    - Sweex DVB-T USB
    - GTek T803
    - Lifeview LV5TDeluxe
    - MyGica TD312
    - PROlectrix DV107669
    - Zaapa ZT-MINDVBZP
    - Twintech UT-40
    - Dexatek DK DVB-T Dongle (Logilink VG0002A)
    - Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)
    - Dexatek Technology Ltd. DK 5217 DVB-T Dongle
    - MSI DigiVox Micro HD
    - Genius TVGo DVB-T03 USB dongle (Ver. B)
    - GIGABYTE GT-U7300
    - DIKOM USB-DVBT HD
    - Peak 102569AGPK
    - SVEON STV20 DVB-T USB & FM




    Interaction with battery savers

    It turns out some manufacturers such as Huawei and Samsung have very aggressive power saving policies and force close background apps without notice. If the system decides to kill the RTL-SDR (or SdrPlay) driver while SDR Touch is running, the app will stop playing and become unresponsive eventually showing a "Disconnected unexpectedly" error message.

    If you are experiencing this issue, the only solution that currently exists is to manually whitelist *both* the SDR driver app and SDR Touch in your phone's power saving settings to prevent the operating system from unexpectedly stopping the apps. More information and instructions on how to do this based on your particular phone make and model can be found on this website: dontkillmyapp.com

    Feedback
    An article about SDR Touch - Android Meets the RTL2832U from HamRadioScience

    A user submitted video showing off advanced features of SDR Touch running on a mobile phone:


    Any additional feature suggestions, comments or feedback will be much appreciated!
    3
    SDR Touch v.2.3 was just released!

    New features:

    • RDS radio text support
    • Improved RDS reception
    • Scanning continues when signal disappears
    • Improved FM Stereo quality
    • Performance tweaks
    • DSP tweaks

    As usual, please report any bugs you find. I am also looking forward to feature suggestions for the supported demodulation modes.

    Download
    3
    SDR Touch v.2.0 was just released!

    It took a while but it is finally here! The app has been completely rewritten from scratch. This will allow numerous future extensions - adjustable bandwidth, FFT size, plugins, separate GUI for in-car use and many more :) Stay tuned for SDR Touch 2.x versions!

    New features:

    • Rewritten from scratch
    • Improved reception sensitivity and quality
    • Optimized engine
    • GUI overhaul (Landscape mode, more flexible)
    • 16 bit audio
    • FIR filtering

    Download

    Note: If you have sent a query within the last couple of months and I haven't responded, try the new version and if your issues still persist, write to me again.
    3
    SDR Touch v.1.7 was just released!

    After nearly 3 months of development the new version is here and SDR Touch is better than before!

    New features:

    • FM is now in STEREO
    • New audio recording feature for PRO users
    • Improved reception and audio quality. All filters were tested for quality and all bugs discovered were removed.
    • The multi-threading logic was completely rewritten. Now it's faster than ever before.
    • Audio is now using NDK.
    • PPM correction, audio gain setting
    • A lot of bug fixes and UI enhancements
    • Experimental x86 support

    Download
    3
    Just wanted to let you know I love your app!! Now I can have my FM stations in my car with my nexus 7 car install!

    Just out of curiosity do you have any plans to add present buttons (buttons memorize a station) to your app in the near future? I know your just starting this app and you are working things out but just think that would be a great addition.
    A setting to change the background color would also be nice too, not important at all though.

    One thing that slight bothers me though is it possible to make the driver automatically enabled upon starting the app instead of having to turn it on, which you can see in the video?

    Keep up the great work!!!

    Here is a video of it working in my car.

    And for those wondering how I installed a tablet in my car... LINK