r4d10n / mmdvm-sdr

MMDVModem for SDR apps - mmdvm firmware port for running on x86/ARM Linux
28 stars 7 forks source link

How to push audio samples to mmdvm-sdr ? #6

Open twitchyliquid64 opened 3 years ago

twitchyliquid64 commented 3 years ago

I'm managed to get this compiling but I couldnt see a concrete reference on how to use it.

From what I can tell you read the generated ttyMMDVM0 to get data that the modem has decoded right?

How then do we feed mmdvm-sdr with audio samples? I saw something about a zmq TCP port?

r4d10n commented 3 years ago

As mentioned in the Github Readme :

  1. Clone MMDVMHost code and make RTS check disable modification
  2. Configure MMDVMHost based on your Digital Network parameters
  3. You can use QRadioLink as described or use the gr-mmdvm flowgraph for interfacing with SDR
twitchyliquid64 commented 3 years ago

Is there a way to feed raw I/Q samples in via a unix domain socket or piped through a file descriptor?

I was hoping to use mmdvm-sdr standalone (without using mmdvm-host or gnuradio)

r4d10n commented 3 years ago

It might be possible to use zmqcat for streaming audio samples to / from mmdvm-sdr. If you want to use raw I/Q, you can try recreating the FM (de)modulation chain using csdr pipelines.

I'm not quite sure how mmdvm-sdr standalone could be useful without MMDVMHost... If you can elucidate the usecase, it would bring better clarity.

twitchyliquid64 commented 3 years ago

Myself and a good friend of mine are software programmers who want to build (rebuild) a higher-level stack for amateur DMR radio. The one thing neither of us want to deal with is symbol decoding, hence we wanted to use mmdvm for that part of the stack. Our plan was to pump I/Q samples or audio samples into mmdvm, and get out the stream of bits which our code could then handle.

Looking further, it might be possible for us to easily change just IORPi.cpp to read/write to file descriptors instead of using zmq.

r4d10n commented 3 years ago

That indeed sounds compelling.. Cheers to you both! Keep us posted.

Commit https://github.com/r4d10n/mmdvm-sdr/commit/dba796384c3aebfe7f49c58dee6fe9b2c3a4d4e4 had wave format output to stdin. I guess it should be obvious from IORPi.cpp now.