# Connect to phone

**URL:** <https://discourse.myriadrf.org/t/connect-to-phone/2081>\
**Category:** LimeSDR\
**Created:** [30 November 2017 23:50 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081 "2017-11-30T23:50:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tungstenlightbulb](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tungstenlightbulb](https://discourse.myriadrf.org/u/tungstenlightbulb)\
**Post date:** [30 November 2017 23:50 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/1 "2017-11-30T23:50:34Z")

</div>

I know I’ve seen lots of projects about making cell phone networks with the LimeSDR, but has anyone tried connecting a LimeSDR to a phone? From what I’ve been seeing from connecting to RPis and similar boards, it sounds like it would work, but has anyone tried using smartphones? (If it used thunderbolt, I bet you’d just need a converter to USB 3). I guess with the LimeSDR mini and a phone, you could probably even make the ultimate HT.

---

<div class="post-metadata">

**Author:** ![adim](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adim](https://discourse.myriadrf.org/u/adim)\
**Post date:** [1 December 2017 08:05 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/2 "2017-12-01T08:05:46Z")

</div>

Yes. QRadioLink ( [http://qradiolink.org](http://qradiolink.org) ) works with a mobile phone and the LimeSDR-mini. I will make a video demonstration of an analog/digital transceiver as soon as some TX issues are solved in the software.

---

<div class="post-metadata">

**Author:** ![tungstenlightbulb](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tungstenlightbulb](https://discourse.myriadrf.org/u/tungstenlightbulb)\
**Post date:** [1 December 2017 15:59 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/3 "2017-12-01T15:59:31Z")

</div>

Thanks, I’m kind of wanting to see if I can get my LimeSDR (or future LimeSDR-mini) to talk to a nearby FaradayRF, at around 915 MHz, while using my phone. I’m betting it’d also make a really useful AMSAT Phase 4-B GS node (with proper up/down converters), if it were on a phone too, although I have no idea if even a Qualcomm Snapdragon 835 would have enough processing power for that.

---

<div class="post-metadata">

**Author:** ![adim](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adim](https://discourse.myriadrf.org/u/adim)\
**Post date:** [22 December 2017 11:49 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/4 "2017-12-22T11:49:41Z")

</div>

See this video: [https://www.youtube.com/watch?v=W\_o8sOZHoeE](https://www.youtube.com/watch?v=W_o8sOZHoeE) for a demonstration.

---

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [22 December 2017 18:53 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/5 "2017-12-22T18:53:13Z")

</div>

@adim - Adrian,

GREAT video…!!

Did you compile the qradiolink app for Android from the source code (appears to be a Samsung phone with an OTG cable for the LimeSDR), or is there an Android app available? I checked the Google PlayStore for ‘qradiolink’ and came up with no matches. Please let us all know how this app was compiled for Android and if it’s available for download. I have a Lime-Mini now, too, and would like to see how well it works on my Galaxy Note 6.

Keep us all advised on this, Adrian - thanks es 73,

de Marty, KN0CK

---

<div class="post-metadata">

**Author:** ![adim](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adim](https://discourse.myriadrf.org/u/adim)\
**Post date:** [22 December 2017 19:43 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/6 "2017-12-22T19:43:02Z")

</div>

Hi Marty,

What you’re seeing there is the application running in a Linux environment (chroot) under the Android OS. It is not native to Android but runs just as well since it is not emulated. There are several methods to have a chroot, pick the one you like the best, but I recommend the Debian way: [https://wiki.debian.org/ChrootOnAndroid](https://wiki.debian.org/ChrootOnAndroid)

The phone is a Motorola MotoG 3rd gen, so quite an old phone with 840 MB memory and 1.2 GHz quad-core CPU. My application uses about 33% of the CPU while idle receiving and the whole Linux chroot uses 180 MB of RAM.

The application is free-software released under GNU GPLv3, see [http://qradiolink.org](http://qradiolink.org) for details and links to code. You should have no issues compiling for ARM under Debian Jessie or Stretch (or in fact any other derivate distros). You can either cross-compile on the host computer or directly on the phone (but will take longer). If you want to help you can try setting up a Travis build to provide binary packages for ARM HL architecture 🙂

At some point I plan to release a ready made SD card image with the full GNUradio environment preinstalled, to be plug-n-play.  
Oh, and the demo does not contain any reference to video transmission because frankly with the bad lighting and the small size of the screen nothing would have been visible.

Best,  
Adrian YO8RZZ

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [25 June 2018 11:50 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/7 "2018-06-25T11:50:02Z")

</div>

Hi @adim  
hope you’re still around. Which of these requirements has to be met to build it from source on armhf?

> **[kantooon/qradiolink](https://github.com/kantooon/qradiolink#requirements)**
>
> SDR transceiver. Contribute to kantooon/qradiolink development by creating an account on GitHub.

So far I have installed Ubuntu Xenial through chroot (with VNC support), and loaded soapysdr+limesuite.

---

<div class="post-metadata">

**Author:** ![adim](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adim](https://discourse.myriadrf.org/u/adim)\
**Post date:** [25 June 2018 13:23 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/8 "2018-06-25T13:23:19Z")

</div>

Hi,  
If you have a Linux chroot, the process is the same as if you were building on x86. Install gnuradio and gnuradio-dev, install gr-osmosdr (you may have to build it from source to have soapy support).  
The rest of the packages are described in the readme. I noticed the Ubuntu instructions are missing libspeexdsp-dev though. I will add both libspeexdsp and libspeexdsp-dev as the guide was written before I added the dependency. You have to be careful with Qt. The Qt version you use to build qradiolink should be the same as the Qt version used by GNU radio.

Regards,  
Adrian

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [6 July 2018 16:14 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/9 "2018-07-06T16:14:23Z")

</div>

Hi,  
thanks for the help so far. I’m stuck on protocol buffer. I found binaries for x86 and x86\_64, but not armhf or arm64 for both protoc and protobuf.  
Any way around it (possibly without crosscompiling)?  
Also I can’t find libspeexdsp and libspeexdsp-dev in artful repo.

W.

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [11 July 2018 12:06 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/10 "2018-07-11T12:06:43Z")

</div>

Okay, now it seems all dependencies have been fulfilled (including protobuf and protoc).  
libspeexdsp and libspeexdsp-dev installed and still getting this error on ‘make’

g++ -c -pipe -O2 -D\_REENTRANT -Wall -W -DQT\_NO\_DEBUG -DQT\_SQL\_LIB -DQT\_GUI\_LIB -DQT\_NETWORK\_LIB -DQT\_CORE\_LIB -DQT\_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I…/…/qradiolink -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qwt-qt4 -I/usr/include/qwt -I. -I. -I…/…/qradiolink -I. -o main.o …/main.cpp  
In file included from /usr/include/c++/5/mutex:35:0,  
from /usr/local/include/google/protobuf/stubs/mutex.h:33,  
from /usr/local/include/google/protobuf/stubs/common.h:52,  
from …/ext/Mumble.pb.h:9,  
from …/mumbleclient.h:29,  
from …/mainwindow.h:28,  
from …/main.cpp:17:  
/usr/include/c++/5/bits/c++0x\_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.  
#error This file requires compiler and library support   
^  
In file included from /usr/local/include/google/protobuf/stubs/common.h:52:0,  
from …/ext/Mumble.pb.h:9,  
from …/mumbleclient.h:29,  
from …/mainwindow.h:28,  
from …/main.cpp:17:  
/usr/local/include/google/protobuf/stubs/mutex.h:70:8: error: ‘mutex’ in namespace ‘std’ does not name a type  
std::mutex mu\_;  
^  
/usr/local/include/google/protobuf/stubs/mutex.h: In member function ‘void google::protobuf::internal::WrappedMutex::Lock()’:  
/usr/local/include/google/protobuf/stubs/mutex.h:63:43: error: ‘mu\_’ was not declared in this scope  
void Lock() GOOGLE\_PROTOBUF\_ACQUIRE() { mu\_.lock(); }  
^  
/usr/local/include/google/protobuf/stubs/mutex.h: In member function ‘void google::protobuf::internal::WrappedMutex::Unlock()’:  
/usr/local/include/google/protobuf/stubs/mutex.h:64:45: error: ‘mu\_’ was not declared in this scope  
void Unlock() GOOGLE\_PROTOBUF\_RELEASE() { mu\_.unlock(); }  
^  
/usr/local/include/google/protobuf/stubs/mutex.h: At global scope:  
/usr/local/include/google/protobuf/stubs/mutex.h:73:7: error: expected nested-name-specifier before ‘Mutex’  
using Mutex = WrappedMutex;  
^  
/usr/local/include/google/protobuf/stubs/mutex.h:78:28: error: expected ‘)’ before ‘\*’ token  
explicit MutexLock(Mutex \*mu) : mu\_(mu) { this-\>mu\_-\>Lock(); }  
^  
/usr/local/include/google/protobuf/stubs/mutex.h:81:3: error: ‘Mutex’ does not name a type  
Mutex _const mu\_;  
^  
/usr/local/include/google/protobuf/stubs/mutex.h: In destructor ‘google::protobuf::internal::MutexLock::~MutexLock()’:  
/usr/local/include/google/protobuf/stubs/mutex.h:79:24: error: ‘class google::protobuf::internal::MutexLock’ has no member named ‘mu\_’  
~MutexLock() { this-\>mu\_-\>Unlock(); }  
^  
/usr/local/include/google/protobuf/stubs/mutex.h: At global scope:  
/usr/local/include/google/protobuf/stubs/mutex.h:92:33: error: expected ‘)’ before '_’ token  
explicit MutexLockMaybe(Mutex \*mu) :  
^  
In file included from /usr/local/include/google/protobuf/arena.h:48:0,  
from …/ext/Mumble.pb.h:23,  
from …/mumbleclient.h:29,  
from …/mainwindow.h:28,  
from …/main.cpp:17:  
/usr/include/c++/5/typeinfo:39:37: error: expected ‘}’ before end of line  
/usr/include/c++/5/typeinfo:39:37: error: expected unqualified-id before end of line  
/usr/include/c++/5/typeinfo:39:37: error: expected ‘}’ before end of line  
/usr/include/c++/5/typeinfo:39:37: error: expected ‘}’ before end of line  
/usr/include/c++/5/typeinfo:39:37: error: expected ‘}’ before end of line  
/usr/include/c++/5/typeinfo:39:37: error: expected declaration before end of line  
Makefile:728: recipe for target ‘main.o’ failed  
make: \*\*\* [main.o] Error 1

---

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [11 July 2018 13:32 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/11 "2018-07-11T13:32:29Z")

</div>

@wqcr,

…And there’s my effort to put the Lime-Mini on a rooted LG G3 smartphone using Ubuntu Xenial and SDRAngel, too:

73 de Marty, KN0CK

---

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [11 July 2018 15:46 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/12 "2018-07-11T15:46:51Z")

</div>

@wqcr,

…And this post on the forum, too:

> [@LimeSDR-Mini on LG G3 Android Smartphone under Ubuntu Xenial/SDRAngel](https://discourse.myriadrf.org/t/limesdr-mini-on-lg-g3-android-smartphone-under-ubuntu-xenial-sdrangel/2208):
>
> It’s been a week in the making, but it’s done and I still have a little more work to do on it before I’ll work on an actual Android port of SDRAngel. What I have is SDRAngel compiled/installed/running under a Linux installation of Ubuntu Xenial (16.10), tuned to 162.475 MHz (local weather frequency for Cedar Rapids, Iowa), Narrowband FM (NBFM) demod operating on a rooted Android LG G3 smartphone. There was no audio from the app while running from Ubuntu Xenial, but I think it’s a prefs thing bet…

73 de Marty, KN0CK

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [11 July 2018 15:50 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/13 "2018-07-11T15:50:24Z")

</div>

That’s great, but I found SDRAngel quite unstable for transmitting wide band modes. It’s prone to dropping samples, also it’s not possible to tune below 30MHz.  
QRadioLink also has slightly better UI in terms of working on a touch screen.

Further I’d appreciate help in the sense **how to make it work** rather than **it’s possible, check out this demo**.  
I don’t mind sharing the disk img once I successfully run QRadiolink with Mini, for that however, the issue above has to be tackled.

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [11 July 2018 17:26 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/15 "2018-07-11T17:26:39Z")

</div>

One step forward but still not there.  
The previous issue was solved by adding -std=gnu++11 to CXXFLAGS in Makefile.  
But now getting this error (and lots of others with the same ‘undefined reference’:

mumbleclient.o: In function `MumbleClient::authenticate()': mumbleclient.cpp:(.text+0x2d4e): undefined reference to`google::protobuf::internal::fixed\_address\_empty\_string[abi:cxx11]’  
mumbleclient.cpp:(.text+0x2d52): undefined reference to `google::protobuf::internal::fixed_address_empty_string[abi:cxx11]' mumbleclient.o: In function`MumbleClient::sendVersion()’:  
mumbleclient.cpp:(.text+0x30be): undefined reference to `google::protobuf::internal::fixed_address_empty_string[abi:cxx11]' mumbleclient.cpp:(.text+0x30c2): undefined reference to`google::protobuf::internal::fixed\_address\_empty\_string[abi:cxx11]’  
mumbleclient.o: In function `MumbleClient::createChannel(QString)': mumbleclient.cpp:(.text+0x3da2): undefined reference to`google::protobuf::internal::fixed\_address\_empty\_string[abi:cxx11]’  
mumbleclient.o:mumbleclient.cpp:(.text+0x3da6): more undefined references to `google::protobuf::internal::fixed\_address\_empty\_string[abi:cxx11]’ follow

Edit: This was fixed by adding SUBLIBS = -L/usr/local/lib to Makefile

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [11 July 2018 18:26 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/16 "2018-07-11T18:26:37Z")

</div>

OK, finally the compilation is done, however the UI is broken and now getting these errors:

Xlib: extension “XInputExtension” missing on display “:0.0”.  
“11/Jul/2018 20:04:55”  
QColor::setRgb: RGB parameters out of range  
warning: The VAD has been replaced by a hack pending a complete rewrite  
…/audio/audiointerface.cpp: pa\_simple\_new() failed:  
…/audio/audiointerface.cpp: pa\_simple\_new() failed:  
QNativeImage: Unable to attach to shared memory segment.  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
QNativeImage: Unable to attach to shared memory segment.  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadPixmap (invalid Pixmap parameter) 4  
Major opcode: 56 (X\_ChangeGC)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0  
X Error: BadDrawable (invalid Pixmap or Window parameter) 9  
Major opcode: 62 (X\_CopyArea)  
Resource id: 0x0

---

<div class="post-metadata">

**Author:** ![adim](https://avatars.discourse-cdn.com/v4/letter/a/8edcca/32.png) [@adim](https://discourse.myriadrf.org/u/adim)\
**Post date:** [13 July 2018 08:48 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/17 "2018-07-13T08:48:52Z")

</div>

Hi, and sorry for the delay.

…/audio/audiointerface.cpp: pa\_simple\_new() failed:  
…/audio/audiointerface.cpp: pa\_simple\_new() failed:

The means that Pulseaudio is not running, or that the client cannot connect to the server. You need to have Pulseaudio because Alsa support is not fully implemented.  
The other errors point out to a problem with the X server configuration. Try to use the VNC output first. The Linux Deploy application can configure the SD card image automatically to use VNC. Then use something like AndroidVNC to view the Linux desktop. It’s not a simple operation, but after you have the VNC desktop, you can look at the X-server variant.

Regards,  
Adrian

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [13 July 2018 09:05 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/18 "2018-07-13T09:05:47Z")

</div>

Yes, I used VNC in the above instance (both from remote PC and from the phone - VNCViewer).  
Unfortunately the above build failed to start, so I have to do it over again.

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [13 July 2018 09:35 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/19 "2018-07-13T09:35:53Z")

</div>

This is the interface:

 ![inf](https://yyz2.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/f/f5248907ea266ebc479fa92c28b6fd81ccad2d43.png)

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [13 July 2018 09:45 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/20 "2018-07-13T09:45:14Z")

</div>

Finally, fixed it.  
This line has to be added to /etc/environment:  
QT\_X11\_NO\_MITSHM=1

Now comes the hardest part - get audio/mic working and Mini recognized…

---

<div class="post-metadata">

**Author:** ![wqcr](https://avatars.discourse-cdn.com/v4/letter/w/ebca7d/32.png) [@wqcr](https://discourse.myriadrf.org/u/wqcr)\
**Post date:** [13 July 2018 12:00 UTC](https://discourse.myriadrf.org/t/connect-to-phone/2081/21 "2018-07-13T12:00:14Z")

</div>

No luck getting the Mini recognized so far, at least RTL-SDR worked.  
Also getting no audio from the chrooted environment.  
Found this : [Getting audio working in chroot under KitKat 4.4.2 · Issue #223 · meefik/linuxdeploy · GitHub](https://github.com/meefik/linuxdeploy/issues/223)  
and made a bash script to send these

amixer cset numid=1149,iface=MIXER,name=‘LINE\_OUT’ 1  
amixer cset numid=941,iface=MIXER,name=‘PRI\_MI2S\_RX Audio Mixer MultiMedia1’ 1  
amixer cset numid=1142,iface=MIXER,name=‘RX3 MIX1 INP1’ 1

to enable sound device, however that applies to alsa, in pulse audio I’m still getting only dummy in/out.

 ![dummy](https://yyz2.discourse-cdn.com/flex034/uploads/myriadrf/original/2X/d/d86770cd49ec9f1afcd8d1cebc75bde73fbad347.png)

[Next page](https://discourse.myriadrf.org/t/connect-to-phone/2081.md?page=2)
