Interface between GNUradio and Flex-6500

  • 1
  • Question
  • Updated 2 years ago
  • Answered
Hello,

I'm trying to design a system using GNU radio and Flex Radio. The idea is to have GNU Radio create IQ samples composed from different digital modes(i.e. BPSK, QPSK) and arbitrary waveforms, transfer those samples to the flex-6500, and have the flex-6500 transmit those samples. I've seen many posts where people have done the opposite (i.e. Having Flex transmit IQ samples to GNU Radio for post-processing), which leads me to believe that it should be possible to reverse this for my application. I've started looking at the FlexLib API and have loaded all of the necessary files in Visual Studio (if anyone has any other IDE recommendations, that would also be greatly appreciated). However, I'm stuck conceptually on 2 things:

1) Is there already a function that exists within the FlexLib API that does this? If not, how feasible would it be to reverse engineer one of the existing functions to do this?

2) Is the flex radio able to collect these samples in real-time or is there a cap on how much data can be transmitted at a time?

Any suggestions on how to approach this are greatly appreciated.

Thanks,
Noel Teku
Photo of Noel

Noel

  • 4 Posts
  • 0 Reply Likes

Posted 2 years ago

  • 1
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1031 Posts
  • 1002 Reply Likes
You will want to use the Waveform API.  There's not a lot of documentation on it at this point but the D-STAR and FreeDV modules are examples of this and available on Github here.  Note that the FreeDV implementation is in a branch, ThumbDV_support.  In short, this interface will send your receiver IQ data when in receive and expect audio to play out the speaker.  If you have no data for the speaker, you may send null samples.  On transmit, it's the opposite -- the radio will send you microphone samples (which you can ignore if you want) and you provide IQ data to transmit.
(Edited)
Photo of Noel

Noel

  • 4 Posts
  • 0 Reply Likes
Hi Steve,

Thank you for the quick response. I went to the Github link, and was having trouble finding the "ThumbDV_support". Could you tell me more specificially how to get to that support, and if you have any advice on how to run it?

Thanks,
Noel
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1031 Posts
  • 1002 Reply Likes
It's Github -- you'll have to clone the repo to get the source. That should get you D-STAR source. Switch to the other branch if you want to see the ThumbDV code. If you've never used Git or Github, you'll need to go through an online tutorial or read up on Git
Photo of Noel

Noel

  • 4 Posts
  • 0 Reply Likes
Hi Steve,

Thank you again. I was able to locate the ThumbDV branch in the Github link. I've been looking in the branch, but am having trouble to figure out what files I need to send arbitrary waveforms and digital modes from GNU radio to the Flex to transmit (i.e. QPSK, BPSK). Could you tell me which files I need to call from this API?

Thanks,
Noel Teku
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1031 Posts
  • 1002 Reply Likes
Each of the waveform applications build an executable that exchanges samples with the radio over a VITA-49 interface (UDP packets over Ethernet).  The applications are written in C.  As such, there is a main() routine that calls initialization routines to communicate with the radio and set everything up and there are loops that handle sample interchange.  I think to really understand what's up, you're just going to have to go through the code and see how it works.  You can compile and run the code in any C compiler on any platform with the typical modifications for different compilers and platforms.