From GNU Radio
Jump to navigation Jump to search

GNU Radio on Android[edit]

This project and this page are very much a work-in-progress. There is likely tons left to do in the project space and this page is likely to contain errors. Also, Android is a bit of a moving target, so as things progress on all sides, we will have to keep updating the information on this page as best as possible. One major caveat is that this requires Android 5.0 (Lollipop) or later.

You can now download a tarball (gzip'd) of all the dependencies required to build GNU Radio Android applications. You can use these pre-built binaries instead of trying to build you own using the first two links below. The files are stored in the tarball in the directory grandroid. Most of the Android examples assume that these files are located in the directory /opt/grandroid. Use the command

sudo tar xzf grandroid.tar.gz -C /opt


The grandroid directory contains both the Android Toolkit used during the build process as well as a MANIFEST file that contains information about what dependencies are installed as well as the version (or git reference) for each dependency.

NOTE: The dependencies are currently only built for ARMv7 (32-bit) architectures.

IMPORTANT: Please use the NDK version r10e. Newer versions (r11c out currently) have removed GCC version 4.8 and only include 4.9. We have some C++ build issues with 4.9 and must use 4.8.

Step-by-Step Instructions for Building GNU Radio and the Dependencies[edit]

Information on Working with GNU Radio on Android[edit]

Device List[edit]

The following lists tested, working devices and the version of Android used.

  • Nexus 7 (5.1.1)
  • Nexus 7 (6.0.1)
  • Samsung Galaxy S6 (5.1.1)
  • Samsung Galaxy S6 (6.0.1)
  • nVidia Shield (6.0.1)
  • Moto X Pure (5.1.1)
  • Moto X (5.1.0)

These devices do not work:

  • Nexus 7 (5.0.1) - Gave /sdcard permission errors (Android version problem)
  • Moto G (3rd gen) (5.1.1) - Did not power USRP B200mini
  • Moto G (3rd gen) (6.0.1) - Did not power USRP B200mini
  • OnePlus Two (5.1.1) - Did not power USRP B200mini

Muppet Tom (in his space suit because he thinks he's from the future) playing with a Nexus 7 displaying signals captured from an RTL-SDR dongle and processed through GNU Radio.
Mt grand.jpg

Using a USRP B200 in a Nexus 7 running Lollipop.
Nexus7 b200.jpg

Performance Monitor running on a desktop connected to a Nexus 7 running an FM transmitter example.
Android perf mon fmtx.png