Are there any instructions to build Lime Suite for Android? We can use gr-osmosdr with soapysdr, but it will need libraries from Lime Suite.
At present there are not as far as I know.
HackRF One is supported on Android devices. There is also an app that can be downloaded for replay attacks.
I don’t think that would be worth the trouble to port this to android, you would only get between 5MSPS and 10MSPS.
You may well be right. The HackRF with RF Analyzer, is limited to its circa 20 Mhz Bandwidth. Not quite the Spectrometer I wanted for discerning 5.8Ghz Analogue FPV signals at a Drone Racing Competition for traffic analysis and Frequency/Channel Assignment. Being ex-military, I really miss my toys. But my time with decent $100K+ Rhodes & Schwartz type equipment is sadly gone.
Who can afford a decent spectrum analyser that covers Mil HF to Mil K band or even C/X Bands.
I was not trying to be Narky when I mentioned the Android App for HF. I get the limitations of Bandwidth via USB. as well as computational power.
But lets remember, the LimeSDR has 2 x Rx and 2 x Tx. An Android phone has USB, and it also has probably Bluetooth, Wifi, and now days GSM LTE.
Most phones these days have 4/8 Cores and God only knows how many threads they support. There is more than one way to skin a cat. I just wish I had the coke bottle glasses of the guys who made the equipment I used to maintain and the abilitity to code.
When I asked too many questions on how some things worked during Cat School, one of my infamous Instructors used to sit there, look at me, and say “Tomo it just does it, its grass skirt ooga booga shit, just change out the OP Amp and be done with it” or words to that affect, on multiple occasions when I was trying to understand circuits of various Rx/Tx amongst other equipment.
They just never had the time to spend to train us to understand, it was more about if it breaks, what to swap out. 4 year courses in 11 months, not much time to sit down and have a latte over regulated power drawings.
There will be a way to have Android accept the LimeSDR. And with devices like the UDOO X86 / Latte Panda etc that will run Windows Linux and Android, who knows, maybe its a logical conclusion to a lot of mess. My Udoo X86 advanced plus has 3 x USB 3 ports. I bought it thinking about using it as the heart of a surveillance device, hook it up with Kali, a Wifi Pineapple, HackRF Ubertooth,and LimeSDR, and you have the makings of a portable comms sweeper / surveillance / penetration tester / penetration detector. The Lime SDR has everythign from what 300K to 3.8Ghz, (with some HF mods), the HackRF has everything from 1Mhz to 6 Ghz. Ubertooth has BLE in the bag, and 2.4Spectrum covered. Wifi Pineapple has 2.4 and if you have a Tetra 5.8GHz covered. If you can get a Yaesu 817/857/897 into the same box, all you need is the CAT/CI-V cables and antennas sorted out.
My vision anyway.
I’m running my LimeSDR on a Win10 64-bit LattePanda (and the 7" LCD/Touchscreen) and it’s running perfect using SDRAngel. I see no reason why it wouldn’t work on that same board running Android or Linux, too…
73 de Marty, KN0CK
Awesome Marty, Id like to see Ham Radio Deluxe natively support SDRs a little better than having to use Virtual Cables or Networked Devices (in lieu of Cat Cabled radios). I miss DM780 and its full spectrum (pardon the pun) of digital modes. (I also miss my Yaesu FT-950 and Emtron D2SP and 40M). When your talking radios that utilise up to S & C bands 99.9% of that is going to be non voice, digital, and digital data. AM, NFM, WFM, LSB, USB isnt going to cut it. Raw and a good panadapter image might give you a hint of whats happening.
But even 160M to 23cm trying to figure out whats what is not exactly simple when you see the plethera of modes that HRD covers. Sure you can always record, throw it into Audacity and see if you can discern the binary and have a light bulb moment. Im not too sure I want to sit down for that long to figure out if its PSK31, HellSchrieber, or Base64 OOK with or without a parity bit and 10 to 1 at 3Ghz its not going to be.
Im not sure what the answer is. I certainly wish I could code. Im looking at a screen for my UDOO X86, it also takes arduino hats, so I might just be starting my career in coding using that. My Assembly Language days are long gone, but at least that made more sense to me than python does presently.
I wish you well and 73s de Tomo, VK2WAR
I’ve done a fair amount of research online and have installed the latest Android Studio 3.0 on my PC I use for development and I see some things that would obviously have to be remedied to make the LimeSDR compatible with Android, that being:
1.) LimeSuite (and any of its dependencies) would have to be compiled into libraries (<filename.so>) and then integrated into the environment that eventually builds the .APK. You use the Java Native Development Kit (NDK) to ‘compile’ the C++ code into the libraries that will be used to develop the final APK file.
2.) Functions that need to be exposed have to be defined in the Java Native Interface (JNI) and then REALLY called from the app’s Java ‘main’ such that the environment knows what library and exposed function - a pretty good example is shown here ----> https://developer.vuforia.com/forum/faq/android-how-can-i-call-c-methods-java
3.) It goes without saying too much that you have to rely on Android Studio’s ability to hook up the GUI to the app - trying to use QT or some other interface that’s leveraged in the reuse C++ code is a nonsrtarter. You’re better off just encapsulating all the functions, with exposure, as libraries in Android and just using the underlying code to the interface elements to make calls in and out of the compiled C++ libraries
4.) The core functions that keep the app running are no different in Android than they’d be as a compiled app in Linux or Windows - it’s just wrapped with the JNI to be compatible with the Android environment and be capable of interoperating with the higher level Java main. So a lot of what goes on happens in those libraries and is managed by the Android environment and its associated GUI.
There’s still a fair amount of research to do, but when I took the dive to get into this because what’s apparent at the get-go is that you can’t just compile or import a bunch of stuff from reused C++ from some other app and just jam it all into the Android Studio environment and make it build properly. There is a clear delineation to where the C++ ends (as a library) and where the Gradle picks up. but it’s totally possible to reuse C++ code that exists from LimeSuite, Soapy, etc and with enough massaging you can get it to work. Just look at SDRTouch for the RTL-SDR…That’s a perfect example of how they reused gr-osmo libraries in C++ to make that app play with some Android main and GUI code glued to it. Nobody put that together as a ‘straight-up’ Java app. So this isn’t impossible to do given that you’re creative enough to take what’s out there and re-purpose it as a shiny new Android app for the LimeSDR - - I’m gonna try and do it.
More to follow - stay tuned…
73 de Marty, KN0CK
Qt5 works in Android with Ministro and is often much faster than the native Java widgets. It’s possible to port a Qt application easily and with minimal changes. The problem is weak userland.
@adim - Adrian,
Thanks very much for the info…! That will help a lot for porting an app that exists for the Lime that uses the QT interface. I took a look at QT Creator app and it looks like it may be useful when this step has to be taken with the development of am Android app for the LimeSDR. More to follow on this as I have it - thanks again for the info…!
73 de Marty, KN0CK
Just a few days ago there was a blog post about running QRadioLink on an Android smartphone in combination with the LimeSDR Mini. I haven’t tried it myself yet, but it seems they are using ChrootOnAndroid. This gives you the advantage of using known Linux tools instead of porting everything to a complete new platform (Google Android).
Yes, I made the demo. You are correct regarding the chroot environment and it is indeed a lot more powerful than Android, including complete access to all GNU radio based apllications and native support for most SDR devices out of the box.
Feel free to ask any questions.
USB2 being a limiting factor, no matter the app, it would still be cool as a tool to have your smartphone run your LimeSDR in some way.
That’s what prompted me to look into this (seeing the demo of QRadioLink), but not all phones are capable of being rooted. The Samsung Galaxy J7 is one of them - the key to that phone not being able to be rooted is the lack of the ‘OEM UNLOCKING’ option not being part of the Developer Options - so rooting isn’t an option for me (or anyone else running a 2 GHz octo-core Snapdragon processor) on this phone being used as a development platform. This may continue to be a problem for future users if ‘OEM UNLOCKING’ is not part of the intrinsic properties of the processor and the OS…In effect it’s ‘game over’ a the get-go. Additionally, some with newer (and more expensive) phones may not want to have the possibility of losing their warranty if the phone is rooted (most carriers will deny replacement if the phone has been altered from its original ‘out the door’ state). And the worst of all scenarios is that once the user decides to root their phone, if it doesn’t work they’ll either have to reload their OS for the phone (best case) or will have a fairly expensive brick in their hands (really worst case). Given all that, it seemed a more likely path is to just develop an Android app that will allow operation without rooting a phone and without having to use a helper app (VNC Viewer) to open the Linux desktop from Android.
I did try the ‘Debian No-Root’ Linux on my development phone (the J7) but it was incredibly slow to respond to launching a terminal and it left me with the impression that running an app that requires near real-time speed to process the streams from the LimeSDR or LimeSDR-Mini would be impractical on that version of Linux (there’s no guarantee it’ll even run and many other users reported slow operation of that Linux distro, too).
While I’d love to be able to run already established apps that run on Linux on a smartphone using a rooted phone, I think there’s merit to running an ‘honest-to-God’ Android app made to perform with the LimeSDR or LimeSDR Mini without taking risks associated with rooting ones phone.
73 de Marty, KN0CK
I think the solution to that problem is using hardware that respects the user’s rights even if that means staying behind in the technology curve.
@adim - Adrian,
All good - I’m not trying to imply that rooting an older phone isn’t in my field of view, too, just for the sake of research. But for covering the fair amount of Android users that are out there that want an easier method of obtaining LimeSDR and Lime-Mini capabilities on their smartphone they’d opt just to install an .APK file and be done with it - That’s where my attention is focused at the moment.
73 de Marty, KN0CK
I have an idea, a programmer friend of mine said he thinks one of the chips on the Lime is pretty advanced and could hold the software needed to run it.
If that were the case, maybe the user interface could be on an android, and the real processing done on the board. So perhaps the USB 2 wouldn’t be a bottleneck.
I guess he thinks that there is enough of the FPGA to run an OS? I am not in that world, but some FPGAs have processors & some don’t, as I understand. I’ll look at the datasheets, but I do not think this one does. Of course, there is always the C language class, but I am not sure what can be done with this chip.
Not a bad idea. But, then you would need so much hardware to support it all. It then changes the intent of the product.
Still not a bad idea at all. I say to integrate the LimeSDR, full sized (Classic, I guess?) circuitry into a Nvidia Jetson TX2 module. I mean, interwoven in the fabric of it. Not just a daughterboard…
That would be the bees knees…(If someone decides to, I want a freebee for the idea)
Based on previous experience with this subject, If I were to start all over again I would change a few things architecture-wise. You should take a look at what the big boys are doing with this: https://gatehouse.dk/telecom/waveforms/smartphone-sdr-project/
Much more flexible architecture than qradiolink and obviously native Android UI which is something I meant to look into, but it requires much more effort and knowledge of sys internals.
I think these days one must resist cramming as much DSP logic in the FPGA as possible, because while efficient it reduces the flexibility as the design - build - deploy cycles become longer.
I’m sure Andrew here with his domain experience could comment on this topic. The idea of having a small satellite terminal based on the LimeSDR-mini sounds appealing.
Hello everyone this is my first post (google translate)
This post is a bit old, but I decided to log in here to describe my attempts with LimeSDR mini on adroid (OnePlus 7Pro)
Description “fast” if someone is interested in the topic, I can develop …
- Install kali Linux on the phone, I recommend ROOT device, although it is not necessary but there are more possibilities
- Run the terminal, install gnu-radio I recommend 3.8, soapy, limesuite, gr-limesdr
- run Nethunter applications on the phone and select KEX Manager - select start server
4.We run the vnc client (phone or other computer) and connect to the phone, run gnuradio, create a project, run the project, save the resulting python file
- run Kali nethunter, select CUSTOM Commands, ADD and add the command “python3 send-wav.py” in the send to position: select KALI,
6.the command has been added, just click the added icon to run our project, so you can add hundreds of commands and projects, in VNC mode everything works, in phone mode everything works from the terminal, so without GUI, for some it is an advantage for others: a disadvantage: )
My Lime mini, connected to Oneplus7, receives, records and transmits signals and is powered only from the phone.
If everything is planned and configured, OnePlus 7Pro + SDR is a much more ambitious solution than PortaPack