On 12/07/2024 16:42, Walter Szeliga wrote:
Hi all,
I have a GNSS Firehose
(https://transitiva.com/product/gnss-firehose-receiver-tri-band-quad-constellation/)
and have been trying to get it working, in a streaming capacity, with
Gnuradio. The Firehose sends packets over ethernet using the
experimental ethertype 0x88b5. I've tried a few things to get data
from the Firehose into Gnuradio, some have worked, others have not.
Things that work:
* Use tcpdump and filter on 0x88b5 and save to a file. Open and
repackage each packet in the pcap dump as interleaved bytes of I&Q and
save to a file. Read into Gnuradio.
* Write a custom program using libpcap to filter on 0x88b5 on a
selected interface, repackage the packets and write directly to a
file. Read into Gnuradio.
* Write a custom program using libpcap to filter on 0x88b5 on a
selected interface, repackage the packets and PUB them using ZMQ. SUB
to this PUB using a simple Python script and dump the message contents
to a file. Read into Gnuradio. Both tcp and ipc PUB/SUB work equally well.
Some things that do not work:
* SUB to the ZMQ PUB/SUB using the Gnuradio ZMQ SUB Source block.
* Write a custom program using libpcap to filter on 0x88b5 on a
selected interface, repackage the packets and send them using UDP.
The UDP approach doesn't work because too many packets get dropped and
I have been unable to set sysctl values appropriately (on an M1 Mac)
to avoid dropping too many packets.
I'm not sure why the ZMQ approach does not work with Gnuradio. I've
tried many simple flowgraphs to convert from vector to stream, ibyte
to complex, you name it, and then dumping the data back out to a file
using a File Sink (just to use existing software to check for data
sanity). Data gets into Gnuradio, but it clearly loses something
because constellation diagrams of the output data become blobs
centered on the origin rather than pairs of point clouds offset from
the origin as one would expect from the BPSK nature of the GNSS
signals captured by the Firehose.
I've come to the realization that it's probably best to write some
sort of driver to get data straight from the Firehose into Gnuradio,
but I have no idea where to start with this. Any ideas about how to
fix my ZMQ approach or start writing a custom driver would be
appreciated. There's a lot in here, so let me know if you would like
code or flowgraph examples.
Cheers,
Walter
Are these things actually in production? What kind of price range, and
how tunable in terms of center frequency are they?