Further to some suggestions here a few months ago, I've switched gnuradio from
my Windows laptop to a dedicated desktop computer running Ubuntu. It is setup
in the attic with the receivers and antenna. I use my laptop and Remote Desktop
Connection to run the desktop in a 'headless' fashion. So now, I can get down
to the business of developing flowgraphs and modules. I went through the OOT
module/block tutorial again (in both CPP and Python flavors) and it went
reasonably well. I also learned how to make an ad hoc Python block that is
embedded in the project. So far so good.
The last few days I have been trying to build an APRS receiver. I built a
project using the narrowband FM demodulator and I can save the audio to a file
sink, or connect it to an audio sink. So far so good, but the next step is to
feed the audio to an FSK demodulator. Looking around I found exactly that in a
module package here:
So, I learned about git, and cmake, and make, and tons of other linux stuff,
tried to download and install, but no go. Turns out that the package is three
years old, and not compatible with the current version of gnuradio. So, I used
gr-modtool to create a new module and block with the same inputs/outputs as his
afsk1200 block, and then take his code and put it in the new template. After a
few more learning experiences, I have a block that will instantiate, and
consume inputs, and print out some info via gr::log. But, it wasn't decoding,
so I got the TNC-Test CD, extracted one "known good" transmission burst into a
wav file and used that as a source to the afsk1200 block. The troubling thing
is that it doesn't give consistent results; i.e. sometimes it decodes the burst
and sometimes it doesn't. So, my questions are about debugging this block.
1. Are there any tools/blocks/tips/tricks for showing debug information? I
already have QT GUI Time Sink showing the audio waveform (so I know the
1200/2400 hz tones are there), but I would like to see my decoded bits on the
same timescale. Is there a way to do that? Also, is there a way to freeze the
2. Once you have a new block built, the process to make a change appears to be:
- edit the source file
- sudo make install
- sudo ldconfig
Is the last step always necessary? Is there a better way? Is there an IDE that
can be used to shorten the cycle? How about a debugger, with breakpoints and
And I have two tangential questions.
3. In an effort to get a visualization of the the outputs, I found this package
by the same author as above:
and it even claims to be compatible with gnuradio 3.7. But I got stuck at this
$cmake -DCMAKE_INSTALL_PREFIX=<where gnuradio is installed> ../
I tried to findout "where gnuradio is installed" using the suggested command:
which showed "/usr" but plugging that in didn't work. cmake complained:
"Cannot find gnuradio cmake Modules directory"
I could find /usr/share/gnuradio but none of the subdirectories were related to
cmake nor Modules
4. For anyone who is still reading, is there a way to do AFSK demodulation
without a custom block?
Sorry for the long post - and thanks for any advice.
Discuss-gnuradio mailing list