I am a newbie, just started to play with gnuradio.
For the start, I’d like to implement some simple, low bit rate
modem.
I don’t have any particular hardware, so I’d use the sound card of my
computer, and hook up my HF radio.
So for the start I thought I download a PSK31 modem, but I couldn’t find
one. I am 100% sure that this has been done before. Could you please
give me
pointers to such projects?
The final project would be a GMSK receiver of telemetry data from a high
altitude balloon.
It would be allot more work writing the GUI front end than the actual
GR portion of the modem; probably why it has not been done.
My initial thought is that I feed the decoded bits to a TCP sink, and I
write
a GUI in C, that listens on that particular TCP port. Unix socket would
be
nicer, but I can’t find a unix domain socket sink/source.
Is there any other way to get data and feed to other C application?
I was playing around with receiving data from the GR flow into Python
via
message queues. They do work, and I was able to empty the queues more
than
fast enough for 31 bps. However I have read the functionality will be
deprecated. There is a good write up here:
Regarding doing it in C; everything seems to be mostly there to do it in
Python as a native GR application.
A QT-GUI text input box would be needed to buffer-up the transmit
text as
it is typed, convert to varicode then drop the bytes into the transmit
stream, interrupting the continuous 01010101… The modulation is
simple.
The RX signal processing may be able to use the PSK receiver, then a
custom block would have to be written for the varidecoder, maybe dumping
the
text as messages, or to stdout.
The latest QT frequency sink has a click to tune functionality,
generating a frequency message, and the frequency translating FIR filter
has
a tuning message input. What I don’t know is if the PSK receiver has
wide
enough carrier recovery for point-and-click tuning, given 31 bps and a 2
kHz
channel bandwidth. I suppose some experimentation is in order.
Anyway, I think 50% of it is there already to do it all in GR.
Thanks,
Lou
KD4HSO
Levente Kovacs wrote
My initial thought is that I feed the decoded bits to a TCP sink, and I
write
a GUI in C, that listens on that particular TCP port. Unix socket would be
nicer, but I can’t find a unix domain socket sink/source.