Introduction to Pre-Cog

Hi everyone,

After a few requests, I have cleaned up my pre-cog library a bit for
general use. For those who are not familiar, this is a library of
rudimentary MAC layer functions that uses Josh B.'s gr-extras Here are the current

* Uses python block writing capability of gr-extras
* Uses "blobs" from gr-extras
* simple_mac with ARQ and radio addressing
* TDMA, FHSS and other blocks
* A couple of blocks that are useful for debugging

Currently, I have provided a simple example called “simple_trx”. This
implements a full-duplex or half-duplex, random access link with ARQ
between one or more radios. You can transfer data to and from the
appliction through a TCP/IP interface. If you replace the socket_msg
block with the gr-extras tun/tap block, you can mirror the functionality
of Or you can put any other arbitrary data sink/source.

Examples that use the TDMA and FHSS will be coming soon…

Youtube Video (sorry audio is pretty low):

Github Repo:

Looking for thoughts, feedback, and ideas. [and of course, bug reports]

Best Regards,
John M.

PS - It’s called pre-cog, because I think this is an experimental. My
expectation is that we’ll apply lessons learned with this to a more
permanent solution.

Hi John,

You Wrote:

Looking for thoughts, feedback, and ideas. [and of course, bug reports]

I just very quickly installed gr-precog under gnuradio-3.6.2. Installed
fine, but when starting grc, I noticed the following:

It seems that after installation, quite a lot of the sinks and
sources are missing. In some case there are equivalents in gr-extras,
so no biggie (Noise, Signal etc), but some others def disappear
entirely, null comes to mind. An uninstall and re-install of 3.6.2,
and they all appear again.

Unfortunately, I don’t have time this evening to play further this
evening as I have a prior engagement, but will certainly be
experimenting later in the week.

Also very much looking forward to FEC and CSMA developments in
the future. Just ebing able to get arbitary data in and out of
a flow graph, and have gnuradio handle the MAC and PHY bits is
really useful and powerful, so Thanks to both you and Josh



Thanks. I’ll look into this.