Android

= GNU Radio on Android =

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.


 * Tarball of Dependencies
 * Signature for tarball
 * Script to Build Dependencies tarball

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

 * Setup and Building the Dependencies
 * Building VOLK, GNU Radio, GRAnd, and gr-omsosdr

Information on Working with GNU Radio on Android

 * Available Applications for Android
 * Help and hints for building GNU Radio Android Apps
 * Building a Basic App
 * Building a an App with ControlPort
 * Building a an App connected to a USRP
 * Debugging with Android

Device List
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.



Using a USRP B200 in a Nexus 7 running Lollipop.



Performance Monitor running on a desktop connected to a Nexus 7 running an FM transmitter example.