On new year’s day (2020), I decided to get reacquainted with GNURadio Companion (grc) to mess around with some Software Defined Radio (SDR) stuff, and set myself off on a new vector of exploration. But for the life of me, I couldn’t get things to work right off the bat.
The last time I had explored grc was probably late 2018 / early 2019, so I was definitely out of practice; but at the very least I do recall having a working installation. The software was still a mystery (still is), but with the guidance of a tutorial I could put blocks together and get an output. For me, that’s a good enough starting point.
Fast forward to 31st December, 2019, when I decided to get back to SDR exploration, mostly because the FPGA I had ordered the previous day and had intended to play with was out of stock and would have to be ordered from China, but the Dubai port was closed till 6th of January, so the earliest I could get said FPGA was 10th of January 😕.
Nonetheless, I’d been meaning to gain a working knowledge of SDR since Signal Processing is one of my vast interests.
The first thing that I like to do when getting back to working on something is updating the software to the latest stable version; I mean, we must work with the latest and greatest. So I downloaded and installed the latest grc software for Windows: v126.96.36.199/v1.6, to get back to work. And as always the first thing I like to do is run sample code. Unfortunately, the sample code did not work.
Okay, more precisely, the sample code ran without error, but I couldn’t get an output.
The terminal did spew out:
Executing: C:\Program Files\GNURadio-3.7\gr-python27\python.exe -u D:\Documents\HackRF\top_block.py
gr-osmosdr 4d83c606 (0.1.5git) gnuradio 188.8.131.52
built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf airspy redpitaya
[INFO] [UHD] Win32; Microsoft Visual C++ version 14.0; Boost_106000; UHD_3.14.1.HEAD-0-g5491b80e
>>>DoneWhich could be the key to solving this problem!
So now I was in troubleshooting mode, I hate being in troubleshooting mode, it’s just the worst. I did quite a number of things, but shit wasn’t just working. Now, it isn’t recommended to use an SDR with a virtual machine but I just needed proof that things were working.
Now one of the easiest ways to get a nice working installation of grc is with Pentoo, but guess what, I had long since deleted my Pentoo image and the Pentoo website was down, odds not in my favour. I did end up finding the Umea University Academic Computer Club’s mirror that had a backed up copy of Pentoo, but say it with me, “the odds were not in my favour”. Another thing to mention is that the Pentoo image is like 3-4 GBs huge, and I was operating on a diet of data bundles so getting this Pentoo image really was to be my last resort.
So the next step that I took was to probably install grc on linux, since apparently it’s meant to work soooo much better than windows. Now, probelm here is that I don’t have a dedicated Linux computer, I get by with a virtual machine. so i was like let’s test this shit out, if i works good, not a long term solution but just for the right now.
I boot up my VM running Ubuntu, install grc using sudo apt install gnuradio; the process is relatively smooth. Probably the end of my troubles right? Wrong! I open grc, and some widgets are missing. Thumbing through forums, I find out that Ubuntu doesn’t have the latest or the most complete build, for that you have to jump through hoops and loops and build grc yourself using pybombs.
Fine, I install pybombs get a couple of errors along the build sort them out after reading and understanding the error messages and the build starts. The build runs smoothly up until 50% and then it crashes, this is like after an hour or some crap like that. At this point I am extremely flustered and pissed off, I bite the bullet and simply decide to download Pentoo.
Now another reason for my apprehension with Pentoo is this, the last time I had used it on my PC, I ran into a couple of problems and it was kinda related to the fact that I have an NVIDIA gpu. So my last experience was marred, but desperate people clutch at straws.
After finally biting the bullet and running Pentoo off of a LiveUSB, I was pleasantly surprised that it worked relatively okay. I guess those errors were patched. and I was able to run my experiment.
But for the long term, that meant that I’d have to interrupt my workflow every time I wanted to explore grc. Then a thought came to mind. The only difference between the last time I used grc and now, is the update, maybe the update broke something? So i downgraded my grc installation to v3.7.11/12 and boom, shit was working. Darn it, that was too easy.
Afterwards (like a couple of days later), I decided to run a series of tests and see, which versions of grc actually play nice on Windows. As of the writing of this v184.108.40.206/v1.7 BETA, v220.127.116.11/v1.6 and v18.104.22.168/v1.5 do not fully work on Windows 10. v3.7.12/v1.4 (my current installation) works but crashed in one of my initial tests so it’s kinda on probation, and v3.7.11/v1.2 also works; I didn’t test out v22.214.171.124/v1.3, v126.96.36.199/v1.1.2 nor v188.8.131.52/v1.1.1, but I would hazard a guess that they do work.
Also a thing to note about v184.108.40.206/v1.7 BETA is I think they are trying to overhaul the GUI so it really looks different from previous versions which is kinda interesting. The problem however was that it had far too many missing blocks, and I couldn’t be bothered to figure out why.
So while I don’t know what broke in the latest “stable” release, and quite frankly I don’t care at the moment. The most crucial thing is that I have an environment that I can work within and that’s all that matters to me at the moment.
So what’s the lesson to be learnt here? Sometimes that update you expected to bring you new features, can break a number of things. This isn’t the first time that an update has broken something, but yeah, updates don’t always work as expected, and sometimes it’s reverting to an older version can solve your problem.
Knowing the troubleshooter that I am, I’ll probably set out to figure out why the later versions of grc weren’t working on my Windows 10. I’m not one to leave a mystery unsolved. But that will be a hack for another day.
For now, I can get back to the fun exploratory part of my endeavours. Let the games begin. Happy 2020!